commit c93af319332bb09fa509cac3ebefed14949265ae Author: Joe Arndt Date: Thu Jul 25 15:36:03 2024 -0500 initial commit with chapter converted diff --git a/README.md b/README.md new file mode 100644 index 0000000..ec0a150 --- /dev/null +++ b/README.md @@ -0,0 +1,13 @@ +# Rhetorica Ad Herennium +![retorica](sources/banner.png) +The end goal of this project is to create a functional and nicely formatted eBook version of Harry Caplan's English translation of "[Cicero]: Rhetorica ad Herennium" by the Loeb Classical Library. This book was published in 1954 by the Harvard University Press, ISBN: 9780674994447. More information about this book can be seen at [Harvard University Press](https://www.hup.harvard.edu/books/9780674994447). The book is now in the Public Domain, and the vast majority of the hard work of transcribing this text into digital work has already been done, as can be found at [LacusCurtius](https://penelope.uchicago.edu/Thayer/E/Roman/Texts/Rhetorica_ad_Herennium/home.html). + +However, there is no plain text transcription, only the HTML version. Once the HTML source is covnerted into plain text, that text will then be copied and formatted into an eBook format. This repository will serve as an archive for the plain text conversion process. The actual eBook formatting will likely be done in a seperate project, which will later be linked here. The plan is to use the [Standard Ebooks](https://standardebooks.org/contribute/producers) toolkit/process to produce the eBook, as their formatting and style standards are very high. + +## TODO +- [ ] Introduction +- [x] Book 1 +- [ ] Book 2 +- [ ] Book 3 +- [ ] Book 4 +- [ ] Footnotes diff --git a/book_1.txt b/book_1.txt new file mode 100644 index 0000000..ad2ccd9 --- /dev/null +++ b/book_1.txt @@ -0,0 +1,89 @@ +Rhetorica Ad Herennium +On the Theory of Public Speaking + +Book I (17 Chapters, 27 Sections, 132 Footnotes) + +Chapter I. +Sect. 1 My private affairs keep me so busy that I can hardly find enough leisure to devote to studies, and the little that is vouchsafed to me I have usually preferred to spend on philosophy. Yet your desire, Gaius Herennius, has spurred me to compose a work on the Theory of Public Speaking, lest you should suppose that in a matter which concerns you I either lacked the will or shirked the labour. And I have undertaken this project the more gladly because I knew that you had good grounds in wishing to learn rhetoric, for it is true that copiousness and facility in expression bear abundant fruit, if controlled by proper knowledge and a strict discipline of the mind. +That is why I have omitted to treat those topics which, for the sake of futile self-assertion, Greek writers​1 have adopted. For they, from fear of appearing to know too little, have gone in quest of notions irrelevant to the art, in order that the art might seem more difficult to understand. I, on the other hand, have treated those topics which seemed pertinent to the theory of public speaking. I have not been moved by hope of gain​2 or desire for glory, as the rest have been, in undertaking to write, but have done so in order that, by my painstaking work, I may gratify your wish. To avoid prolixity, I shall now begin my discussion of the subject, as soon as I have given you this one injunction: Theory without continuous practice in speaking is of little avail; from this you may understand that the precepts of theory offered ought to be applied in practice. + +Chapter II. +Sect. 2 The task of the public speaker is to discuss capably those matters which law and custom have fixed for the uses of citizen­ship, and to secure as far as possible the agreement of his hearers.​3 There are three kinds​4 of causes which the speaker must treat: Epideictic, Deliberative, and Judicial.​5 The epideictic kind is devoted to the praise or censure of some particular person. The deliberative consists in the discussion of policy and embraces persuasion and dissuasion.​6 The judicial is based on legal controversy, and comprises criminal prosecution or civil suit, and defence.7 +Now I shall explain what faculties the speaker should possess, and then show the proper means of treating these causes.8 +Sect. 3 The speaker, then, should possess the faculties of Invention, Arrangement, Style, Memory, and Delivery.​9 Invention is the devising of matter, true or plausible, that would make the case convincing.​10 Arrangement is the ordering and distribution of the matter, making clear the place to which each thing is to be assigned. Style is the adaptation of suitable words and sentences to the matter devised. Memory is the firm retention in the mind of the matter, words, and arrangement. Delivery is the graceful regulation of voice, countenance, and gesture. +All these faculties we can acquire by three means: Theory, Imitation, and Practice.​11 By theory is meant a set of rules that provide a definite method and system of speaking. Imitation stimulates us to attain, in accordance with a studied method, the effectiveness of certain models in speaking. Practice is assiduous exercise and experience in speaking. +Since, then, I have shown what causes the speaker should treat and what kinds of competence he should possess, it seems that I now need to indicate how the speech can be adapted to the theory of the speaker's function. + +Chapter III. +Sect. 4 Invention is used for the six parts of a discourse: the Introduction, Statement of Facts, Division, Proof, Refutation, and Conclusion.​12 The Introduction is the beginning of the discourse, and by it the hearer's mind is prepared​13 for attention. The Narration or Statement of Facts sets forth the events that have occurred or might have occurred.​14 By means of the Division we make clear what matters are agreed upon and what are contested, and announce what points we intend to take up. Proof is the presentation of our arguments, together with their corroboration.​15 Refutation is the destruction of our adversaries' arguments.​16 The Conclusion is the end of the discourse, formed in accordance with the principles of the art. +Along with the speaker's functions, in order to make the subject easier to understand, I have been led also to discuss the parts of a discourse, and to adapt these to the theory of Invention. It seems, then, that I must at this juncture first discuss the Introduction.17 +Sect. 5 Given the cause, in order to be able to make a more appropriate Introduction, we must consider what kind of cause it is. The kinds of causes are four: honourable, discreditable, doubtful, and petty.​18 A cause is regarded as of the honourable kind when we either defend what seems to deserve defence by all men, or attack what all men seem in duty bound of the attack; for example, when we defend a hero, or prosecute a parricide. A cause is understood to be of the discreditable kind when something honourable is under attack or when something discreditable is being defended. A cause is of the doubtful kind when it is partly honourable and partly discreditable. A cause is of the petty kind when the matter brought up is considered unimportant. + +Chapter IV. +Sect. 6 In view of these considerations, it will be in point to apply the theory of Introductions to the kind of cause. There are two kinds of Introduction: the Direct Opening, in Greek called the Proimion,19 and the Subtle Approach, called the Ephodos.​20 The Direct Opening straightway prepares the hearer to attend to our speech. Its purpose is to enable us to have hearers who are attentive, receptive, and well-disposed.​21 If our cause is of the doubtful kind, we shall build the Direct Opening upon goodwill, so that the discreditable part of the cause cannot be prejudicial to us. If our cause is of the petty kind, we shall make our hearers attentive. If our cause is of the discreditable kind, unless we have hit upon a means of capturing goodwill by attacking our adversaries, we must use the Subtle Approach, which I shall discuss later.​22 And finally, if our cause is of the honourable kind, it will be correct either to use the Direct Opening or not to use it.​23 If we wish to use it, we must show why the cause is honourable, or else briefly discuss what matters we are going to discuss. But if we do not wish to use the Direct Opening, we must begin our speech with a law, a written document, or some argument supporting our cause. +Sect. 7 Since, then, we wish to have our hearer receptive, well-disposed, and attentive, I shall disclose how each state can be brought about. We can have receptive hearers if we briefly summarise the cause and make them attentive; for the receptive hearer is one who is willing to listen attentively. We shall have attentive hearers by promising to discuss important, new, and unusual matters, or such as appertain to the commonwealth, or to the hearers themselves, or to the worship of the immortal gods; by bidding them listen attentively; and by enumerating the points we are going to discuss. Sect. 8 We can by four methods make our hearers well-disposed: by discussing our own person, the person of our adversaries, that of our hearers, and the facts themselves.24 + +Chapter V. +From the discussion of our own person we shall secure goodwill by praising our services without arrogance and revealing also our past conduct toward the republic, or toward our parents, friends, or the audience, and by making some reference to . . . provided that all such references are pertinent to the matter in question; likewise by setting forth our disabilities, need, loneliness, and misfortune,​25 and pleading for our hearers' aid, and at the same time showing that we have been unwilling to place our hope in anyone else. +From the discussion of the person of our adversaries we shall secure goodwill by bringing them into hatred, unpopularity, or contempt.​26 We shall force hatred upon them by addu­cing some base, high-handed, treacherous, cruel, impudent, malicious, or shameful act of theirs. We shall make our adversaries unpopular by setting forth their violent behaviour, their dominance, factiousness, wealth, lack of self-restraint, high birth, clients, hospitality, club allegiance, or marriage alliances, and by making clear that they rely more upon these supports than upon the truth. We shall bring our adversaries into contempt by presenting their idleness, cowardice, sloth, and luxurious habits. +From the discussion of the person of our hearers goodwill is secured if we set forth the courage, wisdom, humanity, and nobility of past judgements they have rendered, and if we reveal what esteem they enjoy and with what interest their decision is awaited. +From the discussion of the facts themselves we shall render the hearer well-disposed by extolling our own cause with praise and by contemptuously disparaging that of our adversaries. + +Chapter VI. +Sect. 9 Now I must explain the Subtle Approach.​27 There are three occasions on which we cannot use the Direct Opening, and these we must consider carefully: (1) when our cause is discreditable, that is, when the subject itself alienates the hearer from us; (2) when the hearer has apparently been won over by the previous speakers of the opposition; (3) or when the hearer has become wearied by listening to the previous speakers. +If the cause has a discreditable character,​28 we can make our Introduction with the following points: that the agent, not the action, ought to be considered; that we ourselves are displeased with the acts which our opponents say have been committed, and that these are unworthy, yes, heinous. Next, when we have for a time enlarged upon this idea, we shall show that nothing of the kind has been committed by us. Or we shall set forth the judgement rendered by others in an analogous case, whether that cause be of equal, or less, or greater importance; then we shall gradually approach our own cause and establish the analogy. The same result is achieved if we deny an intention to discuss our opponents or some extraneous matter and yet, by subtly inserting the words,​29 do so. +Sect. 10 If the hearers have been convinced,​30 if our opponent's speech has gained their credence — and this will not be hard for us to know, since we are well aware of the means by which belief is ordinarily effected — if, then, we think belief has been effected, we shall make our Subtle Approach to the cause by the following means: the point which our adversaries have regarded as their strongest support we shall promise to discuss first; we shall begin with a statement made by the opponent, and particularly with that which he has made last; and we shall use Indecision,​31 along with an exclamation of astonishment: "What had I best say?" or "To what point shall I first reply?" +If the hearers have been fatigued by listening, we shall open with something that may provoke laughter​32 — a fable, a plausible fiction, a caricature, an ironical inversion on the meaning of a word, an ambiguity, innuendo, banter, a naïvety, an exaggeration, a recapitulation,​33 a pun, an unexpected turn,​34 a comparison, a novel tale, a historical anecdote, a verse, or a challenge or a smile of approbation directed at some one. Or we shall promise to speak otherwise than as we have prepared, and not to talk as others usually do; we shall briefly explain what the other speakers do and what we intend to do. + +Chapter VII. +Sect. 11 Between the Subtle Approach and the Direct Opening there is the following difference. The Direct Opening should be such that by the straightforward methods I have prescribed we immediately make the hearer well-disposed or attentive or receptive; whereas the Subtle Approach should be such that we effect all these results covertly, through dissimulation,​35 and so can arrive at the same vantage-point in the task of speaking. But though this three-fold advantage — that the hearers constantly show themselves attentive, receptive, and well-disposed to us — is to be secured throughout the discourse, it must in the main be won by the Introduction to the cause. +Now, for fear that we may at some time use a faulty Introduction, I shall show what faults must be avoided. In the Introduction of a cause we must make sure that our style is temperate and that the words are in current use,​36 so that the discourse seems unprepared. An Introduction is faulty if it can be applied as well to a number of causes;​37 that is called a banal Introduction. Again, an Introduction which the adversary can use no less well is faulty, and that is called a common Introduction. That Introduction, again, is faulty which the opponent can turn to his own use against you. And again that is faulty which has been composed in too laboured a style, or is too long; and that which does not appear to have grown out of the cause itself in such a way as to have an intimate connection with the Statement of Facts; and, finally, that which fails to make the hearer well-disposed or receptive or attentive. + +Chapter VIII. +Concerning the Introduction I have said enough; next let me turn to the Narration or Statement of Facts. Sect. 12 There are three types of Statement of Facts.​38 It is one type when we set forth the facts and turn every detail to our advantage so as to win the victory, and this kind appertains to the causes on which a decision is to be rendered.​39 There is a second type which often enters into a speech as a means of winning belief or incriminating our adversary​40 or effecting a transition or setting the stage for something.​41 The third type​42 is not used in a cause actually pleaded in court, yet affords us convenient practice​43 for handling the first two types more advantageously in actual cases. Sect. 13 Of such narratives there are two kinds: one based on the facts, the other on the persons.44 +The kind of narrative based on the exposition of the facts presents three forms: legendary, historical, and realistic. The legendary tale comprises events neither true nor probable, like those transmitted by tragedies.​45 The historical narrative is an account of exploits actually performed, but removed in time from the recollection of our age.​46 Realistic narrative recounts imaginary events, which yet could have occurred, like the plots of comedies.47 +A narrative based on the persons should present a lively style and diverse traits of character,​48 such as austerity and gentleness, hope and fear, distrust and desire, hypocrisy and compassion, and the vicissitudes of life, such as reversal of fortune,​49 unexpected disaster, sudden joy, and a happy outcome. But it is in practice exercises that these types will be worked out.​50 How we should handle that type of Statement of Facts which belongs in actual causes I am about to explain. + +Chapter IX. +Sect. 14 A Statement of Facts should have three qualities: brevity, clarity, and plausibility.​51 Since we know that these qualities are essential, we must learn how to achieve them. +We shall be able to make the Statement of Facts brief if we begin it at the place at which we need to begin; if we do not try to recount from the remotest beginning; if our Statement of Facts is summary and not detailed;​52 if we carry it forward, not to the furthermost point, but to the point to which we need to go; if we use no digressions and do not wander from the account we have undertaken to set forth; and if we present the outcome in such a way that the facts that have preceded can also be known, although we have not spoken of them. For example, if I should say that I have returned from the province, it would also be understood that I had gone to the province.​53 And in general it is better to pass by not only that which weakens the cause but also that which neither weakens nor helps it. Furthermore, we must guard against repeating immediately what we have said already, as in the following: "Simo came from Athens to Megara in the evening; when he came to Megara, he laid a trap for the maiden: after laying the trap he ravished her then and there."54 +Sect. 15 Our Statement of Facts will be clear​55 if we set forth the facts in the precise order in which they occurred, observing their actual or probable sequence and chronology. Here we must see that our language is not confused,​56 involved, or unfamiliar, that we do not shift to another subject, that we do not trace the affair back to its remotest beginning, nor carry it too far forward, and that we do not omit anything pertinent. And our Statement of Facts will be clear if we follow the precepts on brevity that I have laid down,​57 for the shorter the Statement of Facts, the clearer will it be and the easier to follow. +Sect. 16 Our Statement of Facts will have plausibility​58 if it answer the requirements of the usual, the expected, and the natural; if account is strictly kept of the length of time, the standing of the persons involved, the motives in the planning, and the advantages offered by the scene of action, so as to obviate the argument in refutation that the time was too short, or that there was no motive, or that the place was unsuitable, or that the persons themselves could not have acted or been treated so. If the matter is true, all these precautions must none the less be observed in the Statement of Facts, for often the truth cannot gain credence otherwise. And if the matter is fictitious, these measures will have to be observed all the more scrupulously. Fabrication must be circumspect in those matters in which official documents or some person's unimpeachable guaranty will prove to have played a rôle. +In what I have thus far said I believe that I agree with the other writers on the art of rhetoric except for the innovations I have devised on Introductions by the Subtle Approach. I alone,​59 in contrast with the rest, have distinguished three occasions for the Subtle Approach, so as to provide us with a thoroughly sure method and a lucid theory of Introductions. Chapter X. Now as to the rest, since I must discuss the finding of arguments, a matter that makes unique demands upon the art of the speaker, I shall endeavour to exhibit an industry in research such as the importance of the subject demands — as soon as I have prefixed a few remarks on the Division of the cause. +Sect. 17 The Division​60 of the cause falls into two parts. When The Statement of Facts has been brought to an end, we ought first to make clear what we and our opponents agree upon, if there is agreement on the points useful to us,​61 and what remains contested, as follows: "Orestes killed his mother;​62 on that I agree with my opponents. But did he have the right to commit the deed, and was he justified in committing it? That is in dispute." Likewise in reply: "They admit that Agamemnon was killed by Clytemnestra; yet despite this they say that I ought not to have avenged my father." +Then, when we have done this, we should use the Distribution.​63 The Distribution has two parts: the Enumeration​64 and the Exposition.​65 We shall be using the Enumeration when we tell by number how many points we are going to discuss. The number ought not to exceed three; for otherwise, besides the danger that we may at some time include in the speech more or fewer points than we enumerated,​66 it instils in the hearer the suspicion of premeditation and artifice,​67 and this robs the speech of conviction. The Exposition consists in setting forth, briefly and completely, the points we intend to discuss. +Sect. 18 Now let me pass to Proof​68 and Refutation.​69 The entire hope of victory and entire method of persuasion rest on proof and refutation, for when we have submitted our arguments and destroyed those of the opposition, we have, of course, completely fulfilled the speaker's function. Chapter XI. We shall, then, be enabled to do both if we know the Type of Issue​70 which the cause presents. Others make these Types of Issue four.​71 My teacher​72 thought that there were three, and intending thereby to subtract any of the types they had discovered, but to demonstrate that one type which they should have taught as single and uncompounded they had divided into with distinct and separate types. The Issue is determined by the joining of the primary plea of the defence with the charge of the plaintiff. The Types of Issue are then, as I have said above, three: Conjectural, Legal, and Juridical.73 +The Issue is Conjectural​74 when the controversy concerns a question of fact, as follows: In the forest Ajax, after realizing what in his madness he had done, fell on his sword. Ulysses appears, perceives that Ajax is dead, draws the bloody weapon from corpse. Teucer appears, sees his brother dead, and his brother's enemy with bloody sword in hand. He accuses Ulysses of a capital crime. Here the truth is sought by conjecture. The controversy will concern the fact.​75 And that is why the Issue in the cause is called Conjectural. +Sect. 19 The Issue is Legal​76 when some controversy turns upon the letter of a text or arises from an implication therein. A Legal Issue is divided into six subtypes: Letter and Spirit,​77 Conflicting Laws,​78 Ambiguity,​79 Definition,​80 Transference,​81 and Reasoning from Analogy.82 +A controversy from Letter and Spirit arises when the framer's intention appears to be at variance with the letter of the text, as follows: Suppose a law which decrees that whoever have abandoned their ship in a storm shall lose all rights of title, and that their ship, if saved, and cargo as well, belong to those who have remained on board. Terrified by the storm's violence, all deserted the ship and took to the boat — all except one sick man who, on account of his illness, could not leave the ship and escape. By sheer chance the ship was driven safely to harbour. The invalid has come into possession of the ship, and the former owner claims it.​83 Here is a Legal Issue based on Letter and Spirit.84 +Sect. 20 Controversy results from Conflicting Laws when one law orders or permits a deed while another forbids it, as follows: A law forbids one who has been convicted of extortion to speak before the Assembly.​85 Another law commands the augur to designate in the Assembly the candidate for the place of a deceased augur.​86 A certain augur convicted of extortion has designated the candidate for the place of a deceased augur. A penalty is demanded of him.​87 Here is a Legal Issue established from Conflicting Laws. + +Chapter XII. +A controversy is created by Ambiguity when a text presents two or more meanings, as follows: The father of a family, when making his son his heir, in his will bequeathed silver vessels to his wife: "Let my heir give my wife thirty pounds' weight of silver vessels, 'such as shall be selected'." After his death the widow asks for some precious vessels of magnificent relief-work. The son contends that he owes her thirty pounds' weight of vessels "such as shall be selected" by him.​88 Here is a Legal Issue established from Ambiguity. +Sect. 21 A cause rests on Definition when the name by which an act should be called is in controversy. The following is an example: When Lucius Saturninus was about to introduce the grain law concerning the five-sixths as, Quintus Caepio, who was city quaestor during that time, explained to the Senate that the treasury could not endure so great a largess. The Senate decreed that if Saturninus should propose that law before the people he would appear to be doing so against the common weal. Saturninus proceeded with his motion. His colleagues interposed a veto; nevertheless he brought the lot-urn down for the vote. Caepio, when he sees Saturninus presenting his motion against the public welfare despite his colleagues' veto, attacks him with the assistance of some Conservatives, destroys the bridges,​89 throws down the ballot boxes, and blocks further action on the motion. Caepio is brought to trial for treason.​90 The Issue is Legal, and is established from Definition, for we are defining the actual term when we investigate what constitute treason.91 +Sect. 22 A controversy is based on Transference when the defendant maintains that there must be a postponement of time or a change of plaintiff or judges.​92 This subtype of Issue the Greeks use in the proceedings before judges, we generally before the magistrate's tribunal.​93 We do, however, make some use of it in judicial proceedings. For example, if some one is accused of embezzlement, alleged to have removed silver vessels belonging to the state from a private place, he can say, when he has defined theft and embezzlement, that in his case the action ought to be one for theft and not embezzlement.​94 This subtype of Legal Issue rarely​95 presents itself in judicial proceedings for the following reasons: in a private action there are counterpleas accepted by the praetor,​96 and the plaintiff's fails unless he has had a cause of action; in public investigations the laws provide that, if it suits the defendant, a decision is first passed on whether the plaintiff is, or is not, permitted to make the charge. + +Chapter XIII. +Sect. 23 The controversy is based on Analogy when a matter that arises for adjudication lacks a specifically applicable law, but an analogy is sought from other existing laws on the basis of a certain similarity to the matter in question. For example, a law reads: "If a man is raving mad, authority over his person and property shall belong to his agnates, or to the members of his gens."​97 Another law reads: "He who has been convicted of murdering his parent shall be completely wrapped and bound in a leather sack and thrown into a running stream."​98 Another law: "As the head of a family has directed regarding his household or his property, so shall the law hold good."​99 Another law: "If the head of a family dies intestate, his household and property shall belong to his agnates, or to the members of his gens."​100 Malleolus was convicted of matricide. Immediately after he had received sentence, his head was wrapped in a bag of wolf's hide, the "wooden shoes"​101 were put upon his feet, and he was led away to prison. His defenders bring tablets into the jail, write his will in his presence, witnesses duly attending. The penalty is exacted of him. His testamentary heirs enter upon their inheritance. Malleolus' younger brother, who had been one of the accusers in his trial, claims his inheritance by the law of agnation. Here no one specific law is adduced, and yet many laws are adduced, which for the basis for a reasoning by analogy to prove that Malleolus had or had not the right to make a will. It is a Legal Issue established from Analogy. +I have explained the types of Legal Issue. Now let me discuss the Juridical Issue. + +Chapter XIV. +Sect. 24 An Issue is Juridical​102 when there is agreement on the act, but the right or wrong of the act is in question. Of this Issue there are two subtypes, one called Absolute,​103 the other Assumptive.104 +It is an Absolute Issue when we contend that the act in and of itself, without our drawing on any extraneous considerations, was right. For example, a certain mime abused the poet Accius by name on the stage. Accius sues him on the ground of injuries. The player makes no defence except to maintain that it was permissible to name a person under whose name dramatic works were given to be performed on the stage.105 +The Issue is Assumptive when the defence, in itself insufficient, is established by drawing on extraneous matter. The Assumptive subtypes are four: Acknowledgement of the Charge,​106 Rejection of the Responsibility,​107 Shifting of the Question of Guilt,​108 Comparison with the Alternative Course.109 +The Acknowledgement​110 is the defendant's plea for pardon. The Acknowledgement includes the Exculpation​111 and the Plea for Mercy.​112 The Exculpation is the defendant's denial that he acted with intent.​113 Under Plea of Exculpation are three subheads: Ignorance,​114 Accident,​115 and Necessity;​116 accident, as in the case of Caepio​117 before the tribunes of the plebs on the loss of his army; ignorance, as in the case of the man who, before opening the tablets of the will by the terms of which his brother's slave had been manumitted, exacted punishment of the slave for having slain his master;​118 necessity, as in the case of the soldier who overstayed his leave because the floods had blocked the roads.​119 It is a Plea for Mercy when the defendant confesses the crime and premeditation, yet begs for compassion.​120 In the courts this is rarely practicable,​121 except when we speak in defence of one whose good deeds are numerous and notable; for example, interposing as a commonplace in amplification: "Even if he had done this, it would still be appropriate to pardon him in view of his past services; but he does not at all beg for pardon." Such a cause, then, is not admissible in the courts, but is admissible before the Senate, or a general, or a council.122 + +Chapter XV. +Sect. 25 A cause rests on the Shifting of the Question of Guilt when we do not deny our act but plead that we were driven to it by the crimes of others, as in the case of Orestes when he defended himself by diverting the issue of guilt from himself to his mother.123 +A cause rests on the Rejection of the Responsibility when we repudiate, not the act charged, but the responsibility, and either transfer it to another person or attribute it to some circumstance. An example of the transference of responsibility to another person: if an accusation should be brought against the confessed slayer of Publius Sulpicius, and he should defend his act by invoking an order of the consuls, declaring that they not only commanded the act but also gave reason why it was lawful.​124 An example of attribution to a circumstance: if a person should be forbidden by a plebiscite to do what a will has directed him to do. +A cause rests on Comparison with the Alternative Course when we declare that it was necessary for us to do one or the other of the two things, and that the one we did was the better. This cause is of the following sort: Gaius Popilius, hemmed in by the Gauls, and quite unable to escape, entered into a parley with the enemy's chiefs. He came away with consent to lead his army out on condition that he abandon his baggage. He considered it better to lose his baggage than his army. He led out his army and left the baggage behind. He is charged with treason.125 + +Chapter XVI. +I believe that I have made clear what the Types of Issue are and what are their subdivisions. Now I must illustrate the proper ways and means of treating these, first indicating what both sides in a cause ought to fix upon as the point to which the complete economy of the entire speech should be directed. +Sect. 26 Immediately upon finding the Type of Issue, then, we must seek the Justifying Motive.​126 It is this which determines the action and comprises the defence. Thus Orestes (for the sake of clarity, to adhere to this particular action) confesses that he slew his mother. Unless he had advanced a Justifying Motive for the act, he will have ruined his defence. He therefore advances one; were it not interposed, there would not even be an action. "For she," says he, "had slain my father."​127 Thus, as I have shown, the Justifying Motive is what comprises the defence; without it not even the slightest doubt could exist which would delay his condemnation. +Upon finding the Motive advanced in Justification we must seek the Central Point​128 of the Accusation, that is, that which comprises the accusation and is presented in opposition to the Justifying Motive of the defence which I have discussed above. This will be established as follows: When Orestes has used the Justifying Motive: "I had the right to kill my mother, for she had slain my father," the prosecutor will use his Central Point: "Yes, but not by your hand ought she to have been killed or punished without a trial."129 +From the Justifying Motive of the defence and the Central Point of the Accusation must arise the Question for Decision, which we call the Point to Adjudicate and the Greeks the krinomenon. That will be established from the meeting of the prosecutor's Central Point and the defendant's Justifying Motive, as follows: When Orestes says that he killed his mother to avenge his father, was it right for Clytemnestra to be slain by her son without a trial? This, then, is the proper method of finding the Point to Adjudicate. Once the Point to Adjudicate is found, the complete economy of the entire speech ought to be directed to it. + +Chapter XVII. +Sect. 27 The Points to Adjudicate will be found in this way in all Types of Issue and their subdivisions, except the conjectural.​130 Here the Justifying Motive for the act is not in question, for the act is denied, near is the Central Point of the Accusation sought, for no Justifying Motive has been advanced. Therefore the Point to Adjudicate is established from the Accusation​131 and the Denial,​132 as follows: Accusation: "You killed Ajax." Denial: "I did not." The Point to Adjudicate: Did he kill him? The complete economy of both speeches must, as I have said above, be directed to this Point to Adjudicate. If there are several Types of Issue or their subdivisions in one cause, there will also be several Points to Adjudicate, but all these, too, will be determined by a like method. +I have taken great pains to discuss briefly and clearly the matters that have had to be treated up to this point. Now, since this Book has grown to sufficient length, it will be more convenient in turn to expound other matters in a second Book, so that the great amount of material may not tire you and slacken your attention. If I dispatch these matters too slowly for your eagerness, you will have to attribute that to the magnitude of the subject and also to the demands of my other occupations. Yet I shall make speed, and compensate by diligence for the time taken up by my affairs, to the end that, by this gift, in token of your courtesy towards me and my own interest in you, I may grant your desire in most bounti­ful measure. diff --git a/book_1_footnotes.txt b/book_1_footnotes.txt new file mode 100644 index 0000000..41849f9 --- /dev/null +++ b/book_1_footnotes.txt @@ -0,0 +1,263 @@ +1 The beginning of Book 4 further sets forth the author's attitude to the Greek writers on rhetoric (who these are specifically is uncertain); cf. also 3.xxiii.38. For his attitude to philosophical studies see the end of Book 4. + +2 Apparently text-books on public speaking sold well; see Theodore Birt, Rhein. Mus. 72 (1917/18), 311‑16. + +3 The definition is that of Hermagoras, to whom the function (ἔργον) of the perfect orator is τὸ τεθὲν πολιτικὸν ζήτημα διατίθεσθαι κατὰ τὸ ἐνδεχόμενον πειστικῶς. See Sextus Empiricus, Adv. Rhet. 62, ed. Fabricius, 2.150. Cf. Cicero, De Inv. 1.v.6. + +4 γένη. + +5 ἐπιδεικτικόν, συμβουλευτικόν, δικανικόν. The scheme is Aristotelian (Rhet. 1.3, 1358B) but in essence older. The author's emphasis in the first two books, on the judicial kind, is characteristically Hellenistic (e.g., Hermagorean). The better tradition indicates that originally rhetoric was concerned with the judicial kind, and was later extended to the other two fields. For a study of the three genera see D. A. G. Hinks, Class. Quarterly 30 (1936), 170‑6. Cf. Cicero, De Inv. 1.v.7. + +6 προτροπή and ἀποτροπή. + +7 κατηγορία, δίκη, ἀπολογία. + +8 2.ii.2 below. + +9 εὕρεσις, τάξις or οἰκονομία, λέξις or ἑρημνεία or φράσις, μνήμη, ὑπόκρισις. The pre-Aristotelian rhetoric, represented by the Rhet. ad Alexandrum, treated the first three (without classifying them); Aristotle would add Delivery (Rhet. 3.1, 1403B), and his pupil Theophrastus did so (see note on 3.xi.19 below). When precisely in the Hellenistic period Memory was added as a fifth division by the Rhodian or the Pergamene school, we do not know. These faculties (res; see also 1.ii.3) are referred to in 2.i.1 below (cf. 1.iii.4) as the speaker's functions (officia = ἔργα τοῦ ῥήτορος). Quintilian, 3.3.11 ff., considers them as departments or constituent elements of the art (partes rhetorices) rather than as opera (= officia); so also here at 3.i.1, 3.viii.15, 3.xvi.28, and Cicero, De Inv. 1.vii.9. ἔργον is an Aristotelian concept (cf. the definition of rhetoric in Rhet. 1.1‑2, 1355B), and Aristotle was the first to classify the (major) functions. Our author here gives the usual order of the divisions; so also Cicero, De Oratore 1.31.142. Diogenes Laertius, 7.43, presents the Stoic scheme: Invention, Style (φράσις), Arrangement, and Delivery. A goodly number of rhetorical systems were actually based on these ἔργα (e.g., in most part Cicero's and Quintilian's); others were based on the divisions of the discourse (μόρια λόγου). See K. Barwick, Hermes 57 (1922), 1 ff.; Friedrich Solmsen, Amer. Journ. Philol. 62 (1941), 35‑50, 169‑90. Our author conflates the two schemes he has inherited; see especially 1.ii.3‑iii.4 , 2.i.1‑ii.2, and the Introduction to the present volume, p. xviii. + +10 The concept goes back at least as far as Plato (e.g., Phaedrus 236A); see Aristotle, Rhet. 1.2 (1355B), on finding artistic proofs. + +11 τέχνη (also παιδεία, ἐπιστήμη, μάθησις, scientia, doctrina), μίμησις, γυμνασία (also ἄσκησις, μελέτη, ἐμπειρία, συνήθεία, declamatio). The usual triad, Nature (φύσις, natura, ingenium, facultas), Theory and Practice, can be traced back to Protagoras, Plato (Phaedrus 269D), and Isocrates (e.g., Antid. 187; Adv. Soph. 14‑18, where Imitation is also included). Cf. also Aristotle in Diogenes Laertius 5.18; Cicero, De Inv. 1.i.2, De Oratore 1.4.14; Dionysius Halic. in Syrianus, Scholia Hermog., ed. Rabe, 1.4‑5; Tacitus, Dialog. de Orator., ch. 33; Plutarch, De liberis educ. 4 (2A); and see Paul Shorey, Trans. Am. Philol. Assn. 40 (1909), 185‑201. Imitation is presumed to have been emphasized in the Pergamene school of rhetors under Stoic influence. Quintilian, 3.5.1, tells us that it was classed by some writers as a fourth element, which he yet subordinates to Theory. On Imitation cf. Antonius in Cicero, De Oratore 2.21.89 ff.; Dionysius Halic., De Imitat. (Opuscula 2.197‑217, ed. Usener-Radermacher); Quintilian, 10.1.20 ff.; Eduard Stemplinger, Das Plagiat in der Griech. Lit., Leipzig and Berlin, 1912, pp81 ff.; Kroll, "Rhetorik", coll. 1113 ff.; Paulus Otto, Quaestiones selectae ad libellum qui est περὶ ὕψους spectantes, diss. Kiel, 1906, pp6‑19; G. C. Fiske, Lucilius and Horace, Madison, 1920, ch. 1; J. F. D'Alton, Roman Literary Theory and Criticism, London, New York, and Toronto, 1931, pp426 ff.; Richard McKeon, "Literary Criticism and the Concept of Imitation in Antiquity," Mod. Philol. 34, 1 (1936), 1‑35, and esp. pp26 ff.; D. L. Clark, "Imitation: Theory and Practice in Roman Rhetoric," Quart. Journ. Speech 37, 1 (1951), 11‑22. "Exercise" refers to the progymnasmata, of which our treatise and Cicero's De Inv. show the first traces in Latin rhetoric, and to the "suasoriae" (deliberationes) and "controversiae" (causae) in which the treatise abounds. See also 4.xliv.58 (Refining). The divorce between praeexercitamenta and exercitationes belongs to the Augustan period. + +12 The author's treatment of the parts of a discourse differs from that of Aristotle, who, in Rhet. 3.13 (1414A) ff., discusses them — Proem, Statement of Facts, Proof, and Conclusion — with all three kinds of oratory in view, not only the judicial, under Arrangement. Note that Invention is applied concretely to the parts of the discourse; in 1.xi.18 ff. below the Issues are subjoined to Proof and Refutation. Cf. Cicero, De Inv. 1.xiv.19. The Stoic scheme included Proem, Statement of Facts, Replies to Opponents, and Conclusion (Diogenes Laertius 7.43). + +13 πρασκευάζεται. The concept is Isocratean. Cf. Rhet. ad Alex., ch. 29 (1436A); Dionysius Halic., De Lys. 17; Anon. Seg. 5 and 9 (Spengel-Hammer 1[2].353‑4); Rufus 4 (Spengel-Hammer 1[2].399); Anon., in Rabe, Proleg. Sylloge, p62. + +14 This definition is translated directly from a Greek original; see Hermogenes, Progymn. 2 (ed. Rabe, p4), Syrianus, Scholia Hermog. (ed. Rabe 2.170), Theon 4 (Spengel 2.78). Cf. Cicero, De Inv. 1.xix.27. + +15 Cf. Cicero, De Inv. 1.xxiv.34. + +16 Cf. Cicero, De Inv. 1.xlii.78 (reprehensio). + +17 πρόλογος, probably. + +18 ἔνδοξον, παράδοξον, ἀμφίδοξον, ἄδοξον, the σχήματα ὑποθέσεων, later sometimes called figurae materiarum or controversiarum. The classification is on a moral basis. These genera causarum are not to be confused with the three genera causarum treated in 1.ii.2 above. Most rhetoricians (e.g., Cicero, De Inv. 1.xv.20) treated also a fifth kind, obscurum (δυσπαρακολούθητον), and some included six kinds (see Quintilian, 4.1.40). The division into four σχήματα is Hermagorean (cf. Augustine, De Rhet. 1.17 ff., in Halm, pp147 ff.), and here our author conflates Hermagorean doctrine with the pre-Aristotelian doctrine of the Proem; see Georg Thiele, Hermagoras, Strassburg, 1893, pp113‑121. + +19 προοίμιον, "Prelude"; see Aristotle, Rhet. 3.14 (1414B), Quintilian, 4.1.2 ff., Anon. Seg. 4, in Spengel-Hammer 1(2).352‑3. Cf. Cicero, De Inv. 1.xv.20. + +20 ἔφοδος. The term is used in Oxyr. Pap. 3.27, in a rhetorical treatise of perhaps the beginning of the fourth century B.C. In Isaeus 3, Dionysius Halic. comments on Isaeus' use of ἔφοδοι. Cf. also Anon., in Rabe, Proleg. Syll., p206, and Anon., Proleg. Invent., in Walz 7(1).54. + +21 The hearer is to be rendered προσεκτικός, εὐμαθής, εὔνους. Cf. Cicero, De Inv. 1.xvi.22‑3. The doctrine is pre-Aristotelian; see, e.g., Rhet. ad Alex., ch. 29 (1436A), and Epist. Socrat. 30.4 on Isocrates. Aristotle, Rhet. 3.14 (1415A), includes Receptiveness under Attention. Cicero, Part. Orat. 8.28, gives three aims for the Direct Opening; ut amice, ut intellegenter, ut attente audiamur. For the importance of Attention in present-day rhetoric, cf. J. A. Winans, Public Speaking, New York, 1917, p194: "Persuasion is the process of indu­cing others to give fair, favourable, or undivided attention to propositions." + +22 1.vi.9 ff. + +23 Cf. Rhet. ad Alex., ch. 29 (1437B): "If there is no prejudice against ourselves or our speech or our subject, we shall set forth our Proposition immediately at the beginning, appealing for attention and a benevolent hearing afterwards." + +24 So Aristotle, Rhet. 3.14 (1415A), and Anon. Seg. 7 (Spengel-Hammer 1[2].353‑4): ἐκ τοῦ αὐτοῦ or τοῦ λέγοντος, ἐκ τοῦ ἐναντίου or ἀντιδίκου, ἐκ τῶν ἀκροατῶν or δικαζόντων, ἐκ τῶν πραγμάτων. Cf. also Cicero, De Inv. 1.xvi.22. Here as throughout the first two books the author is dealing with judicial oratory. + +25 πάθος, here assigned to the Introduction, also has a place in the Conclusion; see 2.xxx.48‑xxxi.50 below. Thus the author accords with the early Greek rhetoric based on the divisions of the discourse. Nowhere does he make a profound analytical study of the emotions such as we find in Aristotle, Rhet., Bk. II. In Anon. Seg. 6 (Spengel-Hammer 1[2].353) are listed five emotions of the hearer which play a part in the function of the Proem: pity, anger, fear, hate, and desire. + +26 ἔχθρα or μῖσος, φθόνος, ὀργή. + +27 In Cicero, De Inv. 1.xvii.23, the Subtle Approach is specifically used in the admirabile genus causae. The three causae of Cicero correspond to the "occasions" classified by our author. Anon. Seg. 21 ff. (Spengel-Hammer 1[2].357 ff.) gives four occasions on which the Prooemion should be dispensed with, and discusses the view that it must always be used. + +28 Cf. Cicero, De Inv. 1.xvii.24. + +29 παραφθέγγεσθαι. + +30 Cf. Cicero, De Inv. 1.xvii.25. + +31 See 4.xxix.40 below. + +32 Note that humour enters the rhetorical system under the Introduction. Aristotle, Rhet. 3.14 (1415A), also discusses the place of laughter in the Proem. This classification of eighteen means of provoking laughter must have been a recent accession to rhetorical theory; cf. the summary in Cicero, De Oratore 2.61.248 ff. On wit and humour in ancient rhetoric, see E. Arndt, De ridiculi doctrina rhetorica, Bonn, 1904; Mary A. Grant, The Ancient Rhetorical Theories of the Laughable, Madison, 1924; and Wilhelm Kroll in P.‑W., art "Rhetorik," coll. 1076‑7. Cf. also Wilhelm Süss, Neue Jahrb. 23 (1920), 28‑45. + +33 Of the adversary's argument, perhaps. + +34 παρὰ προσδοκίαν. + +35 λαθραίως δι’ ἑτέρων λόγων. Anon., Proleg. Invent., in Walz 7(1).54.14‑16, gives the same precept. + +36 Anon. Seg. 19 (Spengel-Hammer 1[2].356) makes the same point. + +37 Cf. Cicero, De Inv. 1.xviii.26. + +38 διήγησις. Cf. Cicero, De Inv. 1.xix.27. + +39 διηγήσεις ἐπὶ κριτῶν λεγόμεναι. + +40 διαβολή. + +41 Incidental Narrative (παραδιήγησις); cf. Quintilian, 9.2.107, and Anon. Seg. 61 (Spengel-Hammer 1[2].364‑5), who distinguishes it from Digression (παρέκβασις). + +42 διηγήσεις καθ’ ἑαυτάς. + +43 The reference is to the progymnasmata (praeexercitamenta). Narratio provided the first exercises imposed by the rhetor; see Quintilian, 2.4.1, and Jean Cousin, Études sur Quintilien, Paris, 1936, 1.113. + +44 According to τὰ πράγματα or τὰ πρόσωπα. + +45 μῦθος, but see Cousin, op. cit., 1.113, note 4. Cf. Aristotle, Poetics 9 (1451A): "The poet's function is to describe, not the things that actually have happened, but the kind of things that might well happen — that are possible in the sense of being either probable or inevitable." But it is doubtless the miraculous element in tragedies that is here in mind; see the example of fabula in Cicero, De Inv. 1.xix.27. + +46 ἱστορία. + +47 πλάσμα. Cf. argumentum (Presumptive Proof) in 2.ii.3, and argumentatio (argument) in 2.ii.2 below. + +48 Cf. the figure notatio (Character Delineation), 4.l.63 below. + +49 Cf. Cicero, Epist. ad Fam. 51.2.4, on writing history: "For nothing is so suited to the delight of the reader as are shifting circumstances and the vicissitudes of fortune." Concerning our author's doctrine of narratio as reflecting Hellenistic ideas on historiography and story writing, see R. Reitzenstein, Hellenistische Wundererzählungen, Leipzig, 1906, pp84 ff., and for further interpretations of these sections dealing with narratio (and of Cicero, De Inv. 1.xix.27), Karl Barwick, Hermes 63, 3 (1928), 261‑87, and Friedrich Pfister, Hermes 68, 4 (1933), 457‑60. + +50 The narratio is developed (tractatio = ἐξεργασία) in the progymnasmata. + +51 συντομία, σαφήνεια, πιθανότης. The precept is Isocratean (see Quintilian, 4.2.31‑2) or even older (see Octave Navarre, Essai sur la rhétorique grecque avant Aristote, Paris, 1900, p246). Aristotle, Rhet. 3.16 (1416B), scorns the injunction of brevity in favour of the "proper mean." Cf. Cicero, De Inv. 1.xx.28. + +52 Presented κεφαλαιωδῶς, not μερικῶς. + +53 Doxapatres (eleventh century), in Walz 2.230, gives the same example; it is doubtless Greek in origin. + +54 The author of these iambic trimeters and the name of the comedy from which they come are both unknown. Cf. Plautus, Miles Gloriosus 439: quae heri Athenis Ephesum adveni vesperi. + +55 Cf. Cicero, De Inv. 1.xx.29. + +56 ὑπερβατῶς, in inverted order. + +57 In 1.ix.14 above. + +58 Cf. Cicero, De Inv. 1.xxi.29‑30. + +59 See note on 1.vi.9 above. Our author's doctrine of the Subtle Approach is Greek in origin, although we know no specific Greek source for the three occasions. That Cicero in De Inv. presents a like classification makes our author's claim difficult to explain; see the Introduction to the present volume, pp. xxix‑xxx. + +60 "Outlining of the case," the Analysis. προκατασκευή, a combination of προέκθεσις and μερισμός. In Cicero, De Inv. 1.xxii.31‑xxiii.33, partitio. Cf. the figure divisio, 4.xl.52 below. + +61 Martianus Capella, 5.556, makes the same point for the partitio. + +62 A favourite theme of the rhetoricians; cf. also 1.xv.25 and 1.xvi.26 below, Cicero, De Inv. 1.xiii.18‑xiv.19, 1.xxii.31, Quintilian, 3.11.4 ff., 3.5.11, 7.4.8. + +63 Cf. the figure distributio, 4.xxxv.47, and distributio, the Broken Tone of Debate, 3.xiii.23 below. + +64 Cf. the enumeratio (Summing Up) of 2.xxx.47 below. Quintilian, 4.5.24, praises Hortensius for the great pains he took with his Partitions, "although Cicero often lightly mocks him for counting his points on his fingers." + +65 ἔκθεσις. Cf. the expositio (Proposition of an argument) in 2.xx.32, and note on 2.xviii.28 below. + +66 Cf. Cicero, Brutus 60.217 on Curio: "His memory was so altogether wanting that at times when he had announced three points he would add a fourth or miss the third." + +67 See note on 4.vii.10 below. + +68 πίστις, κατασκευὴ κεφαλαίων. + +69 ἀνασκευή. In the Rhet. ad Alex., ch. 7 (1428A), Refutation is considered as one of seven subheads under Proof; see also ch. 13 (1431A). + +70 I follow the practice, perhaps begun by Thomas Wilson, Arte of Rhetorique (first ed. 1553), ed. G. H. Mair, Oxford, 1910, p89, of translating constitutio (or status [= στάσις], the term used by Cicero, except in De Inv., and by most other rhetoricians) as "Issue." The constitutio (= σύστασις, most probably; see S. F. Bonner, Class. Rev. 61 [1947], 84‑6) is the conjoining of two conflicting statements, thus forming the centre of the argument and determining the character of the case; for a study of the meaning of status; and of constitutio see A. O. L. Dieter, Speech Monographs 17, 4 (1950), 345‑69. Our author makes use of the status system only for judicial oratory, the examples being drawn from both criminal and civil causes. Adumbrated in pre-Aristotelian rhetoric (where it was close to Attic procedure), as well as in Aristotle's Rhetoric, it was developed principally by Hermagoras. Stoic and Aristotelian dialectic exerted an influence in its evolution. The terminology and Roman examples show that our author assimilated the Greek theory. His system differs considerably from that of Hermagoras; see Kroehnert, pp21 ff.; Hermann Netzker, Hermagoras, Cicero, Cornificius quae docuerint de "statibus", Kiel diss., 1879, and "Die constitutio legitima des Cornificius," Neue Jahrbücher 133 (1886), 411‑16; Heinrich Weber, Ueber die Quellen der Rhet. ad Her. des Cornificius, Zurich diss., 1886; Thiele, Hermagoras; Walter Jaeneke, De statuum doctrina ab Hermogene tradita, Leipzig, 1904; Claus Peters, De rationibus inter artem rhetoricam quarti et primi saeculi intercedentibus, Kiel diss., 1907, pp10 ff.; Kroll in P.‑W., art. "Rhetorik," coll. 1090‑5. Cicero's system in De Inv. 1.viii.10 ff. differs from that of our author. Cf. Quintilian, 3.6.1 ff. Most critics see our author as a follower of Marcus Antonius in his system of status cf. Quintilian, 3.6.45 ff. (note that legalis, not legitimus is the term used for the "Legal" Issue by the followers of Antonius), and Kroehnert, loc. cit. Modern students of Roman Law for the most part think that from the juristic point of view, as against the rhetorical, the status system was over-intricate and impractical; see note on 2.xiii.19 below. + +71 Hermagoras taught four Types of Issue; see note on Transference, 1.xi.19, below. + +72 See Introduction, pp. xxi ff., esp. p. xxiii. + +73 For the spelling iuridicalis see Stroebel, Tulliana, p20. + +74 στοχασμός. Cf. Cicero, De Inv. 1.viii.11. + +75 See the progymnasma in 2.xviii.28‑xix.30 below. Resenting the award of the arms of Achilles to Ulysses, Ajax goes mad and slaughters a flock of sheep, thinking them his enemies. Cf. Hermogenes, De Stat. 3 (ed. Rabe, pp49 and 54): A man is discovered burying in a lonely place the body of a person recently slain, and is charged with murder; Fortunatianus 1.6 (Halm, p85) and 1.8 (Halm, p87). + +76 στάσις νομική. Cf. Cicero, De Inv. 1.xiii.17. + +77 στάσις κατὰ ῥητὸν καὶ διάνοιαν. Cf. the sententia (Maxim) of 4.xvii.24 below. + +78 ἀντινομία. + +79 ἀμφιβολία. + +80 ὅρος. + +81 μετάληψις. Procedural in nature. Cf. translatio criminis, 1.xiv.24, and the figure translatio, 4.xxxiv.45 below. Hermagoras was the first to enter this among the Types of Issue; see Cicero, De Inv. 1.xi.16, and Quintilian, 3.6.60. + +82 συλλογισμός. + +83 This controversia is of Greek origin; cf. Hermogenes, De Stat. 2 (ed. Rabe, p41), Fortunatianus 1.26 (Halm, pp100 f.) and Cicero, De Inv. 2.li.153. + +84 On the importance of this type of rhetorical discussion for juristic theory see note on 2.xiii.19 below. + +85 Doubtless the law of C. Servilius Glaucia de pecuniis repetundis (111 B.C.). + +86 The law of Cn. Domitius Ahenobarbus de sacerdotiis passed in 104 B.C. and repealed by Sulla in (?) 81 B.C., is here indicated. + +87 When specifically the case came up we do not know; Marx, Proleg., p108, conjectures c. 100 B.C. + +88 Cf. Cicero, De Inv. 2.xl.116; Lucilius 16.552‑3. + +89 At the Comitia; over these the voters passed in single file to the saepta in the Campus Martius to deposit their votes. + +90 Probably in his second tribunate in 100 B.C., L. Appuleius Saturninus proposed his law fixing the fee for grain at five-sixths of an as (for a modius); the lex Sempronia frumentaria of 123 had set the price at almost eight times that amount. It is uncertain whether the bill passed. Caepio was in 99 B.C. charged with treason, but was acquitted. Cf. 2.xii.17 (the supposed defence by Caepio), and for Saturninus 4.xxii.31 and 4.liv.67. This Q. Servilius Caepio was the son of the Q. Servilius Caepio referred to in 1.xiv.24 below. + +91 Literally, what constitutes "impairing the sovereign majesty" of the state. Cf. 2.xii.17 and 4.xxv.35 below. The crimen maiestatis minutae was invented probably in 103 B.C.; the Lex Appuleia de maiestate attempted to define the offence. See Hugh Last, Camb. Anc. History 9.160‑1. Cf. Antonius on the trial of Norbanus (95 B.C.) in Cicero, De Oratore 2.25.107 ff., 2.39.164. + +92 Anglo-American procedure has no specific analogue to the term translatio as here defined, nor indeed was this status suited to Roman juristic procedure. See Theodor Schwalbach, Zeitschr. der Savigny-Stiftung für Rechtsgeschichte, Romanist. Abt., 2 (1881), 209‑32; Moriz Wlassak, Der Ursprung der römischen Einrede (Festschr. Leopold Pfaff, Vienna, 1910, pp12 ff.; and Artur Steinwenter, Sav. Zeitschr. 65 (1947), 69‑120, esp. p81, and pp104‑5. Note also raro venit in iudicium below. + +93 The Romans in the preliminary proceedings before the magistrate, where the issue is defined; the Greeks in the actual trial before the judge. + +94 Despite the alteration, the source of this controversia may originally have been Aristotle, Rhet. 1.13 (1374A): "It often happens that a man may admit . . . theft, but not that the act was sacrilege (on the ground that the thing stolen was not the property of a god)." Cf. Cicero, De Inv. 1.viii.11; Quintilian, 3.6.41 and 5.10.39; Hermogenes, De Stat. 2 (ed. Rabe, p37) and 4 (ed. Rabe, p62); Sopater, in Walz 8.102‑5; also Rabe, Proleg. Syll., pp218, 253, and 336. On peculatus publicus see Mommsen, pp764 ff. + +95 Cf. Victorinus, in Halm, p276. + +96 These counterpleas accepted by the praetor allege new states of fact or of law; although the defendant accepts the intentio in the plaintiff's formula, he urges the praetor to permit the insertion of an exceptio in the formula. See A. H. J. Greenidge, The Legal Procedure of Cicero's Time, Oxford, 1901, pp178‑181, 229‑235; E. Rabel, Sav. Zeitschr. 32 (1911), 413‑23; Leopold Wenger, Institutes of the Roman Law of Civil Procedure, tr. O. H. Fisk, New York, 1940, pp155 ff. Cf. Cicero, De Inv. 1.vii.10 and 2.xix.57‑xx.61. Cicero in De Inv. (2.xix.57) and our author supply the first references to the exceptio in extant literature. See Friedrich von Velsen, Sav. Zeitschr. 21 (1900), 104‑5. + +97 Twelve Tables 5.7a. + +98 Marx (Proleg., p107; see also R. Reitzenstein, Gnomon 5 [1929], 605‑6) affirms, and Mommsen (p643, note 6) denies, the genuineness of this law; it is omitted in Cicero, De Inv. 2.l.148. + +99 Twelve Tables 5.3. + +100 Cf. Twelve Tables 5.4‑5. + +101 Cf. Cicero, De Inv. 2.l.149, and on this (ritualistic) form of punishment Mommsen, pp921‑3; Alfred Pernice, Sav. Zeitschr. 17 (1896), 210 ff.; Max Radin, Journ. Rom. Studies 10 (1920), 119‑30; Rudolf Düll, Atti del Congr. Internaz. di Diritto Rom. (Roma), Pavia, 1935, 2.363‑408. According to Livy, Periochae 68, Malleolus was the first (101 B.C.) to suffer this punishment. + +102 στάσις δικαιολογική. Cf. Cicero, De Inv. 1.xi.15, 2.xxiii.69 ff. + +103 κατ’ ἀντίληψιν. + +104 κατ’ ἀντίθεσιν. + +105 The mime was condemned; see 2.xiii.19 below. This type of controversia is Greek in origin; cf. Hermogenes, De Stat. 11, ed. Rabe, pp88‑9 (but belonging to the subtype of Legal Issue based on Analogy; see 1.xiii.23 above), and Sopater, in Walz 8.383‑4. See also Sulpitius Victor 39, in Halm, p337. + +106 συγγνώμη. + +107 μετάστασις. + +108 ἀντέγκλημα. + +109 ἀντίστασις. + +110 Cf. 2.xvi.23 and 2.xxvii.43 below, and Cicero, De Inv. 1.xi.15. + +111 κάθαρσις. + +112 παραίτησις. + +113 ἐκ προνοίας. Voluntary acts = τὰ ἑκούσια, involuntary = τὰ ἀκούσια. + +114 ἄγνοια. + +115 τύχη, ἀτυχία, ἀτύχημα. + +116 ἄνάγκη, βία. + +117 In 105 B.C., Q. Servilius Caepio, through his failure to coöperate with his colleague Mallius, brought upon the army a disastrous defeat at Arausio at the hands of the Cimbri, Teutones, and their allies. Caepio's proconsular imperium was abrogated, and by the motion of the tribunus plebis, L. Cassius Longinus, he lost senatorial rank (104 B.C.). Cicero, Brutus 35.135, says of Caepio that the fortunes of war were imputed to him as a crime. + +118 Manumitted, the slave was answerable for his crime to the courts, and not subject to domestic punishment. The controversia is doubtless Greek in origin. Cf. Quintilian, 7.4.14. + +119 The controversia is Greek in origin; the like situation is presented in De Inv. 2.xxxi.96. Cf. Quintilian, 7.4.14. + +120 Cf. Cicero, De Inv. 2.xxxiv.104. + +121 The court was obliged to render a verdict strictly on the law, and could not lessen the punishment. See also Quintilian, 5.13.5 and 7.4.17 ff. + +122 Especially that of a magistrate; cf. Mommsen, pp149 f. and note 5, and Wenger, Institutes of the Roman Law of Civil Procedure, p32. + +123 Cf. 1.x.17 above, and 1.xvi.26 below. + +124 P. Sulpicius Rufus was among those proscribed by Sulla in 88 B.C. Pursued by Sulla's horsemen, he took refuge in a villa at Laurentum, where he was betrayed by a slave and murdered. His head was exhibited on the rostra. The slave was set free by Sulla's orders and then hurled down the Tarpeian Rock. Cf. Appian, Bell. Civil. 1.7.60: "[Sulpicius and others] had been voted enemies of Rome, and anyone who came upon them had been authorized to kill them with impunity or to bring them before the consuls [Cornelius Sulla and Quintus Pompeius]." Velleius Paterculus, 2.19, says that Sulpicius and his followers were declared exiles by formal decree (lege lata). It was forbidden to bury Sulpicius' body; see 4.xxii.31 below. If this controversia was not merely a school exercise, and the murderer was actually called to account, that may have been in the year 87, when Sulpicius' party again came into power. See the notes on 4.xiv.20, xxiv.33, xxviii.38, xxxiv.45, lii.65, and also 2.xxviii.45. + +125 Cf. Cicero, De Inv. 2.xxiv.72. According to the historians, after L. Cassius Longinus in the war against the Cimbri and their allies fell (in 107 B.C.) at the hands of the Tigurini in Gaul, C. Popilius Laenas, legate, made a pact: the Roman survivors would, in return for hostages and half of their possessions, leave in safety. The Roman band went under the yoke of the Tigurini.​ No mention is here made of the hostages nor of passing under the yoke, nor does the amount of the baggage agree precisely with that in the historical accounts. The charge of treason was made in 106 by the tribune C. Caelius Caldus; a fragment of the defence appears in 4.xxiv.34 below. Popilius went into exile, but perhaps after a later trial under Saturninus' law of treason of 103 B.C. + +126 Ratio = τὸ συνέχον, firmamentum = τὸ αἴτιον. Cicero misconstrued firmamentum in De Inv. 1.xiv.19; cf. Part. Orat. 29.103, Quintilian, 3.11.19, Volkmann, pp100‑108, Thiele, Hermagoras, pp67‑78, Jaeneke, De statuum doctrina ab Hermogene tradita, p111. + +127 Cf. 1.x.17 and 1.xv.25 above. + +128 Cf. in Aristotle, Rhet. 2.23 (1397AB), the third of the 28 topoi from which to draw enthymemes, the topos from correlative terms: "And if 'well' or 'justly' is true of the person to whom a thing is done, you may argue that it is true of the doer. But here the argument may be fallacious; for, granting that the man deserved what he got, it does not follow that he deserved it from you" (tr. Lane Cooper), and in 2.24 (1401B), the fallacy of omission illustrated by the argument in Theodectes' Orestes. For the argument as used in other Greek tragedies, cf. Tyndareüs in Euripides, Orestes 538‑9: "My daughter, dying, paid her debt to justice, but that she died at his hand was not meet," and Castor, addressing Orestes in Electra 1244: "Your mother now has but justice, but your deed is not just." + +129 κρινόμενον, Hermagorean doctrine. + +130 Cf. Cicero, De Inv. 1.xiv.19. + +131 κατάφασις. + +132 ἀπόφασις. diff --git a/sources/Cicero_Rhetorica_Ad_Herennium.pdf b/sources/Cicero_Rhetorica_Ad_Herennium.pdf new file mode 100644 index 0000000..369daa3 Binary files /dev/null and b/sources/Cicero_Rhetorica_Ad_Herennium.pdf differ diff --git a/sources/Perugia_Fontana_Maggiore_Retorica_e_Aritmetica.jpg b/sources/Perugia_Fontana_Maggiore_Retorica_e_Aritmetica.jpg new file mode 100644 index 0000000..382c3e3 Binary files /dev/null and b/sources/Perugia_Fontana_Maggiore_Retorica_e_Aritmetica.jpg differ diff --git a/sources/banner.png b/sources/banner.png new file mode 100644 index 0000000..6547227 Binary files /dev/null and b/sources/banner.png differ diff --git a/sources/book_1.html b/sources/book_1.html new file mode 100644 index 0000000..bd2f664 --- /dev/null +++ b/sources/book_1.html @@ -0,0 +1,2470 @@ + + + + + + + + + + +LacusCurtius • Ad Herennium — Book I + + + + + + + + + + + + + + + + + + +

+Short URL for this page: +
+ +bit.ly/adHerenniumE1 +

+ + +
+
+ 
+[image ALT: Much of my site will be useless to you if you've got the images turned off!]
+
+ + + + + + + + + + + + + + + + + +
+mail: +
+Bill Thayer + +
+ + 
+[image ALT: Cliccare qui per una pagina di aiuto in Italiano.]
+
+Italiano +
+
+ + 
+[Link to a series of help pages]
+
+Help +
+
+ + [Link to the next level up]
+Up +
+
+ + [Link to my homepage]
+Home +
+
+ + + + + +
+ [image ALT: a blank space] +
+

+This webpage reproduces part of +
+a complete English translation of the +
+ +Rhetorica ad Herennium + +
+published in the +Loeb Classical Library, +
+1954 +

+The text is in the public domain. + +

+This page has been carefully proofread +
+and I believe it to be free of errors. +
+If you find a mistake though, +
+ +please let me know! + +

+ next: +
+ 
+[image ALT: link to next section]
+
+Book II +
+
+
+ + +

+ +Rhetorica ad Herennium + +

+ +

+  p3  +Book I +

+ + +

+ 1 +1 My private affairs keep me so busy +that I can hardly find enough leisure to devote to studies, and the + little that is vouchsafed to me I have usually preferred to spend +on philosophy. Yet your desire, Gaius Herennius, has spurred me to +compose a work on the Theory of Public Speaking, lest you should suppose + that in a matter which concerns you I either lacked the will or +shirked the labour. And I have undertaken this project the more +gladly because I knew that you had good grounds in wishing to learn + rhetoric, for it is true that copiousness and facility in expression +bear abundant fruit, if controlled by proper knowledge and a strict +discipline of the mind. + +

+That is why I have omitted to treat those topics which, for the sake of futile self-assertion, Greek writers​1 + have adopted. For they, from fear of appearing to know too little, have + gone in quest of notions irrelevant to the art, in order that the art +might seem more difficult to understand. I, on the other hand, have + treated those topics which seemed + + + p5 pertinent to the theory of public speaking. I have not been moved by hope of gain​2 + or desire for glory, as the rest have been, in undertaking to write, +but have done so in order that, by my painstaking work, I may +gratify your wish. To avoid prolixity, I shall now begin my +discussion of the subject, as soon as I have given you this one +injunction: Theory without continuous practice in speaking is of little +avail; from this you may understand that the precepts of theory offered +ought to be applied in practice. + +

+ 2 +2 The task of the public speaker is to discuss capably those matters which law and custom have fixed for the uses of citizen­ship, and to secure as far as possible the agreement of his hearers.​3 There are three kinds​4 of causes which the speaker must treat: Epideictic, Deliberative, and Judicial.​5 + The epideictic kind is devoted to the praise or censure of some +particular person. The deliberative consists in the discussion of policy + and embraces persuasion and dissuasion.​6 The judicial is based on legal controversy, and comprises criminal prosecution or civil suit, and defence.7 + +

+Now I shall explain what faculties the speaker should possess, and then show the proper means of treating these causes.8 + +

 p7  +3 The speaker, then, should possess the faculties of Invention, Arrangement, Style, Memory, and Delivery.​9 Invention is the devising of matter, true or plausible, that would make the case convincing.​10 + Arrangement is the ordering and distribution of the matter, making +clear the place to which each thing is to be assigned. Style is the +adaptation of suitable words and sentences to the matter devised. Memory + is the firm retention in the mind of the matter, words, and +arrangement. Delivery is the graceful regulation of voice, countenance, +and gesture. + +

+All these faculties we can acquire by three means: Theory, Imitation, and Practice.​11 By theory is meant + + + p9 a set of rules + that provide a definite method and system of speaking. Imitation +stimulates us to attain, in accordance with a studied method, the +effectiveness of certain models in speaking. Practice is assiduous +exercise and experience in speaking. + +

+Since, then, I have shown what causes the speaker should treat and +what kinds of competence he should possess, it seems that I now +need to indicate how the speech can be adapted to the theory of the +speaker's function. + +

+ 3 +4 Invention is used for the six parts +of a discourse: the Introduction, Statement of Facts, Division, Proof, +Refutation, and Conclusion.​12 The Introduction is the beginning of the discourse, and by it the hearer's mind is prepared​13 for attention. The Narration or Statement of Facts sets forth the events that have occurred or might have occurred.​14 + By means of the Division we make clear what matters are agreed upon and + what are contested, and announce what points we intend to take up. +Proof is the presentation of our arguments, together with their +corroboration.​15 Refutation is the destruction + + + p11 of our adversaries' arguments.​16 The Conclusion is the end of the discourse, formed in accordance with the principles of the art. + +

+Along with the speaker's functions, in order to make the subject easier +to understand, I have been led also to discuss the parts of a +discourse, and to adapt these to the theory of Invention. It seems, +then, that I must at this juncture first discuss the Introduction.17 + +

+5 Given the cause, in order to be able +to make a more appropriate Introduction, we must consider what kind of +cause it is. The kinds of causes are four: honourable, discreditable, +doubtful, and petty.​18 + A cause is regarded as of the honourable kind when we either +defend what seems to deserve defence by all men, or attack what all men +seem in duty bound of the attack; for example, when we defend a hero, or + prosecute a parricide. A cause is understood to be of the +discreditable kind when something honourable is under attack or when +something discreditable is being defended. A cause is of the +doubtful kind when it is partly honourable and partly discreditable. +A cause is of the petty kind when the matter brought up is +considered unimportant. + +

+ 4 +6 In view of these considerations, it +will be in point to apply the theory of Introductions to the kind of +cause. There are two kinds of Introduction: the Direct Opening, in Greek + called the Proimion,19 + + + p13 and the Subtle Approach, called the Ephodos.​20 + The Direct Opening straightway prepares the hearer to attend to our +speech. Its purpose is to enable us to have hearers who are attentive, +receptive, and well-disposed.​21 + If our cause is of the doubtful kind, we shall build the Direct Opening + upon goodwill, so that the discreditable part of the cause cannot be +prejudicial to us. If our cause is of the petty kind, we shall make our +hearers attentive. If our cause is of the discreditable kind, unless we +have hit upon a means of capturing goodwill by attacking our +adversaries, we must use the Subtle Approach, which I shall discuss + later.​22 And finally, if our cause is of the honourable kind, it will be correct either to use the Direct Opening or not to use it.​23 + If we wish to use it, we must show why the cause is honourable, or else + briefly discuss what matters we are going to discuss. But if we do not +wish to use the Direct Opening, we must begin our speech with a law, a +written document, or some argument supporting our cause. + +

+7 Since, then, we wish to have our hearer receptive, well-disposed, + and attentive, I shall disclose how each state can be brought +about. We can have receptive hearers if we briefly summarise the cause +and make + + + p15 them +attentive; for the receptive hearer is one who is willing to listen +attentively. We shall have attentive hearers by promising to discuss +important, new, and unusual matters, or such as appertain to the +commonwealth, or to the hearers themselves, or to the worship of the +immortal gods; by bidding them listen attentively; and by enumerating +the points we are going to discuss. 8 We can by four methods make our hearers well-disposed: by discussing our own person, the person of our adversaries, that of our hearers, and the facts themselves.24 + +

+ 5 +From the discussion of our own person we shall secure goodwill by +praising our services without arrogance and revealing also our past +conduct toward the republic, or toward our parents, friends, or the +audience, and by making some reference to . . . provided that +all such references are pertinent to the matter in question; likewise by + setting forth our disabilities, need, loneliness, and misfortune,​25 and pleading for our hearers' aid, and at the same time showing that we have been unwilling to place our hope in anyone else. + +

+From the discussion of the person of our adversaries we shall secure +goodwill by bringing them into hatred, unpopularity, or contempt.​26 We shall force hatred upon them by addu­cing some base, high-handed, treacherous, cruel, impudent, malicious, or + + + p17 shameful act + of theirs. We shall make our adversaries unpopular by setting forth +their violent behaviour, their dominance, factiousness, wealth, lack of self-restraint, + high birth, clients, hospitality, club allegiance, or marriage +alliances, and by making clear that they rely more upon these supports +than upon the truth. We shall bring our adversaries into contempt by +presenting their idleness, cowardice, sloth, and luxurious habits. + +

+From the discussion of the person of our hearers goodwill is secured if +we set forth the courage, wisdom, humanity, and nobility of past +judgements they have rendered, and if we reveal what esteem they enjoy +and with what interest their decision is awaited. + +

+From the discussion of the facts themselves we shall render the hearer well-disposed by extolling our own cause with praise and by contemptuously disparaging that of our adversaries. + +

+ 6 +9 Now I must explain the Subtle Approach.​27 + There are three occasions on which we cannot use the Direct Opening, +and these we must consider carefully: (1) when our cause is +discreditable, that is, when the subject itself alienates the hearer +from us; (2) when the hearer has apparently been won over by the +previous speakers of the opposition; (3) or when the hearer has +become wearied by listening to the previous speakers. + +

+If the cause has a discreditable character,​28 + we can make our Introduction with the following points: that the agent, + not the action, ought to be considered; that we ourselves are +displeased with the acts which our opponents say have been committed, +and that + + + p19 these are +unworthy, yes, heinous. Next, when we have for a time enlarged upon this + idea, we shall show that nothing of the kind has been committed by us. +Or we shall set forth the judgement rendered by others in an analogous +case, whether that cause be of equal, or less, or greater importance; +then we shall gradually approach our own cause and establish the +analogy. The same result is achieved if we deny an intention to discuss +our opponents or some extraneous matter and yet, by subtly inserting the + words,​29 do so. + +

+10 If the hearers have been convinced,​30 + if our opponent's speech has gained their credence — and this will not +be hard for us to know, since we are well aware of the means by which +belief is ordinarily effected — if, then, we think belief has been +effected, we shall make our Subtle Approach to the cause by the +following means: the point which our adversaries have regarded as their +strongest support we shall promise to discuss first; we shall begin with + a statement made by the opponent, and particularly with that which he +has made last; and we shall use Indecision,​31 along with an exclamation of astonishment: "What had I best say?" or "To what point shall I first reply?" + +

+If the hearers have been fatigued by listening, we shall open with something that may provoke laughter​32 + — a fable, a plausible fiction, a caricature, an ironical +inversion on the meaning of a word, an ambiguity, innuendo, banter, a +naïvety, an exaggeration, + + + p21 a recapitulation,​33 a pun, an unexpected turn,​34 + a comparison, a novel tale, a historical anecdote, +a verse, or a challenge or a smile of approbation directed at some +one. Or we shall promise to speak otherwise than as we have prepared, +and not to talk as others usually do; we shall briefly explain what the +other speakers do and what we intend to do. + +

+ 7 +11 Between the Subtle Approach and the + Direct Opening there is the following difference. The Direct Opening +should be such that by the straightforward methods I have +prescribed we immediately make the hearer well-disposed + or attentive or receptive; whereas the Subtle Approach should be such +that we effect all these results covertly, through dissimulation,​35 and so can arrive at the same vantage-point + in the task of speaking. But though this three-fold advantage — that +the hearers constantly show themselves attentive, receptive, and well-disposed to us — is to be secured throughout the discourse, it must in the main be won by the Introduction to the cause. + +

+Now, for fear that we may at some time use a faulty Introduction, +I shall show what faults must be avoided. In the Introduction of a +cause we must make sure that our style is temperate and that the words +are in current use,​36 so that the discourse seems unprepared. An Introduction is faulty if it can be applied as well to a number of causes;​37 that is called a banal Introduction. Again, an Introduction which the adversary can use no less well is faulty, and that + + + p23 is called a +common Introduction. That Introduction, again, is faulty which the +opponent can turn to his own use against you. And again that is faulty +which has been composed in too laboured a style, or is too long; and +that which does not appear to have grown out of the cause itself in such + a way as to have an intimate connection with the Statement of Facts; +and, finally, that which fails to make the hearer well-disposed or receptive or attentive. + +

+ 8 +Concerning the Introduction I have said enough; next let me turn to the Narration or Statement of Facts. 12 There are three types of Statement of Facts.​38 + It is one type when we set forth the facts and turn every detail to our + advantage so as to win the victory, and this kind appertains to the +causes on which a decision is to be rendered.​39 There is a second type which often enters into a speech as a means of winning belief or incriminating our adversary​40 or effecting a transition or setting the stage for something.​41 The third type​42 is not used in a cause actually pleaded in court, yet affords us convenient practice​43 for handling the first two types more advantageously in actual cases. 13 Of such narratives there are two kinds: one based on the facts, the other on the persons.44 + +

+The kind of narrative based on the exposition of the facts presents +three forms: legendary, historical, and realistic. The legendary tale +comprises events neither true nor probable, like those transmitted by + + + p25 tragedies.​45 The historical narrative is an account of exploits actually performed, but removed in time from the recollection of our age.​46 Realistic narrative recounts imaginary events, which yet could have occurred, like the plots of comedies.47 + +

+A narrative based on the persons should present a lively style and diverse traits of character,​48 + such as austerity and gentleness, hope and fear, distrust and desire, +hypocrisy and compassion, and the vicissitudes of life, such as reversal + of fortune,​49 unexpected disaster, sudden joy, and a happy outcome. But it is in practice exercises that these types will be worked out.​50 How we should handle that type of Statement of Facts which belongs in actual causes I am about to explain. + +

+ 9 +14 A Statement of Facts should have three qualities: brevity, clarity, and plausibility.​51 Since we know that these qualities are essential, we must learn how to achieve them. + +

+We shall be able to make the Statement of Facts brief if we begin it at +the place at which we need to begin; if we do not try to recount from +the remotest beginning; if our Statement of Facts is summary and + + + p27 not detailed;​52 + if we carry it forward, not to the furthermost point, but to the point +to which we need to go; if we use no digressions and do not wander from +the account we have undertaken to set forth; and if we present the +outcome in such a way that the facts that have preceded can also be +known, although we have not spoken of them. For example, if +I should say that I have returned from the province, it would +also be understood that I had gone to the province.​53 + And in general it is better to pass by not only that which weakens the +cause but also that which neither weakens nor helps it. Furthermore, we +must guard against repeating immediately what we have said already, as +in the following: "Simo came from Athens to Megara in the evening; when +he came to Megara, he laid a trap for the maiden: after laying the trap +he ravished her then and there."54 + +

+15 Our Statement of Facts will be clear​55 + if we set forth the facts in the precise order in which they occurred, +observing their actual or probable sequence and chronology. Here we must + see that our language is not confused,​56 + involved, or unfamiliar, that we do not shift to another subject, that +we do not trace the affair back to its remotest beginning, nor carry it +too far forward, and that we do not omit anything pertinent. And our +Statement of Facts will be clear if we follow the precepts on brevity +that I have laid down,​57 for the shorter the Statement of Facts, the clearer will it be and the easier to follow. + +

 p29  +16 Our Statement of Facts will have plausibility​58 + if it answer the requirements of the usual, the expected, and the +natural; if account is strictly kept of the length of time, the standing + of the persons involved, the motives in the planning, and the +advantages offered by the scene of action, so as to obviate the argument + in refutation that the time was too short, or that there was no motive, + or that the place was unsuitable, or that the persons themselves could +not have acted or been treated so. If the matter is true, all these +precautions must none the less be observed in the Statement of Facts, +for often the truth cannot gain credence otherwise. And if the matter is + fictitious, these measures will have to be observed all the more +scrupulously. Fabrication must be circumspect in those matters in which +official documents or some person's unimpeachable guaranty will prove to + have played a rôle. + +

+In what I have thus far said I believe that I agree with +the other writers on the art of rhetoric except for the innovations +I have devised on Introductions by the Subtle Approach. +I alone,​59 + in contrast with the rest, have distinguished three occasions for the +Subtle Approach, so as to provide us with a thoroughly sure method and a + lucid theory of Introductions. 10 Now + as to the rest, since I must discuss the finding of arguments, a +matter that makes unique demands upon the art of the speaker, +I shall endeavour to exhibit an industry in research such as the +importance of the subject demands — as soon as I have prefixed +a few remarks on the Division of the cause. + +

 p31  +17 The Division​60 + of the cause falls into two parts. When The Statement of Facts has been + brought to an end, we ought first to make clear what we and our +opponents agree upon, if there is agreement on the points useful to us,​61 and what remains contested, as follows: "Orestes killed his mother;​62 + on that I agree with my opponents. But did he have the right to +commit the deed, and was he justified in committing it? That is in +dispute." Likewise in reply: "They admit that Agamemnon was killed by +Clytemnestra; yet despite this they say that I ought not to have +avenged my father." + +

+Then, when we have done this, we should use the Distribution.​63 The Distribution has two parts: the Enumeration​64 and the Exposition.​65 + We shall be using the Enumeration when we tell by number how many +points we are going to discuss. The number ought not to exceed three; +for otherwise, besides the danger that we may at some time include in +the speech more or fewer points than we enumerated,​66 it instils in the hearer the suspicion of premeditation and artifice,​67 + and this robs the speech of conviction. The Exposition consists in +setting forth, briefly and completely, the points we intend to discuss. + +

 p33  +18 Now let me pass to Proof​68 and Refutation.​69 + The entire hope of victory and entire method of persuasion rest on +proof and refutation, for when we have submitted our arguments and +destroyed those of the opposition, we have, of course, completely +fulfilled the speaker's function. 11 We shall, then, be enabled to do both if we know the Type of Issue​70 which the cause presents. Others make these Types of Issue four.​71 My teacher​72 + thought that there were three, and intending thereby to subtract any of + the types they had discovered, but to demonstrate that one type which +they should have taught as single and uncompounded they had divided into + with distinct and separate types. The Issue is determined by the +joining of the primary plea of the defence with the charge of the +plaintiff. The Types of Issue + + + p35 are then, as I have said above, three: Conjectural, Legal, and Juridical.73 + +

+The Issue is Conjectural​74 + when the controversy concerns a question of fact, as follows: In the +forest Ajax, after realizing what in his madness he had done, fell on +his sword. Ulysses appears, perceives that Ajax is dead, draws the +bloody weapon from corpse. Teucer appears, sees his brother dead, and +his brother's enemy with bloody sword in hand. He accuses Ulysses of a +capital crime. Here the truth is sought by conjecture. The controversy +will concern the fact.​75 And that is why the Issue in the cause is called Conjectural. + +

+19 The Issue is Legal​76 + when some controversy turns upon the letter of a text or arises from an + implication therein. A Legal Issue is divided into six subtypes: +Letter and Spirit,​77 Conflicting Laws,​78 Ambiguity,​79 Definition,​80 Transference,​81 and Reasoning from Analogy.82 + +

+A controversy from Letter and Spirit arises when the framer's +intention appears to be at variance with the letter of the text, as +follows: Suppose a law which decrees that whoever have abandoned their +ship in a storm shall lose all rights of title, and that their ship, if +saved, and cargo as well, belong to those who have remained on board. +Terrified by the storm's violence, all deserted the ship and took to the + + + p37 boat — all +except one sick man who, on account of his illness, could not leave the +ship and escape. By sheer chance the ship was driven safely to harbour. +The invalid has come into possession of the ship, and the former owner +claims it.​83 Here is a Legal Issue based on Letter and Spirit.84 + +

+20 Controversy results from +Conflicting Laws when one law orders or permits a deed while another +forbids it, as follows: A law forbids one who has been convicted of + extortion to speak before the Assembly.​85 Another law commands the augur to designate in the Assembly the candidate for the place of a deceased augur.​86 + A certain augur convicted of extortion has designated the +candidate for the place of a deceased augur. A penalty is demanded +of him.​87 Here is a Legal Issue established from Conflicting Laws. + +

+ 12 +A controversy is created by Ambiguity when a text presents two or +more meanings, as follows: The father of a family, when making his son +his heir, in his will bequeathed silver vessels to his wife: "Let my +heir give my wife thirty pounds' weight of silver vessels, 'such as +shall be selected'." After his death the widow asks for some precious +vessels of magnificent relief-work. The son contends that he owes her thirty pounds' weight of vessels "such as shall be selected" by him.​88 Here is a Legal Issue established from Ambiguity. + +

 p39  +21 A cause rests on Definition +when the name by which an act should be called is in controversy. The +following is an example: When Lucius Saturninus was about to introduce +the grain law concerning the five-sixths as, + Quintus Caepio, who was city quaestor during that time, explained to +the Senate that the treasury could not endure so great a largess. The +Senate decreed that if Saturninus should propose that law before the +people he would appear to be doing so against the common weal. +Saturninus proceeded with his motion. His colleagues interposed a veto; +nevertheless he brought the lot-urn down for the vote. Caepio, when he +sees Saturninus presenting his motion against the public welfare despite + his colleagues' veto, attacks him with the assistance of some +Conservatives, destroys the bridges,​89 throws down the ballot boxes, and blocks further action on the motion. Caepio is brought to trial for treason.​90 + The Issue is Legal, and is established from Definition, for we are +defining the actual term when we investigate what constitute treason.91 + +

+22 A controversy is based on +Transference when the defendant maintains that there must be a +postponement of time or a change of plaintiff or judges.​92 This + + + p41 subtype of Issue the Greeks use in the proceedings before judges, we generally before the magistrate's tribunal.​93 + We do, however, make some use of it in judicial proceedings. For +example, if some one is accused of embezzlement, alleged to have removed + silver vessels belonging to the state from a private place, he can say, + when he has defined theft and embezzlement, that in his case the action + ought to be one for theft and not embezzlement.​94 This subtype of Legal Issue rarely​95 + presents itself in judicial proceedings for the following reasons: in a + private action there are counterpleas accepted by the praetor,​96 + and the plaintiff's fails unless he has had a cause of action; in +public investigations the laws provide that, if it suits the defendant, a + decision is first passed on whether the plaintiff is, or is not, +permitted to make the charge. + +

+ 13 +23 The controversy is based on Analogy + when a matter that arises for adjudication lacks a specifically +applicable law, but an analogy is sought from other existing laws on the + basis of a certain similarity to the matter in question. For example, a + law reads: "If a man is raving mad, authority over his person and +property shall belong to his agnates, or to the members of his gens."​97 Another law reads: "He who has been convicted of murdering his parent shall + + + p43 be completely wrapped and bound in a leather sack and thrown into a running stream."​98 Another law: "As the head of a family has directed regarding his household or his property, so shall the law hold good."​99 + Another law: "If the head of a family dies intestate, his household and + property shall belong to his agnates, or to the members of his gens."​100 + Malleolus was convicted of matricide. Immediately after he had received + sentence, his head was wrapped in a bag of wolf's hide, the "wooden +shoes"​101 + were put upon his feet, and he was led away to prison. His defenders +bring tablets into the jail, write his will in his presence, witnesses +duly attending. The penalty is exacted of him. His testamentary heirs +enter upon their inheritance. Malleolus' younger brother, who had been +one of the accusers in his trial, claims his inheritance by the law of +agnation. Here no one specific law is adduced, and yet many laws are +adduced, which for the basis for a reasoning by analogy to prove that +Malleolus had or had not the right to make a will. It is a Legal Issue +established from Analogy. + +

+I have explained the types of Legal Issue. Now let me discuss the Juridical Issue. + +

+ 14 +24 An Issue is Juridical​102 + when there is agreement on the act, but the right or wrong of the act +is in question. Of this Issue there are two subtypes, one called +Absolute,​103 the other Assumptive.104 + +

 p45  +It is an Absolute Issue when we contend that the act in and of itself, +without our drawing on any extraneous considerations, was right. For +example, a certain mime abused the poet Accius by name on the stage. +Accius sues him on the ground of injuries. The player makes no defence +except to maintain that it was permissible to name a person under whose +name dramatic works were given to be performed on the stage.105 + +

+The Issue is Assumptive when the defence, in itself insufficient, is +established by drawing on extraneous matter. The Assumptive subtypes are + four: Acknowledgement of the Charge,​106 Rejection of the Responsibility,​107 Shifting of the Question of Guilt,​108 Comparison with the Alternative Course.109 + +

+The Acknowledgement​110 is the defendant's plea for pardon. The Acknowledgement includes the Exculpation​111 and the Plea for Mercy.​112 The Exculpation is the defendant's denial that he acted with intent.​113 Under Plea of Exculpation are three subheads: Ignorance,​114 Accident,​115 and Necessity;​116 accident, as in the case of Caepio​117 + before the tribunes of the plebs on the loss of his army; ignorance, as + in the case of the man who, before opening the tablets of the will by +the terms of which his brother's slave had been + + + p47 manumitted, exacted punishment of the slave for having slain his master;​118 necessity, as in the case of the soldier who overstayed his leave because the floods had blocked the roads.​119 It is a Plea for Mercy when the defendant confesses the crime and premeditation, yet begs for compassion.​120 In the courts this is rarely practicable,​121 + except when we speak in defence of one whose good deeds are numerous +and notable; for example, interposing as a commonplace in amplification: + "Even if he had done this, it would still be appropriate to pardon him +in view of his past services; but he does not at all beg for pardon." +Such a cause, then, is not admissible in the courts, but is admissible +before the Senate, or a general, or a council.122 + +

+ 15 +25 A cause rests on the Shifting +of the Question of Guilt when we do not deny our act but plead that we +were driven to it by the crimes of others, as in the case of Orestes +when he defended himself by diverting the issue of guilt from himself to + his mother.123 + +

+A cause rests on the Rejection of the Responsibility when we +repudiate, not the act charged, but the responsibility, and either +transfer it to another person or attribute it to some circumstance. An +example of the transference of responsibility to another person: if an +accusation should be brought against the confessed slayer of Publius +Sulpicius, and he should defend his act by invoking an order of the +consuls, declaring that they not only commanded the + + + p49 act but also gave reason why it was lawful.​124 + An example of attribution to a circumstance: if a person should be +forbidden by a plebiscite to do what a will has directed him to do. + +

+A cause rests on Comparison with the Alternative Course when we +declare that it was necessary for us to do one or the other of the two +things, and that the one we did was the better. This cause is of the +following sort: Gaius Popilius, hemmed in by the Gauls, and quite unable + to escape, entered into a parley with the enemy's chiefs. He came away +with consent to lead his army out on condition that he abandon his +baggage. He considered it better to lose his baggage than his army. He +led out his army and left the baggage behind. He is charged with +treason.125 + +

+ 16 +I believe that I have made clear what the Types of Issue are +and what are their subdivisions. Now I must illustrate the proper +ways and means of treating these, first indicating what both sides in a +cause ought to fix upon as the point to which the complete economy of +the entire speech should be directed. + +

 p51  +26 Immediately upon finding the Type of Issue, then, we must seek the Justifying Motive.​126 + It is this which determines the action and comprises the defence. Thus +Orestes (for the sake of clarity, to adhere to this particular action) +confesses that he slew his mother. Unless he had advanced a Justifying +Motive for the act, he will have ruined his defence. He therefore +advances one; were it not interposed, there would not even be an action. + "For she," says he, "had slain my father."​127 + Thus, as I have shown, the Justifying Motive is what comprises the + defence; without it not even the slightest doubt could exist which +would delay his condemnation. + +

+Upon finding the Motive advanced in Justification we must seek the Central Point​128 + of the Accusation, that is, that which comprises the accusation and is +presented in opposition to the Justifying Motive of the defence which +I have discussed above. This will be established as follows: When +Orestes has used the Justifying Motive: "I had the right to kill my + mother, for she had slain my father," the prosecutor will use his +Central Point: "Yes, but not by your hand ought she to have been killed +or punished without a trial."129 + +

+From the Justifying Motive of the defence and the Central Point of the +Accusation must arise the Question for Decision, which we call the Point + to + + + p53 Adjudicate and the Greeks the krinomenon. + That will be established from the meeting of the prosecutor's Central +Point and the defendant's Justifying Motive, as follows: When Orestes +says that he killed his mother to avenge his father, was it right for +Clytemnestra to be slain by her son without a trial? This, then, is the +proper method of finding the Point to Adjudicate. Once the Point to +Adjudicate is found, the complete economy of the entire speech ought to +be directed to it. + +

+ 17 +27 The Points to Adjudicate will be found in this way in all Types of Issue and their subdivisions, except the conjectural.​130 + Here the Justifying Motive for the act is not in question, for the act +is denied, near is the Central Point of the Accusation sought, for no +Justifying Motive has been advanced. Therefore the Point to Adjudicate +is established from the Accusation​131 and the Denial,​132 + as follows: Accusation: "You killed Ajax." Denial: "I did not." +The Point to Adjudicate: Did he kill him? The complete economy of both +speeches must, as I have said above, be directed to this Point to +Adjudicate. If there are several Types of Issue or their subdivisions in + one cause, there will also be several Points to Adjudicate, but all +these, too, will be determined by a like method. + +

+I have taken great pains to discuss briefly and clearly the matters + that have had to be treated up to this point. Now, since this Book has +grown to sufficient length, it will be more convenient in turn to +expound other matters in a second Book, so that the great amount of +material may not tire you and slacken your attention. If I dispatch + these matters too slowly for your eagerness, you will have to + + + p55 attribute +that to the magnitude of the subject and also to the demands of my other + occupations. Yet I shall make speed, and compensate by diligence +for the time taken up by my affairs, to the end that, by this gift, in +token of your courtesy towards me and my own interest in you, I may + grant your desire in most bounti­ful measure. + + + +


+

+The Loeb Editor's Notes: +

+ +

+ 1 + +The beginning of Book 4 + +further sets forth the author's attitude to the Greek writers on rhetoric (who these are specifically is uncertain); cf. also + +3.xxiii.38. For his attitude to philosophical studies see + +the end of Book 4. + + +

+ + +

+ 2 +Apparently text-books on public speaking sold well; see Theodore Birt, Rhein. Mus. 72 (1917/18), 311‑16. + + +

+ + +

+ 3 +The definition is that of Hermagoras, to whom the function (ἔργον) of the perfect orator is τὸ τεθὲν πολιτικὸν ζήτημα διατίθεσθαι κατὰ τὸ ἐνδεχόμενον πειστικῶς. See Sextus Empiricus, Adv. Rhet. 62, ed. Fabricius, 2.150. Cf. Cicero, De Inv. 1.v.6. + + +

+ + +

+ 4 +γένη. + + +

+ + +

+ 5 +ἐπιδεικτικόν, συμβουλευτικόν, δικανικόν. The scheme is Aristotelian (Rhet. 1.3, 1358B) but in essence older. The + + +author's emphasis in the first two books, on the judicial kind, is characteristically Hellenistic (e.g., Hermagorean). + The better tradition indicates that originally rhetoric was concerned +with the judicial kind, and was later extended to the other two fields. +For a study of the three genera see D. A. G. Hinks, Class. Quarterly 30 (1936), 170‑6. Cf. Cicero, De Inv. 1.v.7. + + +

+ + +

+ 6 +προτροπή and ἀποτροπή. + + +

+ + +

+ 7 +κατηγορία, δίκη, ἀπολογία. + + +

+ + +

+ 8 + +2.ii.2 + +below. + + +

+ + +

+ 9 +εὕρεσις, τάξις or οἰκονομία, λέξις or ἑρημνεία or φράσις, μνήμη, ὑπόκρισις. The pre-Aristotelian rhetoric, represented by the Rhet. ad Alexandrum, treated the first three (without classifying them); Aristotle would add Delivery (Rhet. 3.1, 1403B), and his pupil Theophrastus did so (see + +note on 3.xi.19 + +below). When precisely in the Hellenistic period Memory was added as a +fifth division by the Rhodian or the Pergamene school, we do not know. +These faculties (res; see also 1.ii.3) are referred to in + +2.i.1 + +below (cf. 1.iii.4) as the speaker's functions (officiaἔργα τοῦ ῥήτορος). Quintilian, + +3.3.11 ff., considers them as departments or constituent elements of the art (partes rhetorices) rather than as opera (= officia); so also here at + +3.i.1, + +3.viii.15, + +3.xvi.28, and + +Cicero, De Inv. 1.vii.9. ἔργον is an Aristotelian concept (cf. the definition of rhetoric in Rhet. 1.1‑2, 1355B), + and Aristotle was the first to classify the (major) functions. Our +author here gives the usual order of the divisions; so also + +Cicero, De Oratore 1.31.142. + +Diogenes Laertius, 7.43, presents the Stoic scheme: Invention, Style (φράσις), Arrangement, and Delivery. A goodly number of rhetorical systems were actually based on these ἔργα (e.g., in most part Cicero's and Quintilian's); others were based on the divisions of the discourse (μόρια λόγου). See K. Barwick, Hermes 57 (1922), 1 ff.; Friedrich Solmsen, Amer. Journ. Philol. 62 (1941), 35‑50, 169‑90. Our author conflates the two schemes he has inherited; + + +see especially 1.ii.3‑iii.4 , + +2.i.1‑ii.2, and the Introduction to the present volume, + +p. xviii. + + +

+ + +

+ 10 +The concept goes back at least as far as Plato (e.g.Phaedrus 236A); see Aristotle, Rhet. 1.2 (1355B), on finding artistic proofs. + + +

+ + +

+ 11 +τέχνη (also παιδεία, ἐπιστήμη, μάθησις, scientia, doctrina), μίμησις, γυμνασία (also ἄσκησις, μελέτη, ἐμπειρία, συνήθεία, declamatio). The usual triad, Nature (φύσις, natura, ingenium, facultas), Theory and Practice, can be traced back to Protagoras, Plato (Phaedrus 269D), and Isocrates (e.g.Antid. 187; Adv. Soph. 14‑18, where Imitation is also included). Cf. also Aristotle in + +Diogenes Laertius 5.18; Cicero, + +De Inv. 1.i.2, + +De Oratore 1.4.14; Dionysius Halic. in Syrianus, Scholia Hermog., ed. Rabe, 1.4‑5; + +Tacitus, Dialog. de Orator., ch. 33; + +Plutarch, De liberis educ. 4 (2A); and see Paul Shorey, Trans. Am. Philol. Assn. 40 (1909), 185‑201. Imitation is presumed to have been emphasized in the Pergamene school of rhetors under Stoic influence. Quintilian, + +3.5.1, tells us that it was classed by some writers as a fourth element, which he yet subordinates to Theory. On Imitation cf. Antonius in + +Cicero, De Oratore 2.21.89 ff.; Dionysius Halic., De Imitat. (Opuscula 2.197‑217, ed. Usener-Radermacher); + +Quintilian, 10.1.20 ff.; Eduard Stemplinger, Das Plagiat in der Griech. Lit., Leipzig and Berlin, 1912, pp81 ff.; Kroll, "Rhetorik", coll. 1113 ff.; Paulus Otto, Quaestiones selectae ad libellum qui est περὶ ὕψους spectantes, diss. Kiel, 1906, + + + pp6‑19; G. C. Fiske, Lucilius and Horace, Madison, 1920, ch. 1; J. F. D'Alton, Roman Literary Theory and Criticism, + London, New York, and Toronto, 1931, pp426 ff.; Richard +McKeon, "Literary Criticism and the Concept of Imitation in Antiquity," Mod. Philol. + 34, 1 (1936), 1‑35, and esp. pp26 ff.; +D. L. Clark, "Imitation: Theory and Practice in Roman +Rhetoric," Quart. Journ. Speech 37, 1 (1951), 11‑22. "Exercise" refers to the progymnasmata, of which our treatise and Cicero's De Inv. show the first traces in Latin rhetoric, and to the "suasoriae" (deliberationes) and "controversiae" (causae) in which the treatise abounds. See also + +4.xliv.58 + +(Refining). The divorce between praeexercitamenta and exercitationes belongs to the Augustan period. + + +

+ + +

+ 12 +The author's treatment of the parts of a discourse differs from that of Aristotle, who, in Rhet. 3.13 (1414A) ff., + discusses them — Proem, Statement of Facts, Proof, and Conclusion — +with all three kinds of oratory in view, not only the judicial, under +Arrangement. Note that Invention is applied + + + concretely to the parts of the discourse; in + +1.xi.18 ff. + +below the Issues are subjoined to Proof and Refutation. Cf. Cicero, De Inv. 1.xiv.19. The Stoic scheme included Proem, Statement of Facts, Replies to Opponents, and Conclusion + +(Diogenes Laertius 7.43). + + +

+ + +

+ 13 +πρασκευάζεται. The concept is Isocratean. Cf. Rhet. ad Alex., ch. 29 (1436A); Dionysius Halic., De Lys. 17; Anon. Seg. 5 and 9 (Spengel-Hammer 1[2].353‑4); Rufus 4 (Spengel-Hammer 1[2].399); Anon., in Rabe, Proleg. Sylloge, p62. + + +

+ + +

+ 14 +This definition is translated directly from a Greek original; see Hermogenes, Progymn. 2 (ed. Rabe, p4), Syrianus, Scholia Hermog. (ed. Rabe 2.170), Theon 4 (Spengel 2.78). Cf. Cicero, De Inv. 1.xix.27. + + +

+ + +

+ 15 +Cf. Cicero, De Inv. 1.xxiv.34. + + +

+ + +

+ 16 +Cf. Cicero, De Inv. 1.xlii.78 (reprehensio). + + +

+ + +

+ 17 +πρόλογος, probably. + + +

+ + +

+ 18 +ἔνδοξον, παράδοξον, ἀμφίδοξον, ἄδοξον, the σχήματα ὑποθέσεων, later sometimes called figurae materiarum or controversiarum. The classification is on a moral basis. These genera causarum are not to be confused with the three genera causarum treated in + +1.ii.2 + +above. Most rhetoricians (e.g.Cicero, De Inv. 1.xv.20) treated also a fifth kind, obscurum (δυσπαρακολούθητον), and some included six kinds (see + +Quintilian, 4.1.40). The division into four σχήματα is Hermagorean (cf. Augustine, De Rhet. 1.17 ff., in Halm, pp147 ff.), and + + +here our author conflates Hermagorean doctrine with the pre-Aristotelian doctrine of the Proem; see Georg Thiele, Hermagoras, Strassburg, 1893, pp113‑121. + + +

+ + +

+ 19 +προοίμιον, "Prelude"; see Aristotle, Rhet. 3.14 (1414B), + +Quintilian, 4.1.2 ff., Anon. Seg. 4, in Spengel-Hammer 1(2).352‑3. Cf. Cicero, De Inv. 1.xv.20. + + +

+ + +

+ 20 +ἔφοδος. The term is used in Oxyr. Pap. 3.27, in a rhetorical treatise of perhaps the beginning of the fourth century B.C. In Isaeus 3, Dionysius Halic. comments on Isaeus' use of ἔφοδοι. Cf. also Anon., in Rabe, Proleg. Syll., p206, and Anon., Proleg. Invent., in Walz 7(1).54. + + +

+ + +

+ 21 +The hearer is to be rendered προσεκτικός, εὐμαθής, εὔνους. Cf. Cicero, De Inv. 1.xvi.22‑3. The doctrine is pre-Aristotelian; see, e.g.Rhet. ad Alex., ch. 29 (1436A), and Epist. Socrat. 30.4 on Isocrates. Aristotle, Rhet. 3.14 (1415A), includes Receptiveness under Attention. Cicero, + +Part. Orat. 8.28, gives three aims for the Direct Opening; ut amice, ut + + +intellegenter, ut attente audiamur. For the importance of Attention in present-day rhetoric, cf. J. A. Winans, Public Speaking, + New York, 1917, p194: "Persuasion is the process of indu­cing +others to give fair, favourable, or undivided attention to +propositions." + + +

+ + +

+ 22 + +1.vi.9 ff. + + +

+ + +

+ 23 +Cf. Rhet. ad Alex., ch. 29 (1437B): + "If there is no prejudice against ourselves or our speech or our +subject, we shall set forth our Proposition immediately at the +beginning, appealing for attention and a benevolent hearing afterwards." + + +

+ + +

+ 24 +So Aristotle, Rhet. 3.14 (1415A), and Anon. Seg. 7 (Spengel-Hammer 1[2].353‑4): ἐκ τοῦ αὐτοῦ or τοῦ λέγοντος, ἐκ τοῦ ἐναντίου or ἀντιδίκου, ἐκ τῶν ἀκροατῶν or δικαζόντων, ἐκ τῶν πραγμάτων. Cf. also + +Cicero, De Inv. 1.xvi.22. Here as throughout the first two books the author is dealing with judicial oratory. + + +

+ + +

+ 25 +πάθος, here assigned to the Introduction, also has a place in the Conclusion; see + +2.xxx.48‑xxxi.50 + +below. Thus the + + +author accords with the early Greek rhetoric based on +the divisions of the discourse. Nowhere does he make a profound +analytical study of the emotions such as we find in Aristotle, Rhet., Bk. II. In Anon. Seg. 6 (Spengel-Hammer 1[2].353) + are listed five emotions of the hearer which play a part in the +function of the Proem: pity, anger, fear, hate, and desire. + + +

+ + +

+ 26 +ἔχθρα or μῖσος, φθόνος, ὀργή. + + +

+ + +

+ 27 +In + +Cicero, De Inv. 1.xvii.23, the Subtle Approach is specifically used in the admirabile genus causae. The three causae of Cicero correspond to the "occasions" classified by our author. Anon. Seg. 21 ff. (Spengel-Hammer + 1[2].357 ff.) gives four occasions on which the Prooemion should +be dispensed with, and discusses the view that it must always be used. + + +

+ + +

+ 28 +Cf. Cicero, De Inv. 1.xvii.24. + + +

+ + +

+ 29 +παραφθέγγεσθαι. + + +

+ + +

+ 30 +Cf. Cicero, De Inv. 1.xvii.25. + + +

+ + +

+ 31 +See + +4.xxix.40 + +below. + + +

+ + +

+ 32 +Note that humour enters the rhetorical system under the Introduction. Aristotle, Rhet. 3.14 (1415A), + also discusses the place of laughter in the Proem. This classification +of eighteen means of provoking laughter must have been a recent +accession to rhetorical theory; cf. the summary in + +Cicero, De Oratore 2.61.248 ff. On wit and humour in ancient rhetoric, see E. Arndt, De ridiculi doctrina rhetorica, Bonn, 1904; + + +Mary A. Grant, The Ancient Rhetorical Theories of the Laughable, Madison, 1924; and Wilhelm Kroll in P.‑W., art "Rhetorik," coll. 1076‑7. Cf. also Wilhelm Süss, Neue Jahrb. 23 (1920), 28‑45. + + +

+ + +

+ 33 +Of the adversary's argument, perhaps. + + +

+ + +

+ 34 +παρὰ προσδοκίαν. + + +

+ + +

+ 35 +λαθραίως δι’ ἑτέρων λόγων. Anon., Proleg. Invent., in Walz 7(1).54.14‑16, gives the same precept. + + +

+ + +

+ 36 +Anon. Seg. 19 (Spengel-Hammer 1[2].356) makes the same point. + + +

+ + +

+ 37 +Cf. Cicero, De Inv. 1.xviii.26. + + +

+ + +

+ 38 +διήγησις. Cf. Cicero, De Inv. 1.xix.27. + + +

+ + +

+ 39 +διηγήσεις ἐπὶ κριτῶν λεγόμεναι. + + +

+ + +

+ 40 +διαβολή. + + +

+ + +

+ 41 +Incidental Narrative (παραδιήγησις); cf. Quintilian, 9.2.107, and Anon. Seg. 61 (Spengel-Hammer 1[2].364‑5), who distinguishes it from Digression (παρέκβασις). + + +

+ + +

+ 42 +διηγήσεις καθ’ ἑαυτάς. + + +

+ + +

+ 43 +The reference is to the progymnasmata (praeexercitamenta). Narratio provided the first exercises imposed by the rhetor; see + +Quintilian, 2.4.1, and Jean Cousin, Études sur Quintilien, Paris, 1936, 1.113. + + +

+ + +

+ 44 +According to τὰ πράγματα or τὰ πρόσωπα. + + +

+ + +

+ 45 +μῦθος, but see Cousin, op. cit., 1.113, note 4. Cf. Aristotle, Poetics 9 (1451A): + "The poet's function is to describe, not the things that actually have +happened, but the kind of things that might well happen — that are +possible in the sense of being either probable or inevitable." But it is + doubtless the miraculous element in tragedies that is here in mind; see + the example of fabula in + +Cicero, De Inv. 1.xix.27. + + +

+ + +

+ 46 +ἱστορία. + + +

+ + +

+ 47 +πλάσμα. Cf. argumentum (Presumptive Proof) in + +2.ii.3, and argumentatio (argument) in + +2.ii.2 + +below. + + +

+ + +

+ 48 +Cf. the figure notatio (Character Delineation), + +4.l.63 + +below. + + +

+ + +

+ 49 +Cf. Cicero, Epist. ad Fam. 51.2.4, + on writing history: "For nothing is so suited to the delight of the +reader as are shifting circumstances and the vicissitudes of fortune." Concerning our author's doctrine of narratio as reflecting Hellenistic ideas on historiography and story writing, see + + +R. Reitzenstein, Hellenistische Wundererzählungen, Leipzig, 1906, pp84 ff., and for further interpretations of these sections dealing with narratio (and of + +Cicero, De Inv. 1.xix.27), Karl Barwick, Hermes 63, 3 (1928), 261‑87, and Friedrich Pfister, Hermes 68, 4 (1933), 457‑60. + + +

+ + +

+ 50 +The narratio is developed (tractatioἐξεργασία) in the progymnasmata. + + +

+ + +

+ 51 +συντομία, σαφήνεια, πιθανότης. The precept is Isocratean (see + +Quintilian, 4.2.31‑2) or even older (see Octave Navarre, Essai sur la rhétorique grecque avant Aristote, Paris, 1900, p246). Aristotle, Rhet. 3.16 (1416B), scorns the injunction of brevity in favour of the "proper mean." Cf. Cicero, De Inv. 1.xx.28. + + +

+ + +

+ 52 +Presented κεφαλαιωδῶς, not μερικῶς. + + +

+ + +

+ 53 +Doxapatres (eleventh century), in Walz 2.230, gives the same example; it is doubtless Greek in origin. + + +

+ + +

+ 54 +The author of these iambic trimeters and the name of the comedy from which they come are both unknown. Cf. Plautus, Miles Gloriosus 439: quae heri Athenis Ephesum adveni vesperi. + + +

+ + +

+ 55 +Cf. Cicero, De Inv. 1.xx.29. + + +

+ + +

+ 56 +ὑπερβατῶς, in inverted order. + + +

+ + +

+ 57 +In + +1.ix.14 + +above. + + +

+ + +

+ 58 +Cf. Cicero, De Inv. 1.xxi.29‑30. + + +

+ + +

+ 59 +See + +note on 1.vi.9 + +above. Our author's doctrine of the Subtle Approach is Greek in origin, +although we know no specific Greek source for the three occasions. That +Cicero in De Inv. presents a like classification makes our author's + + +claim difficult to explain; see the Introduction to the present volume, + +pp. xxix‑xxx. + + +

+ + +

+ 60 +"Outlining of the case," the Analysis. προκατασκευή, a combination of προέκθεσις and μερισμός. In + +Cicero, De Inv. 1.xxii.31‑xxiii.33, partitio. Cf. the figure divisio, + +4.xl.52 + +below. + + +

+ + +

+ 61 +Martianus Capella, 5.556, makes the same point for the partitio. + + +

+ + +

+ 62 +A favourite theme of the rhetoricians; cf. also + +1.xv.25 and 1.xvi.26 + +below, Cicero, De Inv. + +1.xiii.18‑xiv.19, + +1.xxii.31, Quintilian, + +3.11.4 ff., + +3.5.11, + +7.4.8. + + +

+ + +

+ 63 +Cf. the figure distributio, + +4.xxxv.47, and distributio, the Broken Tone of Debate, + +3.xiii.23 + +below. + + +

+ + +

+ 64 +Cf. the enumeratio (Summing Up) of + +2.xxx.47 + +below. Quintilian, + +4.5.24, praises Hortensius for the great pains he took with his +Partitions, "although Cicero often lightly mocks him for counting his +points on his fingers." + + +

+ + +

+ 65 +ἔκθεσις. Cf. the expositio (Proposition of an argument) in + +2.xx.32, and + +note on 2.xviii.28 + +below. + + +

+ + +

+ 66 +Cf. Cicero, Brutus 60.217 + +on Curio: "His memory was so altogether wanting that at times when he +had announced three points he would add a fourth or miss the +third." + + +

+ + +

+ 67 +See + +note on 4.vii.10 + +below. + + +

+ + +

+ 68 +πίστις, κατασκευὴ κεφαλαίων. + + +

+ + +

+ 69 +ἀνασκευή. In the Rhet. ad Alex., ch. 7 (1428A), Refutation is considered as one of seven subheads under Proof; see also ch. 13 (1431A). + + +

+ + +

+ 70 +I follow the practice, perhaps begun by Thomas Wilson, Arte of Rhetorique (first ed. 1553), ed. G. H. Mair, Oxford, 1910, p89, of translating constitutio (or status [= στάσις], the term used by Cicero, except in De Inv., and by most other rhetoricians) as "Issue." The constitutio (= σύστασις, most probably; see S. F. Bonner, Class. Rev. 61 + [1947], 84‑6) is the conjoining of two conflicting statements, thus +forming the centre of the argument and determining the character of the +case; for a study of the meaning of status; and of constitutio see A. O. L. Dieter, Speech Monographs 17, 4 (1950), 345‑69. Our author makes use of the status system only for judicial oratory, the examples being drawn from both criminal and civil causes. Adumbrated in pre-Aristotelian rhetoric (where it was close to Attic procedure), as well as in Aristotle's Rhetoric, + it was developed principally by Hermagoras. Stoic and Aristotelian +dialectic exerted an influence in its evolution. The terminology and +Roman examples show that our author assimilated the Greek theory. His +system differs considerably from that of Hermagoras; see Kroehnert, +pp21 ff.; + + +Hermann Netzker, Hermagoras, Cicero, Cornificius quae docuerint de "statibus", Kiel diss., 1879, and "Die constitutio legitima des Cornificius," Neue Jahrbücher 133 (1886), 411‑16; Heinrich Weber, Ueber die Quellen der Rhet. ad Her. des Cornificius, Zurich diss., 1886; Thiele, Hermagoras; Walter Jaeneke, De statuum doctrina ab Hermogene tradita, Leipzig, 1904; Claus Peters, De rationibus inter artem rhetoricam quarti et primi saeculi intercedentibus, Kiel diss., 1907, pp10 ff.; Kroll in P.‑W., art. "Rhetorik," coll. 1090‑5. Cicero's system in + +De Inv. 1.viii.10 ff. + +differs from that of our author. Cf. Quintilian, 3.6.1 ff. + +Most critics see our author as a follower of Marcus Antonius in his system of status cf. Quintilian, 3.6.45 ff. + +(note that legalis, not legitimus is the term used for the "Legal" Issue by the followers of Antonius), and Kroehnert, loc. cit. Modern students of Roman Law for the most part think that from the juristic point of view, as against the rhetorical, the status system was over-intricate and impractical; see + +note on 2.xiii.19 + +below. + + +

+ + +

+ 71 +Hermagoras taught four Types of Issue; see + +note on Transference, 1.xi.19, below. + + +

+ + +

+ 72 +See Introduction, + +pp. xxi ff., esp. p. xxiii. + + +

+ + +

+ 73 +For the spelling iuridicalis see Stroebel, Tulliana, p20. + + +

+ + +

+ 74 +στοχασμός. Cf. Cicero, De Inv. 1.viii.11. + + +

+ + +

+ 75 +See the progymnasma in + +2.xviii.28‑xix.30 + +below. Resenting the award of the arms of Achilles to Ulysses, Ajax goes + mad and slaughters a flock of sheep, thinking them his enemies. Cf. Hermogenes, De Stat. 3 + (ed. Rabe, pp49 and 54): A man is discovered burying in a + lonely place the body of a person recently slain, and is charged with +murder; Fortunatianus 1.6 (Halm, p85) and 1.8 (Halm, p87). + + +

+ + +

+ 76 +στάσις νομική. Cf. Cicero, De Inv. 1.xiii.17. + + +

+ + +

+ 77 +στάσις κατὰ ῥητὸν καὶ διάνοιαν. Cf. the sententia (Maxim) of + +4.xvii.24 + +below. + + +

+ + +

+ 78 +ἀντινομία. + + +

+ + +

+ 79 +ἀμφιβολία. + + +

+ + +

+ 80 +ὅρος. + + +

+ + +

+ 81 +μετάληψις. Procedural in nature. Cf. translatio criminis, + +1.xiv.24, and the figure translatio, + +4.xxxiv.45 + +below. Hermagoras was the first to enter this among the Types of Issue; see + +Cicero, De Inv. 1.xi.16, and + +Quintilian, 3.6.60. + + +

+ + +

+ 82 +συλλογισμός. + + +

+ + +

+ 83 +This controversia is of Greek origin; cf. Hermogenes, De Stat. 2 (ed. Rabe, p41), Fortunatianus 1.26 (Halm, pp100 f.) and + +Cicero, De Inv. 2.li.153. + + +

+ + +

+ 84 +On the importance of this type of rhetorical discussion for juristic theory see + +note on 2.xiii.19 + +below. + + +

+ + +

+ 85 +Doubtless the law of C. Servilius Glaucia de pecuniis repetundis (111 B.C.). + + +

+ + +

+ 86 +The law of Cn. Domitius Ahenobarbus de sacerdotiis passed in 104 B.C. and repealed by Sulla in (?) 81 B.C., is here indicated. + + +

+ + +

+ 87 +When specifically the case came up we do not know; Marx, Proleg., p108, conjectures c. 100 B.C. + + +

+ + +

+ 88 +Cf. Cicero, De Inv. 2.xl.116; +Lucilius 16.552‑3. + + +

+ + +

+ 89 +At the Comitia; over these the voters passed in single file to the saepta in the Campus Martius to deposit their votes. + + +

+ + +

+ 90 +Probably in his second tribunate in 100 B.C., L. Appuleius Saturninus proposed his law fixing the fee for grain at five-sixths of an as (for a modius); the lex Sempronia frumentaria of 123 + had set the price at almost eight times that amount. It is uncertain +whether the bill passed. Caepio was in 99 B.C. charged with treason, but was acquitted. Cf. 2.xii.17 + +(the supposed defence by Caepio), and for Saturninus + +4.xxii.31 + +and + +4.liv.67. This Q. Servilius Caepio was the son of the Q. Servilius Caepio referred to in + +1.xiv.24 + +below. + + +

+ + +

+ 91 +Literally, what constitutes "impairing the sovereign majesty" of the state. Cf. 2.xii.17 + +and + +4.xxv.35 + +below. The crimen maiestatis minutae was invented probably in 103 B.C.; the Lex Appuleia de maiestate attempted to define + + +the offence. See Hugh Last, Camb. Anc. History 9.160‑1. Cf. Antonius on the trial of Norbanus (95 B.C.) in Cicero, De Oratore + +2.25.107 ff., + +2.39.164. + + +

+ + +

+ 92 +Anglo-American procedure has no specific analogue to the term translatio as here defined, nor indeed was this status suited to Roman juristic procedure. See Theodor Schwalbach, Zeitschr. der Savigny-Stiftung für Rechtsgeschichte, Romanist. Abt., 2 (1881), 209‑32; Moriz Wlassak, Der Ursprung der römischen Einrede (Festschr. Leopold Pfaff, Vienna, 1910, pp12 ff.; and Artur Steinwenter, Sav. Zeitschr. 65 (1947), 69‑120, esp. p81, and pp104‑5. Note also raro venit in iudicium below. + + +

+ + +

+ 93 +The Romans in the preliminary proceedings before the magistrate, where +the issue is defined; the Greeks in the actual trial before the judge. + + +

+ + +

+ 94 +Despite the alteration, the source of this controversia may originally have been Aristotle, Rhet. 1.13 (1374A): + "It often happens that a man may admit . . . theft, but not +that the act was sacrilege (on the ground that the thing stolen was not +the property of a god)." Cf. Cicero, De Inv. 1.viii.11; Quintilian, + +3.6.41 + +and + +5.10.39; Hermogenes, De Stat. 2 (ed. Rabe, p37) and 4 (ed. Rabe, p62); Sopater, in Walz 8.102‑5; also Rabe, Proleg. Syll., pp218, 253, and 336. On peculatus publicus see Mommsen, pp764 ff. + + +

+ + +

+ 95 +Cf. Victorinus, in Halm, p276. + + +

+ + +

+ 96 +These counterpleas accepted by the praetor allege new states of fact or of law; although the defendant accepts the intentio in the plaintiff's formula, he urges the praetor to permit the insertion of an exceptio in the formula. See + + +A. H. J. Greenidge, The Legal Procedure of Cicero's Time, Oxford, 1901, pp178‑181, 229‑235; E. Rabel, Sav. Zeitschr. 32 (1911), 413‑23; Leopold Wenger, Institutes of the Roman Law of Civil Procedure, tr. O. H. Fisk, New York, 1940, pp155 ff. Cf. Cicero, De Inv. 1.vii.10 + +and + +2.xix.57‑xx.61. Cicero in De Inv. + +(2.xix.57) + +and our author supply the first references to the exceptio in extant literature. See Friedrich von Velsen, Sav. Zeitschr. 21 (1900), 104‑5. + + +

+ + +

+ 97 + +Twelve Tables 5.7a. + + +

+ + +

+ 98 +Marx (Proleg., p107; see also R. Reitzenstein, Gnomon 5 [1929], 605‑6) affirms, and Mommsen (p643, note 6) denies, the genuineness of this law; it is omitted in + +Cicero, De Inv. 2.l.148. + + +

+ + +

+ 99 + +Twelve Tables 5.3. + + +

+ + +

+ 100 +Cf. Twelve Tables 5.4‑5. + + +

+ + +

+ 101 +Cf. Cicero, De Inv. 2.l.149, and on this (ritualistic) form of punishment Mommsen, pp921‑3; Alfred Pernice, Sav. Zeitschr. 17 (1896), 210 ff.; Max Radin, Journ. Rom. Studies 10 (1920), 119‑30; Rudolf Düll, Atti del Congr. Internaz. di Diritto Rom. (Roma), Pavia, 1935, 2.363‑408. According to + +Livy, Periochae 68, Malleolus was the first (101 B.C.) to suffer this punishment. + + +

+ + +

+ 102 +στάσις δικαιολογική. Cf. Cicero, De Inv. 1.xi.15, + +2.xxiii.69 ff. + + +

+ + +

+ 103 +κατ’ ἀντίληψιν. + + +

+ + +

+ 104 +κατ’ ἀντίθεσιν. + + +

+ + +

+ 105 +The mime was condemned; see + +2.xiii.19 + +below. This type of controversia is Greek in origin; cf. Hermogenes, De Stat. 11, ed. Rabe, pp88‑9 (but belonging to the subtype of Legal Issue based on Analogy; see + +1.xiii.23 + +above), and Sopater, in Walz 8.383‑4. See also Sulpitius Victor 39, in Halm, p337. + + +

+ + +

+ 106 +συγγνώμη. + + +

+ + +

+ 107 +μετάστασις. + + +

+ + +

+ 108 +ἀντέγκλημα. + + +

+ + +

+ 109 +ἀντίστασις. + + +

+ + +

+ 110 +Cf. 2.xvi.23 + +and + +2.xxvii.43 + +below, and + +Cicero, De Inv. 1.xi.15. + + +

+ + +

+ 111 +κάθαρσις. + + +

+ + +

+ 112 +παραίτησις. + + +

+ + +

+ 113 +ἐκ προνοίας. Voluntary acts = τὰ ἑκούσια, involuntary = τὰ ἀκούσια. + + +

+ + +

+ 114 +ἄγνοια. + + +

+ + +

+ 115 +τύχη, ἀτυχία, ἀτύχημα. + + +

+ + +

+ 116 +ἄνάγκη, βία. + + +

+ + +

+ 117 +In 105 B.C., Q. Servilius +Caepio, through his failure to coöperate with his colleague Mallius, +brought upon the army a disastrous defeat at Arausio at the hands of the + Cimbri, Teutones, and their allies. Caepio's proconsular imperium was abrogated, and by the motion of the tribunus plebis, L. Cassius Longinus, he lost senatorial rank (104 B.C.). Cicero, + +Brutus 35.135, says of Caepio that the fortunes of war were imputed to him as a crime. + + +

+ + +

+ 118 +Manumitted, the slave was answerable for his crime to the courts, and not subject to domestic punishment. The controversia is doubtless Greek in origin. Cf. Quintilian, 7.4.14. + + +

+ + +

+ 119 +The controversia is Greek in origin; the like situation is presented in + +De Inv. 2.xxxi.96. Cf. Quintilian, 7.4.14. + + +

+ + +

+ 120 +Cf. Cicero, De Inv. 2.xxxiv.104. + + +

+ + +

+ 121 +The court was obliged to render a verdict strictly on the law, and could not lessen the punishment. See also Quintilian, + +5.13.5 + +and + +7.4.17 ff. + + +

+ + +

+ 122 +Especially that of a magistrate; cf. Mommsen, pp149 f. and note 5, and Wenger, Institutes of the Roman Law of Civil Procedure, p32. + + +

+ + +

+ 123 +Cf. 1.x.17 + +above, and + +1.xvi.26 + +below. + + +

+ + +

+ 124 +P. Sulpicius Rufus was among those proscribed by Sulla in 88 B.C. + Pursued by Sulla's horsemen, he took refuge in a villa at Laurentum, +where he was betrayed by a slave and murdered. His head was exhibited on + the rostra. The slave was set free by Sulla's orders and then hurled +down the Tarpeian Rock. Cf. Appian, Bell. Civil. 1.7.60: + "[Sulpicius and others] had been voted enemies of Rome, and anyone who +came upon them had been authorized to kill them with impunity or to +bring them before the consuls [Cornelius Sulla and Quintus Pompeius]." +Velleius Paterculus, + +2.19, says that Sulpicius and his followers were declared exiles by formal decree (lege lata). It was forbidden to bury Sulpicius' body; see + +4.xxii.31 + +below. If this controversia was not + merely a school exercise, and the murderer was actually called to +account, that may have been in the year 87, when Sulpicius' party +again came into power. See the notes on + +4.xiv.20, + +xxiv.33, + +xxviii.38, + +xxxiv.45, + +lii.65, and also + +2.xxviii.45. + + +

+ + +

+ 125 +Cf. Cicero, De Inv. 2.xxiv.72. According to the historians, after L. Cassius Longinus in the war against the + + +Cimbri and their allies fell (in 107 B.C.) + at the hands of the Tigurini in Gaul, C. Popilius Laenas, legate, +made a pact: the Roman survivors would, in return for hostages and half +of their possessions, leave in safety. The Roman band went under the +yoke of the Tigurini.​a + No mention is here made of the hostages nor of passing under the yoke, +nor does the amount of the baggage agree precisely with that in the +historical accounts. The charge of treason was made in 106 by the +tribune C. Caelius Caldus; a fragment of the defence appears +in + +4.xxiv.34 + +below. Popilius went into exile, but perhaps after a later trial under Saturninus' law of treason of 103 B.C. + + +

+ + +

+ 126 +Ratioτὸ συνέχον, firmamentumτὸ αἴτιον. Cicero misconstrued firmamentum in + +De Inv. 1.xiv.19; cf. Part. Orat. 29.103, + +Quintilian, 3.11.19, Volkmann, pp100‑108, Thiele, Hermagoras, pp67‑78, Jaeneke, De statuum doctrina ab Hermogene tradita, p111. + + +

+ + +

+ 127 +Cf. 1.x.17 + +and + +1.xv.25 + +above. + + +

+ + +

+ 128 +Cf. in Aristotle, Rhet. 2.23 (1397AB), the third of the 28 topoi from which to draw enthymemes, the topos + from correlative terms: "And if 'well' or 'justly' is true of the +person to whom a thing is done, you may argue that it is true of the +doer. But here the argument may be fallacious; for, granting that the +man deserved what he got, it does not + + +follow that he deserved it from you" (tr. Lane Cooper), and in 2.24 (1401B), the fallacy of omission illustrated by the argument in Theodectes' Orestes. For the argument as used in other Greek tragedies, cf. Tyndareüs in Euripides, Orestes 538‑9: + "My daughter, dying, paid her debt to justice, but that she died at his + hand was not meet," and Castor, addressing Orestes in Electra 1244: "Your mother now has but justice, but your deed is not just." + + +

+ + +

+ 129 +κρινόμενον, Hermagorean doctrine. + + +

+ + +

+ 130 +Cf. Cicero, De Inv. 1.xiv.19. + + +

+ + +

+ 131 +κατάφασις. + + +

+ + +

+ 132 +ἀπόφασις. + + + +


+

+Thayer's Note: +

+ + +

+ a + +For "passing under the yoke", see the last paragraph of the article + +Jugum + +in Smith's Dictionary of Greek and Roman Antiquities and my note there. + + + +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+ 
+[image ALT: Valid HTML 4.01.]
+	+

+Page updated: +23 Feb 18 +

+

+ +Accessibility +

+ + \ No newline at end of file diff --git a/sources/book_1_files/401.png b/sources/book_1_files/401.png new file mode 100644 index 0000000..c010842 Binary files /dev/null and b/sources/book_1_files/401.png differ diff --git a/sources/book_1_files/Ebox.js b/sources/book_1_files/Ebox.js new file mode 100644 index 0000000..0c57824 --- /dev/null +++ b/sources/book_1_files/Ebox.js @@ -0,0 +1,2921 @@ +//\//////////////////////////////// +//\ overLIB 3.33 -- This notice must remain untouched at all times. +//\ Copyright Erik Bosrup 1998-2001. All rights reserved. +//\ +//\ By Erik Bosrup (erik@bosrup.com). Last modified 2001-01-26. +//\ Portions by Dan Steinman (dansteinman.com). Additions by other people are +//\ listed on the overLIB homepage. +//\ +//\ Get the latest version at http://www.bosrup.com/web/overlib/ +//\ +//\ This script is published under an open source license. Please read the license +//\ agreement online at: http://www.bosrup.com/web/overlib/license.html +//\ If you have questions regarding the license please contact erik@bosrup.com. +//\ +//\ This script library was originally created for personal use. By request it has +//\ later been made public. This is free software. Do not sell this as your own +//\ work, or remove this copyright notice. For full details on copying or changing +//\ this script please read the license agreement at the link above. +//\ +//\ Please give credit on sites that use overLIB and submit changes of the script +//\ so other people can use them as well. This script is free to use, don't abuse. +//\//////////////////////////////// +//\mini + +//\//////////////////////////////// +//\ ▸ the URLs above, at "bosrup.com", are dead: the entire site went belly-up. +//\//////////////////////////////// + + +//\//////////////////////////////// +//\ Thayer flavor: +//\ I've renamed "overlib" to "Ebox", "Fbox", etc. +//\ to save 3 characters on each call +//\ while specifying the language (English, French, etc.) +//\//////////////////////////////// + + +//////////////////////////////////// +// CONSTANTS +// Don't touch these. :) +//////////////////////////////////// +var INARRAY = 1; +var CAPARRAY = 2; +var STICKY = 3; +var BACKGROUND = 4; +var NOCLOSE = 5; +var CAPTION = 6; +var LEFT = 7; +var RIGHT = 8; +var CENTER = 9; +var OFFSETX = 10; +var OFFSETY = 11; +var FGCOLOR = 12; +var BGCOLOR = 13; +var TEXTCOLOR = 14; +var CAPCOLOR = 15; +var CLOSECOLOR = 16; +var WIDTH = 17; +var BORDER = 18; +var STATUS = 19; +var AUTOSTATUS = 20; +var AUTOSTATUSCAP = 21; +var HEIGHT = 22; +var CLOSETEXT = 23; +var SNAPX = 24; +var SNAPY = 25; +var FIXX = 26; +var FIXY = 27; +var FGBACKGROUND = 28; +var BGBACKGROUND = 29; +var PADX = 30; +var PADY = 31; +var PADX2 = 32; +var PADY2 = 33; +var FULLHTML = 34; +var ABOVE = 35; +var BELOW = 36; +var CAPICON = 37; +var TEXTFONT = 38; +var CAPTIONFONT = 39; +var CLOSEFONT = 40; +var TEXTSIZE = 41; +var CAPTIONSIZE = 42; +var CLOSESIZE = 43; +var FRAME = 44; +var TIMEOUT = 45; +var FUNCTION = 46; +var DELAY = 47; +var HAUTO = 48; +var VAUTO = 49; + + +//////////////////////////////////// +// DEFAULT CONFIGURATION +// You don't have to change anything here if you don't want to. All of this can be +// changed on your html page or through an overLIB call. +//////////////////////////////////// + +// Main background color (the large area) +// Usually a bright color (white, yellow etc) +if (typeof ol_fgcolor == 'undefined') { var ol_fgcolor = "#FFFFDD";} + +// Border color and color of caption +// Usually a dark color (black, brown etc) +if (typeof ol_bgcolor == 'undefined') { var ol_bgcolor = "#333399";} + +// Text color +// Usually a dark color +if (typeof ol_textcolor == 'undefined') { var ol_textcolor = "#000066";} + +// Color of the caption text +// Usually a bright color +if (typeof ol_capcolor == 'undefined') { var ol_capcolor = "#FFFFFF";} + +// Color of "Close" when using Sticky +// Usually a semi-bright color +if (typeof ol_closecolor == 'undefined') { var ol_closecolor = "#9999FF";} + +// Font face for the main text +if (typeof ol_textfont == 'undefined') { var ol_textfont = "Courier, Courier New, serif";} + +// Font face for the caption +if (typeof ol_captionfont == 'undefined') { var ol_captionfont = "Courier, Courier New";} + +// Font face for the close text +if (typeof ol_closefont == 'undefined') { var ol_closefont = "Courier, Courier New";} + +// Font size for the main text +if (typeof ol_textsize == 'undefined') { var ol_textsize = "1";} + +// Font size for the caption +if (typeof ol_captionsize == 'undefined') { var ol_captionsize = "1";} + +// Font size for the close text +if (typeof ol_closesize == 'undefined') { var ol_closesize = "1";} + +// Width of the popups in pixels +// 100-300 pixels is typical +if (typeof ol_width == 'undefined') { var ol_width = "225";} + +// How thick the ol_border should be in pixels +// 1-3 pixels is typical +if (typeof ol_border == 'undefined') { var ol_border = "2";} + +// How many pixels to the right/left of the cursor to show the popup +// Values between 3 and 12 are best +if (typeof ol_offsetx == 'undefined') { var ol_offsetx = 10;} + +// How many pixels below the cursor to show the popup +// Values between 3 and 12 are best +if (typeof ol_offsety == 'undefined') { var ol_offsety = 10;} + +// Default text for popups +// Should you forget to pass something to overLIB this will be displayed. +if (typeof ol_text == 'undefined (but the link is good !)') { var ol_text = "Default Text"; } + +// Default caption +// You should leave this blank or you will have problems making non caps popups. +if (typeof ol_cap == 'undefined') { var ol_cap = ""; } + +// Decides if sticky popups are default. +// 0 for non, 1 for stickies. +if (typeof ol_sticky == 'undefined') { var ol_sticky = 0; } + +// Default background image. Better left empty unless you always want one. +if (typeof ol_background == 'undefined') { var ol_background = ""; } + +// Text for the closing sticky popups. +// Normal is "Close". +if (typeof ol_close == 'undefined') { var ol_close = "Close"; } + +// Default vertical alignment for popups. +// It's best to leave RIGHT here. Other options are LEFT and CENTER. +if (typeof ol_hpos == 'undefined') { var ol_hpos = RIGHT; } +// TO CHANGE THIS WITHIN A PAGE: see syntax on +// E/Gazetteer/Places/Asia/Russia/_Topics/history/_Texts/SMANPS/Appendices/C*.html +// (search for "ol_hpos") + +// Default status bar text when a popup is invoked. +if (typeof ol_status == 'undefined') { var ol_status = ""; } + +// If the status bar automatically should load either text or caption. +// 0=nothing, 1=text, 2=caption +if (typeof ol_autostatus == 'undefined') { var ol_autostatus = 0; } + +// Default height for popup. Often best left alone. +if (typeof ol_height == 'undefined') { var ol_height = -1; } + +// Horizontal grid spacing that popups will snap to. +// 0 makes no grid, anything else will cause a snap to that grid spacing. +if (typeof ol_snapx == 'undefined') { var ol_snapx = 0; } + +// Vertical grid spacing that popups will snap to. +// 0 makes no grid, anything else will cause a snap to that grid spacing. +if (typeof ol_snapy == 'undefined') { var ol_snapy = 0; } + +// Sets the popups horizontal position to a fixed column. +// Anything above -1 will cause fixed position. +if (typeof ol_fixx == 'undefined') { var ol_fixx = -1; } + +// Sets the popups vertical position to a fixed row. +// Anything above -1 will cause fixed position. +if (typeof ol_fixy == 'undefined') { var ol_fixy = -1; } + +// Background image for the popups inside. +if (typeof ol_fgbackground == 'undefined') { var ol_fgbackground = ""; } + +// Background image for the popups frame. +if (typeof ol_bgbackground == 'undefined') { var ol_bgbackground = ""; } + +// How much horizontal left padding text should get by default when BACKGROUND is used. +if (typeof ol_padxl == 'undefined') { var ol_padxl = 1; } + +// How much horizontal right padding text should get by default when BACKGROUND is used. +if (typeof ol_padxr == 'undefined') { var ol_padxr = 1; } + +// How much vertical top padding text should get by default when BACKGROUND is used. +if (typeof ol_padyt == 'undefined') { var ol_padyt = 1; } + +// How much vertical bottom padding text should get by default when BACKGROUND is used. +if (typeof ol_padyb == 'undefined') { var ol_padyb = 1; } + +// If the user by default must supply all html for complete popup control. +// Set to 1 to activate, 0 otherwise. +if (typeof ol_fullhtml == 'undefined') { var ol_fullhtml = 0; } + +// Default vertical position of the popup. Default should normally be BELOW. +// ABOVE only works when HEIGHT is defined. +if (typeof ol_vpos == 'undefined') { var ol_vpos = BELOW; } + +// Default height of popup to use when placing the popup above the cursor. +if (typeof ol_aboveheight == 'undefined') { var ol_aboveheight = 50; } + +// Default icon to place next to the popups caption. +if (typeof ol_caption == 'undefined') { var ol_capicon = ""; } + +// Default frame. We default to current frame if there is no frame defined. +if (typeof ol_frame == 'undefined') { var ol_frame = self; } + +// Default timeout. By default there is no timeout. +if (typeof ol_timeout == 'undefined') { var ol_timeout = 0; } + +// Default javascript function. By default there is none. +if (typeof ol_function == 'undefined') { var ol_function = Function(); } + +// Default timeout. By default there is no timeout. +if (typeof ol_delay == 'undefined') { var ol_delay = 0; } + +// If overLIB should decide the horizontal placement. +if (typeof ol_hauto == 'undefined') { var ol_hauto = 0; } + +// If overLIB should decide the vertical placement. +if (typeof ol_vauto == 'undefined') { var ol_vauto = 0; } + + +//////////////////////////////////// +// ARRAY CONFIGURATION +// You don't have to change anything here if you don't want to. The following +// arrays can be filled with text and html if you don't wish to pass it from +// your html page. +//////////////////////////////////// + +// THAYER'S BOILERPLATES: +var CClickHere = "

Feu clic aquí per
"; +var EClickHere = "

Click here for
"; +var FClickHere = "

Faire clic ici pour
"; +var IClickHere = "

Cliccare qui per
"; +var NClickHere = "

Klik hier voor
"; +var PClickHere = "

Clique aqui para
"; +var SClickHere = "

Haga clic aquí para
"; +var CZero = "

La pàgina s\'obre en
AQUESTA finestra
"; +var EZero = "

Page opens
in THIS window
"; +var FZero = "

S\'ouvre dans
CETTE fenêtre
"; +var IZero = "

Si apre in
QUESTO pannello
"; +var PZero = "

A página abre
NESTA janela
"; +var SZero = "

La página abre
en ESTA ventana
"; +var CThisWindow = "
La pàgina s\'obre
en AQUESTA finestra
"; +var EThisWindow = "
Page opens
in THIS window
"; +var FThisWindow = "
S\'ouvre dans
CETTE fenêtre
"; +var IThisWindow = "
Si apre in
QUESTO pannello
"; + +// THAYER'S ARRAYS: +// Array with texts. FOR SIMPLICITY, KEEP THIS AT LINE 280 (Number is then linenum minus 285) +// LANGUAGE ORDER: E:0 - F:10 - I:20 - L:30 - S:40 - P:90 (…0-4: EFILS) +// AFTER THE COMMA AT THE END OF EACH LINE: THERE MUST BE A SPACE! +// EXCEPT THE LAST LINE HAS NO COMMA, NO SPACE: FOR SIMPLICITY, KEEP IT AS A BLANK LINE. +var ol_texts = new Array( +EZero, +"

(Page opens in another window)", +"

Link is offsite:
page opens in
another window.
", +"

(This photo or a related one, opens in another window)", +"

(The photo will open in another window)", +"

(Elsewhere on this page)", +EClickHere+"the author\'s note at the bottom of this page.", +EClickHere+"my note at the bottom of this page.", +"

Click here
to go back
to the reference
in the text.", +"

If you don\'t know what this is about,
the explanation is only a click away.
(Opens in another window)", +FZero, +"

(La page s\'ouvre dans une autre fenêtre)", +"

Le lien est hors site :
la page s\'ouvre
dans une autre fenêtre
", +"

(Cette photo ou une photo apparentée, s\'ouvre dans une autre fenêtre)", +"

(Cette photo s\'ouvre dans une autre fenêtre)", +"

(Ailleurs sur cette page)", +FClickHere+"la note de l\'auteur au bas de la page.", +FClickHere+"ma note au bas de la page.", +FClickHere+"retourner au renvoi dans le texte.", +"

Si vous ne savez pas ce de quoi il s\'agit, il n\'y a qu\'à faire clic pour l\'explication.
(S'ouvre dans une autre fenêtre)", +"

(Die Seite öffnet sich in DIESEM Fenster)", +"

(Die Seite öffnet sich in einem anderen Fenster)", +"

(Auf externe Site: die Seite öffnet sich in einem anderen Fenster)", +"

(Dieses Foto oder ein Ähnliches Foto öffnet sich in einem anderen Fenster)", +"

(Die Foto öffnet sich in einem anderen Fenster)", +" ", +" ", +" ", +" ", +" ", +IZero, +"

(La pagina si apre in un altro pannello)", +"

Il link è fuori sito:
la pagina si apre
in un altro pannello
", +"

(Questa foto o una foto connessa, si apre in un altro pannello)", +"

(La foto si apre in un altro pannello)", +"

(Altrove su questa pagina)", +IClickHere+"la nota
dell\' autore a piè di pagina.", +IClickHere+"la mia nota a piè di pagina.", +IClickHere+"tornare al riferimento nel testo.", +"

Se questo non vi dice nulla, basta cliccare per la spiegazione.
(La pagina si apre in un altro pannello)", +"

(HAC in fenestra aperietur pagina)", +"

(Altera in fenestra aperietur pagina)", +"

(In alio situ: altera in fenestra aperietur pagina)", +"

(Altera in fenestra aperietur haec seu conexa photo)", +"

(Altera in fenestra aperietur photo)", +"

(Alibi in hac pagina)", +"

Cliccare hic
ad auctoris sive editoris
adnotationem legendam
in ima pagina", +"

Cliccare hic
ad adnotationem meam
in ima pagina legendam", +"

Cliccare hic
ad revertendum in textum", +" ", +SZero, +"

(La página abre en una otra ventana)", +"

(Fuera del sitio: la página abre en una otra ventana)", +"

(Esta foto o una foto relacionada, abre en una otra ventana)", +"

(La foto abre en una otra ventana)", +"

(Otra parte en esta página)", +SClickHere+"la nota del autor en bajo de la página.", +SClickHere+"mi nota en bajo de la página.", +SClickHere+"volver a la referencia en el texto.", +" ", +EClickHere+"the article in Smith\'s Dictionary."+EThisWindow, +FClickHere+"l\' article de Smith\'s Dictionary."+FThisWindow, +IClickHere+"
l\' articolo
di Smith\'s Dictionary."+IThisWindow, +" ", +SClickHere+"el artículo de Smith\'s Dictionary.
(Abre en ESTA ventana)", +EClickHere+"the article in Smith\'s Dictionary.
(Page opens in another window)", +FClickHere+"l\' article de Smith\'s Dictionary.
(S'ouvre dans une autre fenêtre)", +IClickHere+"l\' articolo di Smith\'s Dictionary.
(Si apre in un altro pannello)", +" ", +SClickHere+"el artículo de Smith\'s Dictionary.
(Abre en una otra ventana)", +"

If you don\'t know what this is about,
the explanation is only a click away."+EThisWindow, +"

Si vous ne savez pas ce de quoi il s\'agit,
il n\'y a qu\'à faire clic pour l\'explication."+FThisWindow, +"

Se non sapete che cosa è,
basta cliccare qui per la spiegazione."+IThisWindow, +" ", +" ", +"

If you don\'t know what this is about,
the explanation is only a click away.
(Offsite: opens in another window)", +"

Si vous ne savez pas ce de quoi il s\'agit,
il n\'y a qu\'à faire clic pour l\'explication.
(Hors site: s\'ouvre dans une autre fenêtre)", +"

Se non sapete che cosa è,
basta cliccare qui per la spiegazione.
(Fuori sito: si apre in un altro pannello)", +" ", +" ", +EClickHere+"the relevant section
of an article
in Smith\'s Dictionary."+EThisWindow, +FClickHere+"le passage ou le chapitre de l\' article
de Smith\'s Dictionary."+FThisWindow, +IClickHere+"la parte corrispettiva di un articolo
di Smith\'s Dictionary."+IThisWindow, +" ", +SClickHere+"la parte relativa del artículo de Smith\'s Dictionary.
(Abre en ESTA ventana)", +EClickHere+"the relevant section
of an article
in Smith\'s Dictionary.
(Page opens
in another window)
", +FClickHere+"le passage ou le chapitre de l\' article
de Smith\'s Dictionary.
(S'ouvre dans une autre fenêtre)", +IClickHere+"la parte corrispettiva di un articolo
di Smith\'s Dictionary.
(Si apre in un altro pannello)", +" ", +SClickHere+"la parte relativa del artículo de Smith\'s Dictionary.
(Abre en una otra ventana)", +PZero, +"

(A página abre em uma outra janela)", +"

(Offsite: a página abre em uma outra janela)", +"

(Esta foto ou uma foto relacionada, abre em uma outra janela)", +"

(A foto abre em uma outra janela)", +"

(Em outro lugar desta página)", +PClickHere+"a anotação do autor no fim da página.", +PClickHere+"a minha anotação no fim da página.", +PClickHere+"voltar para a referência no texto.", +" ", +EClickHere+"the main index page of Smith\'s Dictionary.
(Opens in a separate index window)", +FClickHere+"la page principale de Smith\'s Dictionary.
(S\'ouvre dans une autre fenêtre-index)", +IClickHere+"la pagina principale di Smith\'s Dictionary.
(Si apre in un altro pannello-indice)", +" ", +SClickHere+"la página principal de Smith\'s Dictionary.
(Abre en una otra ventana-indice)", +" ", +"

Click here
for the text discussion.
(Elsewhere on this page)", +EClickHere+"the main index page of Smith\'s Dictionary."+EThisWindow, +EClickHere+"the main index page of Daremberg & Saglio\'s Dictionary.
(Opens in a separate index window)", +EClickHere+"the main index page of Daremberg & Saglio\'s Dictionary."+EThisWindow, +EClickHere+"the article in Platner\'s Topographical Dictionary of Ancient Rome.
(Page opens in THIS window)", +FClickHere+"l\'article dans le Topographical Dictionary of Ancient Rome de Platner.
(La page s\'ouvre dans CETTE fenêtre)", +IClickHere+"l\' articolo nel Topographical Dictionary of Ancient Rome del Platner."+IThisWindow, +"

Cliccare hic ad articulum legendum
in Platneri Topographical Dictionary of Ancient Rome.
(Anglice, HANC in fenestram aperietur pagina)", +SClickHere+"el artículo en el Topographical Dictionary of Ancient Rome de Platner.
(Abre en ESTA ventana)", +EClickHere+"the article in Platner\'s Topographical Dictionary of Ancient Rome.
(Page opens in another window)", +FClickHere+"l\'article dans le Topographical Dictionary of Ancient Rome de Platner.
(La page s\'ouvre dans une autre fenêtre)", +IClickHere+"l\' articolo nel Topographical Dictionary of Ancient Rome del Platner.
(Si apre in un altro pannello)", +"

Cliccare hic ad articulum legendum
in Platneri Topographical Dictionary of Ancient Rome.
(Anglice, altera in fenestra aperietur pagina)", +SClickHere+"el artículo en el Topographical Dictionary of Ancient Rome de Platner.
(Abre en una otra ventana)", +EClickHere+"the article in Platner\'s Topographical Dictionary of Ancient Rome, with one or more photos.
(Page opens in THIS window)", +FClickHere+"l\'article dans le Topographical Dictionary of Ancient Rome de Platner, avec une ou plusieurs photos.
(La page s\'ouvre dans CETTE fenêtre)", +IClickHere+"l\' articolo nel Topographical Dictionary of Ancient Rome del Platner, con una o parecchie foto."+IThisWindow, +"

Cliccare hic ad articulum legendum
in Platneri Topographical Dictionary of Ancient Rome,
una pluribusve cum photographiis.
(Anglice, HANC in fenestram aperietur pagina)", +" ", +EClickHere+"the article in Platner\'s Topographical Dictionary of Ancient Rome, with one or more photos.
(Page opens in another window)", +FClickHere+"l\'article dans le Topographical Dictionary of Ancient Rome de Platner, avec une ou plusieurs photos.
(La page s\'ouvre dans une autre fenêtre)", +IClickHere+"l\' articolo nel Topographical Dictionary of Ancient Rome del Platner, con una o parecchie foto.
(Si apre in un altro pannello)", +"

Cliccare hic ad articulum legendum
in Platneri Topographical Dictionary of Ancient Rome,
una plurisve photographiis.
(Anglice, altera in fenestra aperietur pagina)", +" ", +EClickHere+"the relevant section of an article in Platner\'s Topographical Dictionary of Ancient Rome.
(Page opens in THIS window)", +FClickHere+"la partie relative à ce sujet dans l\'article du Topographical Dictionary of Ancient Rome de Platner.
(La page s\'ouvre dans CETTE fenêtre)", +IClickHere+"la parte pertinente di un articolo nel Topographical Dictionary of Ancient Rome del Platner."+IThisWindow, +" ", +SClickHere+"la parte pertinente de un artículo en el Topographical Dictionary of Ancient Rome de Platner.
(Abre en ESTA ventana)", +EClickHere+"the relevant section of an article in Platner\'s Topographical Dictionary of Ancient Rome.
(Page opens in another window)", +FClickHere+"la partie relative à ce sujet dans l\'article du Topographical Dictionary of Ancient Rome de Platner.
(La page s\'ouvre dans une autre fenêtre)", +IClickHere+"la parte pertinente di un articolo nel Topographical Dictionary of Ancient Rome del Platner.
(Si apre in un altro pannello)", +" ", +SClickHere+"la parte pertinente de un artículo en el Topographical Dictionary of Ancient Rome de Platner.
(Abre en una otra ventana)", +EClickHere+"the complete work(s), onsite.
(Page opens in THIS window)", +" ", +" ", +" ", +" ", +EClickHere+"the complete work(s), onsite.
(Page opens in another window)", +" ", +" ", +" ", +" ", +EClickHere+"Armellini\'s
Chiese di Roma,
to this passage.
(In Italian;
page opens in THIS window)
", +FClickHere+"Chiese di Roma de Mariano Armellini, à ce passage.
(en italien; la page s\'ouvre dans CETTE fenêtre)", +IClickHere+"le Chiese di Roma dell\' Armellini, a questo passo."+IThisWindow, +" ", +" ", +EClickHere+"Armellini\'s
Chiese di Roma,
to this passage.
(In Italian;
page opens
in another window)
", +FClickHere+"Chiese di Roma de Mariano Armellini, à ce passage.
(en italien; la page s\'ouvre dans une autre fenêtre)", +IClickHere+"le Chiese di Roma dell\' Armellini, a questo passo.
(Si apre in un altro pannello)", +" ", +" ", +EClickHere+"Christian Hülsen\'s
Chiese di Roma nel Medio Evo,
to this passage or section.
(In Italian;
page opens in THIS window)", +FClickHere+"Chiese di Roma nel Medio Evo de Christian Hülsen, à ce passage.
(en italien; la page s\'ouvre dans CETTE fenêtre)", +IClickHere+"le Chiese di Roma nel Medio Evo di Christian Hülsen, a questo passo."+IThisWindow, +" ", +" ", +EClickHere+"Christian Hülsen\'s
Chiese di Roma nel Medio Evo,
to this passage or section.
(In Italian;
page opens in another window)
", +FClickHere+"Chiese di Roma nel Medio Evo de Christian Hülsen, à ce passage.
(en italien; la page s\'ouvre dans une autre fenêtre)", +IClickHere+"le Chiese di Roma nel Medio Evo di Christian Hülsen, a questo passo.
(Si apre in un altro pannello)", +" ", +" ", +EClickHere+"my homepage for this church,
with the texts of Armellini, Hülsen, and Titi,
plus photos and offsite links.
(Page opens in THIS window)", +FClickHere+"mon site sur cette église,
avec les textes d\'Armellini, de Hülsen, et de Titi,
ainsi que des photos et des liens hors site."+FThisWindow, +IClickHere+"il mio sito sulla chiesa,
con i testi dell\' Armellini, del Hülsen, e/o del Titi;
e con fotografie e links fuori sito."+IThisWindow, +" ", +SClickHere+"mi sitio sobre esta iglesia, con los textos de Armellini, de Hülsen, y de Titi; y con fotos y enlaces externos.
(Abre en ESTA ventana)", +EClickHere+"my homepage for this church, with the texts of Armellini, Hülsen, and Titi, plus photos and offsite links.
(Page opens in another window)", +FClickHere+"mon site sur cette église, avec les textes d\'Armellini, de Hülsen, et de Titi, ainsi que des photos et des liens hors site.
(S\'ouvre dans une autre fenêtre)", +IClickHere+"il mio sito sulla chiesa, con i testi dell\' Armellini, del Hülsen, e/o del Titi; e con fotografie e links fuori sito.
(Si apre in un altro pannello)", +" ", +SClickHere+"mi sitio sobre esta iglesia, con los textos de Armellini, de Hülsen, y de Titi; y con fotos y enlaces externos.
(Abre en una otra ventana)", +EClickHere+"the article in Daremberg & Saglio\'s Dictionary.
(Page opens in THIS window)", +FClickHere+"l\' article du Dictionnaire de Daremberg & Saglio."+FThisWindow, +IClickHere+"l\' articolo del Dizionario di Daremberg e Saglio."+IThisWindow, +" ", +SClickHere+"el artículo del Diccionario de Daremberg y Saglio.
(Abre en ESTA ventana)", +EClickHere+"the article in Daremberg & Saglio\'s Dictionary.
(Page opens in another window)", +FClickHere+"l\' article du Dictionnaire de Daremberg & Saglio.
(S'ouvre dans une autre fenêtre)", +IClickHere+"l\' articolo del Dizionario di Daremberg e Saglio.
(Si apre in un altro pannello)", +" ", +SClickHere+"el artículo del Diccionario de Daremberg y Saglio.
(Abre en una otra ventana)", +EClickHere+"my page."+EThisWindow, +FClickHere+"ma page."+FThisWindow, +IClickHere+"la mia pagina."+IThisWindow, +" ", +SClickHere+"mi página.
(Abre en ESTA ventana)", +EClickHere+"my page.
(Opens in another window)", +FClickHere+"ma page.
(S'ouvre dans une autre fenêtre)", +IClickHere+"la mia pagina.
(Si apre in un altro pannello)", +" ", +SClickHere+"mi página.
(Abre en una otra ventana)", +EClickHere+"my pages.
(Orientation page opens in THIS window)", +FClickHere+"mes pages.
(La page d\'orientation s\'ouvre dans CETTE fenêtre)", +IClickHere+"le mie pagine.
(La pagina di orientazione si apre in QUESTO pannello)", +" ", +SClickHere+"mis páginas.
(La página de orientación abre en ESTA ventana)", +EClickHere+"my pages.
(Orientation page opens in another window)", +FClickHere+"mes pages.
(La page d\'orientation s\'ouvre dans une autre fenêtre)", +IClickHere+"le mie pagine.
(La pagina di orientazione si apre in un altro pannello)", +" ", +SClickHere+"mis páginas.
(La página de orientación abre en una otra ventana)", +EClickHere+"my page on this church, with photos."+EThisWindow, +FClickHere+"ma page sur cette église, avec photos."+FThisWindow, +IClickHere+"la mia pagina su questa chiesa, con delle foto."+IThisWindow, +" ", +SClickHere+"mi página sobre esta iglesia, con fotos.
(Abre en ESTA ventana)", +EClickHere+"my page on this church, with photos.
(Opens in another window)", +FClickHere+"ma page sur cette église, avec photos.
(S'ouvre dans une autre fenêtre)", +IClickHere+"la mia pagina su questa chiesa, con delle foto.
(Si apre in un altro pannello)", +" ", +SClickHere+"mi página sobre esta iglesia, con fotos.
(Abre en una otra ventana)", +EClickHere+"my pages on this church, with photos.
(Orientation page
opens in THIS window)
", +FClickHere+"mes pages sur cette église, avec photos.
(La page d\'orientation s\'ouvre dans CETTE fenêtre)", +IClickHere+"le mie pagine su questa chiesa, con delle foto.
(La pagina di orientazione si apre in QUESTO pannello)", +" ", +SClickHere+"mis páginas sobre esta iglesia, con fotos.
(La página de orientación abre en ESTA ventana)", +EClickHere+"my pages on this church, with photos.
(Orientation page
opens in another window)
", +FClickHere+"mes pages sur cette église, avec photos.
(La page d\'orientation s\'ouvre dans une autre fenêtre)", +IClickHere+"le mie pagine su questa chiesa, con delle foto.
(La pagina di orientazione si apre in un altro pannello)", +" ", +SClickHere+"mis páginas sobre esta iglesia, con fotos.
(La página de orientación abre en una otra ventana)", +EClickHere+"my site on this town,
with photos and links.
(Orientation page opens in THIS window)", +FClickHere+"mes pages sur cette ville,
avec photos et liens.
(La page d\'orientation s\'ouvre dans CETTE fenêtre)", +IClickHere+"le mie pagine su questa città,
con fotografie e un elenco di link.
(La pagina di orientazione si apre in QUESTO pannello)", +" ", +SClickHere+"mis páginas sobre esta ciudad,
con fotos y enlaces.
(La página de orientación abre en ESTA ventana)", +EClickHere+"my site on this town,
with photos and links.
(Orientation page opens in another window)", +FClickHere+"mes pages sur cette ville,
avec photos et liens.
(La page d\'orientation s\'ouvre dans une autre fenêtre)", +IClickHere+"le mie pagine su questa città,
con fotografie e un elenco di link.
(La pagina di orientazione si apre in un altro pannello)", +" ", +SClickHere+"mis páginas sobre esta ciudad,
con fotos y enlaces.
(La página de orientación abre en una otra ventana)", +EClickHere+"the passage
in an English translation
linked to the original Latin.
(Opens in another window)", //"THIS IS WHAT REALLY BELONGS IN 520:

Click here for the passage
in the Latin text of Suetonius,
linked to an English translation.
(Opens in another window)", +FClickHere+"le passage
en traduction anglaise
lié au texte latin.
(S'ouvre dans une autre fenêtre)", +IClickHere+"il passo
in una traduzione inglese
collegato al testo latino.
(Si apre in un altro pannello)
", //"THIS IS WHAT REALLY BELONGS IN 522:
Cliccare qui per il passo
nel testo latino di Svetonio,
collegato a traduzioni in inglese e francese.
(Si apre in un altro pannello)", +"

Cliccare hic ad legendum
in anglica versione
ad Latinum textum conexum.
(Altera in fenestra aperietur pagina)", +SClickHere+"este pasaje
en una traducción inglesa
con enlace al texto latino.
(Abre en una otra ventana)", +EClickHere+"the passage
in an English translation
linked to the original Latin.
(Offsite, opens in another window)

", //"THIS IS WHAT REALLY BELONGS IN 525:
Click here for the passage
in the Latin text of Suetonius,
linked to an English translation.
(Opens in another window)", +FClickHere+"le passage
en traduction anglaise
lié au texte latin.
(Hors site, s\'ouvre dans une autre fenêtre)", +IClickHere+"il passo
in una traduzione inglese
collegato al testo latino.
(Fuori sito, si apre in un altro pannello)
", //"THIS IS WHAT REALLY BELONGS IN 507:
Cliccare qui per il passo
nel testo latino di Svetonio,
collegato a traduzioni in inglese e francese.
(Si apre in un altro pannello)", +"

Cliccare hic ad legendum
in anglica versione
ad Latinum textum conexum.
(Apud alios, altera in fenestra aperietur pagina)", +SClickHere+"este pasaje
en una traducción inglesa
con enlace al texto latino.
(Fuera del sitio, abre en una otra ventana)", +EClickHere+"the passage
in the original Latin
linked to an English translation.
(Opens in another window)

", //"THIS IS WHAT REALLY BELONGS IN 510:
Click here for the passage
in the Latin text of Suetonius,
linked to an English translation.
(Opens in another window)", +FClickHere+"le passage
dans le texte latin
lié à une traduction anglaise.
(S'ouvre dans une autre fenêtre)", +IClickHere+"il passo
nel testo latino
collegato ad una traduzione inglese.
(Si apre in un altro pannello)
", //"THIS IS WHAT REALLY BELONGS IN 512:
Cliccare qui per il passo
nel testo latino di Svetonio,
collegato a traduzioni in inglese e francese.
(Si apre in un altro pannello)", +"

Cliccare hic ad legendum
Latinum textum
ad anglicam versionem conexum.
(Altera in fenestra aperietur pagina)", +SClickHere+"este pasaje
en el texto latino
con enlace a una traducción inglesa.
(Abre en una otra ventana)", +EClickHere+"the passage
in the original Latin
linked to an English translation.
(Offsite, opens in another window)

", //"THIS IS WHAT REALLY BELONGS IN 515:
Click here for the passage
in the Latin text of Suetonius,
linked to an English translation.
(Opens in another window)", +FClickHere+"le passage
dans le texte latin
lié à une traduction anglaise.
(Hors site, s\'ouvre dans une autre fenêtre)", +IClickHere+"il passo
nel testo latino
collegato ad una traduzione inglese.
(Fuori sito, si apre in un altro pannello)
", //"THIS IS WHAT REALLY BELONGS IN 517:
Cliccare qui per il passo
nel testo latino di Svetonio,
collegato a traduzioni in inglese e francese.
(Si apre in un altro pannello)", +"

Cliccare hic ad legendum
Latinum textum
ad anglicam versionem conexum.
(Apud alios, altera in fenestra aperietur pagina)", +SClickHere+"este pasaje
en el texto latino
con enlace a una traducción inglesa.
(Fuera del sitio, abre en una otra ventana)", +EClickHere+"the passage
in Pliny the Elder\'s Natural History.
(Latin, opens in another window)", +FClickHere+"le passage
dans l\'Histoire Naturelle de Pline l\'ancien.
(En latin; s\'ouvre dans une autre fenêtre)", +IClickHere+"il passo
nella Storia Naturale di Plinio il Vecchio.
(In latino; si apre in un altro pannello)", +" ", +SClickHere+"el pasaje
en la Historia Natural de Plinio el Viejo.
(En latín; abre en una otra ventana)", +EClickHere+"the passage
in Ptolemy\'s Geography.
(English, opens in another window)", +FClickHere+"le passage
dans la Géographie de Ptolémé.
(En anglais; s\'ouvre dans une autre fenêtre)", +IClickHere+"il passo
nella Geografia di Tolomeo.
(In inglese; si apre in un altro pannello)", +"

Cliccare hic ad textum legendum
in Geographia Ptolemaei.
(Anglice, altera in fenestra aperietur pagina)", +" ", +EClickHere+"the passage
in Ammian
in an English translation
linked to the original Latin.
(Opens in another window)", +FClickHere+"le passage
dans Ammien
en traduction anglaise
liée au texte latin.(S'ouvre dans une autre fenêtre)", +"

Cliccare qui per il passo
in Ammiano
in una traduzione inglese
collegato al testo latino.
(Si apre in un altro pannello)", +" ", +" ", +EClickHere+"the passage
in Appian.
(English, opens in another window)", +FClickHere+"le passage
dans Appien.
(En anglais; s\'ouvre dans une autre fenêtre)", +IClickHere+"il passo
in Appiano.
(In inglese; si apre in un altro pannello)", +" ", +" ", +EClickHere+"the passage
in Cassius Dio\'s History.
(English, opens in another window)", +FClickHere+"le passage
dans l\'Histoire de Dion Cassius.
(En anglais; s\'ouvre dans une autre fenêtre)", +IClickHere+"il passo
nella Storia di Cassio Dione.
(In inglese; si apre in un altro pannello)", +" ", +SClickHere+"el pasaje
en Dion Cásio.
(en inglés, abre en una otra ventana)", +EClickHere+"the passage
in Plutarch.
(English, opens in another window)", +FClickHere+"le passage
dans Plutarque.
(En anglais; s\'ouvre dans une autre fenêtre)", +IClickHere+"il passo
in Plutarco.
(In inglese; si apre in un altro pannello)", +" ", +SClickHere+"el pasaje
en Plutarco.
(en inglés, abre en una otra ventana)", +EClickHere+"the passage
in Polybius\' Histories.
(English, opens in another window)", +FClickHere+"le passage
dans les Histoires de Polybe.
(En anglais; s\'ouvre dans une autre fenêtre)", +IClickHere+"il passo
nelle Storie di Polibio.
(In inglese; si apre in un altro pannello)", +"

Cliccare hic ad textum legendum
in Historiis Polybii.
(Anglice, altera in fenestra aperietur pagina)", +" ", +EClickHere+"the passage
in Strabo\'s Geography.
(English, opens in another window)", +FClickHere+"le passage
dans la Géographie de Strabon.
(En anglais; s\'ouvre dans une autre fenêtre)", +IClickHere+"il passo
nella Geografia di Strabone.
(In inglese; si apre in un altro pannello)", +"

Cliccare hic ad textum legendum
in Geographia Strabonis.
(Anglice, altera in fenestra aperietur pagina)", +" ", +IClickHere+"la scheda di questa chiesa.
(Rimane in questo pannello)", +IClickHere+"la scheda di questa chiesa.
(Un\' altra pagina si apre in QUESTO pannello)", +IClickHere+"la scheda di quest\' artista nell\' indice."+IThisWindow, +IClickHere+"la scheda di quest\' artista nell\' indice.
(Si apre in un altro pannello)", +IClickHere+"il catalogo,
al passo preciso.
(Si aprirà nel pannello dei cataloghi)", +IClickHere+"questo quadro della pianta.
(Si aprirà nel pannello delle piante)", +IClickHere+"QUESTO QUADRO ADIACENTE.
(Rimane in questo pannello)", +IClickHere+"questa chiesa.
(Si apre nel pannello principale del testo)", +EClickHere+"this artist\'s entry in the index.
(Open in THIS window)", +EClickHere+"this artist\'s entry in the index.
(Open in another window)", +EClickHere+"my site or page."+EThisWindow, +FClickHere+"mon site ou ma page."+FThisWindow, +IClickHere+"il mio sito o la mia pagina."+IThisWindow, +" ", +SClickHere+"mi sitio o página.
(Abre en ESTA ventana)", +EClickHere+"my site or page.
(Opens in another window)", +FClickHere+"mon site ou ma page.
(S'ouvre dans une autre fenêtre)", +IClickHere+"il mio sito o la mia pagina.
(Si apre in un altro pannello)", +" ", +SClickHere+"mi sitio o página.
(Abre en una otra ventana)", +EClickHere+"my subsite,
with several pages, photos, etc."+EThisWindow, +FClickHere+"mon sous-site,
qui comporte plusieurs pages, photos, etc."+FThisWindow, +IClickHere+"il mio sotto-sito,
con parecchie pagine e immagini, ecc."+IThisWindow, +" ", +SClickHere+"mi sub-sitio,
con varias páginas, imágenes, etc.
(Abre en ESTA ventana)", +EClickHere+"my subsite,
with several pages, photos, etc.
(Opens in another window)", +FClickHere+"mon sous-site,
qui comporte plusieurs pages, photos, etc.
(S'ouvre dans une autre fenêtre)", +IClickHere+"il mio sotto-sito,
con parecchie pagine e immagini, ecc.
(Si apre in un altro pannello)", +" ", +SClickHere+"mi sub-sitio,
con varias páginas, imágenes, etc.
(Abre en una otra ventana)", +EClickHere+"my subsite,
with many pages, photos, links."+EThisWindow, +FClickHere+"mon sous-site,
qui comporte de nombreux pages, photos, et liens."+FThisWindow, +IClickHere+"il mio sotto-sito,
con molti pagine, immagini, link."+IThisWindow, +" ", +SClickHere+"mi sub-sitio,
con muchas páginas, imágenes, y enlaces.
(Abre en ESTA ventana)", +EClickHere+"my subsite,
with many pages, photos, links.
(Opens in another window)", +FClickHere+"mon sous-site,
qui comporte de nombreuses pages et photos, et de nombreux liens.
(S'ouvre dans une autre fenêtre)", +IClickHere+"il mio sotto-sito,
con molte pagine e immagini, e molti link.
(Si apre in un altro pannello)", +" ", +SClickHere+"mi sub-sitio,
con muchas páginas y imagenes, y muchos enlaces.
(Abre en una otra ventana)", +"

The entire book is onsite.
(Orientation page opens in THIS window)", +"

Le livre entier se trouve sur le site.
(La page d\'orientation s\'ouvre dans CETTE fenêtre)", +"

Il libro intero si trova sul sito.
(La pagina di orientazione si apre in QUESTO pannello)", +" ", +"

El libro entero es reproducido en este sitio.
(La página de orientación abre en ESTA ventana)", +"

The entire book is onsite.
(Orientation page opens in another window)", +"

Le livre entier se trouve sur le site.
(La page d\'orientation s\'ouvre dans une autre fenêtre)", +"

Il libro intero si trova sul sito.
(La pagina di orientazione si apre in un altro pannello)", +" ", +"

El libro entero es reproducido en este sitio.
(La página de orientación abre en una otra ventana)", +EClickHere+"their website or page.
(Offsite, so it opens in another window)", +FClickHere+"leur site ou page.
(Hors site, s\'ouvrira donc dans une autre fenêtre)", +IClickHere+"loro sito o pagina.
(Fuori sito, si apre quindi in un altro pannello)", +" ", +SClickHere+"su sitio o página.
(Sitio externo: abre en una otra ventana)", +" ", +" ", +" ", +" ", +" ", +EClickHere+"the original Latin.
(Opens in another window)", +FClickHere+"le latin original.
(S'ouvre dans une autre fenêtre)", +IClickHere+"il latino originale.
(Si apre in un altro pannello)", +" ", +SClickHere+"el latino originale.
(Abre en una otra ventana)", +" ", +" ", +" ", +" ", +" ", +EClickHere+"the passage
in the Latin text.
(Opens in another window)", +FClickHere+"le passage du texte latin.
(S'ouvre dans une autre fenêtre)", +IClickHere+"il passo dell\' autore latino.
(Si apre in un altro pannello)", +" ", +SClickHere+"el pasaje del autor latino.
(Abre en una otra ventana)", +EClickHere+"the passage
in a Latin translation.
(Opens in another window)", +FClickHere+"le passage dans une traduction latine.
(S'ouvre dans une autre fenêtre)", +IClickHere+"il passo del testo tradotto in latino.
(Si apre in un altro pannello)", +" ", +SClickHere+"el pasaje del autor latino.
(Abre en una otra ventana)", +EClickHere+"the passage
in the Latin text.
(Offsite: opens in another window)", +FClickHere+"le passage du texte latin.
(Hors site: s\'ouvre dans une autre fenêtre)", +IClickHere+"il passo del testo latino.
(Fuori sito: si apre in un altro pannello)", +" ", +SClickHere+"el pasaje del texto latino.
(Fuera del sitio: abre en una otra ventana)", +EClickHere+"the passage
in the Latin text,
linked to a translation
(Offsite: opens in another window)", +FClickHere+"le passage du texte latin.
liée à une traduction(Hors site: s\'ouvre dans une autre fenêtre)", +IClickHere+"il passo del testo latino.
collegato ad una traduzione
(Fuori sito: si apre in un altro pannello)", +" ", +SClickHere+"el pasaje del texto latino.
con enlace a una traducción(Fuera del sitio: abre en una otra ventana)", +EClickHere+"the passage
in the Latin text,
linked to one or more translations.
(Opens in another window)", +FClickHere+"le passage du texte latin,
lié à une ou plusieurs traductions.
(S'ouvre dans une autre fenêtre)", +IClickHere+"il passo dell\' autore latino,
collegato ad una o più traduzioni.
(Si apre in un altro pannello)", +" ", +SClickHere+"el pasaje del autor latino,
con enlace a una o mas traducciones.
(Abre en una otra ventana)", +EClickHere+"the passage in the Latin text,
linked to one or more translations.
(Offsite: opens in another window)", +FClickHere+"le passage du texte latin,
lié à une ou plusieurs traductions.
(Hors site: s\'ouvre dans une autre fenêtre)", +IClickHere+"il passo dell\' autore latino,
collegato ad una o più traduzioni.
(Fuori sito: si apre in un altro pannello)", +" ", +SClickHere+"el pasaje del autor latino,
con enlace a una o mas traducciones.
(Fuera del sitio: abre en una otra ventana)", +EClickHere+"the text of this passage
in the original language.
(Opens in another window)", +FClickHere+"le texte de ce passage
dans la langue originale.
(S'ouvre dans une autre fenêtre)", +IClickHere+"il testo di questo passo
nella lingua originaria.
(Si apre in un altro pannello)", +"

Cliccare hic ad legendum textum
in lingua originali.
(Altera in fenestra aperietur pagina)", +SClickHere+"el texto de este pasaje
en la lingua original.
(Abre en una otra ventana)", +EClickHere+"the text of this passage
in the original language.
(Offsite: opens in another window)", +FClickHere+"le texte de ce passage
dans la langue originale.
(Hors site: s\'ouvre dans une autre fenêtre)", +IClickHere+"il testo di questo passo
nella lingua originaria.
(Fuori sito: si apre in un altro pannello)", +"

Cliccare hic ad legendum textum
in lingua originali.
(In situ externo: altera in fenestra aperietur pagina)", +SClickHere+"el texto de este pasaje
en la lingua original.
(Fuera del sitio: abre en una otra ventana)", +EClickHere+"an English translation
of this passage.
(Opens in another window)", +FClickHere+"une traduction en français de ce passage.
(S'ouvre dans une autre fenêtre)", +IClickHere+"una traduzione italiana di questo passo.
(Si apre in un altro pannello)", +" ", +SClickHere+"una traducción en castellano de este parágrafo.
(Abre en una otra ventana)", +EClickHere+"an English translation.
(Offsite: opens in another window)", +FClickHere+"une traduction en français.
(Hors site: s\'ouvre dans une autre fenêtre)", +IClickHere+"una traduzione italiana.
(Fuori sito: si apre in un altro pannello)", +" ", +SClickHere+"una traducción en castellano.
(Fuera del sitio: abre en una otra ventana)", +CZero, +"

(La pàgina s\'obre en una altra finestra)", +"

(Fora d\'aquest lloc: la pàgina s\'obre en una altra finestra)", +"

(Aquesta foto o una foto relacionada, s\'obre en una altra finestra)", +"

(La foto s\'obre en una altra finestra)", +"

(En una altra part d\'aquesta pàgina)", +CClickHere+"la nota de l'autor a peu de la pàgina.", +CClickHere+"la meva nota a peu de la pàgina.", +CClickHere+"torna a la referència en el text.", +" ", +"

(Offsite page
opens in another window)

Warning: PDF file.", +" ", +"

(La pagina, fuori sito,
si apre in un altro pannello)

Attenzione: documento PDF.", +" ", +" ", +"

(Page opens in another window)
JSTOR (limited access)", +" ", +" ", +" ", +" ", +"

(Page opens in another window)
Warning: The page contains coding errors and may not be visible in all browsers.", +" ", +"

(Si apre in un altro pannello)
Avvertimento: La pagina contiene errori di codaggio e può darsi che non sia visibile in tutti i navigatori.", +" ", +" ", +"

(Page opens in another window)
Warning: loud soundfile; you may want to turn down your volume level before going there.", +" ", +" ", +" ", +" ", +EClickHere+"the solution!
(Opens in another window)", +FClickHere+"la solution!
(S'ouvre dans une autre fenêtre)", +IClickHere+"la soluzione!
(Si apre in un altro pannello)", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +EClickHere+"the passage
in Diodorus\' Library of History.
(English, opens in another window)", +FClickHere+"le passage
dans l\'Histoire de Diodore.
(En anglais; s\'ouvre dans une autre fenêtre)", +IClickHere+"il passo
nella Storia di Diodoro.
(In inglese; si apre in un altro pannello)", +"

Cliccare hic ad textum legendum
in Historia Diodori.
(Anglice, altera in fenestra aperietur pagina)", +" ", +EClickHere+"the passage of Herodotus
(English, linked to the Greek original: opens in another window)", +FClickHere+"le passage d\'Hérodote
(En anglais, lié à l'original grec : s\'ouvre dans une autre fenêtre)", +IClickHere+"il passo di Erodoto
(In inglese, collegato all' originale greco; si apre in un altro pannello)", +" ", +" ", +EClickHere+"the passage of Pausanias
(Offsite: opens in another window)", +FClickHere+"le passage de Pausanias
(Hors site: s\'ouvre dans une autre fenêtre)", +IClickHere+"il passo di Pausania
(Fuori sito: si apre in un altro pannello)", +" ", +" ", +EClickHere+"the passage of Thucydides
(Offsite: opens in another window)", +FClickHere+"le passage de Thucydide
(Hors site: s\'ouvre dans une autre fenêtre)", +IClickHere+"il passo di Tucidide
(Fuori sito: si apre in un altro pannello)", +" ", +" ", +EClickHere+"the passage
in the Latin text of Frontinus,
linked to an English translation.
(Opens in another window)", +FClickHere+"le passage
dans le texte latin de Frontin,
lié à une traduction anglaise.
(S'ouvre dans une autre fenêtre)", +IClickHere+"il passo
nel testo latino di Frontino,
collegato ad una traduzione in inglese.
(Si apre in un altro pannello)", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +EClickHere+"the passage
in an English translation of Frontinus,
linked to the Latin text.
(Opens in another window)", +FClickHere+"le passage
dans une traduction anglaise de Frontin,
lié au texte latin.
(S'ouvre dans une autre fenêtre)", +" ", +" ", +" ", +EClickHere+"the passage
in Dionysius in English translation
(Opens in another window)", +" ", +IClickHere+"il passo
di Dionisio in traduzione inglese
(Si apre in un altro pannello)", +" ", +" ", +"

If you don\'t know what this is about,
the explanation is only a click away."+EThisWindow, +"

Si vous ne savez pas ce de quoi il s\'agit,
il n\'y a qu\'à faire clic pour l\'explication."+FThisWindow, +"

Se questo non vi dice nulla,
basta cliccare per la spiegazione.
(La pagina si apre in QUESTO pannello)", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +EClickHere+"the Latin original
of this passage.
(Opens in another window)", +FClickHere+"l\'original latin
de ce passage.
(S'ouvre dans une autre fenêtre)", +IClickHere+"l\' originale latino
di questo passo.
(Si apre in un altro pannello)", +" ", +" ", +EClickHere+"the Greek original
of this passage.
(Opens in another window)", +FClickHere+"l\'original grec
de ce passage.
(S'ouvre dans une autre fenêtre)", +IClickHere+"l\' originale greco
di questo passo.
(Si apre in un altro pannello)", +" ", +" ", +"

This site comprises roughly 15,000 pages of text and photos, mostly about American history, ancient Rome, classical Antiquity, and central Italy.
CLICK ON THE LINK FOR THE HOMEPAGE.
(Opens in THIS window.)", +"

Ce site comporte environ 15.000 pages de texte et de photos, surtout sur Rome antique et médiévale et l\'Italie centrale.
FAIRE CLIC SUR LE LIEN POUR LA PAGE D\'ACCUEIL.
(S\'ouvre dans CETTE fenêtre.)", +"

Questo sito contiene circa 15.000 pagine di testo e di foto, innanzitutto sulla Roma antica e medioevale e l\'Italia centrale.
CLICCARE SUL LINK PER LA PAGINA HOME.
(Si apre in QUESTO pannello.)", +"

Hic situs milia paginarum
textus photographiarumque
continet, plerumque
de historia Americana,
Roma antiqua et medievali,
antiquitate classica, et Italia centrali.
CLICCARE SUPER VINCULAM
AD PAGINAM PRINCIPALEM
VIDENDAM.

(HAC in fenestra
aperietur pagina.)
", +"

Deze site omvat ongeveer 15.000 pagina's tekst en foto's, meestal over de Amerikaanse geschiedenis, het oude Rome, de klassieke oudheid, en Midden-Italië.
KLIK OP DE LINK VOOR DE HOMEPAGE.
(Opent in DIT venster.)", +"

Este site contém cerca de 15.000 páginas de texto e fotos, especialmente sobre a história das Américas, a Roma antiga e medieval, e o centro da Itália.
CLIQUE NO LINK PARA A PÁGINA DE ACOLHIMENTO.
(A página abre NESTA janela.)", +"

Este sitio contiene aproximadamente 15.000 páginas de texto e fotos, sobre todo sobre la história de las Américas, Roma antigua y medieval, y el centro de Italia.
CLIC EN EL ENLACE PARA LA PÁGINA PRINCIPAL.
(La página abre en ESTA ventana.)", +" ", +" ", +" ", +"

This site comprises roughly 15,000 pages of text and photos, mostly about American history, ancient Rome, classical Antiquity, and central Italy.
CLICK HERE FOR THE HOMEPAGE.
(Opens in another window.)", +"

Ce site comporte environ 15.000 pages de texte et de photos, surtout sur Rome antique et médiévale et l\'Italie centrale.
FAIRE CLIC ICI POUR LA PAGE D\'ACCUEIL.
(S\'ouvre dans une autre fenêtre.)", +"

Questo sito contiene circa 15.000 pagine di testo e di foto, innanzitutto sulla Roma antica e medioevale e l\'Italia centrale.
CLICCARE QUI PER LA PAGINA HOME.
(Si apre in un altro pannello.)", +"

Hic situs milia paginarum
textus photographiarumque
continet, plerumque
de historia Americana,
Roma antiqua et medievali,
antiquitate classica, et Italia centrali.
CLICCARE HIC
AD PAGINAM PRINCIPALEM
VIDENDAM.

(In altera fenestra
aperietur pagina.)", +"

Deze site omvat ongeveer 15.000 pagina's tekst en foto's, meestal over de Amerikaanse geschiedenis, het oude Rome, de klassieke oudheid, en Midden-Italië.
KLIK OP DE LINK VOOR DE HOMEPAGE.
(Opent in DIT venster.)", +"

Este site contém cerca de 15.000 páginas de texto e fotos, especialmente sobre a Roma antiga e medieval, a história das Américas, e o centro da Itália.
CLIQUE NO LINK PARA A PÁGINA DE ACOLHIMENTO.
(A página abre em outra janela.)", +"

Este sitio contiene aproximadamente 15.000 páginas de texto e fotos, sobre todo sobre la história de las Américas, Roma antigua y medieval, y el centro de Italia.
HAGA CLIC AQUÍ PARA LA PÁGINA PRINCIPAL.
(La página abre en una otra ventana.)", +" ", +" ", +" ", +"

Click here to send me an e-mail; you\'ll first get a FAQ covering some of the commoner questions.
(Opens in another window)", +FClickHere+"m\'envoyer une e-mail; vous verrez d\'abord un FAQ traitant de quelques questions couramment posées.
(S'ouvre dans une autre fenêtre)", +IClickHere+"mandarmi un\' e-mail; vedrete prima un FAQ trattando di alcune frequenti questioni.
(Si apre in un altro pannello)", +"

Click here to send me an e-mail; you\'ll first get a FAQ covering some of the commoner things people write me about.
(Altera in fenestra aperietur)", +" ", +" ", +" ", +" ", +" ", +" ", +EClickHere+"the appropriate section of this page.
LET THE PAGE LOAD COMPLETELY BEFORE CLICKING.", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +EClickHere+"the author\'s note at the bottom of this page.", +" ", +IClickHere+"la nota
dell\' autore a piè di pagina.", +" ", +" ", +EClickHere+"the editor\'s note at the bottom of this page.", +FClickHere+"la note de l\'éditeur au bas de cette page.", +IClickHere+"la nota
dell\' editore a piè di pagina.", +"

Cliccare hic ad editoris notam legendam in ima pagina.", +" ", +EClickHere+"a textual note at the bottom of this page.", +" ", +IClickHere+"una nota testuale
a piè di pagina.", +" ", +" ", +EClickHere+"the Italian original
of this passage.
(Opens in another window)", +" ", +" ", +" ", +" ", +"

Click here to go one level up:
Opens in THIS window.", +"

Faire clic ici
pour remonter d\'un niveau
(S\'ouvre dans CETTE fenêtre.)", +"

Fare clic qui per risalire un livello
(Si apre in QUESTO pannello.)", +"

Cliccare hic ad paginam superiorem ingrediendam
(HAC in fenestra aperietur.)", +SClickHere+"ir al nivel superior
(Abre en ESTA ventana)", +" ", +" ", +" ", +" ", +" ", +"

Click here to go one level up
(Opens in another window.)", +FClickHere+"remonter d\'un niveau
(S\'ouvre dans une autre fenêtre.)", +"

Fare clic qui per risalire un livello
(Si apre in un altro pannello.)", +"

Cliccare hic ad paginam superiorem ingrediendam
(Altera in fenestra aperietur.)", +PClickHere+"subir um nivel
(Abre em uma outra janela)", +SClickHere+"ir al nivel superior
(Abre en una otra ventana)", +" ", +" ", +" ", +" ", +EClickHere+"the passage
in an English translation of Sallust,
linked to the Latin text.
(Opens in another window)", +FClickHere+"le passage
dans une traduction anglaise de Salluste,
lié au texte latin.
(S'ouvre dans une autre fenêtre)", +IClickHere+"il passo
in una traduzione inglese di Sallustio,
collegato al testo latino.
(Si apre in un altro pannello)", +" ", +" ", +EClickHere+"the passage
in the Latin text of Sallust,
linked to an English translation.
(Opens in another window)", +FClickHere+"le passage
dans le texte latin de Salluste,
lié à une traduction anglaise.
(S'ouvre dans une autre fenêtre)", +IClickHere+"il passo
nel testo latino di Sallustio,
collegato ad una traduzione in inglese.
(Si apre in un altro pannello)", +" ", +" ", +EClickHere+"the passage
in an English translation of Tacitus.
(Opens in another window)", +FClickHere+"le passage
dans une traduction anglaise de Tacite.
(S'ouvre dans une autre fenêtre)", +IClickHere+"il passo
in una traduzione inglese di Tacito.
(Si apre in un altro pannello)", +" ", +"

Haga clic aquí por el pasaje
en una traducción inglesa de Tacito.
(Abre en una otra ventana)", +EClickHere+"the passage
in the Latin text of Tacitus,
linked to an English translation.
(Opens in another window)", +FClickHere+"le passage
dans le texte latin de Tacite,
lié à une traduction anglaise.
(S'ouvre dans une autre fenêtre)", +IClickHere+"il passo
nel testo latino di Tacito,
collegato ad una traduzione in inglese.
(Si apre in un altro pannello)", +" ", +"

Haga clic aquí por el pasaje
en el texto latino de Tacito.
(Abre en una otra ventana)", +EClickHere+"the Bible verse
in Greek, Latin, English facing columns.
(Offsite, opens in another window)", +" ", +" ", +" ", +PClickHere+"o versículo da Bíblia
em colunas enfrentadas: grego, latim, inglês.
(Offsite: a página abre em uma outra janela)", +"

CULLUM NUMBER
(If you don\'t know what this is,
click here for an explanation
on the Cullum\'s Register homepage:
opens in another window.)
", +"

CLASS RANK
From 1818 to 1977, within each Class graduates are listed in order of their general merit: academic and military standing combined.", +" ", +" ", +" ", +"

(De pagina opent in DIT venster)", +"

(De pagina opent in een ander venster)", +"

(Offsite: de pagina opent in een ander venster)", +"

(Deze foto of een verwante foto, opent in een ander venster)", +"

(De foto wordt geopend in een ander venster)", +"

(Elders op deze pagina)", +NClickHere+"de nota van de auteur aan de onderkant van deze pagina.", +NClickHere+"mijn nota aan de onderkant van deze pagina.", +"

Klik hier om terug te gaan
de verwijzing in de tekst.", +"

Als je niet weet waar dit over gaat,
je alleen maar een klik verwijderd van de uitleg.
(Opent in een ander venster)", +"

Klik hier om een niveau omhoog gaan.
(Opent in DIT venster)
", +"

Klik hier om een niveau omhoog gaan.
(Opent in een ander venster)
", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +EClickHere+"the passage
in a Latin translation of Aelian.
(Opens in another window)", +FClickHere+"le passage
dans une traduction latine d\'Elien.
(S'ouvre dans une autre fenêtre)", +IClickHere+"il passo
in una traduzione latina di Eliano.
(Si apre in un altro pannello)", +" ", +SClickHere+"el pasaje
en una traducción latina de Eliano.
(Abre en una otra ventana)", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +EClickHere+"the passage
in the Greek text.
(Opens in another window)", +FClickHere+"le passage du texte grec.
(S'ouvre dans une autre fenêtre)", +IClickHere+"il passo dell\' autore greco.
(Si apre in un altro pannello)", +" ", +SClickHere+"el pasaje del autor griego.
(Abre en una otra ventana)", +EClickHere+"the passage
in the Greek text,
linked to a translation
(Opens in another window)", +FClickHere+"le passage du texte grec.
liée à une traduction(S'ouvre dans une autre fenêtre)", +IClickHere+"il passo dell\' autore greco.
collegato ad una traduzione
(Si apre in un altro pannello)", +" ", +SClickHere+"el pasaje del autor griego.
con enlace a una traducción(Abre en una otra ventana)", +EClickHere+"the passage
in the Greek text.
(Offsite: opens in another window)", +FClickHere+"le passage du texte grec.
(Hors site: s\'ouvre dans une autre fenêtre)", +IClickHere+"il passo dell\' autore greco.
(Fuori sito: si apre in un altro pannello)", +" ", +SClickHere+"el pasaje del autor griego.
(Fuera del sitio: abre en una otra ventana)", +EClickHere+"the passage
in the Greek text,
linked to a translation
(Offsite: opens in another window)", +FClickHere+"le passage du texte grec.
liée à une traduction(Hors site: s\'ouvre dans une autre fenêtre)", +IClickHere+"il passo dell\' autore greco.
collegato ad una traduzione
(Fuori sito: si apre in un altro pannello)", +" ", +SClickHere+"el pasaje del autor griego.
con enlace a una traducción(Fuera del sitio: abre en una otra ventana)", +EClickHere+"the passage
in an English translation
linked to the original Greek.
(Opens in another window)

", +FClickHere+"le passage
en traduction anglaise
lié au texte grec.
(S'ouvre dans une autre fenêtre)", +IClickHere+"il passo
in una traduzione inglese
collegato al testo greco.
(Si apre in un altro pannello)
", +"

Cliccare hic ad legendum
in anglica versione
ad Graecum textum conexum.
(Altera in fenestra aperietur pagina)", +SClickHere+"este pasaje
en una traducción inglesa
con enlace al texto greco.
(Abre en una otra ventana)", +EClickHere+"the passage
in an English translation
linked to the original Greek.
(Offsite, opens in another window)", +FClickHere+"le passage
en traduction anglaise
lié au texte grec.
(Hors site, s\'ouvre dans une autre fenêtre)", +IClickHere+"il passo
in una traduzione inglese
collegato al testo greco.
(Fuori sito, si apre in un altro pannello)", +"

Cliccare hic ad legendum
in anglica versione
ad Graecum textum conexum.
(Apud alios, altera in fenestra aperietur pagina)", +SClickHere+"este pasaje
en una traducción inglesa
con enlace al texto greco.
(Fuera del sitio, abre en una otra ventana)", +EClickHere+"the passage
in the original Greek
linked to an English translation.
(Opens in another window)", +FClickHere+"le passage
dans le texte grec
lié à une traduction anglaise.
(S'ouvre dans une autre fenêtre)", +IClickHere+"il passo
nel testo greco
collegato ad una traduzione inglese.
(Si apre in un altro pannello)", +"

Cliccare hic ad legendum
Graecum textum
ad anglicam versionem conexum.
(Altera in fenestra aperietur pagina)", +SClickHere+"este pasaje
en el texto greco
con enlace a una traducción inglesa.
(Abre en una otra ventana)", +EClickHere+"the passage
in the original Greek
linked to an English translation.
(Offsite, opens in another window)", +FClickHere+"le passage
dans le texte grec
lié à une traduction anglaise.
(Hors site, s\'ouvre dans une autre fenêtre)", +IClickHere+"il passo
nel testo greco
collegato ad una traduzione inglese.
(Fuori sito, si apre in un altro pannello)", +"

Cliccare hic ad legendum
Graecum textum
ad anglicam versionem conexum.
(Apud alios, altera in fenestra aperietur pagina)", +SClickHere+"este pasaje
en el texto greco
con enlace a una traducción inglesa.
(Fuera del sitio, abre en una otra ventana)", +EClickHere+"the passage in Plutarch
in an English translation
linked to the original Greek
(Opens in another window)", +FClickHere+"le passage dans Plutarque
en traduction anglaise
lié au texte grec(S\'ouvre dans une autre fenêtre)", +IClickHere+"il passo in Plutarco

in una traduzione inglese
collegato al testo greco.
(Si apre in un altro pannello)", +" ", +SClickHere+"el pasaje en Plutarco
en una traducción inglesa
con enlace al texto greco.
(en inglés, abre en una otra ventana)", +EClickHere+"the passage in the Res Gestae
— parallel texts:
Latin, Greek, English
(Opens in another window)", +" ", +" ", +" ", +" ", +"

Link is to the Livius.Org website:
page opens in
another window.
", +EClickHere+"Jona Lendering\'s note at the bottom of this page.", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +EClickHere+"the passage
in the original Latin
linked to a French translation.
(Opens in another window)", //"THIS IS WHAT REALLY BELONGS IN 510:

Click here for the passage
in the Latin text of Suetonius,
linked to an English translation.
(Opens in another window)", +FClickHere+"le passage
dans le texte latin
lié à une traduction française.
(S'ouvre dans une autre fenêtre)", +IClickHere+"il passo
nel testo latino
collegato ad una traduzione francese.
(Si apre in un altro pannello)
", //"THIS IS WHAT REALLY BELONGS IN 512:
Cliccare qui per il passo
nel testo latino di Svetonio,
collegato a traduzioni in inglese e francese.
(Si apre in un altro pannello)", +"

Cliccare hic ad legendum
Latinum textum
ad anglicam versionem conexum.
(Altera in fenestra aperietur pagina)", +SClickHere+"este pasaje
en el texto latino
con enlace a una traducción francesa.
(Abre en una otra ventana)", +EClickHere+"the passage
in the original Latin
linked to a French translation.
(Offsite, opens in another window)

", //"THIS IS WHAT REALLY BELONGS IN 515:
Click here for the passage
in the Latin text of Suetonius,
linked to an English translation.
(Opens in another window)", +FClickHere+"le passage
dans le texte latin
lié à une traduction française.
(Hors site, s\'ouvre dans une autre fenêtre)", +IClickHere+"il passo
nel testo latino
collegato ad una traduzione francese.
(Fuori sito, si apre in un altro pannello)
", //"THIS IS WHAT REALLY BELONGS IN 517:
Cliccare qui per il passo
nel testo latino di Svetonio,
collegato a traduzioni in inglese e francese.
(Si apre in un altro pannello)", +"

Cliccare hic ad legendum
Latinum textum
ad Francogallicam versionem conexum.
(Apud alios, altera in fenestra aperietur pagina)", +SClickHere+"este pasaje
en el texto latino
con enlace a una traducción francesa.
(Fuera del sitio, abre en una otra ventana)", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +"

THIS IS THE PAGE YOU\'RE ON.", +"

C\'EST LA PAGE QUE VOUS AVEZ DEVANT LES YEUX.", +"

QUESTA È LA PAGINA CHE AVETE DAVANTI AGLI OCCHI.", +" ", +" ", +"

ACTIVE AREAS:
WHEREVER THIS PROMPT
IS REPLACED BY ANOTHER", +"

ZONES ACTIVES :
PARTOUT OU CE MESSAGE EST REMPLACE PAR UN AUTRE", +"

AREE ATTIVE:
OVUNQUE QUESTO MESSAGGIO VIENE SOSTITUITO DA UN\' ALTRO", +"

Click here for the homepage of the
U. S. MILITARY ACADEMY.
(Offsite: opens in another window.)", +"

Click here for the homepage of the
U. S. NAVAL ACADEMY.
(Offsite: opens in another window.)", +"

Click here for the homepage of the
U. S. COAST GUARD ACADEMY.
(Offsite: opens in another window.)", + +" " //THIS LAST LINE MUST NOT END WITH A COMMA +); + +// Array with captions. +var ol_caps = new Array("Array Caption 0", "Array Caption 1"); + + +//\//////////////////////////////// +//\ Thayer CONSTANTS: +//\//////////////////////////////// + +var CarelessLoeb50 = "

The Loeb edition —
thru 50 years of reprintings! —
has "; +var CarelessLoeb60 = "
The Loeb edition —
thru 60 years of reprintings! —
has "; +var CarelessLoeb70 = "
The Loeb edition —
thru 70 years of reprintings! —
has "; +var CarelessLoeb80 = "
The Loeb edition —
thru 80 years of reprintings! —
has "; +var CarelessLoeb90 = "
The Loeb edition —
thru 90 years of reprintings! —
has "; +var CarelessLoebX = "
The Loeb edition —
thru many years of reprintings! —
has "; +var Cullum0 = ":
This is a link
to another entry
in Cullum\'s Register.
(Opens in THIS window)
"; +var Cullum1 = "
USMA, Class of "; +var Cullum2 = ":
This is a link to the biographical summary
in Cullum\'s Register.
(Opens in another window)
"; +var CullumR1 = "

CLASS RANK
— of "; +var CullumR2 = " in the Class"; + + +// ENGLISH: +var Eng2 = "
(English, opens in another window)"; +var EngSearch = "
then search for
"; + + +// FRENCH: +// var Fr0 = "

(La page s\'ouvre dans CETTE fenêtre)"; +// var Fr1 = "

(La page s\'ouvre dans une autre fenêtre)"; +// var Fr2 = "

Le lien est hors site :
la page s\'ouvre
dans une autre fenêtre
"; +// var Fr5 = "

(Ailleurs sur cette page)"; +var FrCullum0 = " :
Ceci est un lien à la notice biographique
dans Cullum\'s Register.
(S\'ouvre dans CETTE fenêtre)

"; +var FrCullum1 = "
USMA, Promotion de "; +var FrCullum2 = " :
Ceci est un lien à la notice biographique
dans Cullum\'s Register.
(S\'ouvre dans une autre fenêtre)
"; +var FrCullumR1 = "

CLASS RANK
— sur "; +var FrCullumR2 = " dans la Promotion"; +var FrGk2 = "
(Grec s\'ouvre dans une autre fenêtre)"; +var FrGkSearch = "
puis chercher
"; +var FrLat2 = "
(Latin, s\'ouvre dans une autre fenêtre)"; +var FrLatSearch = "
puis chercher
"; + + +// GREEK: +var Gk2 = "
(Greek, opens in another window)"; +var GkSearch = "
then search for
"; + + +// ITALIAN: +var It5 = "

(Altrove su questa pagina)"; +var ItGk2 = "
(in Greco, apre in un altro pannello)"; +var ItGkSearch = "
poi cercare
"; +var ItLat2 = "
(in Latino, apre in un altro pannello)"; +var ItLatSearch = "
poi cercare
"; + + +// LATIN: +var Lat2 = "
(Latin, opens in another window)"; +var LatSearch = "
then search for
"; +var RedSearch = "
then search for the word or passage in red"; + + +// SPANISH: +var SpGk2 = "
(Griego, abre en una otra ventana)"; +var SpGkSearch = "
pues buscar
"; +var SpLat2 = "
(Latín, abre en una otra ventana)"; +var SpLatSearch = "
pues buscar
"; + +//////////////////////////////////// +// END CONFIGURATION +//////////////////////////////////// + + + +//////////////////////////////////// +// INIT +//////////////////////////////////// + + +// Runtime variables init. Used for runtime only, don't change, not for config! +var o3_text = ""; +var o3_cap = ""; +var o3_sticky = 0; +var o3_background = ""; +var o3_close = "Close"; +var o3_hpos = RIGHT; +var o3_offsetx = 2; +var o3_offsety = -3; +var o3_fgcolor = ""; +var o3_bgcolor = ""; +var o3_textcolor = ""; +var o3_capcolor = ""; +var o3_closecolor = ""; +var o3_width = 100; +var o3_border = 1; +var o3_status = ""; +var o3_autostatus = 0; +var o3_height = -1; +var o3_snapx = 0; +var o3_snapy = 0; +var o3_fixx = -1; +var o3_fixy = -1; +var o3_fgbackground = ""; +var o3_bgbackground = ""; +var o3_padxl = 0; +var o3_padxr = 0; +var o3_padyt = 0; +var o3_padyb = 0; +var o3_fullhtml = 0; +var o3_vpos = ABOVE; +var o3_aboveheight = 3; +var o3_capicon = ""; +var o3_textfont = "Verdana,Arial,Helvetica"; +var o3_captionfont = "Verdana,Arial,Helvetica"; +var o3_closefont = "Verdana,Arial,Helvetica"; +var o3_textsize = "1"; +var o3_captionsize = "1"; +var o3_closesize = "1"; +var o3_frame = self; +var o3_timeout = 0; +var o3_timerid = 0; +var o3_allowmove = 0; +var o3_function = Function(); +var o3_delay = 0; +var o3_delayid = 0; +var o3_hauto = 0; +var o3_vauto = 0; + +// OTHER THAYER VARIABLES +var BadF = "
"; +var GreekF = "
"; +var LatinF = "
"; +var SearchF = "
"; + + + +var SourceErr = "

The printed text has
"; +var SourceOm = "

The printed text omits
"; +var SourceOmL = "

The printed text omits
"; +var SourceOmG = "

The printed text omits
"; +var SourceOm0 = "

The printed text
omits this."; +var SourceOm1 = "

The printed text
omits this word."; +var SourceOm2 = "

The printed text
omits these words."; + + + +var FrSourceErr = "

Le texte imprimé porte
"; +var FrSourceOm = "

Le texte imprimé omet
"; +var FrSourceOmL = "

Le texte imprimé omet
"; +var FrSourceOmG = "

Le texte imprimé omet
"; + +var FrSourceOm1 = "

Le texte imprimé omet ce mot."; +var FrSourceOm2 = "

Le texte imprimé omet ces mots."; + + + +var ItSourceErr = "

Il testo stampato reca
"; +var ItSourceOm = "

Il testo stampato omette
"; +var ItSourceOmL = "

Il testo stampato omette
"; +var ItSourceOmG = "

Il testo stampato omette
"; +var ItSourceOm0 = "

Il testo stampato
omette questo."; +var ItSourceOm1 = "

Il testo stampato
omette questa parola."; +var ItSourceOm2 = "

Il testo stampato
omette queste parole."; + + + +var NeSourceErr = "

In de gedrukte tekst leest
"; +var NeSourceOm = "

De gedrukte tekst weglaat
"; + + + + + + + + +var PgSourceOm0 = "

O texto impresso omite isso."; +var PgSourceErr = "

No texto impresso lê‑se
"; +var PgSourceOm = "

O texto impresso omite
"; +var PgSourceOmL = "

O texto impresso omite
"; +var PgSourceOmG = "

O texto impresso omite
"; + + + + + +var SpSourceErr = "

En el texto imprimido
se lee
"; +var SpSourceOm = "

El texto imprimido omite
"; +var SpSourceOmL = "

El texto imprimido omite
"; +var SpSourceOmG = "

El texto imprimido omite
"; + +var MyDiaryErr = "

In my diary, I wrote
"; + + + + +var SourceErrMe = "

I actually wrote
"; +var SourceOmMe = "

I omitted
"; + +var DivergenceFromLatin = "

The Latin text onsite is not the one on which this translation is based. It reads
"; +var DivergenceFromGreek = "

The Latin text onsite is not the one on which this translation is based. It reads
"; +var DivergenceInEnglish = "

The English translation onsite is not based on this text. It reads
"; + +var CloseF = ""; +var USMAPromptWidth = 205; +var USNAPromptWidth = 205; +var USCGAPromptWidth = 205; +var PDFPromptWidth = 216; +var DiaryErr = "

The diary actually reads
"; +var DiaryOm = "

The diary omits
"; + +var Ru2 = "

Ссылка выключен сайт:
страница открывается в другом окне
"; + + + +// THAYER'S ARRAY. (add 285 for the linenum of the corresponding text) +var ThisPhoto = 3; +var Photo = 4; +var OnPage = 5; +var Note = 6; +var MyNote = 7; +var BackRef = 8; +var Glossary = 9; + +var Ca0 = 420; var CaWidth0 = 210; +var Ca1 = 421; var CaWidth1 = 210; +var Ca2 = 422; var CaWidth2 = 140; +var CaThisPhoto = 423; var CaThisPhotoWidth = 180; +var CaPhoto = 424; +var CaOnPage = 425; var CaOnPageWidth = 150; +var CaNote = 426; +var CaMyNote = 427; +var CaBackRef = 428; +var CaGlossary = 429; + +var Fr0 = 10; var FrWidth0 = 180; +var Fr1 = 11; var FrWidth1 = 210; +var Fr2 = 12; +var FrThisPhoto = 13; +var FrPhoto = 14; +var FrOnPage = 15; +var FrNote = 16; +var FrMyNote = 17; +var FrBackRef = 18; +var FrGlossary = 19; + +var Ge0 = 20; +var Ge1 = 21; +var Ge2 = 22; +var GeThisPhoto = 23; +var GePhoto = 24; +var GeOnPage = 25; +var GeNote = 26; +var GeMyNote = 27; +var GeBackRef = 28; +var GeGlossary = 29; + +var It0 = 30; var ItWidth0 = 210; +var It1 = 31; var ItWidth1 = 210; +var It2 = 32; var ItWidth2 = 210; +var ItThisPhoto = 33; var ItThisPhotoWidth = 180; +var ItPhoto = 34; +var ItOnPage = 35; var ItOnPageWidth = 150; +var ItNote = 36; +var ItMyNote = 37; +var ItBackRef = 38; +var ItGlossary = 39; + +var La0 = 40; +var La1 = 41; +var La2 = 42; +var LaThisPhoto = 43; +var LaPhoto = 44; +var LaOnPage = 45; +var LaNote = 46; +var LaMyNote = 47; +var LaGlossary = 49; + +var Sp0 = 50; var SpWidth0 = 210; +var Sp1 = 51; var SpWidth1 = 210; +var Sp2 = 52; var SpWidth2 = 140; +var SpThisPhoto = 53; var SpThisPhotoWidth = 180; +var SpPhoto = 54; +var SpOnPage = 55; var SpOnPageWidth = 150; +var SpNote = 56; +var SpMyNote = 57; +var SpBackRef = 58; +var SpGlossary = 59; + +var Pt0 = 90; var PtWidth0 = 210; +var Pt1 = 91; var PtWidth1 = 210; +var Pt2 = 92; var PtWidth2 = 140; +var PtThisPhoto = 93; var PtThisPhotoWidth = 180; +var PtPhoto = 94; +var PtOnPage = 95; var PtOnPageWidth = 190; +var PtNote = 96; +var PtMyNote = 97; +var PtBackRef = 98; +var PtGlossary = 99; + +var Smith0 = 60; var SmithWidth0 = 200; +var FrSmith0 = 61; +var ItSmith0 = 62; +var SpSmith0 = 64; +var Smith1 = 65; var SmithWidth1 = 200; +var FrSmith1 = 66; +var ItSmith1 = 67; +var SpSmith1 = 69; + +var Glossary0 = 70; +var FrGlossary0 = 71; +var ItGlossary0 = 72; + +var Glossary2 = 75; +var FrGlossary2 = 76; +var ItGlossary2 = 77; + +var SmithSub0 = 80; +var FrSmithSub0 = 81; +var ItSmithSub0 = 82; +var SpSmithSub0 = 84; + +var SmithSub1 = 85; var SmithSubWidth1 = 190; +var FrSmithSub1 = 86; +var ItSmithSub1 = 87; +var SpSmithSub1 = 89; + +var XMarksTheSpot = 790; +var FrXMarksTheSpot = 791; +var ItXMarksTheSpot = 792; + +var ActiveAreas = 795; +var FrActiveAreas = 796; +var ItActiveAreas = 797; + +var USMA = 798; +var USNA = 799; +var USCGA = 800; + +var SmithHome = 100; +var FrSmithHome = 101; +var ItSmithHome = 102; +var SpSmithHome = 104; +var TextOnPage = 106; +var SmithHome0 = 107; +var DarembergHome = 108; +var DarembergHome0 = 109; + +var Platner0 = 110; +var FrPlatner0 = 111; +var ItPlatner0 = 112; +var LaPlatner0 = 113; +var SpPlatner0 = 114; +var Platner1 = 115; +var FrPlatner1 = 116; +var ItPlatner1 = 117; +var LaPlatner1 = 118; +var SpPlatner1 = 119; + +var PlatnerPhoto0 = 120; +var FrPlatnerPhoto0 = 121; +var ItPlatnerPhoto0 = 122; +var LaPlatnerPhoto0 = 123; +var SpPlatnerPhoto0 = 124; +var PlatnerPhoto1 = 125; +var FrPlatnerPhoto1 = 126; +var ItPlatnerPhoto1 = 127; +var LaPlatnerPhoto1 = 128; +var SpPlatnerPhoto1 = 129; + +var PlatnerSub0 = 130; +var FrPlatnerSub0 = 131; +var ItPlatnerSub0 = 132; +var SpPlatnerSub0 = 134; +var PlatnerSub1 = 135; +var FrPlatnerSub1 = 136; +var ItPlatnerSub1 = 137; +var SpPlatnerSub1 = 139; + +var CompleteWork0 = 140; +var FrCompleteWork0 = 141; +var ItCompleteWork0 = 142; +var SpCompleteWork0 = 144; +var CompleteWork1 = 145; +var FrCompleteWork1 = 146; +var ItCompleteWork1 = 147; +var SpCompleteWork1 = 149; + +var Armellini0 = 150; +var FrArmellini0 = 151; +var ItArmellini0 = 152; +var SpArmellini0 = 154; +var Armellini1 = 155; +var FrArmellini1 = 156; +var ItArmellini1 = 157; +var SpArmellini1 = 159; + +var Huelsen0 = 160; +var FrHuelsen0 = 161; +var ItHuelsen0 = 162; +var SpHuelsen0 = 164; +var Huelsen1 = 165; +var FrHuelsen1 = 166; +var ItHuelsen1 = 167; +var SpHuelsen1 = 169; + +var RomeChurch0 = 170; +var FrRomeChurch0 = 171; +var ItRomeChurch0 = 172; +var SpRomeChurch0 = 174; +var RomeChurch1 = 175; +var FrRomeChurch1 = 176; +var ItRomeChurch1 = 177; +var SpRomeChurch1 = 179; + +var Daremberg0 = 180; +var FrDaremberg0 = 181; +var ItDaremberg0 = 182; +var SpDaremberg0 = 184; +var Daremberg1 = 185; +var FrDaremberg1 = 186; +var ItDaremberg1 = 187; +var SpDaremberg1 = 189; + +var Page0 = 190; +var FrPage0 = 191; +var ItPage0 = 192; +var LaPage0 = 193; +var SpPage0 = 194; +var Page1 = 195; +var FrPage1 = 196; +var ItPage1 = 197; +var LaPage1 = 198; +var SpPage1 = 199; + +var Pages0 = 200; +var FrPages0 = 201; +var ItPages0 = 202; +var LaPages0 = 203; +var SpPages0 = 204; +var Pages1 = 205; +var FrPages1 = 206; +var ItPages1 = 207; +var LaPages1 = 208; +var SpPages1 = 209; + +var ChurchPage0 = 210; +var FrChurchPage0 = 211; +var ItChurchPage0 = 212; +var LaChurchPage0 = 213; +var SpChurchPage0 = 214; +var ChurchPage1 = 215; +var FrChurchPage1 = 216; +var ItChurchPage1 = 217; +var LaChurchPage1 = 218; +var SpChurchPage1 = 219; + +var ChurchPages0 = 220; +var FrChurchPages0 = 221; +var ItChurchPages0 = 222; +var LaChurchPages0 = 223; +var SpChurchPages0 = 224; +var ChurchPages1 = 225; +var FrChurchPages1 = 226; +var ItChurchPages1 = 227; +var LaChurchPages1 = 228; +var SpChurchPages1 = 229; + +var Town0 = 230; +var FrTown0 = 231; +var ItTown0 = 232; +var LaTown0 = 233; +var SpTown0 = 234; +var Town1 = 235; +var FrTown1 = 236; +var ItTown1 = 237; +var LaTown1 = 238; +var SpTown1 = 239; + +var EPlusL = 240; +var FrEPlusL = 241; +var ItEPlusL = 242; +var SpEPlusL = 244; +var EPlusL2 = 245; +var FrEPlusL2 = 246; +var ItEPlusL2 = 247; +var LaEPlusL2 = 248; +var SpEPlusL2 = 249; + +var LPlusE = 250; +var FrLPlusE = 251; +var ItLPlusE = 252; +var SpLPlusE = 254; +var LPlusE2 = 255; +var FrLPlusE2 = 256; +var ItLPlusE2 = 257; +var SpLPlusE2 = 259; + +var Pliny = 260; +var FrPliny = 261; +var ItPliny = 262; +var SpPliny = 264; + +var Ptolemy = 265; +var FrPtolemy = 266; +var ItPtolemy = 267; +var LaPtolemy = 268; + +var Ammian = 270; +var FrAmmian = 271; +var ItAmmian = 272; + +var Appian = 275; +var FrAppian = 276; +var ItAppian = 277; + +var Dio = 280; +var FrDio = 281; +var ItDio = 282; +var SpDio = 284; + +var Plutarch = 285; var PlutarchWidth = 230; +var FrPlutarch = 286; +var ItPlutarch = 287; +var SpPlutarch = 289; + +var Polybius = 290; +var FrPolybius = 291; +var ItPolybius = 292; +var LaPolybius = 293; + +var Strabo = 295; +var FrStrabo = 296; +var ItStrabo = 297; +var LaStrabo = 298; + +var Chiesa0 = 300; +var Chiesa1 = 301; +var Artista0 = 302; +var Artista = 303; +var Catalogo = 304; +var Pianta = 305; +var QuadroPianta = 306; +var ChiesaNelTesto = 307; +var ETitiArtista0 = 308; +var ETitiArtista = 309; + +var MySite0 = 310; +var FrMySite0 = 311; +var ItMySite0 = 312; +var SpMySite0 = 314; +var MySite1 = 315; +var FrMySite1 = 316; +var ItMySite1 = 317; +var SpMySite1 = 319; + +var MyMidSite0 = 320; +var FrMyMidSite0 = 321; +var ItMyMidSite0 = 322; +var SpMyMidSite0 = 324; +var MyMidSite1 = 325; +var FrMyMidSite1 = 326; +var ItMyMidSite1 = 327; +var SpMyMidSite1 = 329; + +var MyBigSite0 = 330; +var FrMyBigSite0 = 331; +var ItMyBigSite0 = 332; +var SpMyBigSite0 = 334; +var MyBigSite1 = 335; +var FrMyBigSite1 = 336; +var ItMyBigSite1 = 337; +var SpMyBigSite1 = 339; + +var MyBook0 = 340; +var FrMyBook0 = 341; +var ItMyBook0 = 342; +var LaMyBook0 = 343; +var SpMyBook0 = 344; +var MyBook1 = 345; +var FrMyBook1 = 346; +var ItMyBook1 = 347; +var LaMyBook1 = 348; +var SpMyBook1 = 349; + +var TheirSite = 350; +var FrTheirSite = 351; +var ItTheirSite = 352; +var SpTheirSite = 357; + +var LatinText = 360; +var FrLatinText = 361; +var ItLatinText = 362; +var SpLatinText = 367; + +var LatinRef1 = 370; +var FrLatinRef1 = 371; +var ItLatinRef1 = 372; +var SpLatinRef1 = 374; +var LatinTrans1 = 375; +var FrLatinTrans1 = 376; +var ItLatinTrans1 = 377; +var SpLatinTrans1 = 379; + +var LatinRef2 = 380; +var FrLatinRef2 = 381; +var ItLatinRef2 = 382; +var SpLatinRef2 = 384; +var LatinRef2PlusTranslation = 385; //KEEP. Use for texts with translations into languages other than English +var FrLatinRef2PlusTranslation = 386; +var ItLatinRef2PlusTranslation = 387; +var SpLatinRef2PlusTranslation = 389; + +var LatinPlus1 = 390; +var FrLatinPlus1 = 391; +var ItLatinPlus1 = 392; +var SpLatinPlus1 = 394; +var LatinPlus2 = 395; +var FrLatinPlus2 = 396; +var ItLatinPlus2 = 397; +var SpLatinPlus2 = 399; + +var Original1 = 400; +var FrOriginal1 = 401; +var ItOriginal1 = 402; +var LaOriginal1 = 403; +var SpOriginal1 = 404; +var Original2 = 405; +var FrOriginal2 = 406; +var ItOriginal2 = 407; +var LaOriginal2 = 408; +var SpOriginal2 = 409; + +var Translation1 = 410; +var FrTranslation1 = 411; +var ItTranslation1 = 412; +var SpTranslation1 = 414; +var Translation2 = 415; +var FrTranslation2 = 416; +var ItTranslation2 = 417; +var SpTranslation2 = 419; + +var PDF = 430; +var FrPDF = 431; +var ItPDF = 432; +var SpPDF = 434; + +var JSTOR = 435; +var FrJSTOR = 436; +var ItJSTOR = 437; +var SpJSTOR = 438; + +var BadCoding = 440; +var FrBadCoding = 441; +var ItBadCoding = 442; +var SpBadCoding = 444; +var Loud = 445; +var FrLoud = 446; +var ItLoud = 447; +var SpLoud = 448; + +var Solution = 450; +var FrSolution = 451; +var ItSolution = 452; +var SpSolution = 454; + +var Diodorus = 460; +var FrDiodorus = 461; +var ItDiodorus = 462; +var SpDiodorus = 464; + +var Herodotus = 465; +var FrHerodotus = 466; +var ItHerodotus = 467; +var SpHerodotus = 469; + +var Pausanias = 470; +var FrPausanias = 471; +var ItPausanias = 472; +var SpPausanias = 474; + +var Thucydides = 475; +var FrThucydides = 476; +var ItThucydides = 477; +var SpThucydides = 479; + +var FrontinusL = 480; +var FrFrontinusL = 481; +var ItFrontinusL = 482; +var SpFrontinusL = 484; + +var FrontinusE = 490; +var FrFrontinusF = 491; + +var Dionysius = 495; +var FrDionysius = 496; +var ItDionysius = 497; +var LaDionysius = 498; +var SpDionysius = 499; + +var Glossary0 = 500; +var FrGlossary0 = 501; +var ItGlossary0 = 502; +var SpGlossary0 = 507; + +var LatinOriginal = 510; +var FrLatinOriginal = 511; +var ItLatinOriginal = 512; +var SpLatinOriginal = 513; + +var GreekOriginal = 515; +var FrGreekOriginal = 516; +var ItGreekOriginal = 517; +var SpGreekOriginal = 518; + +var Home = 520; +var FrHome = 521; +var ItHome = 522; +var LaHome = 524; +var SpHome = 527; +var Home1 = 530; +var FrHome1 = 531; +var ItHome1 = 532; +var LaHome1 = 533; +var NeHome1 = 534; +var PtHome1 = 535; +var SpHome1 = 536; + +var Mail = 540; +var FrMail = 541; +var ItMail = 542; +var LaMail = 543; +var SpMail = 544; + +var LetLoad = 550; +var FrLetLoad = 551; +var ItLetLoad = 552; +var LaLetLoad = 553; +var SpLetLoad = 554; + +var AuNote = 560; +var ItAuNote = 562; + +var EdNote = 565; +var FrEdNote = 566; +var ItEdNote = 567; var ItEdNoteWidth = 230; + +var CritNote = 570; +var ItCritNote = 572; + +var ItalianOriginal = 575; +var FrItalianOriginal = 576; +var ItItalianOriginal = 577; +var SpItalianOriginal = 578; + +var Up = 580; +var FrUp = 581; +var ItUp = 582; +var LaUp = 583; +var SpUp = 584; +var Up1 = 590; +var FrUp1 = 591; +var ItUp1 = 592; +var LaUp1 = 593; +var PtUp1 = 594; +var SpUp1 = 595; + +var SallustE = 600; +var FrSallustE = 601; +var ItSallustE = 602; + +var SallustL = 605; +var FrSallustL = 606; +var ItSallustL = 607; + +var Tacitus = 610; +var FrTacitusE = 611; +var ItTacitusE = 612; +var SpTacitusE = 614; + +var TacitusL = 615; +var FrTacitusL = 616; +var ItTacitusL = 617; +var SpTacitusL = 619; + +var Bible = 620; +var FrBible = 621; +var ItBible = 622; +var PtBible = 624; +// var SpBible = 624; + +var CullumNo = 625; +var CullumRank = 626; + +var Ne0 = 630; var NeWidth0 = 190; +var Ne1 = 631; var NeWidth1 = 210; +var Ne2 = 632; var NeWidth2 = 140; +var NeThisPhoto = 633; var NeThisPhotoWidth = 180; +var NePhoto = 634; +var NeOnPage = 635; var NeOnPageWidth = 150; +var NeNote = 636; +var NeMyNote = 637; +var NeBackRef = 638; +var NeGlossary = 639; +var NeUp = 640; +var NeUp1 = 641; var NeUpWidth1 = 210; +var NeHome = 525; var NeHomeWidth = 240; + +var Aelian = 650; +var FrAelian = 651; +var ItAelian = 652; +var SpAelian = 654; + +var GreekRef1 = 670; +var FrGreekRef1 = 671; +var ItGreekRef1 = 672; +var SpGreekRef1 = 674; +var GreekTrans1 = 675; var GreekTransWidth1 = 240; +var FrGreekTrans1 = 676; +var ItGreekTrans1 = 677; +var SpGreekTrans1 = 679; + +var GreekRef2 = 680; +var FrGreekRef2 = 681; +var ItGreekRef2 = 682; +var SpGreekRef2 = 684; +var GreekRef2PlusTranslation = 685; //KEEP. Use for texts with translations into languages other than English +var FrGreekRef2PlusTranslation = 686; +var ItGreekRef2PlusTranslation = 687; +var SpGreekRef2PlusTranslation = 689; + +var EPlusG = 690; var EPlusGWidth = 240; +var FrEPlusG = 691; +var ItEPlusG = 692; +var LaEPlusG = 693; +var SpEPlusG = 694; +var EPlusG2 = 695; +var FrEPlusG2 = 696; +var ItEPlusG2 = 697; +var LaEPlusG2 = 698; +var SpEPlusG2 = 699; + +var GPlusE = 700; +var FrGPlusE = 701; +var ItGPlusE = 702; +var LaGPlusE = 703; +var SpGPlusE = 704; +var GPlusE2 = 705; +var FrGPlusE2 = 706; +var ItGPlusE2 = 707; +var LaGPlusE2 = 708; +var SpGPlusE2 = 709; + +var PlutarchPlusG = 710; /* var PlutarchWidth = 230; */ +var FrPlutarchPlusG = 286; +var ItPlutarchPlusG = 287; +var SpPlutarchPlusG = 289; + +var ResGestae = 715; + +var toLivius = 720; +var LenderingNote = 721; + +var EnLPlusF = 730; +var LPlusF = 731; +var ItLPlusF = 732; +var LaLPlusF = 733; +var SpLPlusF = 734; +var LPlusF2 = 735; +var FrLPlusF2 = 736; +var ItLPlusF2 = 737; +var LaLPlusF2 = 738; +var SpLPlusF2 = 739; + + +// Ссылка выключен сайт, страница открывается в другом окне. + + +// Display state variables +var o3_x = 0; +var o3_y = 0; +var o3_allow = 0; +var o3_showingsticky = 0; +var o3_removecounter = 0; + +// Our layer +var over = null; + + +// Decide browser version +var ns4 = (document.layers)? true:false; +var ns6 = (document.getElementById)? true:false; +var ie4 = (document.all)? true:false; +var ie5 = false; + +// Microsoft Stupidity Check(tm). +if (ie4) { + if (navigator.userAgent.indexOf('MSIE 5')>0) { + ie5 = true; + } + if (ns6) { + ns6 = false; + } +} + + +// Capture events, alt. diffuses the overlib function. +if ( (ns4) || (ie4) || (ns6)) { + document.onmousemove = mouseMove + if (ns4) document.captureEvents(Event.MOUSEMOVE) +} else { + Ebox = no_box; + nd = no_box; + ver3fix = true; +} + + +// Fake function for 3.0 users. +function no_box() { + return ver3fix; +} + + + +//////////////////////////////////// +// PUBLIC FUNCTIONS +//////////////////////////////////// + + +// Ebox(arg0, ..., argN) +// Loads parameters into global runtime variables. +function Ebox() { + + // Load defaults to runtime. + o3_text = ol_text; + o3_cap = ol_cap; + o3_sticky = ol_sticky; + o3_background = ol_background; + o3_close = ol_close; + o3_hpos = ol_hpos; + o3_offsetx = ol_offsetx; + o3_offsety = ol_offsety; + o3_fgcolor = ol_fgcolor; + o3_bgcolor = ol_bgcolor; + o3_textcolor = ol_textcolor; + o3_capcolor = ol_capcolor; + o3_closecolor = ol_closecolor; + o3_width = ol_width; + o3_border = ol_border; + o3_status = ol_status; + o3_autostatus = ol_autostatus; + o3_height = ol_height; + o3_snapx = ol_snapx; + o3_snapy = ol_snapy; + o3_fixx = ol_fixx; + o3_fixy = ol_fixy; + o3_fgbackground = ol_fgbackground; + o3_bgbackground = ol_bgbackground; + o3_padxl = ol_padxl; + o3_padxr = ol_padxr; + o3_padyt = ol_padyt; + o3_padyb = ol_padyb; + o3_fullhtml = ol_fullhtml; + o3_vpos = ol_vpos; + o3_aboveheight = ol_aboveheight; + o3_capicon = ol_capicon; + o3_textfont = ol_textfont; + o3_captionfont = ol_captionfont; + o3_closefont = ol_closefont; + o3_textsize = ol_textsize; + o3_captionsize = ol_captionsize; + o3_closesize = ol_closesize; + o3_timeout = ol_timeout; + o3_function = ol_function; + o3_delay = ol_delay; + o3_hauto = ol_hauto; + o3_vauto = ol_vauto; + + + + // Special for frame support, over must be reset... + if ( (ns4) || (ie4) || (ns6) ) { + o3_frame = ol_frame; + if (ns4) over = o3_frame.document.overDiv + if (ie4) over = o3_frame.overDiv.style + if (ns6) over = o3_frame.document.getElementById("overDiv"); + } + + + // What the next argument is expected to be. + var parsemode = -1; + + var ar = arguments; + + for (i = 0; i < ar.length; i++) { + + if (parsemode == 0) { + // Arg is command + if (ar[i] == INARRAY) { parsemode = INARRAY; } + if (ar[i] == CAPARRAY) { parsemode = CAPARRAY; } + if (ar[i] == STICKY) { parsemode = opt_STICKY(ar[i]); } + if (ar[i] == BACKGROUND) { parsemode = BACKGROUND; } + if (ar[i] == NOCLOSE) { parsemode = opt_NOCLOSE(ar[i]); } + if (ar[i] == CAPTION) { parsemode = CAPTION; } + if (ar[i] == LEFT) { parsemode = opt_HPOS(ar[i]); } + if (ar[i] == RIGHT) { parsemode = opt_HPOS(ar[i]); } + if (ar[i] == CENTER) { parsemode = opt_HPOS(ar[i]); } + if (ar[i] == OFFSETX) { parsemode = OFFSETX; } + if (ar[i] == OFFSETY) { parsemode = OFFSETY; } + if (ar[i] == FGCOLOR) { parsemode = FGCOLOR; } + if (ar[i] == BGCOLOR) { parsemode = BGCOLOR; } + if (ar[i] == TEXTCOLOR) { parsemode = TEXTCOLOR; } + if (ar[i] == CAPCOLOR) { parsemode = CAPCOLOR; } + if (ar[i] == CLOSECOLOR) { parsemode = CLOSECOLOR; } + if (ar[i] == WIDTH) { parsemode = WIDTH; } + if (ar[i] == BORDER) { parsemode = BORDER; } + if (ar[i] == STATUS) { parsemode = STATUS; } + if (ar[i] == AUTOSTATUS) { parsemode = opt_AUTOSTATUS(ar[i]); } + if (ar[i] == AUTOSTATUSCAP) { parsemode = opt_AUTOSTATUSCAP(ar[i]); } + if (ar[i] == HEIGHT) { parsemode = HEIGHT; } + if (ar[i] == CLOSETEXT) { parsemode = CLOSETEXT; } + if (ar[i] == SNAPX) { parsemode = SNAPX; } + if (ar[i] == SNAPY) { parsemode = SNAPY; } + if (ar[i] == FIXX) { parsemode = FIXX; } + if (ar[i] == FIXY) { parsemode = FIXY; } + if (ar[i] == FGBACKGROUND) { parsemode = FGBACKGROUND; } + if (ar[i] == BGBACKGROUND) { parsemode = BGBACKGROUND; } + if (ar[i] == PADX) { parsemode = PADX; } + if (ar[i] == PADY) { parsemode = PADY; } + if (ar[i] == FULLHTML) { parsemode = opt_FULLHTML(ar[i]); } + if (ar[i] == ABOVE) { parsemode = opt_VPOS(ar[i]); } + if (ar[i] == BELOW) { parsemode = opt_VPOS(ar[i]); } + if (ar[i] == CAPICON) { parsemode = CAPICON; } + if (ar[i] == TEXTFONT) { parsemode = TEXTFONT; } + if (ar[i] == CAPTIONFONT) { parsemode = CAPTIONFONT; } + if (ar[i] == CLOSEFONT) { parsemode = CLOSEFONT; } + if (ar[i] == TEXTSIZE) { parsemode = TEXTSIZE; } + if (ar[i] == CAPTIONSIZE) { parsemode = CAPTIONSIZE; } + if (ar[i] == CLOSESIZE) { parsemode = CLOSESIZE; } + if (ar[i] == FRAME) { parsemode = FRAME; } + if (ar[i] == TIMEOUT) { parsemode = TIMEOUT; } + if (ar[i] == FUNCTION) { parsemode = FUNCTION; } + if (ar[i] == DELAY) { parsemode = DELAY; } + if (ar[i] == HAUTO) { parsemode = opt_HAUTO(ar[i]); } + if (ar[i] == VAUTO) { parsemode = opt_VAUTO(ar[i]); } + + + } else { + if (parsemode < 0) { + // Arg is maintext, unless INARRAY + if (ar[i] == INARRAY) { + parsemode = INARRAY; + } else { + o3_text = ar[i]; + parsemode = 0; + } + } else { + // Arg is option for command + if (parsemode == INARRAY) { parsemode = opt_INARRAY(ar[i]); } + if (parsemode == CAPARRAY) { parsemode = opt_CAPARRAY(ar[i]); } + if (parsemode == BACKGROUND) { parsemode = opt_BACKGROUND(ar[i]); } + if (parsemode == CAPTION) { parsemode = opt_CAPTION(ar[i]); } + if (parsemode == OFFSETX) { parsemode = opt_OFFSETX(ar[i]); } + if (parsemode == OFFSETY) { parsemode = opt_OFFSETY(ar[i]); } + if (parsemode == FGCOLOR) { parsemode = opt_FGCOLOR(ar[i]); } + if (parsemode == BGCOLOR) { parsemode = opt_BGCOLOR(ar[i]); } + if (parsemode == TEXTCOLOR) { parsemode = opt_TEXTCOLOR(ar[i]); } + if (parsemode == CAPCOLOR) { parsemode = opt_CAPCOLOR(ar[i]); } + if (parsemode == CLOSECOLOR) { parsemode = opt_CLOSECOLOR(ar[i]); } + if (parsemode == WIDTH) { parsemode = opt_WIDTH(ar[i]); } + if (parsemode == BORDER) { parsemode = opt_BORDER(ar[i]); } + if (parsemode == STATUS) { parsemode = opt_STATUS(ar[i]); } + if (parsemode == HEIGHT) { parsemode = opt_HEIGHT(ar[i]); } + if (parsemode == CLOSETEXT) { parsemode = opt_CLOSETEXT(ar[i]); } + if (parsemode == SNAPX) { parsemode = opt_SNAPX(ar[i]); } + if (parsemode == SNAPY) { parsemode = opt_SNAPY(ar[i]); } + if (parsemode == FIXX) { parsemode = opt_FIXX(ar[i]); } + if (parsemode == FIXY) { parsemode = opt_FIXY(ar[i]); } + if (parsemode == FGBACKGROUND) { parsemode = opt_FGBACKGROUND(ar[i]); } + if (parsemode == BGBACKGROUND) { parsemode = opt_BGBACKGROUND(ar[i]); } + if (parsemode == PADX2) { parsemode = opt_PADX2(ar[i]); } // must be before PADX + if (parsemode == PADY2) { parsemode = opt_PADY2(ar[i]); } // must be before PADY + if (parsemode == PADX) { parsemode = opt_PADX(ar[i]); } + if (parsemode == PADY) { parsemode = opt_PADY(ar[i]); } + if (parsemode == CAPICON) { parsemode = opt_CAPICON(ar[i]); } + if (parsemode == TEXTFONT) { parsemode = opt_TEXTFONT(ar[i]); } + if (parsemode == CAPTIONFONT) { parsemode = opt_CAPTIONFONT(ar[i]); } + if (parsemode == CLOSEFONT) { parsemode = opt_CLOSEFONT(ar[i]); } + if (parsemode == TEXTSIZE) { parsemode = opt_TEXTSIZE(ar[i]); } + if (parsemode == CAPTIONSIZE) { parsemode = opt_CAPTIONSIZE(ar[i]); } + if (parsemode == CLOSESIZE) { parsemode = opt_CLOSESIZE(ar[i]); } + if (parsemode == FRAME) { parsemode = opt_FRAME(ar[i]); } + if (parsemode == TIMEOUT) { parsemode = opt_TIMEOUT(ar[i]); } + if (parsemode == FUNCTION) { parsemode = opt_FUNCTION(ar[i]); } + if (parsemode == DELAY) { parsemode = opt_DELAY(ar[i]); } + + } + } + } + + if (o3_delay == 0) { + return box333(); + } else { + o3_delayid = setTimeout("box333()", o3_delay); + + if (o3_sticky) { + return false; + } else { + return true; + } + } +} + + + +// Clears popups if appropriate +function nd() { + if ( o3_removecounter >= 1 ) { o3_showingsticky = 0 }; + if ( (ns4) || (ie4) || (ns6) ) { + if ( o3_showingsticky == 0 ) { + o3_allowmove = 0; + if (over != null) hideObject(over); + } else { + o3_removecounter++; + } + } + + return true; +} + + + + + + + +//////////////////////////////////// +// OVERLIB 3.33 FUNCTION +//////////////////////////////////// + + +// This function decides what it is we want to display and how we want it done. +function box333() { + + // Make layer content + var layerhtml; + + if (o3_background != "" || o3_fullhtml) { + // Use background instead of box. + layerhtml = ol_content_background(o3_text, o3_background, o3_fullhtml); + } else { + // They want a popup box. + + // Prepare popup background + if (o3_fgbackground != "") { + o3_fgbackground = "BACKGROUND=\""+o3_fgbackground+"\""; + } + if (o3_bgbackground != "") { + o3_bgbackground = "BACKGROUND=\""+o3_bgbackground+"\""; + } + + // Prepare popup colors + if (o3_fgcolor != "") { + o3_fgcolor = "BGCOLOR=\""+o3_fgcolor+"\""; + } + if (o3_bgcolor != "") { + o3_bgcolor = "BGCOLOR=\""+o3_bgcolor+"\""; + } + + // Prepare popup height + if (o3_height > 0) { + o3_height = "HEIGHT=" + o3_height; + } else { + o3_height = ""; + } + + // Decide which kinda box. + if (o3_cap == "") { + // Plain + layerhtml = ol_content_simple(o3_text); + } else { + // With caption + if (o3_sticky) { + // Show close text + layerhtml = ol_content_caption(o3_text, o3_cap, o3_close); + } else { + // No close text + layerhtml = ol_content_caption(o3_text, o3_cap, ""); + } + } + } + + // We want it to stick! + if (o3_sticky) { + o3_showingsticky = 1; + o3_removecounter = 0; + } + + // Write layer + layerWrite(layerhtml); + + // Prepare status bar + if (o3_autostatus > 0) { + o3_status = o3_text; + if (o3_autostatus > 1) { + o3_status = o3_cap; + } + } + + // When placing the layer the first time, even stickies may be moved. + o3_allowmove = 0; + + // Initiate a timer for timeout + if (o3_timeout > 0) { + if (o3_timerid > 0) clearTimeout(o3_timerid); + o3_timerid = setTimeout("cClick()", o3_timeout); + } + + // Show layer + disp(o3_status); + + // Stickies should stay where they are. + if (o3_sticky) { + o3_allowmove = 0; + return false; + } else { + return true; + } +} + + + +//////////////////////////////////// +// LAYER GENERATION FUNCTIONS +//////////////////////////////////// + +// Makes simple table without caption +function ol_content_simple(text) { + txt = "
"+text+"
"; + set_background(""); + return txt; +} + +// Makes table with caption and optional close link +function ol_content_caption(text, title, close) { + closing = ""; + if (close != "") { + closing = ""+close+""; + } + if (o3_capicon != "") { + o3_capicon = " "; + } + txt = "
"+closing+"
"+o3_capicon+title+"
"+text+"
"; + set_background(""); + return txt; +} + +// Sets the background picture, padding and lots more :) +function ol_content_background(text, picture, hasfullhtml) { + if (hasfullhtml) { + txt = text; + } else { + txt = "
"+text+"
"; + } + set_background(picture); + return txt; +} + +// Loads a picture into the div. +function set_background(pic) { + if (pic == "") { + if (ie4) over.backgroundImage = "none"; + if (ns6) over.style.backgroundImage = "none"; + } else { + if (ns4) { + over.background.src = pic; + } else if (ie4) { + over.backgroundImage = "url("+pic+")"; + } else if (ns6) { + over.style.backgroundImage = "url("+pic+")"; + } + } +} + + + +//////////////////////////////////// +// HANDLING FUNCTIONS +//////////////////////////////////// + + +// Displays the popup +function disp(statustext) { + if ( (ns4) || (ie4) || (ns6) ) { + if (o3_allowmove == 0) { + placeLayer(); + showObject(over); + o3_allowmove = 1; + } + } + + if (statustext != "") { + self.status = statustext; + } +} + +// Decides where we want the popup. +function placeLayer() { + var placeX, placeY; + + // HORIZONTAL PLACEMENT + if (o3_fixx > -1) { + // Fixed position + placeX = o3_fixx; + } else { + winoffset = (ie4) ? o3_frame.document.body.scrollLeft : o3_frame.pageXOffset; + if (ie4) iwidth = o3_frame.document.body.clientWidth; + if (ns4) iwidth = o3_frame.innerWidth; // was screwed in mozilla, fixed now? + if (ns6) iwidth = o3_frame.outerWidth; + + // If HAUTO, decide what to use. + if (o3_hauto == 1) { + if ( (o3_x - winoffset) > ((eval(iwidth)) / 2)) { + o3_hpos = LEFT; + } else { + o3_hpos = RIGHT; + } + } + + // From mouse + if (o3_hpos == CENTER) { // Center + placeX = o3_x+o3_offsetx-(o3_width/2); + } + if (o3_hpos == RIGHT) { // Right + placeX = o3_x+o3_offsetx; + if ( (eval(placeX) + eval(o3_width)) > (winoffset + iwidth) ) { + placeX = iwidth + winoffset - o3_width; + if (placeX < 0) placeX = 0; + } + } + if (o3_hpos == LEFT) { // Left + placeX = o3_x-o3_offsetx-o3_width; + if (placeX < winoffset) placeX = winoffset; + } + + // Snapping! + if (o3_snapx > 1) { + var snapping = placeX % o3_snapx; + if (o3_hpos == LEFT) { + placeX = placeX - (o3_snapx + snapping); + } else { + // CENTER and RIGHT + placeX = placeX + (o3_snapx - snapping); + } + if (placeX < 0) placeX = 0; + } + } + + + + // VERTICAL PLACEMENT + if (o3_fixy > -1) { + // Fixed position + placeY = o3_fixy; + } else { + // If VAUTO, decide what to use. + if (o3_vauto == 1) { + if (ie4) iheight = o3_frame.document.body.clientHeight; + if (ns4) iheight = o3_frame.innerHeight; + if (ns6) iheight = o3_frame.outerHeight; + + iheight = (eval(iheight)) / 2; + if (o3_y > iheight) { + o3_vpos = ABOVE; + } else { + o3_vpos = BELOW; + } + } + + // From mouse + if (o3_aboveheight > 0 && o3_vpos == ABOVE) { + placeY = o3_y - (o3_aboveheight + o3_offsety); + } else { + // BELOW + placeY = o3_y + o3_offsety; + } + + // Snapping! + if (o3_snapy > 1) { + var snapping = placeY % o3_snapy; + + if (o3_aboveheight > 0 && o3_vpos == ABOVE) { + placeY = placeY - (o3_snapy + snapping); + } else { + placeY = placeY + (o3_snapy - snapping); + } + + if (placeY < 0) placeY = 0; + } + } + + + // Actually move the object. + repositionTo(over, placeX, placeY); +} + + +// Moves the layer +function mouseMove(e) { + if ( (ns4) || (ns6) ) {o3_x=e.pageX; o3_y=e.pageY;} + if (ie4) {o3_x=event.x; o3_y=event.y;} + if (ie5) {o3_x=event.x+o3_frame.document.body.scrollLeft; o3_y=event.y+o3_frame.document.body.scrollTop;} + + if (o3_allowmove == 1) { + placeLayer(); + } +} + +// The Close onMouseOver function for stickies +function cClick() { + hideObject(over); + o3_showingsticky = 0; +} + + +// Makes sure target frame has overLIB +function compatibleframe(frameid) { + if (ns4) { + if (typeof frameid.document.overDiv =='undefined') return false; + } else if (ie4) { + if (typeof frameid.document.all["overDiv"] =='undefined') return false; + } else if (ns6) { + if (frameid.document.getElementById('overDiv') == null) return false; + } + + return true; +} + + + +//////////////////////////////////// +// LAYER FUNCTIONS +//////////////////////////////////// + + +// Writes to a layer +function layerWrite(txt) { + txt += "\n"; + + if (ns4) { + var lyr = o3_frame.document.overDiv.document + + lyr.write(txt) + lyr.close() + } else if (ie4) { + o3_frame.document.all["overDiv"].innerHTML = txt + } else if (ns6) { + range = o3_frame.document.createRange(); + range.setStartBefore(over); + domfrag = range.createContextualFragment(txt); + while (over.hasChildNodes()) { + over.removeChild(over.lastChild); + } + over.appendChild(domfrag); + } +} + +// Make an object visible +function showObject(obj) { + if (ns4) obj.visibility = "show"; + else if (ie4) obj.visibility = "visible"; + else if (ns6) obj.style.visibility = "visible"; +} + +// Hides an object +function hideObject(obj) { + if (ns4) obj.visibility = "hide"; + else if (ie4) obj.visibility = "hidden"; + else if (ns6) obj.style.visibility = "hidden"; + if (o3_timerid > 0) clearTimeout(o3_timerid); + if (o3_delayid > 0) clearTimeout(o3_delayid); + o3_timerid = 0; + o3_delayid = 0; + self.status = ""; +} + +// Move a layer +function repositionTo(obj,xL,yL) { + if ( (ns4) || (ie4) ) { + obj.left = xL; + obj.top = yL; + } else if (ns6) { + obj.style.left = xL + "px"; + obj.style.top = yL+ "px"; + } +} + + + +//////////////////////////////////// +// PARSER FUNCTIONS +//////////////////////////////////// + + +// Sets text from array. +function opt_INARRAY(id) { + o3_text = ol_texts[id]; + return 0; +} + +// Sets caption from array. +function opt_CAPARRAY(id) { + o3_cap = ol_caps[id]; + return 0; +} + +// Sets stickiness. +function opt_STICKY(unused) { + o3_sticky = 1; + return 0; +} + +// Sets background picture. +function opt_BACKGROUND(file) { + o3_background = file; + return 0; +} + +// Sets use of close text. +function opt_NOCLOSE(unused) { + o3_close = ""; + return 0; +} + +// Sets caption. +function opt_CAPTION(text) { + o3_cap = text; + return 0; +} + +// Sets hpos, for LEFT, RIGHT and CENTER. +function opt_HPOS(pos) { + o3_hpos = pos; + return 0; +} + +// Sets the x offset +function opt_OFFSETX(offset) { + o3_offsetx = offset; + return 0; +} + +// Sets the y offset +function opt_OFFSETY(offset) { + o3_offsety = offset; + return 0; +} + + +// Sets the fg color +function opt_FGCOLOR(clr) { + o3_fgcolor = clr; + return 0; +} + +// Sets the bg color +function opt_BGCOLOR(clr) { + o3_bgcolor = clr; + return 0; +} + +// Sets the text color +function opt_TEXTCOLOR(clr) { + o3_textcolor = clr; + return 0; +} + +// Sets the caption color +function opt_CAPCOLOR(clr) { + o3_capcolor = clr; + return 0; +} + +// Sets the close color +function opt_CLOSECOLOR(clr) { + o3_closecolor = clr; + return 0; +} + +// Sets the popup width +function opt_WIDTH(pixels) { + o3_width = pixels; + return 0; +} + +// Sets the popup border width +function opt_BORDER(pixels) { + o3_border = pixels; + return 0; +} + +// Sets the status bar text +function opt_STATUS(text) { + o3_status = text; + return 0; +} + +// Sets that status bar text to the text +function opt_AUTOSTATUS(val) { + o3_autostatus = 1; + return 0; +} + +// Sets that status bar text to the caption +function opt_AUTOSTATUSCAP(val) { + o3_autostatus = 2; + return 0; +} + +// Sets the popup height +function opt_HEIGHT(pixels) { + o3_height = pixels; + o3_aboveheight = pixels; + return 0; +} + +// Sets the close text. +function opt_CLOSETEXT(text) { + o3_close = text; + return 0; +} + +// Sets horizontal snapping +function opt_SNAPX(pixels) { + o3_snapx = pixels; + return 0; +} + +// Sets vertical snapping +function opt_SNAPY(pixels) { + o3_snapy = pixels; + return 0; +} + +// Sets horizontal position +function opt_FIXX(pos) { + o3_fixx = pos; + return 0; +} + +// Sets vertical position +function opt_FIXY(pos) { + o3_fixy = pos; + return 0; +} + +// Sets the fg background +function opt_FGBACKGROUND(picture) { + o3_fgbackground = picture; + return 0; +} + +// Sets the bg background +function opt_BGBACKGROUND(picture) { + o3_bgbackground = picture; + return 0; +} + +// Sets the left x padding for background +function opt_PADX(pixels) { + o3_padxl = pixels; + return PADX2; +} + +// Sets the top y padding for background +function opt_PADY(pixels) { + o3_padyt = pixels; + return PADY2; +} + +// Sets the right x padding for background +function opt_PADX2(pixels) { + o3_padxr = pixels; + return 0; +} + +// Sets the bottom y padding for background +function opt_PADY2(pixels) { + o3_padyb = pixels; + return 0; +} + +// Sets that user provides full html. +function opt_FULLHTML(unused) { + o3_fullhtml = 1; + return 0; +} + +// Sets vpos, for ABOVE and BELOW +function opt_VPOS(pos) { + o3_vpos = pos; + return 0; +} + +// Sets the caption icon. +function opt_CAPICON(icon) { + o3_capicon = icon; + return 0; +} + +// Sets the text font +function opt_TEXTFONT(fontname) { + o3_textfont = fontname; + return 0; +} + +// Sets the caption font +function opt_CAPTIONFONT(fontname) { + o3_captionfont = fontname; + return 0; +} + +// Sets the close font +function opt_CLOSEFONT(fontname) { + o3_closefont = fontname; + return 0; +} + +// Sets the text font size +function opt_TEXTSIZE(fontsize) { + o3_textsize = fontsize; + return 0; +} + +// Sets the caption font size +function opt_CAPTIONSIZE(fontsize) { + o3_captionsize = fontsize; + return 0; +} + +// Sets the close font size +function opt_CLOSESIZE(fontsize) { + o3_closesize = fontsize; + return 0; +} + +// Defines which frame we should point to. +function opt_FRAME(frm) { + o3_frame = compatibleframe(frm) ? frm : ol_frame; + + if ( (ns4) || (ie4 || (ns6)) ) { + if (ns4) over = o3_frame.document.overDiv; + if (ie4) over = o3_frame.overDiv.style; + if (ns6) over = o3_frame.document.getElementById("overDiv"); + } + + return 0; +} + +// Sets the popup timeout (note: 1 sec = 1000) +function opt_TIMEOUT(maxtime) { + o3_timeout = maxtime; + return 0; +} + +// Calls an external function +function opt_FUNCTION(callme) { + o3_text = callme() + return 0; +} + +// Sets the popup delay (note: 1 sec = 1000) +function opt_DELAY(waittime) { + o3_delay = waittime; + return 0; +} + +// Sets the auto horizontal option +function opt_HAUTO(onoff) { + if (o3_hauto == 0) { + o3_hauto = 1; + } else { + o3_hauto = 0; + } + return 0; +} + +// Sets the auto vertical option +function opt_VAUTO(onoff) { + if (o3_vauto == 0) { + o3_vauto = 1; + } else { + o3_vauto = 0; + } + return 0; +} + + +//end (OF OVERLIB. OTHER ITEMS MAY FOLLOW) + + +// Opens a single window of parametered size, called "pannellino" +function makeWindow(W,H) { + if (W == null) { W = 567; } + if (H == null) { H = 378; } +W = W+16; +H = H+16; +window.open("","pannellino","width="+W+",height="+H+",innerwidth="+W+",innerheight="+H+",titlebar=no,title=no,resizable=no"); +} + +// Opens multiple windows of parametered size, each called "pannellinoN" (N = 1, 2, etc.) +// used in SMIGRA Coma +function makeWindow1(W,H,N) { + if (W == null) { W = 567; } + if (H == null) { H = 378; } +N = "pannellino"+N; +W = W+16; +H = H+16; +window.open("",N,"width="+W+",height="+H+",innerwidth="+W+",innerheight="+H+",titlebar=no,title=no,resizable=no"); +} + +// Opens a single window of parametered size, called "pannellone" +function makeWindow2(W,H) { + if (W == null) { W = 567; } + if (H == null) { H = 378; } +W = W+16; +H = H+16; +window.open("","pannellone","width="+W+",height="+H+",innerwidth="+W+",innerheight="+H+",titlebar=no,title=no,resizable=no"); +} + diff --git a/sources/book_1_files/Italy.gif b/sources/book_1_files/Italy.gif new file mode 100644 index 0000000..4e82f2c Binary files /dev/null and b/sources/book_1_files/Italy.gif differ diff --git a/sources/book_1_files/LIGHT.css b/sources/book_1_files/LIGHT.css new file mode 100644 index 0000000..e46698f --- /dev/null +++ b/sources/book_1_files/LIGHT.css @@ -0,0 +1,10 @@ +.running_title { + color: #000066 ! important; +} + .running_title .emend { + color: #0066cc ! important; + } + +.my_running_title { + color: #0066cc ! important; /* matches .emend */ +} diff --git a/sources/book_1_files/colors.css b/sources/book_1_files/colors.css new file mode 100644 index 0000000..dc4a17a --- /dev/null +++ b/sources/book_1_files/colors.css @@ -0,0 +1,2173 @@ +/* +KEEP IN THE FOLLOWING ORDER: + 1. GOOGLEMAP COLORS FIRST ▸ search for <1> + 2. PLAIN FONT COLORS NO BACKGROUNDS ▸ search for <2> + 3. PLAIN BACKGROUND COLORS ▸ search for <3> + 4. COMBINED FONT+BACKGROUND SCHEMES ▸ search for <4> +*/ + +/* +ideally: + plain color names should be for plain font colors + evocative names should be for combined schemes + */ + +/* +TABLES WITH ALTERNATING ROWS/BANDS: + Across all backgrounds and stylesheets, they are CLASS="Orvieto", + differently defined in the various stylesheets. + Model use: +E/Gazetteer/Places/America/United_States/_Topics/history/_Texts/DULOCT/Appendix*.html + */ + +/*<1>*/ + +SPAN.WalkColor { + color: #00bf40 ! important; +} + +SPAN.RideColor { + color: #cc6600 ! important; +} + +SPAN.ApproximateColor { + color: #ff99ff ! important; +} + +/*<2>*/ +/* +KEEP IN THE FOLLOWING ORDER: + 1. NAMED COLORS ▸ search for + 2. colorNNNNNN PLACEHOLDERS ▸ search for , within which: + 2a. WEBSAFE: xxyyzz with x, y, z = {0,3,6,9,C,F} + 2b. OTHER +*/ + +/**/ +.black { + color: #000000 ! important; + } + +.blue { + color: #0000ff ! important; +} + +.celadon { + color: #33CCFF ! important; + } + +.chancery { + color: #FF33FF ! important; + } + +.cordovan { + color: #993300 ! important; + } + +.fuchsia { + color: #ff00ff ! important; + } + +.green { + color: #009900 ! important; +} + +.dark_green { + color: #003300 ! important; + } + +.lawngreen { + color: #7cfc00 ! important; +} + +.light_green { + color: #33ff33 ! important; +} + + A.light_green { + background-color: inherit ! important; + color: #33ff33 ! important; + } + +.light_red { + color: #ff3333 ! important; +} + +.light_yellow { + color: #ffff33 ! important; +} + +.pale_green { + color: #ccffcc ! important; +} + + A.pale_green { + background-color: inherit ! important; + color: #ccffcc ! important; + } + +.pale_yellow { + color: #ffffcc ! important; +} + +.lemon { + color: #FFFF99 ! important; + } + +.maroon { + color: #990000 ! important; + } + +.muted { + color: #666666 ! important; + } + +.semimuted { + color: #999999 ! important; + } + +.ochre { + color: #996600 ! important; + } + +.ochre_yellow { + color: #ccad00 ! important; +} + +.orange { + color: #FFAA22 ! important; + } + +.pale_magenta { + color: #ff6699 ! important; +} + +.pale_purple { + color: #ffccff ! important; +} + + A.pale_purple { + background-color: inherit ! important; + color: #ffccff ! important; + } + +.purple { + color: #990099 ! important; + } + +.red { + color: #ff0000 ! important; +} + +.rust { + color: #CC6600 ! important; + } + +.salmon { + color: #ff6666 ! important; +} + +.USMA_gold { + color: #ffdd00 ! important; + } + +.USMA_stripes { + color: #fffb98 ! important; + } + +.violet { + color: #200080 ! important; +} + +/**/ + /**/ + /* Should eventually be replaced by mnemonic names */ + +.color001100 { + color: #001100 ! important; + } + +.color000033 { + color: #000033 ! important; + } + +.color000066 { + color: #000066 ! important; + } + +.color000099 { + color: #000099 ! important; + } + +.color0000CC { + color: #0000CC ! important; + } + +.color003333 { + color: #003333 ! important; + } + +.color003366 { + color: #003366 ! important; + } + +.color0033CC { + color: #0033CC ! important; + } + +.color006600 { + color: #006600 ! important; + } + +.color006633 { + color: #006633 ! important; + } + +.color0066CC { + color: #0066CC ! important; + } + +.color0066FF { + color: #0066FF ! important; + } + +.color00CC99 { + color: #00CC99 ! important; + } + +.color00FF99 { + color: #00FF99 ! important; + } + +.color330000 { + color: #330000 ! important; + } + +.color330033 { + color: #330033 ! important; + } + +.color333333 { + color: #333333 ! important; + } + +.color333300 { + color: #333300 ! important; + } + +.color333366 { + color: #333366 ! important; + } + +.color333399 { + color: #333399 ! important; + } + +.color3333CC { + color: #3333CC ! important; + } + +.color3333FF { + color: #3333FF ! important; + } + +.color336600 { + color: #336600 ! important; + } + +.color336633 { + color: #336633 ! important; + } + +.color3366FF { + color: #3366FF ! important; + } + +.color339900 { + color: #339900 ! important; + } + +.color339933 { + color: #339933 ! important; + } + +.color33FFFF { + color: #33FFFF ! important; + } + +.color660000 { + color: #660000 ! important; + } + +.color660033 { + color: #660033 ! important; + } + +.color660066 { + color: #660066 ! important; + } + +.color660099 { + color: #660099 ! important; + } + +.color663300 { + color: #663300 ! important; + } + +.color663333 { + color: #663333 ! important; + } + +.color6699CC { + color: #6699CC ! important; + } + +.color993333 { + color: #993333 ! important; + } + +.color996666 { + color: #996666 ! important; + } + +.color999999 { + color: #999999 ! important; + } + +.color99CCFF { + color: #99CCFF ! important; + } + +.color99FF66 { + color: #99FF66 ! important; + } + +.color99FFFF { + color: #99FFFF ! important; + } + +.colorCC0000 { + color: #CC0000 ! important; + } + +.colorCC0033 { + color: #CC0033 ! important; + } + +.colorCC0066 { + color: #CC0066 ! important; + } + +.colorCC0099 { + color: #CC0099 ! important; + } + +.colorCC00CC { + color: #CC00CC ! important; + } + +.colorCC3300 { + color: #CC3300 ! important; + } + +.colorCC6666 { + color: #CC6666 ! important; + } + +.colorCC9900 { + color: #CC9900 ! important; + } + +.colorCCCCFF { + color: #CCCCFF ! important; + } + +.colorCCFFCC { + color: #CCFFCC ! important; + } + +.colorCCFFFF { + color: #CCFFFF ! important; + } + +.colorFF0066 { + color: #FF0066 ! important; + } + +.colorFF0099 { + color: #FF0099 ! important; + } + +.colorFF3300 { + color: #FF3300 ! important; + } + +.colorFF6600 { + color: #FF6600 ! important; + } + +.colorFF9900 { + color: #FF9900 ! important; + } + +.colorFF9933 { + color: #FF9933 ! important; + } + +.colorFF9966 { + color: #FF9966 ! important; + } + +.colorFF9999 { + color: #FF9999 ! important; + } + +.colorFF99CC { + color: #FF99CC ! important; + } + +.colorFF99FF { + color: #FF99FF ! important; + } + +.colorFFCC00 { + color: #FFCC00 ! important; + } + +.colorFFCC33 { + color: #FFCC33 ! important; + } + +.colorFFCC66 { + color: #FFCC66 ! important; + } + +.colorFFCC99 { + color: #FFCC99 ! important; + } + +.colorFFCCCC { + color: #FFCCCC ! important; + } + +.colorFFFF00 { + color: #FFFF00 ! important; + } + +.colorFFFF66 { + color: #FFFF66 ! important; + } + +.colorFFFFFF { + color: #FFFFFF ! important; + } + + /**/ + +.color000090 { + color: #000090 ! important; + } + +.color002200 { + color: #002200 ! important; + } + +.color004000 { + color: #004000 ! important; + } + +.color0040B0 { + color: #0040B0 ! important; + } + +.color004400 { + color: #004400 ! important; + } + +.color004A00 { + color: #004A00 ! important; + } + +.color0060FF { + color: #0060FF ! important; + } + +.color006E3A { + color: #006E3A ! important; + } + +.color007000 { + color: #007000 ! important; + } + +.color008000 { + color: #008000 ! important; + } + +.color0080FF { + color: #0080FF ! important; + } + +.color008800 { + color: #008800 ! important; + } + +.color008C00 { + color: #008C00 ! important; + } + +.color0C3000 { + color: #0C3000 ! important; + } + +.color110000 { + color: #110000 ! important; + } + +.color110011 { + color: #110011 ! important; + } + +.color112200 { + color: #112200 ! important; + } + +.color200000 { + color: #200000 ! important; + } + +.color223344 { + color: #223344 ! important; + } + +.color330010 { + color: #330010 ! important; + } + +.color332222 { + color: #332222 ! important; + } + +.color3900D6 { + color: #3900D6 ! important; + } + +.color3900E6 { + color: #3900E6 ! important; + } + +.color400080 { + color: #400080 ! important; + } + +.color4040FF { + color: #4040FF ! important; + } + +.color410000 { + color: #410000 ! important; + } + +.color4B2700 { + color: #4B2700 ! important; + } + +.color4C1900 { + color: #4C1900 ! important; + } + +.color4C9900 { + color: #4C9900 ! important; + } + +.color5000D0 { + color: #5000D0 ! important; + } + +.color600000 { + color: #600000 ! important; + } + +.color6A0080 { + color: #6A0080 ! important; + } + +.color6F0000 { + color: #6F0000 ! important; + } + +.color800000 { + color: #800000 ! important; + } + +.color800080 { + color: #800080 ! important; + } + +.color802600 { + color: #802600 ! important; + } + +.color900000 { + color: #900000 ! important; + } + +.color903030 { + color: #903030 ! important; + } + +.color992200 { + color: #992200 ! important; + } + +.color994C4C { + color: #994C4C ! important; + } + +.color9C2973 { + color: #9C2973 ! important; + } + +.color9C6342 { + color: #9C6342 ! important; + } + +.colorA00000 { + color: #A00000 ! important; + } + +.colorAACC00 { + color: #AACC00 ! important; + } + +.colorBE5F00 { + color: #BE5F00 ! important; + } + +.colorC03A3A { + color: #C03A3A ! important; + } + +.colorCCCCDD { + color: #CCCCDD ! important; + } + +.colorD00000 { + color: #D00000 ! important; + } + +.colorD10022 { + color: #D10022 ! important; + } + +.colorD56A00 { + color: #D56A00 ! important; + } + +.colorDDDDCC { + color: #DDDDCC ! important; + } + +.colorDDDDDD { + color: #DDDDDD ! important; + } + +.colorDDDDEE { + color: #DDDDEE ! important; + } + +.colorDDDDFF { + color: #DDDDFF ! important; + } + +.colorDDFFCC { + color: #DDFFCC ! important; + } + +.colorE0FFCC { + color: #E0FFCC ! important; + } + +.colorE77300 { + color: #E77300 ! important; + } + +.colorEECC99 { + color: #EECC99 ! important; + } + +.colorEEEEEE { + color: #EEEEEE ! important; + } + +.colorEEEEFF { + color: #EEEEFF ! important; + } + +.colorEEFFFF { + color: #EEFFFF ! important; + } + +.colorFF002A { + color: #FF002A ! important; + } + +.colorFF4000 { + color: #FF4000 ! important; + } + +.colorFF5500 { + color: #FF5500 ! important; + } + +.colorFF6633 { + color: #FF6633 ! important; + } + +.colorFF7F00 { + color: #FF7F00 ! important; + } + +.colorFFAA00 { + color: #FFAA00 ! important; + } + +.colorFFBB88 { + color: #FFBB88 ! important; + } + +.colorFFDD00 { + color: #FFDD00 ! important; + } + +.colorFFDD99 { + color: #FFDD99 ! important; + } + +.colorFFDDBB { + color: #FFDDBB ! important; + } + +.colorFFDDDD { + color: #FFDDDD ! important; + } + +.colorFFDDEE { + color: #FFDDEE ! important; + } + +.colorFFEEDD { + color: #FFEEDD ! important; + } + +.colorFFEEEE { + color: #FFEEEE ! important; + } + +.colorFFFFEE { + color: #FFFFEE ! important; + } + +/*<3>*/ + +.aquawhite { + background-color: #f7fbff ! important; +} + +.bluewhite { + background-color: #f7f7ff ! important; +} + +.ecruwhite { + background-color: #fffff7 ! important; +} + +.redwhite { + background-color: #fff7f7 ! important; +} + +.bistre { + background-color: #cccc99 ! important; +} + +SPAN.bistre { + background-color: inherit ! important; + color: #cccc99 ! important; +} + +.ecru { + background-color: #ffffcc ! important; + color: #000066 ! important; +} + +SPAN.ecru { + background-color: inherit ! important; + color: #ffffcc ! important; +} + +.grey { + background-color: #cccccc ! important; +} + +SPAN.grey { + color: #cccccc ! important; +} + +.pale_grey { + background-color: #ddddee ! important; + } + +.paler_grey { + background-color: #eeeef6 ! important; + } + +.lagoon { + background-color: #99ffff ! important; + color: #000066 ! important; +} + + SPAN.lagoon { + background-color: inherit ! important; + color: #99ffff ! important; +} + +.lime { + background-color: #ccff99 ! important; +} + +.mist_green { + background-color: #e8ffe8 ! important; +} + +.mustard { + background-color: #ffcc44 ! important; +} + +.pale_blue { + background-color: #ccccff ! important; +} + SPAN.pale_blue { + background-color: inherit ! important; + color: #ccccff ! important; + } + +.hospital_wall { + background-color: #ccffcc ! important; +} + SPAN.hospital_wall { + background-color: inherit ! important; + color: #ccffcc ! important; + } + + A.hospital_wall { + background-color: inherit ! important; + color: #ccffcc ! important; + } + +.pale_red { + background-color: #ffcccc ! important; +} + SPAN.pale_red { + background-color: inherit ! important; + color: #ffcccc ! important; + } + + A.pale_red { + background-color: inherit ! important; + color: #ffcccc ! important; + } + +.pink { + background-color: #fff2ff ! important; +} + +.plaster { + background-color: #ffeedd ! important; +} + +.pumpkin { + background-color: #ff9933 ! important; +} + +.silver { + background-color: #f6f6ff ! important; +} + +.silver .emend { + color: #0066cc ! important; +} + +.sky { + background-color: #99ccff ! important; +} + SPAN.sky { + background-color: inherit ! important; + color: #99ccff ! important; + } + +.sunset { + background-color: #ffff99 ! important; +} + +.tawny { + background-color: #ffcc66 ! important; +} + + .tawny .Latin { + color: #660000 ! important; + } + + .tawny .lapis { + color: #660000 ! important; + } + + .tawny .nummus { + color: #660000 ! important; + } + + .tawny .Latin .emend { + color: #cc3399 ! important; + } + + .tawny .lapis .emend { + color: #cc3399 ! important; + } + + .tawny .nummus .emend { + color: #cc3399 ! important; + } + +.terracotta { + background-color: #ff9966 ! important; +} + +.white { + background-color: #ffffff ! important; + color: #000066 ! important; +} + + SPAN.white { + background-color: inherit ! important; + color: #ffffff ! important; + } + +/*<4>*/ + +.Acquaeortus { + background-color: #ff6666 ! important; + color: #ffffff ! important; +} + +.Air_Force { + background-color: #003366 ! important; + color: #ffffff ! important; +} + .Air_Force A { + color: #ffff33 ! important; + } + +.Algol { + background-color: #444444 ! important; + color: #ff6600 ! important; +} + + .Algol P { + color: #ff6600 ! important; + } + + .Algol .Italian { + color: #99ff99 ! important; + } + + .Algol .source { + color: #99ff99 ! important; + } + .Algol A { + color: #ffcccc ! important; + } + +.Algol2 { + background-color: #333333 ! important; + color: #ff6633 ! important; +} + + .Algol2 P { + color: #ff6633 ! important; + } + + .Algol2 .source { + color: #99ff99 ! important; + } + .Algol2 A { + color: #ffcccc ! important; + } + +.Americas { + background-color: #bbffff ! important; + color: #336633 ! important; +} + +.amphora { + background-color: #993333 ! important; + color: #ffffcc ! important; +} + + .amphora .Latin { + color: #ffff99 ! important; + } + + .amphora .lapis { + color: #ff9999 ! important; + } + + .amphora .nummus { + color: #ff9999 ! important; + } + .amphora A { + color: #33ff33 ! important; + } + +.angelica { + background-color: #99cc33 ! important; +} + +.angels { + background-color: #000099 ! important; + color: #ffff66 ! important; +} + .angels A { + color: #99ffff ! important; + } + +.Antares { + background-color: #000000 ! important; + color: #ff3300 ! important; +} + .Antares A { + color: #ffff66 ! important; + } + +.aqua { + background-color: #ccffff ! important; + color: #000066 ! important; +} + A.aqua { + background-color: inherit ! important; + color: #ccffff ! important; + } + + SPAN.aqua { + background-color: inherit ! important; + color: #ccffff ! important; + } + +.Arizona { + background-color: #ffe6cc ! important; +} + .Arizona .Italian { + color: #20bb44 ! important; + } + +.Arnhem { + background-color: #3333ff ! important; + color: #ffffff ! important; +} + + A.Arnhem { + background-color: inherit ! important; + color: #3333ff ! important; + } + + SPAN.Arnhem { + color: #ffffff ! important; + } + +.Augustus { + background-color: #660022 ! important; + color: #ffffff ! important; +} + .Augustus A { + color: #00ffcc ! important; + } + +.autumn { + background-color: #663333 ! important; + color: #ffcc99 ! important; +} + .autumn A { + color: #99ffff ! important; + } + +.autumn_gold { + background-color: #663333 ! important; + color: #ffff66 ! important; +} + +.autumn_sand { + background-color: #663333 ! important; + color: #ffffcc ! important; +} + +.azure { + background-color: #150080 ! important; + color: #ffffcc ! important; +} + +.Bonely { + background-color: #cccccc ! important; + color: #000011 ! important; +} + +.Boston_red { + color: #cc0000 ! important; +} + +.brick { + background-color: #773300 ! important; + color: #ffffff ! important; +} + + .brick .Latin { + color: #ffff99 ! important; + } + + .brick .lapis { + color: #ffff99 ! important; + } + + .brick .nummus { + color: #ffff99 ! important; + } + .brick A { + color: #33ff33 ! important; + } + +.brickstamp { + background-color: #ffcc99 ! important; +} + +.brickstamp1 { + background-color: #ffcc99 ! important; + color: #cc3333 ! important; +} + +.brickstamp2 { + background-color: #ffcc99 ! important; + color: #993333 ! important; +} + +.Britain { + background-color: #00237d ! important; + /*must be the same color as BODY in Britannia.css*/ + color: #ffffff ! important; +} + +.brown { + background-color: #330000 ! important; + color: #ffffcc ! important; +} + + .brown .Latin { + color: #ffcc66 ! important; + } + + .brown .lapis { + color: #ffcc66 ! important; + } + + .brown .nummus { + color: #ffcc66 ! important; + } + + .brown .source { + color: #99ff33 ! important; + } + + SPAN.brown { + background-color: inherit ! important; + color: #330000 ! important; + } + + SPAN.brown A { + color: #0000ff ! important; + } + .brown A { + color: #99ff99 ! important; + } + +.dark_brown { + background-color: #332222 ! important; + color: #ffffcc ! important; +} + + .dark_brown .Latin { + color: #ffcc66 ! important; + } + + .dark_brown .lapis { + color: #ffcc66 ! important; + } + + .dark_brown .nummus { + color: #ffcc66 ! important; + } + + .dark_brown .source { + color: #99ff33 ! important; + } + +.burgundy { + background-color: #330000 ! important; + color: #ffcccc ! important; +} + +.butterscotch { + background-color: #995500 ! important; + color: #ffffff ! important; +} + + .butterscotch .Latin { + color: #ffff99 ! important; + } + + .butterscotch .lapis { + color: #ffff99 ! important; + } + + .butterscotch .nummus { + color: #ffff99 ! important; + } + .butterscotch A { + color: #33ff33 ! important; + } + +.cadet_grey { + background-color: #a5a6bb ! important; + color: #000066 ! important; +} + +.light_cadet_grey { + background-color: #c5c6d3 ! important; + color: #000066 ! important; +} + +/* The red of the Cambodian flag is e00025; the color here is slightly bluer, and much darker, for readability and so as not to confuse it with a link. */ +/* OLD: +.Cambodia { + background-color: #ffffff ! important; + color: #bf0050 ! important; + border-color: #032ea1 ! important; + border-width: 2px ! important; +} + .Cambodia A { + color: #cc00ff ! important; + } + */ + +.Cambodia { + background-color: #e00025 ! important; + color: #ffffff ! important; + border-color: #032ea1 ! important; + border-width: 2px ! important; +} + .Cambodia A { + color: #99ffff ! important; + } + .Cambodia A.ref { + color: #99ffff ! important; + } + +.Canada { + background-color: #ffffff ! important; + color: #37495f ! important; /* matches the Canadian Government's site */ + border-color: #ff0000 ! important; +} + .Canada A { + color: #cc00ff ! important; + } + +.Capella { + background-color: #000000 ! important; + color: #ffffcc ! important; +} + .Capella A { + color: #ffff66 ! important; + } + + .Capella .source { + color: #66ff66 ! important; + } + +.caramel { + background-color: #996633 ! important; + color: #ffffff ! important; +} + .caramel A { + color: #bbbbff ! important; + } + +.Cartagena { + background-color: #ff6666 ! important; + color: #ffff99 ! important; +} + +.Catalunya { + background-color: #fcdd09 ! important; + color: #da131a ! important; + border-color: #da131a ! important; +} + .Catalunya A { + color: #cc00ff ! important; + } + +/* +The following style was called "Catholic" but I renamed it to avoid conflict with BODY CLASS= "Catholic". It appears to be very rarely called; but if in fact it is called a lot, I may have to revert the name. + */ +.Kapaun { + background-color: #90191b ! important; + color: #ffff33 ! important; + font-size: 90%; +} + .Kapaun A { + color: #ffff00 ! important; + } + +.charcoal { + background-color: #333333 ! important; + color: #ffffff ! important; +} + .charcoal A { + color: #ffff33 ! important; + } + +.checkColor { /* = ecru */ + background-color: #ffffcc ! important; +} + +.Chicago_maroon { + background-color: #cccccc ! important; + color: #990000 ! important; +} + +.Chile { + background-color: #ffffff ! important; + color: #0044cc ! important; + border-color: #d83820 ! important; +} + .Chile A { + color: #cc00ff ! important; + } + +.chocolate { + background-color: #330000 ! important; + color: #ffff99 ! important; +} + .chocolate A { + color: #33ff33 ! important; + } + +.Claudian { + background-color: #333333 ! important; + color: #cccccc ! important; +} + + .Claudian P { + color: #cccccc ! important; + } + + .Claudian .source { + color: #99ff99 ! important; + } + .Claudian A { + color: #66ccff ! important; + } + +.cobblestone { + background-color: #999999 ! important; + color: #ffffff ! important; +} + +.cocoa { + background-color: #665555 ! important; + color: #ffffcc ! important; +} + .cocoa A { + color: #33ccff ! important; + } + +.coffee { + background-color: #998866 ! important; + color: #ffffee ! important; +} + .coffee A { + color: #0033ff ! important; + } + +.crimson { + background-color: #990033 ! important; + color: #ffcc00 ! important; +} + + .crimson P { + color: #ffcc00 ! important; + } + +.daffodil { + background-color: #ffffff ! important; + color: #70a000 ! important; +} + +.Dalmatian { + background-color: #ffffff ! important; + color: #000000 ! important; +} + +.dandelion { + background-color: #003300 ! important; + color: #ffcc00 ! important; +} + .dandelion A { + color: #9999ff ! important; + } + + .dandelion .source { + color: #99ff99 ! important; + } + +.Daniel { + background-color: #006600 ! important; + color: #ffff99 ! important; +} + .Daniel A { + color: #ff6633 ! important; + } + +.dark_blue { + background-color: #003399 ! important; + color: #ffffff ! important; +} + .dark_blue A { + background-color: inherit ! important; + font-weight: bold; + color: #ffff33 ! important; + } + + SPAN.dark_blue { + color: #003399 ! important; + } + +.dark_pines { + background-color: #003300 ! important; + color: #ffffff ! important; +} + .dark_pines A { + color: #9999ff ! important; + } + + .dark_pines .source { + color: #99ff99 ! important; + } + +.dark_sepia { + background-color: #888877 ! important; + color: #ddddcc ! important; +} + .dark_sepia A { + color: #99ffff ! important; + } + + .dark_sepia .source { + color: #99ff99 ! important; + } + +.dark_slate { + background-color: #444444 ! important; + color: #ffffff ! important; +} + +.doughboy { + background-color: #a67c41 ! important; + color: #e5c68e ! important; +} + +.Dutch2 { + background-color: #ddffff ! important; /*e9feff*/ + color: #ee8800 ! important; /*eb810f*/ +} + +.early_spring { + background-color: #99cc66 ! important; + color: #ffffff ! important; +} + +.empyrean { + background-color: #000033 ! important; + color: #ffcc99 ! important; +} + .empyrean A { + color: #99ffff ! important; + } + + .empyrean .Latin { + color: #ff9999 ! important; + } + + .empyrean .lapis { + color: #ff9999 ! important; + } + + .empyrean .nummus { + color: #ff9999 ! important; + } + +.eucalyptus { + background-color: #669966 ! important; + color: #0033cc ! important; +} + .eucalyptus A { + color: #33ff33 ! important; + } + +.farmhouse { + background-color: #113300 ! important; + color: #ffffcc ! important; +} + .farmhouse A { + color: #99ccff ! important; + } + +.fertile { + background-color: #663300 ! important; + color: #33ff00 ! important; +} + +.Firenze_ghibellino { + background-color: #ff3333 ! important; + color: #ffffff ! important; +} + +.Firenze { + background-color: #ffffff ! important; + color: #ff3333 ! important; +} + +.forest_sunset { + background-color: #336633 ! important; + color: #ffddbb ! important; +} + .forest_sunset A { + color: #ccccff ! important; + } + +.French2 { + background-color: #99ccff ! important; + color: #ee4037 ! important; +} + +.French_paperback { + background-color: #fff7f2 ! important; + color: #b7375c ! important; +} + +.fudge { + background-color: #996600 ! important; + color: #ffffff ! important; +} + +.glauque { + background-color: #669999 ! important; + color: #ffffff ! important; +} + .glauque A { + color: #ccccff ! important; + } + .glauque A:visited { + color: #ffcccc ! important; + } + +.Gran_Colombia { + background-color: #fee88a ! important; + color: #0044cc ! important; /* why doesn't this work? */ + border-color: #d83820 ! important; +} + .Gran_Colombia TD { + color: #0044cc ! important; /* workaround because previous doesn't work! */ + } + + .Gran_Colombia A { + color: #339900 ! important; + } + +.grey_pines { + background-color: #336600 ! important; + color: #ccccff ! important; +} + .grey_pines A { + color: #ffffcc ! important; + } + + .grey_pines .source { + color: #99ff99 ! important; + } + + .grey_pines .Italian { + color: #7acc7a ! important; + } + +.Harlequin { + background-color: #000000 ! important; + color: #ffffff ! important; +} + .Harlequin A { + color: #ffff66 ! important; + } + + .Harlequin .source { + color: #66ff66 ! important; + } + + .Harlequin .bland { + color: #ffffff ! important; + } + +.imperial { + background-color: #4d0099 ! important; + color: #ffff66 ! important; +} + +.ink_blue { + background-color: #000033 ! important; + color: #ffffff ! important; +} + .ink_blue A { + color: #99ffff ! important; + } + + .ink_blue P { + color: #ffffff ! important; + } + + SPAN.ink_blue { + color: #000033 ! important; + } + +.Labro { + background-color: #506600 ! important; + color: #fff9e5 ! important; +} + +.landscape { + background-color: #559900 ! important; + color: #ffffff ! important; +} + +.laterite { + background-color: #cc6633 ! important; + color: #ccffff ! important; +} + +.late_spring { + background-color: #339900 ! important; + color: #ffcccc ! important; +} + .late_spring A { + font-weight: bold; + color: #ffff33 ! important; + } + +.light_ochre { + background-color: #cc9933 ! important; + color: #ffffff ! important; +} + +.limestone { + background-color: #ffffcc ! important; + color: #663300 ! important; +} + +.London { + background-color: #cccccc ! important; + color: #993333 ! important; +} + +.lupine { + background-color: #113300 ! important; + color: #ffffff ! important; +} + .lupine A { + color: #99ccff ! important; + } + +.marl { + background-color: #ffcccc ! important; + color: #333366 ! important; +} + +.mahogany { + background-color: #330000 ! important; + color: #ffffff ! important; +} + .mahogany A { + color: #33ff33 ! important; + } + + .mahogany A.comment { + color: #33ccff ! important; + font-weight: bold; + font-size: 85%; + } + + .mahogany .Latin { + color: #ff6600 ! important; + } + + .mahogany .Latin .emend { + color: #ffaa00 ! important; + } + + .mahogany .lapis { + color: #ff6600 ! important; + } + + .mahogany .lapis .emend { + color: #ffaa00 ! important; + } + +.masoor_dal { + background-color: #cc6600 ! important; + color: #ffffff ! important; +} + + .masoor_dal .Latin { + color: #ffff99 ! important; + } + + .masoor_dal .lapis { + color: #ffff99 ! important; + } + + .masoor_dal .nummus { + color: #ffff99 ! important; + } + .masoor_dal A { + color: #33ff33 ! important; + } + +.mimosa { + background-color: #336633 ! important; + color: #ffff99 ! important; +} + +.minium { + background-color: #ffe0aa ! important; + color: #cc0000 ! important; +} + +.mint { + background-color: #003300 ! important; + color: #ccffcc ! important; +} + .mint A { + color: #9999ff ! important; + } + + .mint .source { + color: #99ff99 ! important; + } + +.mordore { + background-color: #663300 ! important; + color: #ffffcc ! important; +} + .mordore A { + color: #33ff33 ! important; + } + + .mordore .emend { + color: #99ffff ! important; + } + + .mordore .Latin { + color: #ff3300 ! important; + } + + .mordore .Latin .emend { + color: #cc3399 ! important; + } + +.mossy_pavement { + background-color: #cccccc ! important; + color: #006600 ! important; +} + +.mourning_dove { + background-color: #a8a99b ! important; + color: #f1e0d6 ! important; +} + .mourning_dove A { + color: #4662d0 ! important; + } + +.MrWhite { + background-color: #ffffff ! important; + color: #993333 ! important; +} + +.Nar { + background-color: #808066 ! important; + color: #ffffcc ! important; +} + +.Navajo { + background-color: #330000 ! important; + color: #33ff00 ! important; +} + .Navajo A { + color: #99ff33 ! important; + } + +.navy { + background-color: #110044 ! important; + color: #ffffff ! important; +} + +.Netherlands { + background-color: #ffffff ! important; + color: #3075f6 ! important; + border-color: #f29e39 ! important; +} + .Netherlands A { + color: #cc00ff ! important; + } + +.Newburgh { + background-color: #b4b5cc ! important; + color: #fff600 ! important; +} + +.nicotine { + background-color: #ffffcc ! important; + color: #993333 ! important; +} + +.Nigeria { + background-color: #006600 ! important; + color: #ffffff ! important; +} + .Nigeria A { + color: #ff6633 ! important; + } + +.North_Carolina { + background-color: #ffffff ! important; + color: #003399 ! important;/*102f5f*/ + border-color: #bf2b45 ! important; +} + .North_Carolina A { + color: #ff6633 ! important; + } + +.old_belfry { + background-color: #998866 ! important; + color: #ddffff ! important; +} + +.olive { + background-color: #666633 ! important; + color: #ffffcc ! important; +} + .olive A { + color: #ccccff ! important; + } + +.dark_olive { + background-color: #333300 ! important; + color: #ffffff ! important; +} + .dark_olive A { + color: #99ffff ! important; + } + + .dark_olive .emend { + color: #ccffff ! important; + } + +.light_olive { + background-color: #999966 ! important; + color: #ffffcc ! important; +} + .light_olive A { + color: #ccccff ! important; + } + +.Oxford { + background-color: #ddeeff ! important; + color: #f36512 ! important; + font-weight: bold; +} + .Oxford A { + color: #993333 ! important; + } + + .Oxford .bland { + color: #000066 ! important; + font-weight: normal; +} + +SPAN.pale_yellow { + background-color: inherit ! important; + color: #ffffcc ! important; + } + +A.pale_yellow { + background-color: inherit ! important; + color: #ffffcc ! important; + } + +.paleo { + background-color: #e6d7b8 ! important; + color: #331900 ! important; +} + .paleo .Italian { + color: #20bb44 ! important; + } + +.parchment { + background-color: #ffffff ! important; + color: #663300 ! important; +} + +.Pentecost { + background-color: #660000 ! important; + color: #ffff66 ! important; +} + +.pietra_morta { + background-color: #ccccb0 ! important; + color: #330000 ! important; +} + +.pigeon { + background-color: #99cccc ! important; + color: #660000 ! important; +} + +.pines { + background-color: #447711 ! important; + color: #ffffff ! important; +} + .pines A { + color: #66ffff ! important; + } + + .pines .source { + color: #99ff99 ! important; + } + +.Ravenna { + background-color: #440055 ! important; + color: #ccffcc ! important; +} + +.red_wax { + background-color: #cc3333 ! important; + color: #ffffff ! important; +} + .red_wax A { + color: #66ffff ! important; + } + +.rockscape { + background-color: #330000 ! important; + color: #ccffff ! important; +} + .rockscape A { + color: #66ffff ! important; + } + +.sand { + background-color: #ffeeee ! important; + color: #663300 ! important; +} + +.sandstone { + background-color: #ffeedd ! important; + color: #663300 ! important; +} + +.shaded_stone { + background-color: #cccccc ! important; + color: #663300 ! important; +} + +.sigillata { + background-color: #660000 ! important; + color: #ffffff ! important; +} + .sigillata .Latin { + color: #ffff99 ! important; + } + .sigillata .lapis { + color: #ff9999 ! important; + } + .sigillata .nummus { + color: #ff9999 ! important; + } + .sigillata A { + color: #33ff33 ! important; + } + +.slate { + background-color: #666666 ! important; + color: #ffffff ! important; +} + +.spaceflight { + background-color: #150080 ! important; + color: #ffff66 ! important; +} + +.spearmint { + background-color: #ffffff ! important; + color: #006600 ! important; +} + +.spring { + background-color: #66cc00 ! important; + color: #ffffff ! important; +} + +.stone_walls { + background-color: #221100 ! important; + color: #cc7733 ! important; +} + .stone_walls A { + color: #66ffff ! important; + } + +.storm_pines { + background-color: #003300 ! important; + color: #cccccc ! important; +} + .storm_pines A { + color: #9999ff ! important; + } + .storm_pines .source { + color: #99ff99 ! important; + } + +.straw { + background-color: #ffffff ! important; + color: #996600 ! important; +} + +.summer { + background-color: #7c9645 ! important; + color: #ffffff ! important; +} + .summer A { + color: #0044ff ! important; + } + +.tobacco { + background-color: #663300 ! important; + color: #ffcc00 ! important; +} + +.toffee { + background-color: #cc9966 ! important; + color: #660000 ! important; +} + + .toffee .Latin { + color: #cc3300 ! important; + } + + .toffee .lapis { + color: #ffff99 ! important; + } + + .toffee .nummus { + color: #ffff99 ! important; + } + +.Ukraine { + background-color: #ffffff ! important; + color: #0056bd ! important; + border-color: #fed700 ! important; +} + +.umber { + background-color: #663300 ! important; + color: #ffffff ! important; +} + .umber A { + color: #33ff33 ! important; + } + .umber .emend { + color: #99ffff ! important; + } + .umber .Latin { + color: #ff3300 ! important; + } + .umber .Latin .emend { + color: #cc3399 ! important; + } + +.Venezuela { + background-color: #ffea80 ! important; + color: #152169 ! important; +} + +.very_green { + background-color: #002200 ! important; + color: #aacc00 ! important; +} + .very_green A { + color: #ccccff ! important; + } + +.wintergreen { + background-color: #ffffff ! important; + color: #0099cc ! important; +} + +.woodruff { + background-color: #336633 ! important; + color: #ffffff ! important; +} + .woodruff A { + color: #ccccff ! important; + } + .woodruff .emend { + color: #ddffff ! important; + } + +.Wyoming { + background-color: #ffffff ! important; + color: #003399 ! important; + border-color: #bf0b32 ! important; +} + .Wyoming A { + color: #ff6633 ! important; + } + +.zinnia { + background-color: #003300 ! important; + color: #ff8800 ! important; +} + + SPAN.zinnia { + background-color: inherit ! important; + color: #003300 ! important; +} + .zinnia A { + color: #6699ff ! important; + } + +/* ORVIETO */ +/* +BODY. TABLE.Orvieto { +} + */ diff --git a/sources/book_1_files/empty.gif b/sources/book_1_files/empty.gif new file mode 100644 index 0000000..d37a0bb Binary files /dev/null and b/sources/book_1_files/empty.gif differ diff --git a/sources/book_1_files/home_.gif b/sources/book_1_files/home_.gif new file mode 100644 index 0000000..4ec156c Binary files /dev/null and b/sources/book_1_files/home_.gif differ diff --git a/sources/book_1_files/home__small.gif b/sources/book_1_files/home__small.gif new file mode 100644 index 0000000..cf2137e Binary files /dev/null and b/sources/book_1_files/home__small.gif differ diff --git a/sources/book_1_files/logo__.gif b/sources/book_1_files/logo__.gif new file mode 100644 index 0000000..0fbb441 Binary files /dev/null and b/sources/book_1_files/logo__.gif differ diff --git a/sources/book_1_files/next.gif b/sources/book_1_files/next.gif new file mode 100644 index 0000000..2f1682a Binary files /dev/null and b/sources/book_1_files/next.gif differ diff --git a/sources/book_1_files/ol.js b/sources/book_1_files/ol.js new file mode 100644 index 0000000..8ed611d --- /dev/null +++ b/sources/book_1_files/ol.js @@ -0,0 +1,8 @@ +!function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e():"function"==typeof define&&define.amd?define([],e):"object"==typeof exports?exports.ol=e():t.ol=e()}(window,function(){return function(t){var e={};function i(r){if(e[r])return e[r].exports;var n=e[r]={i:r,l:!1,exports:{}};return t[r].call(n.exports,n,n.exports,i),n.l=!0,n.exports}return i.m=t,i.c=e,i.d=function(t,e,r){i.o(t,e)||Object.defineProperty(t,e,{enumerable:!0,get:r})},i.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},i.t=function(t,e){if(1&e&&(t=i(t)),8&e)return t;if(4&e&&"object"==typeof t&&t&&t.__esModule)return t;var r=Object.create(null);if(i.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:t}),2&e&&"string"!=typeof t)for(var n in t)i.d(r,n,function(e){return t[e]}.bind(null,n));return r},i.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return i.d(e,"a",e),e},i.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},i.p="",i(i.s=9)}([function(t,e,i){"use strict";t.exports=n,t.exports.default=n;var r=i(5);function n(t,e){if(!(this instanceof n))return new n(t,e);this._maxEntries=Math.max(4,t||9),this._minEntries=Math.max(2,Math.ceil(.4*this._maxEntries)),e&&this._initFormat(e),this.clear()}function o(t,e,i){if(!i)return e.indexOf(t);for(var r=0;r=t.minX&&e.maxY>=t.minY}function y(t){return{children:t,height:1,leaf:!0,minX:1/0,minY:1/0,maxX:-1/0,maxY:-1/0}}function v(t,e,i,n,o){for(var s,a=[e,i];a.length;)(i=a.pop())-(e=a.pop())<=n||(s=e+Math.ceil((i-e)/n/2)*n,r(t,s,e,i,o),a.push(e,s,s,i))}n.prototype={all:function(){return this._all(this.data,[])},search:function(t){var e=this.data,i=[],r=this.toBBox;if(!g(t,e))return i;for(var n,o,s,a,h=[];e;){for(n=0,o=e.children.length;n=0&&o[e].children.length>this._maxEntries;)this._split(o,e),e--;this._adjustParentBBoxes(n,o,e)},_split:function(t,e){var i=t[e],r=i.children.length,n=this._minEntries;this._chooseSplitAxis(i,n,r);var o=this._chooseSplitIndex(i,n,r),a=y(i.children.splice(o,i.children.length-o));a.height=i.height,a.leaf=i.leaf,s(i,this.toBBox),s(a,this.toBBox),e?t[e-1].children.push(a):this._splitRoot(i,a)},_splitRoot:function(t,e){this.data=y([t,e]),this.data.height=t.height+1,this.data.leaf=!1,s(this.data,this.toBBox)},_chooseSplitIndex:function(t,e,i){var r,n,o,s,h,l,u,c;for(l=u=1/0,r=e;r<=i-e;r++)s=f(n=a(t,0,r,this.toBBox),o=a(t,r,i,this.toBBox)),h=p(n)+p(o),s=e;n--)o=t.children[n],h(u,t.leaf?s(o):o),p+=c(u);return p},_adjustParentBBoxes:function(t,e,i){for(var r=i;r>=0;r--)h(e[r],t)},_condense:function(t){for(var e,i=t.length-1;i>=0;i--)0===t[i].children.length?i>0?(e=t[i-1].children).splice(e.indexOf(t[i]),1):this.clear():s(t[i],this.toBBox)},_initFormat:function(t){var e=["return a"," - b",";"];this.compareMinX=new Function("a","b",e.join(t[0])),this.compareMinY=new Function("a","b",e.join(t[1])),this.toBBox=new Function("a","return {minX: a"+t[0]+", minY: a"+t[1]+", maxX: a"+t[2]+", maxY: a"+t[3]+"};")}}},function(t,e,i){"use strict";t.exports=n;var r=i(6);function n(t){this.buf=ArrayBuffer.isView&&ArrayBuffer.isView(t)?t:new Uint8Array(t||0),this.pos=0,this.type=0,this.length=this.buf.length}n.Varint=0,n.Fixed64=1,n.Bytes=2,n.Fixed32=5;function o(t){return t.type===n.Bytes?t.readVarint()+t.pos:t.pos+1}function s(t,e,i){return i?4294967296*e+(t>>>0):4294967296*(e>>>0)+(t>>>0)}function a(t,e,i){var r=e<=16383?1:e<=2097151?2:e<=268435455?3:Math.ceil(Math.log(e)/(7*Math.LN2));i.realloc(r);for(var n=i.pos-1;n>=t;n--)i.buf[n+r]=i.buf[n]}function h(t,e){for(var i=0;i>>8,t[i+2]=e>>>16,t[i+3]=e>>>24}function m(t,e){return(t[e]|t[e+1]<<8|t[e+2]<<16)+(t[e+3]<<24)}n.prototype={destroy:function(){this.buf=null},readFields:function(t,e,i){for(i=i||this.length;this.pos>3,o=this.pos;this.type=7&r,t(n,e,this),this.pos===o&&this.skip(r)}return e},readMessage:function(t,e){return this.readFields(t,e,this.readVarint()+this.pos)},readFixed32:function(){var t=y(this.buf,this.pos);return this.pos+=4,t},readSFixed32:function(){var t=m(this.buf,this.pos);return this.pos+=4,t},readFixed64:function(){var t=y(this.buf,this.pos)+4294967296*y(this.buf,this.pos+4);return this.pos+=8,t},readSFixed64:function(){var t=y(this.buf,this.pos)+4294967296*m(this.buf,this.pos+4);return this.pos+=8,t},readFloat:function(){var t=r.read(this.buf,this.pos,!0,23,4);return this.pos+=4,t},readDouble:function(){var t=r.read(this.buf,this.pos,!0,52,8);return this.pos+=8,t},readVarint:function(t){var e,i,r=this.buf;return e=127&(i=r[this.pos++]),i<128?e:(e|=(127&(i=r[this.pos++]))<<7,i<128?e:(e|=(127&(i=r[this.pos++]))<<14,i<128?e:(e|=(127&(i=r[this.pos++]))<<21,i<128?e:function(t,e,i){var r,n,o=i.buf;if(n=o[i.pos++],r=(112&n)>>4,n<128)return s(t,r,e);if(n=o[i.pos++],r|=(127&n)<<3,n<128)return s(t,r,e);if(n=o[i.pos++],r|=(127&n)<<10,n<128)return s(t,r,e);if(n=o[i.pos++],r|=(127&n)<<17,n<128)return s(t,r,e);if(n=o[i.pos++],r|=(127&n)<<24,n<128)return s(t,r,e);if(n=o[i.pos++],r|=(1&n)<<31,n<128)return s(t,r,e);throw new Error("Expected varint not more than 10 bytes")}(e|=(15&(i=r[this.pos]))<<28,t,this))))},readVarint64:function(){return this.readVarint(!0)},readSVarint:function(){var t=this.readVarint();return t%2==1?(t+1)/-2:t/2},readBoolean:function(){return Boolean(this.readVarint())},readString:function(){var t=this.readVarint()+this.pos,e=function(t,e,i){var r="",n=e;for(;n239?4:h>223?3:h>191?2:1;if(n+u>i)break;1===u?h<128&&(l=h):2===u?128==(192&(o=t[n+1]))&&(l=(31&h)<<6|63&o)<=127&&(l=null):3===u?(o=t[n+1],s=t[n+2],128==(192&o)&&128==(192&s)&&((l=(15&h)<<12|(63&o)<<6|63&s)<=2047||l>=55296&&l<=57343)&&(l=null)):4===u&&(o=t[n+1],s=t[n+2],a=t[n+3],128==(192&o)&&128==(192&s)&&128==(192&a)&&((l=(15&h)<<18|(63&o)<<12|(63&s)<<6|63&a)<=65535||l>=1114112)&&(l=null)),null===l?(l=65533,u=1):l>65535&&(l-=65536,r+=String.fromCharCode(l>>>10&1023|55296),l=56320|1023&l),r+=String.fromCharCode(l),n+=u}return r}(this.buf,this.pos,t);return this.pos=t,e},readBytes:function(){var t=this.readVarint()+this.pos,e=this.buf.subarray(this.pos,t);return this.pos=t,e},readPackedVarint:function(t,e){var i=o(this);for(t=t||[];this.pos127;);else if(e===n.Bytes)this.pos=this.readVarint()+this.pos;else if(e===n.Fixed32)this.pos+=4;else{if(e!==n.Fixed64)throw new Error("Unimplemented type: "+e);this.pos+=8}},writeTag:function(t,e){this.writeVarint(t<<3|e)},realloc:function(t){for(var e=this.length||16;e268435455||t<0?function(t,e){var i,r;t>=0?(i=t%4294967296|0,r=t/4294967296|0):(r=~(-t/4294967296),4294967295^(i=~(-t%4294967296))?i=i+1|0:(i=0,r=r+1|0));if(t>=0x10000000000000000||t<-0x10000000000000000)throw new Error("Given varint doesn't fit into 10 bytes");e.realloc(10),function(t,e,i){i.buf[i.pos++]=127&t|128,t>>>=7,i.buf[i.pos++]=127&t|128,t>>>=7,i.buf[i.pos++]=127&t|128,t>>>=7,i.buf[i.pos++]=127&t|128,t>>>=7,i.buf[i.pos]=127&t}(i,0,e),function(t,e){var i=(7&t)<<4;if(e.buf[e.pos++]|=i|((t>>>=3)?128:0),!t)return;if(e.buf[e.pos++]=127&t|((t>>>=7)?128:0),!t)return;if(e.buf[e.pos++]=127&t|((t>>>=7)?128:0),!t)return;if(e.buf[e.pos++]=127&t|((t>>>=7)?128:0),!t)return;if(e.buf[e.pos++]=127&t|((t>>>=7)?128:0),!t)return;e.buf[e.pos++]=127&t}(r,e)}(t,this):(this.realloc(4),this.buf[this.pos++]=127&t|(t>127?128:0),t<=127||(this.buf[this.pos++]=127&(t>>>=7)|(t>127?128:0),t<=127||(this.buf[this.pos++]=127&(t>>>=7)|(t>127?128:0),t<=127||(this.buf[this.pos++]=t>>>7&127))))},writeSVarint:function(t){this.writeVarint(t<0?2*-t-1:2*t)},writeBoolean:function(t){this.writeVarint(Boolean(t))},writeString:function(t){t=String(t),this.realloc(4*t.length),this.pos++;var e=this.pos;this.pos=function(t,e,i){for(var r,n,o=0;o55295&&r<57344){if(!n){r>56319||o+1===e.length?(t[i++]=239,t[i++]=191,t[i++]=189):n=r;continue}if(r<56320){t[i++]=239,t[i++]=191,t[i++]=189,n=r;continue}r=n-55296<<10|r-56320|65536,n=null}else n&&(t[i++]=239,t[i++]=191,t[i++]=189,n=null);r<128?t[i++]=r:(r<2048?t[i++]=r>>6|192:(r<65536?t[i++]=r>>12|224:(t[i++]=r>>18|240,t[i++]=r>>12&63|128),t[i++]=r>>6&63|128),t[i++]=63&r|128)}return i}(this.buf,t,this.pos);var i=this.pos-e;i>=128&&a(e,i,this),this.pos=e-1,this.writeVarint(i),this.pos+=i},writeFloat:function(t){this.realloc(4),r.write(this.buf,t,this.pos,!0,23,4),this.pos+=4},writeDouble:function(t){this.realloc(8),r.write(this.buf,t,this.pos,!0,52,8),this.pos+=8},writeBytes:function(t){var e=t.length;this.writeVarint(e),this.realloc(e);for(var i=0;i=128&&a(i,r,this),this.pos=i-1,this.writeVarint(r),this.pos+=r},writeMessage:function(t,e,i){this.writeTag(t,n.Bytes),this.writeRawMessage(e,i)},writePackedVarint:function(t,e){this.writeMessage(t,h,e)},writePackedSVarint:function(t,e){this.writeMessage(t,l,e)},writePackedBoolean:function(t,e){this.writeMessage(t,c,e)},writePackedFloat:function(t,e){this.writeMessage(t,u,e)},writePackedDouble:function(t,e){this.writeMessage(t,p,e)},writePackedFixed32:function(t,e){this.writeMessage(t,d,e)},writePackedSFixed32:function(t,e){this.writeMessage(t,f,e)},writePackedFixed64:function(t,e){this.writeMessage(t,_,e)},writePackedSFixed64:function(t,e){this.writeMessage(t,g,e)},writeBytesField:function(t,e){this.writeTag(t,n.Bytes),this.writeBytes(e)},writeFixed32Field:function(t,e){this.writeTag(t,n.Fixed32),this.writeFixed32(e)},writeSFixed32Field:function(t,e){this.writeTag(t,n.Fixed32),this.writeSFixed32(e)},writeFixed64Field:function(t,e){this.writeTag(t,n.Fixed64),this.writeFixed64(e)},writeSFixed64Field:function(t,e){this.writeTag(t,n.Fixed64),this.writeSFixed64(e)},writeVarintField:function(t,e){this.writeTag(t,n.Varint),this.writeVarint(e)},writeSVarintField:function(t,e){this.writeTag(t,n.Varint),this.writeSVarint(e)},writeStringField:function(t,e){this.writeTag(t,n.Bytes),this.writeString(e)},writeFloatField:function(t,e){this.writeTag(t,n.Fixed32),this.writeFloat(e)},writeDoubleField:function(t,e){this.writeTag(t,n.Fixed64),this.writeDouble(e)},writeBooleanField:function(t,e){this.writeVarintField(t,Boolean(e))}}},function(t,e,i){var r=i(7);e.Processor=r},,,function(t,e,i){t.exports=function(){"use strict";function t(t,e,i){var r=t[e];t[e]=t[i],t[i]=r}function e(t,e){return te?1:0}return function(i,r,n,o,s){!function e(i,r,n,o,s){for(;o>n;){if(o-n>600){var a=o-n+1,h=r-n+1,l=Math.log(a),u=.5*Math.exp(2*l/3),p=.5*Math.sqrt(l*u*(a-u)/a)*(h-a/2<0?-1:1),c=Math.max(n,Math.floor(r-h*u/a+p)),d=Math.min(o,Math.floor(r+(a-h)*u/a+p));e(i,r,c,d,s)}var f=i[r],_=n,g=o;for(t(i,n,r),s(i[o],f)>0&&t(i,n,o);_0;)g--}0===s(i[n],f)?t(i,n,g):t(i,++g,o),g<=r&&(n=g+1),r<=g&&(o=g-1)}}(i,r,n||0,o||i.length-1,s||e)}}()},function(t,e){e.read=function(t,e,i,r,n){var o,s,a=8*n-r-1,h=(1<>1,u=-7,p=i?n-1:0,c=i?-1:1,d=t[e+p];for(p+=c,o=d&(1<<-u)-1,d>>=-u,u+=a;u>0;o=256*o+t[e+p],p+=c,u-=8);for(s=o&(1<<-u)-1,o>>=-u,u+=r;u>0;s=256*s+t[e+p],p+=c,u-=8);if(0===o)o=1-l;else{if(o===h)return s?NaN:1/0*(d?-1:1);s+=Math.pow(2,r),o-=l}return(d?-1:1)*s*Math.pow(2,o-r)},e.write=function(t,e,i,r,n,o){var s,a,h,l=8*o-n-1,u=(1<>1,c=23===n?Math.pow(2,-24)-Math.pow(2,-77):0,d=r?0:o-1,f=r?1:-1,_=e<0||0===e&&1/e<0?1:0;for(e=Math.abs(e),isNaN(e)||e===1/0?(a=isNaN(e)?1:0,s=u):(s=Math.floor(Math.log(e)/Math.LN2),e*(h=Math.pow(2,-s))<1&&(s--,h*=2),(e+=s+p>=1?c/h:c*Math.pow(2,1-p))*h>=2&&(s++,h/=2),s+p>=u?(a=0,s=u):s+p>=1?(a=(e*h-1)*Math.pow(2,n),s+=p):(a=e*Math.pow(2,p-1)*Math.pow(2,n),s=0));n>=8;t[i+d]=255&a,d+=f,a/=256,n-=8);for(s=s<0;t[i+d]=255&s,d+=f,s/=256,l-=8);t[i+d-f]|=128*_}},function(t,e,i){var r=i(8).newImageData;function n(t){var e=!0;try{new ImageData(10,10)}catch(t){e=!1}function i(t,i,r){return e?new ImageData(t,i,r):{data:t,width:i,height:r}}return function(e){var r,n,o=e.buffers,s=e.meta,a=e.imageOps,h=e.width,l=e.height,u=o.length,p=o[0].byteLength;if(a){var c=new Array(u);for(n=0;nthis._maxQueueLength;)this._queue.shift().callback(null,null)},s.prototype._dispatch=function(){if(0===this._running&&this._queue.length>0){var t=this._job=this._queue.shift(),e=t.inputs[0].width,i=t.inputs[0].height,r=t.inputs.map(function(t){return t.data.buffer}),n=this._workers.length;if(this._running=n,1===n)this._workers[0].postMessage({buffers:r,meta:t.meta,imageOps:this._imageOps,width:e,height:i},r);else for(var o=t.inputs[0].data.length,s=4*Math.ceil(o/4/n),a=0;a0},e.prototype.removeEventListener=function(t,e){var i=this.listeners_[t];if(i){var r=i.indexOf(e);t in this.pendingRemovals_?(i[r]=I,++this.pendingRemovals_[t]):(i.splice(r,1),0===i.length&&delete this.listeners_[t])}},e}(C),M={CHANGE:"change",CLEAR:"clear",CONTEXTMENU:"contextmenu",CLICK:"click",DBLCLICK:"dblclick",DRAGENTER:"dragenter",DRAGOVER:"dragover",DROP:"drop",ERROR:"error",KEYDOWN:"keydown",KEYPRESS:"keypress",LOAD:"load",MOUSEDOWN:"mousedown",MOUSEMOVE:"mousemove",MOUSEOUT:"mouseout",MOUSEUP:"mouseup",MOUSEWHEEL:"mousewheel",MSPOINTERDOWN:"MSPointerDown",RESIZE:"resize",TOUCHSTART:"touchstart",TOUCHMOVE:"touchmove",TOUCHEND:"touchend",WHEEL:"wheel"};var F=function(t){function e(){t.call(this),this.revision_=0}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.changed=function(){++this.revision_,this.dispatchEvent(M.CHANGE)},e.prototype.getRevision=function(){return this.revision_},e.prototype.on=function(t,e){if(Array.isArray(t)){for(var i=t.length,r=new Array(i),n=0;n0;)this.pop()},e.prototype.extend=function(t){for(var e=0,i=t.length;ee?1:t=0}function z(t,e,i){var r,n=t.length;if(t[0]<=e)return 0;if(e<=t[n-1])return n-1;if(i>0){for(r=1;r>>0,n=0;nn&&(h|=$.RIGHT),ao&&(h|=$.ABOVE),h===$.UNKNOWN&&(h=$.INTERSECTING),h}function ht(){return[1/0,1/0,-1/0,-1/0]}function lt(t,e,i,r,n){return n?(n[0]=t,n[1]=e,n[2]=i,n[3]=r,n):[t,e,i,r]}function ut(t){return lt(1/0,1/0,-1/0,-1/0,t)}function pt(t,e){var i=t[0],r=t[1];return lt(i,r,i,r,e)}function ct(t,e,i,r,n){return yt(ut(n),t,e,i,r)}function dt(t,e){return t[0]==e[0]&&t[2]==e[2]&&t[1]==e[1]&&t[3]==e[3]}function ft(t,e){return e[0]t[2]&&(t[2]=e[2]),e[1]t[3]&&(t[3]=e[3]),t}function _t(t,e){e[0]t[2]&&(t[2]=e[0]),e[1]t[3]&&(t[3]=e[1])}function gt(t,e){for(var i=0,r=e.length;ie[0]?r[0]=t[0]:r[0]=e[0],t[1]>e[1]?r[1]=t[1]:r[1]=e[1],t[2]=e[0]&&t[1]<=e[3]&&t[3]>=e[1]}function bt(t){return t[2]1?(i=n,r=o):h>0&&(i+=s*h,r+=a*h)}return Yt(t,e,i,r)}function Yt(t,e,i,r){var n=i-t,o=r-e;return n*n+o*o}function Bt(t){return 180*t/Math.PI}function Vt(t){return t*Math.PI/180}function Xt(t,e){var i=t%e;return i*e<0?i+e:i}function zt(t,e,i){return t+i*(e-t)} +/** + * @license + * Latitude/longitude spherical geodesy formulae taken from + * http://www.movable-type.co.uk/scripts/latlong.html + * Licensed under CC-BY-3.0. + */var Wt=6371008.8;function Kt(t,e,i){var r=i||Wt,n=Vt(t[1]),o=Vt(e[1]),s=(o-n)/2,a=Vt(e[0]-t[0])/2,h=Math.sin(s)*Math.sin(s)+Math.sin(a)*Math.sin(a)*Math.cos(n)*Math.cos(o);return 2*r*Math.atan2(Math.sqrt(h),Math.sqrt(1-h))}function Ht(t,e){for(var i=0,r=0,n=t.length;r1?i:2,o=e;void 0===o&&(o=n>2?t.slice():new Array(r));for(var s=re,a=0;as?h=s:h<-s&&(h=-s),o[a+1]=h}return o}function le(t,e,i){var r=t.length,n=i>1?i:2,o=e;void 0===o&&(o=n>2?t.slice():new Array(r));for(var s=0;s=2;--l)s[a+l]=e[a+l]}return s}}function we(t,e,i,r){var n=Ee(t),o=Ee(e);ge(n,o,Re(i)),ge(o,n,Re(r))}function Ie(t,e){if(t===e)return!0;var i=t.getUnits()===e.getUnits();return t.getCode()===e.getCode()?i:Le(t,e)===ve&&i}function Le(t,e){var i=ye(t.getCode(),e.getCode());return i||(i=me),i}function Oe(t,e){return Le(Ee(t),Ee(e))}function Pe(t,e,i){return Oe(e,i)(t,void 0,t.length)}function be(t,e,i){return Ft(t,Oe(e,i))}Te(ae),Te(de),function(t,e,i,r){t.forEach(function(t){e.forEach(function(e){ge(t,e,i),ge(e,t,r)})})}(de,ae,he,le);var Me=new Array(6);function Fe(t){return Ne(t,1,0,0,1,0,0)}function Ae(t,e){var i=t[0],r=t[1],n=t[2],o=t[3],s=t[4],a=t[5],h=e[0],l=e[1],u=e[2],p=e[3],c=e[4],d=e[5];return t[0]=i*h+n*l,t[1]=r*h+o*l,t[2]=i*u+n*p,t[3]=r*u+o*p,t[4]=i*c+n*d+s,t[5]=r*c+o*d+a,t}function Ne(t,e,i,r,n,o,s){return t[0]=e,t[1]=i,t[2]=r,t[3]=n,t[4]=o,t[5]=s,t}function Ge(t,e){return t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[4]=e[4],t[5]=e[5],t}function De(t,e){var i=e[0],r=e[1];return e[0]=t[0]*i+t[2]*r+t[4],e[1]=t[1]*i+t[3]*r+t[5],e}function ke(t,e){var i=Math.cos(e),r=Math.sin(e);return Ae(t,Ne(Me,i,r,-r,i,0,0))}function je(t,e,i){return Ae(t,Ne(Me,e,0,0,i,0,0))}function Ue(t,e,i){return Ae(t,Ne(Me,1,0,0,1,e,i))}function Ye(t,e,i,r,n,o,s,a){var h=Math.sin(o),l=Math.cos(o);return t[0]=r*l,t[1]=n*h,t[2]=-r*h,t[3]=n*l,t[4]=s*r*l-a*r*h+e,t[5]=s*n*h+a*n*l+i,t}function Be(t){var e=function(t){return t[0]*t[3]-t[1]*t[2]}(t);Y(0!==e,32);var i=t[0],r=t[1],n=t[2],o=t[3],s=t[4],a=t[5];return t[0]=o/e,t[1]=-r/e,t[2]=-n/e,t[3]=i/e,t[4]=(n*a-o*s)/e,t[5]=-(i*a-r*s)/e,t}var Ve=[1,0,0,1,0,0],Xe=function(t){function e(){t.call(this),this.extent_=[1/0,1/0,-1/0,-1/0],this.extentRevision_=-1,this.simplifiedGeometryCache={},this.simplifiedGeometryMaxMinSquaredTolerance=0,this.simplifiedGeometryRevision=0}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.clone=function(){return r()},e.prototype.closestPointXY=function(t,e,i,n){return r()},e.prototype.containsXY=function(t,e){return!1},e.prototype.getClosestPoint=function(t,e){var i=e||[NaN,NaN];return this.closestPointXY(t[0],t[1],i,1/0),i},e.prototype.intersectsCoordinate=function(t){return this.containsXY(t[0],t[1])},e.prototype.computeExtent=function(t){return r()},e.prototype.getExtent=function(t){return this.extentRevision_!=this.getRevision()&&(this.extent_=this.computeExtent(this.extent_),this.extentRevision_=this.getRevision()),function(t,e){return e?(e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],e):t}(this.extent_,t)},e.prototype.rotate=function(t,e){r()},e.prototype.scale=function(t,e,i){r()},e.prototype.simplify=function(t){return this.getSimplifiedGeometry(t*t)},e.prototype.getSimplifiedGeometry=function(t){return r()},e.prototype.getType=function(){return r()},e.prototype.applyTransform=function(t){r()},e.prototype.intersectsExtent=function(t){return r()},e.prototype.translate=function(t,e){r()},e.prototype.transform=function(t,e){var i=Ee(t),r=i.getUnits()==$t.TILE_PIXELS?function(t,r,n){var o=i.getExtent(),s=i.getWorldExtent(),a=Rt(s)/Rt(o);return Ye(Ve,s[0],s[3],a,-a,0,0,0),Gt(t,0,t.length,n,Ve,r),Oe(i,e)(t,r,n)}:Oe(i,e);return this.applyTransform(r),this},e}(D);function ze(t){var e;return t==At.XY?e=2:t==At.XYZ||t==At.XYM?e=3:t==At.XYZM&&(e=4),e}var We=function(t){function e(){t.call(this),this.layout=At.XY,this.stride=2,this.flatCoordinates=null}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.computeExtent=function(t){return ct(this.flatCoordinates,0,this.flatCoordinates.length,this.stride,t)},e.prototype.getCoordinates=function(){return r()},e.prototype.getFirstCoordinate=function(){return this.flatCoordinates.slice(0,this.stride)},e.prototype.getFlatCoordinates=function(){return this.flatCoordinates},e.prototype.getLastCoordinate=function(){return this.flatCoordinates.slice(this.flatCoordinates.length-this.stride)},e.prototype.getLayout=function(){return this.layout},e.prototype.getSimplifiedGeometry=function(t){if(this.simplifiedGeometryRevision!=this.getRevision()&&(p(this.simplifiedGeometryCache),this.simplifiedGeometryMaxMinSquaredTolerance=0,this.simplifiedGeometryRevision=this.getRevision()),t<0||0!==this.simplifiedGeometryMaxMinSquaredTolerance&&t<=this.simplifiedGeometryMaxMinSquaredTolerance)return this;var e=t.toString();if(this.simplifiedGeometryCache.hasOwnProperty(e))return this.simplifiedGeometryCache[e];var i=this.getSimplifiedGeometryInternal(t);return i.getFlatCoordinates().length1)a=i;else{if(c>0){for(var d=0;dn&&(n=l),o=a,s=h}return n}function Je(t,e,i,r,n){for(var o=0,s=i.length;o0;){for(var p=l.pop(),c=l.pop(),d=0,f=t[c],_=t[c+1],g=t[p],y=t[p+1],v=c+r;vd&&(u=v,d=m)}d>n&&(h[(u-e)/r]=1,c+r0&&_>d)&&(f<0&&g0&&g>f)?(a=p,h=c):(o[s++]=a,o[s++]=h,l=a,u=h,a=p,h=c)}}return o[s++]=a,o[s++]=h,s}function ui(t,e,i,r,n,o,s,a){for(var h=0,l=i.length;ho&&(l-a)*(o-h)-(n-a)*(u-h)>0&&s++:u<=o&&(l-a)*(o-h)-(n-a)*(u-h)<0&&s--,a=l,h=u}return 0!==s}function _i(t,e,i,r,n,o){if(0===i.length)return!1;if(!fi(t,e,i[0],r,n,o))return!1;for(var s=1,a=i.length;sx&&_i(t,e,i,r,l=(u+p)/2,f)&&(m=l,x=E),u=p}return isNaN(m)&&(m=n[o]),s?(s.push(m,f,x),s):[m,f,x]}function yi(t,e,i,r,n){for(var o=[],s=0,a=i.length;s=n[0]&&o[2]<=n[2]||(o[1]>=n[1]&&o[3]<=n[3]||vi(t,e,i,r,function(t,e){return function(t,e,i){var r=!1,n=at(t,e),o=at(t,i);if(n===$.INTERSECTING||o===$.INTERSECTING)r=!0;else{var s,a,h=t[0],l=t[1],u=t[2],p=t[3],c=e[0],d=e[1],f=i[0],_=i[1],g=(_-d)/(f-c);o&$.ABOVE&&!(n&$.ABOVE)&&(r=(s=f-(_-p)/g)>=h&&s<=u),r||!(o&$.RIGHT)||n&$.RIGHT||(r=(a=_-(f-u)*g)>=l&&a<=p),r||!(o&$.BELOW)||n&$.BELOW||(r=(s=f-(_-l)/g)>=h&&s<=u),r||!(o&$.LEFT)||n&$.LEFT||(r=(a=_-(f-h)*g)>=l&&a<=p)}return r}(n,t,e)}))))}function xi(t,e,i,r,n){if(!function(t,e,i,r,n){return!!(mi(t,e,i,r,n)||fi(t,e,i,r,n[0],n[1])||fi(t,e,i,r,n[0],n[3])||fi(t,e,i,r,n[2],n[1])||fi(t,e,i,r,n[2],n[3]))}(t,e,i[0],r,n))return!1;if(1===i.length)return!0;for(var o=1,s=i.length;o0}function Ti(t,e,i,r,n){for(var o=void 0!==n&&n,s=0,a=i.length;se?r:new Array(1+e-n).join("0")+r}function Ki(t,e){for(var i=(""+t).split("."),r=(""+e).split("."),n=0;ns)return 1;if(s>o)return-1}return 0}function Hi(t,e){return t[0]+=e[0],t[1]+=e[1],t}function Zi(t,e){var i,r,n=t[0],o=t[1],s=e[0],a=e[1],h=s[0],l=s[1],u=a[0],p=a[1],c=u-h,d=p-l,f=0===c&&0===d?0:(c*(n-h)+d*(o-l))/(c*c+d*d||0);return f<=0?(i=h,r=l):f>=1?(i=u,r=p):(i=h+f*c,r=l+f*d),[i,r]}function qi(t,e,i){var r=Xt(e+180,360)-180,n=Math.abs(3600*r),o=i||0,s=Math.pow(10,o),a=Math.floor(n/3600),h=Math.floor((n-3600*a)/60),l=n-3600*a-60*h;return(l=Math.ceil(l*s)/s)>=60&&(l=0,h+=1),h>=60&&(h=0,a+=1),a+"° "+Wi(h,2)+"′ "+Wi(l,2,o)+"″"+(0==r?"":" "+t.charAt(r<0?1:0))}function Ji(t,e,i){return t?e.replace("{x}",t[0].toFixed(i)).replace("{y}",t[1].toFixed(i)):""}function Qi(t,e){for(var i=!0,r=t.length-1;r>=0;--r)if(t[r]!=e[r]){i=!1;break}return i}function $i(t,e){var i=Math.cos(e),r=Math.sin(e),n=t[0]*i-t[1]*r,o=t[1]*i+t[0]*r;return t[0]=n,t[1]=o,t}function tr(t,e){return t[0]*=e,t[1]*=e,t}function er(t,e){var i=t[0]-e[0],r=t[1]-e[1];return i*i+r*r}function ir(t,e){return Math.sqrt(er(t,e))}function rr(t,e){return er(t,Zi(t,e))}function nr(t,e){return Ji(t,"{x}, {y}",e)}function or(t,e,i,r,n,o){var s=NaN,a=NaN,h=(i-e)/r;if(1===h)s=t[e],a=t[e+1];else if(2==h)s=(1-n)*t[e]+n*t[e+r],a=(1-n)*t[e+1]+n*t[e+r+1];else if(0!==h){for(var l=t[e],u=t[e+1],p=0,c=[0],d=e+r;d>1)],e))<0?s=r+1:(a=r,h=!n);return h?s:~s}(c,g);if(y<0){var v=(g-c[-y-2])/(c[-y-1]-c[-y-2]),m=e+(-y-2)*r;s=zt(t[m],t[m+r],v),a=zt(t[m+1],t[m+r+1],v)}else s=t[e+y*r],a=t[e+y*r+1]}return o?(o[0]=s,o[1]=a,o):[s,a]}function sr(t,e,i,r,n,o){if(i==e)return null;var s;if(n>1;n0&&g.length>0;)o=g.pop(),u=f.pop(),c=_.pop(),(h=o.toString())in y||(l.push(c[0],c[1]),y[h]=!0),s=g.pop(),p=f.pop(),d=_.pop(),Ut((n=e(r=t(a=(o+s)/2)))[0],n[1],c[0],c[1],d[0],d[1])=1024){var n=0;for(var o in t)0==(3&n++)&&(delete t[o],--e)}r=function(t){var e,i,r,n,o;cr.exec(t)&&(t=function(t){var e=document.createElement("div");if(e.style.color=t,""!==e.style.color){document.body.appendChild(e);var i=getComputedStyle(e).color;return document.body.removeChild(e),i}return""}(t));if(pr.exec(t)){var s,a=t.length-1;s=a<=4?1:2;var h=4===a||8===a;e=parseInt(t.substr(1+0*s,s),16),i=parseInt(t.substr(1+1*s,s),16),r=parseInt(t.substr(1+2*s,s),16),n=h?parseInt(t.substr(1+3*s,s),16):255,1==s&&(e=(e<<4)+e,i=(i<<4)+i,r=(r<<4)+r,h&&(n=(n<<4)+n)),o=[e,i,r,n/255]}else 0==t.indexOf("rgba(")?gr(o=t.slice(5,-1).split(",").map(Number)):0==t.indexOf("rgb(")?((o=t.slice(4,-1).split(",").map(Number)).push(1),gr(o)):Y(!1,14);return o}(i),t[i]=r,++e}return r}}();function _r(t){return Array.isArray(t)?t:fr(t)}function gr(t){return t[0]=kt(t[0]+.5|0,0,255),t[1]=kt(t[1]+.5|0,0,255),t[2]=kt(t[2]+.5|0,0,255),t[3]=kt(t[3],0,1),t}function yr(t){var e=t[0];e!=(0|e)&&(e=e+.5|0);var i=t[1];i!=(0|i)&&(i=i+.5|0);var r=t[2];return r!=(0|r)&&(r=r+.5|0),"rgba("+e+","+i+","+r+","+(void 0===t[3]?1:t[3])+")"}var vr=function(t){var e=t||{};this.color_=void 0!==e.color?e.color:null,this.checksum_=void 0};vr.prototype.clone=function(){var t=this.getColor();return new vr({color:Array.isArray(t)?t.slice():t||void 0})},vr.prototype.getColor=function(){return this.color_},vr.prototype.setColor=function(t){this.color_=t,this.checksum_=void 0},vr.prototype.getChecksum=function(){if(void 0===this.checksum_){var t=this.color_;t?Array.isArray(t)||"string"==typeof t?this.checksum_="f"+dr(t):this.checksum_=o(this.color_):this.checksum_="f-"}return this.checksum_};var mr=vr,xr=function(t){var e=t||{};this.color_=void 0!==e.color?e.color:null,this.lineCap_=e.lineCap,this.lineDash_=void 0!==e.lineDash?e.lineDash:null,this.lineDashOffset_=e.lineDashOffset,this.lineJoin_=e.lineJoin,this.miterLimit_=e.miterLimit,this.width_=e.width,this.checksum_=void 0};xr.prototype.clone=function(){var t=this.getColor();return new xr({color:Array.isArray(t)?t.slice():t||void 0,lineCap:this.getLineCap(),lineDash:this.getLineDash()?this.getLineDash().slice():void 0,lineDashOffset:this.getLineDashOffset(),lineJoin:this.getLineJoin(),miterLimit:this.getMiterLimit(),width:this.getWidth()})},xr.prototype.getColor=function(){return this.color_},xr.prototype.getLineCap=function(){return this.lineCap_},xr.prototype.getLineDash=function(){return this.lineDash_},xr.prototype.getLineDashOffset=function(){return this.lineDashOffset_},xr.prototype.getLineJoin=function(){return this.lineJoin_},xr.prototype.getMiterLimit=function(){return this.miterLimit_},xr.prototype.getWidth=function(){return this.width_},xr.prototype.setColor=function(t){this.color_=t,this.checksum_=void 0},xr.prototype.setLineCap=function(t){this.lineCap_=t,this.checksum_=void 0},xr.prototype.setLineDash=function(t){this.lineDash_=t,this.checksum_=void 0},xr.prototype.setLineDashOffset=function(t){this.lineDashOffset_=t,this.checksum_=void 0},xr.prototype.setLineJoin=function(t){this.lineJoin_=t,this.checksum_=void 0},xr.prototype.setMiterLimit=function(t){this.miterLimit_=t,this.checksum_=void 0},xr.prototype.setWidth=function(t){this.width_=t,this.checksum_=void 0},xr.prototype.getChecksum=function(){return void 0===this.checksum_&&(this.checksum_="s",this.color_?"string"==typeof this.color_?this.checksum_+=this.color_:this.checksum_+=o(this.color_):this.checksum_+="-",this.checksum_+=","+(void 0!==this.lineCap_?this.lineCap_.toString():"-")+","+(this.lineDash_?this.lineDash_.toString():"-")+","+(void 0!==this.lineDashOffset_?this.lineDashOffset_:"-")+","+(void 0!==this.lineJoin_?this.lineJoin_:"-")+","+(void 0!==this.miterLimit_?this.miterLimit_.toString():"-")+","+(void 0!==this.width_?this.width_.toString():"-")),this.checksum_};var Er=xr,Sr="point",Tr="line",Cr=function(t){var e=t||{};this.font_=e.font,this.rotation_=e.rotation,this.rotateWithView_=e.rotateWithView,this.scale_=e.scale,this.text_=e.text,this.textAlign_=e.textAlign,this.textBaseline_=e.textBaseline,this.fill_=void 0!==e.fill?e.fill:new mr({color:"#333"}),this.maxAngle_=void 0!==e.maxAngle?e.maxAngle:Math.PI/4,this.placement_=void 0!==e.placement?e.placement:Sr,this.overflow_=!!e.overflow,this.stroke_=void 0!==e.stroke?e.stroke:null,this.offsetX_=void 0!==e.offsetX?e.offsetX:0,this.offsetY_=void 0!==e.offsetY?e.offsetY:0,this.backgroundFill_=e.backgroundFill?e.backgroundFill:null,this.backgroundStroke_=e.backgroundStroke?e.backgroundStroke:null,this.padding_=void 0===e.padding?null:e.padding};Cr.prototype.clone=function(){return new Cr({font:this.getFont(),placement:this.getPlacement(),maxAngle:this.getMaxAngle(),overflow:this.getOverflow(),rotation:this.getRotation(),rotateWithView:this.getRotateWithView(),scale:this.getScale(),text:this.getText(),textAlign:this.getTextAlign(),textBaseline:this.getTextBaseline(),fill:this.getFill()?this.getFill().clone():void 0,stroke:this.getStroke()?this.getStroke().clone():void 0,offsetX:this.getOffsetX(),offsetY:this.getOffsetY(),backgroundFill:this.getBackgroundFill()?this.getBackgroundFill().clone():void 0,backgroundStroke:this.getBackgroundStroke()?this.getBackgroundStroke().clone():void 0})},Cr.prototype.getOverflow=function(){return this.overflow_},Cr.prototype.getFont=function(){return this.font_},Cr.prototype.getMaxAngle=function(){return this.maxAngle_},Cr.prototype.getPlacement=function(){return this.placement_},Cr.prototype.getOffsetX=function(){return this.offsetX_},Cr.prototype.getOffsetY=function(){return this.offsetY_},Cr.prototype.getFill=function(){return this.fill_},Cr.prototype.getRotateWithView=function(){return this.rotateWithView_},Cr.prototype.getRotation=function(){return this.rotation_},Cr.prototype.getScale=function(){return this.scale_},Cr.prototype.getStroke=function(){return this.stroke_},Cr.prototype.getText=function(){return this.text_},Cr.prototype.getTextAlign=function(){return this.textAlign_},Cr.prototype.getTextBaseline=function(){return this.textBaseline_},Cr.prototype.getBackgroundFill=function(){return this.backgroundFill_},Cr.prototype.getBackgroundStroke=function(){return this.backgroundStroke_},Cr.prototype.getPadding=function(){return this.padding_},Cr.prototype.setOverflow=function(t){this.overflow_=t},Cr.prototype.setFont=function(t){this.font_=t},Cr.prototype.setMaxAngle=function(t){this.maxAngle_=t},Cr.prototype.setOffsetX=function(t){this.offsetX_=t},Cr.prototype.setOffsetY=function(t){this.offsetY_=t},Cr.prototype.setPlacement=function(t){this.placement_=t},Cr.prototype.setFill=function(t){this.fill_=t},Cr.prototype.setRotation=function(t){this.rotation_=t},Cr.prototype.setScale=function(t){this.scale_=t},Cr.prototype.setStroke=function(t){this.stroke_=t},Cr.prototype.setText=function(t){this.text_=t},Cr.prototype.setTextAlign=function(t){this.textAlign_=t},Cr.prototype.setTextBaseline=function(t){this.textBaseline_=t},Cr.prototype.setBackgroundFill=function(t){this.backgroundFill_=t},Cr.prototype.setBackgroundStroke=function(t){this.backgroundStroke_=t},Cr.prototype.setPadding=function(t){this.padding_=t};var Rr=Cr,wr=new Er({color:"rgba(0,0,0,0.2)"}),Ir=[90,45,30,20,10,5,2,1,.5,.2,.1,.05,.01,.005,.002,.001],Lr=function(t){var e=t||{};this.map_=null,this.postcomposeListenerKey_=null,this.projection_=null,this.maxLat_=1/0,this.maxLon_=1/0,this.minLat_=-1/0,this.minLon_=-1/0,this.maxLatP_=1/0,this.maxLonP_=1/0,this.minLatP_=-1/0,this.minLonP_=-1/0,this.targetSize_=void 0!==e.targetSize?e.targetSize:100,this.maxLines_=void 0!==e.maxLines?e.maxLines:100,this.meridians_=[],this.parallels_=[],this.strokeStyle_=void 0!==e.strokeStyle?e.strokeStyle:wr,this.fromLonLatTransform_=void 0,this.toLonLatTransform_=void 0,this.projectionCenterLonLat_=null,this.meridiansLabels_=null,this.parallelsLabels_=null,1==e.showLabels&&(this.lonLabelFormatter_=void 0==e.lonLabelFormatter?qi.bind(this,"EW"):e.lonLabelFormatter,this.latLabelFormatter_=void 0==e.latLabelFormatter?qi.bind(this,"NS"):e.latLabelFormatter,this.lonLabelPosition_=void 0==e.lonLabelPosition?0:e.lonLabelPosition,this.latLabelPosition_=void 0==e.latLabelPosition?1:e.latLabelPosition,this.lonLabelStyle_=void 0!==e.lonLabelStyle?e.lonLabelStyle:new Rr({font:"12px Calibri,sans-serif",textBaseline:"bottom",fill:new mr({color:"rgba(0,0,0,1)"}),stroke:new Er({color:"rgba(255,255,255,1)",width:3})}),this.latLabelStyle_=void 0!==e.latLabelStyle?e.latLabelStyle:new Rr({font:"12px Calibri,sans-serif",textAlign:"end",fill:new mr({color:"rgba(0,0,0,1)"}),stroke:new Er({color:"rgba(255,255,255,1)",width:3})}),this.meridiansLabels_=[],this.parallelsLabels_=[]),this.intervals_=void 0!==e.intervals?e.intervals:Ir,this.setMap(void 0!==e.map?e.map:null)};Lr.prototype.addMeridian_=function(t,e,i,r,n,o){var s=this.getMeridian_(t,e,i,r,o);if(Pt(s.getExtent(),n)){if(this.meridiansLabels_){var a=this.getMeridianPoint_(s,n,o);this.meridiansLabels_[o]={geom:a,text:this.lonLabelFormatter_(t)}}this.meridians_[o++]=s}return o},Lr.prototype.getMeridianPoint_=function(t,e,i){var r,n=t.getFlatCoordinates(),o=Math.max(e[1],n[1]),s=Math.min(e[3],n[n.length-1]),a=kt(e[1]+Math.abs(e[1]-e[3])*this.lonLabelPosition_,o,s),h=[n[0],a];return i in this.meridiansLabels_?(r=this.meridiansLabels_[i].geom).setCoordinates(h):r=new ci(h),r},Lr.prototype.addParallel_=function(t,e,i,r,n,o){var s=this.getParallel_(t,e,i,r,o);if(Pt(s.getExtent(),n)){if(this.parallelsLabels_){var a=this.getParallelPoint_(s,n,o);this.parallelsLabels_[o]={geom:a,text:this.latLabelFormatter_(t)}}this.parallels_[o++]=s}return o},Lr.prototype.getParallelPoint_=function(t,e,i){var r,n=t.getFlatCoordinates(),o=Math.max(e[0],n[0]),s=Math.min(e[2],n[n.length-2]),a=[kt(e[0]+Math.abs(e[0]-e[2])*this.latLabelPosition_,o,s),n[1]];return i in this.parallelsLabels_?(r=this.parallelsLabels_[i].geom).setCoordinates(a):r=new ci(a),r},Lr.prototype.createGraticule_=function(t,e,i,r){var n=this.getInterval_(i);if(-1==n)return this.meridians_.length=this.parallels_.length=0,this.meridiansLabels_&&(this.meridiansLabels_.length=0),void(this.parallelsLabels_&&(this.parallelsLabels_.length=0));var o,s,a,h,l=this.toLonLatTransform_(e),u=l[0],p=l[1],c=this.maxLines_,d=[Math.max(t[0],this.minLonP_),Math.max(t[1],this.minLatP_),Math.min(t[2],this.maxLonP_),Math.min(t[3],this.maxLatP_)],f=(d=be(d,this.projection_,"EPSG:4326"))[3],_=d[2],g=d[1],y=d[0];for(h=kt(u=Math.floor(u/n)*n,this.minLon_,this.maxLon_),s=this.addMeridian_(h,g,f,r,t,0),o=0;h!=this.minLon_&&o++0&&this.points_[i+2]>t;)i-=3;var r=this.points_[e+2]-this.points_[i+2];if(r<1e3/60)return!1;var n=this.points_[e]-this.points_[i],o=this.points_[e+1]-this.points_[i+1];return this.angle_=Math.atan2(o,n),this.initialVelocity_=Math.sqrt(n*n+o*o)/r,this.initialVelocity_>this.minVelocity_},Pr.prototype.getDistance=function(){return(this.minVelocity_-this.initialVelocity_)/this.decay_},Pr.prototype.getAngle=function(){return this.angle_};var br=Pr,Mr=function(t){function e(e,i,r){t.call(this,e),this.map=i,this.frameState=void 0!==r?r:null}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e}(P),Fr=function(t){function e(e,i,r,n,o){t.call(this,e,i,o),this.originalEvent=r,this.pixel=i.getEventPixel(r),this.coordinate=i.getCoordinateFromPixel(this.pixel),this.dragging=void 0!==n&&n}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.preventDefault=function(){t.prototype.preventDefault.call(this),this.originalEvent.preventDefault()},e.prototype.stopPropagation=function(){t.prototype.stopPropagation.call(this),this.originalEvent.stopPropagation()},e}(Mr),Ar={SINGLECLICK:"singleclick",CLICK:M.CLICK,DBLCLICK:M.DBLCLICK,POINTERDRAG:"pointerdrag",POINTERMOVE:"pointermove",POINTERDOWN:"pointerdown",POINTERUP:"pointerup",POINTEROVER:"pointerover",POINTEROUT:"pointerout",POINTERENTER:"pointerenter",POINTERLEAVE:"pointerleave",POINTERCANCEL:"pointercancel"},Nr=function(t){function e(e,i,r,n,o){t.call(this,e,i,r.originalEvent,n,o),this.pointerEvent=r}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e}(Fr),Gr={POINTERMOVE:"pointermove",POINTERDOWN:"pointerdown",POINTERUP:"pointerup",POINTEROVER:"pointerover",POINTEROUT:"pointerout",POINTERENTER:"pointerenter",POINTERLEAVE:"pointerleave",POINTERCANCEL:"pointercancel"},Dr=function(t,e){this.dispatcher=t,this.mapping_=e};Dr.prototype.getEvents=function(){return Object.keys(this.mapping_)},Dr.prototype.getHandlerForEvent=function(t){return this.mapping_[t]};var kr=Dr,jr=1,Ur="mouse";function Yr(t){if(!this.isEventSimulatedFromTouch_(t)){jr.toString()in this.pointerMap&&this.cancel(t);var e=Wr(t,this.dispatcher);this.pointerMap[jr.toString()]=t,this.dispatcher.down(e,t)}}function Br(t){if(!this.isEventSimulatedFromTouch_(t)){var e=Wr(t,this.dispatcher);this.dispatcher.move(e,t)}}function Vr(t){if(!this.isEventSimulatedFromTouch_(t)){var e=this.pointerMap[jr.toString()];if(e&&e.button===t.button){var i=Wr(t,this.dispatcher);this.dispatcher.up(i,t),this.cleanupMouse()}}}function Xr(t){if(!this.isEventSimulatedFromTouch_(t)){var e=Wr(t,this.dispatcher);this.dispatcher.enterOver(e,t)}}function zr(t){if(!this.isEventSimulatedFromTouch_(t)){var e=Wr(t,this.dispatcher);this.dispatcher.leaveOut(e,t)}}function Wr(t,e){var i=e.cloneEvent(t,t),r=i.preventDefault;return i.preventDefault=function(){t.preventDefault(),r()},i.pointerId=jr,i.isPrimary=!0,i.pointerType=Ur,i}var Kr=function(t){function e(e){var i={mousedown:Yr,mousemove:Br,mouseup:Vr,mouseover:Xr,mouseout:zr};t.call(this,e,i),this.pointerMap=e.pointerMap,this.lastTouches=[]}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.isEventSimulatedFromTouch_=function(t){for(var e=this.lastTouches,i=t.clientX,r=t.clientY,n=0,o=e.length,s=void 0;n=e.length){for(var n=[],o=0;o-1;r&&t.splice(i,1)}(e,r)},this.dedupTimeout_)}},e}(kr),Sn=[["bubbles",!1],["cancelable",!1],["view",null],["detail",null],["screenX",0],["screenY",0],["clientX",0],["clientY",0],["ctrlKey",!1],["altKey",!1],["shiftKey",!1],["metaKey",!1],["button",0],["relatedTarget",null],["buttons",0],["pointerId",0],["width",0],["height",0],["pressure",0],["tiltX",0],["tiltY",0],["pointerType",""],["hwTimestamp",0],["isPrimary",!1],["type",""],["target",null],["currentTarget",null],["which",0]],Tn=function(t){function e(e){t.call(this),this.element_=e,this.pointerMap={},this.eventMap_={},this.eventSourceList_=[],this.registerSources()}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.registerSources=function(){if(Yi)this.registerSource("native",new dn(this));else if(Bi)this.registerSource("ms",new nn(this));else{var t=new Kr(this);this.registerSource("mouse",t),Ui&&this.registerSource("touch",new En(this,t))}this.register_()},e.prototype.registerSource=function(t,e){var i=e,r=i.getEvents();r&&(r.forEach(function(t){var e=i.getHandlerForEvent(t);e&&(this.eventMap_[t]=e.bind(i))}.bind(this)),this.eventSourceList_.push(i))},e.prototype.register_=function(){for(var t=this.eventSourceList_.length,e=0;ethis.moveTolerance_||Math.abs(t.clientY-this.down_.clientY)>this.moveTolerance_},e.prototype.disposeInternal=function(){this.relayedListenerKey_&&(E(this.relayedListenerKey_),this.relayedListenerKey_=null),this.pointerdownListenerKey_&&(E(this.pointerdownListenerKey_),this.pointerdownListenerKey_=null),this.dragListenerKeys_.forEach(E),this.dragListenerKeys_.length=0,this.documentPointerEventHandler_&&(this.documentPointerEventHandler_.dispose(),this.documentPointerEventHandler_=null),this.pointerEventHandler_&&(this.pointerEventHandler_.dispose(),this.pointerEventHandler_=null),t.prototype.disposeInternal.call(this)},e}(b),Rn="postrender",wn="movestart",In="moveend",Ln={LAYERGROUP:"layergroup",SIZE:"size",TARGET:"target",VIEW:"view"},On={IDLE:0,LOADING:1,LOADED:2,ERROR:3,EMPTY:4,ABORT:5},Pn=function(t,e){this.priorityFunction_=t,this.keyFunction_=e,this.elements_=[],this.priorities_=[],this.queuedElements_={}};Pn.prototype.clear=function(){this.elements_.length=0,this.priorities_.length=0,p(this.queuedElements_)},Pn.prototype.dequeue=function(){var t=this.elements_,e=this.priorities_,i=t[0];1==t.length?(t.length=0,e.length=0):(t[0]=t.pop(),e[0]=e.pop(),this.siftUp_(0));var r=this.keyFunction_(i);return delete this.queuedElements_[r],i},Pn.prototype.enqueue=function(t){Y(!(this.keyFunction_(t)in this.queuedElements_),31);var e=this.priorityFunction_(t);return e!=1/0&&(this.elements_.push(t),this.priorities_.push(e),this.queuedElements_[this.keyFunction_(t)]=!0,this.siftDown_(0,this.elements_.length-1),!0)},Pn.prototype.getCount=function(){return this.elements_.length},Pn.prototype.getLeftChildIndex_=function(t){return 2*t+1},Pn.prototype.getRightChildIndex_=function(t){return 2*t+2},Pn.prototype.getParentIndex_=function(t){return t-1>>1},Pn.prototype.heapify_=function(){var t;for(t=(this.elements_.length>>1)-1;t>=0;t--)this.siftUp_(t)},Pn.prototype.isEmpty=function(){return 0===this.elements_.length},Pn.prototype.isKeyQueued=function(t){return t in this.queuedElements_},Pn.prototype.isQueued=function(t){return this.isKeyQueued(this.keyFunction_(t))},Pn.prototype.siftUp_=function(t){for(var e=this.elements_,i=this.priorities_,r=e.length,n=e[t],o=i[t],s=t;t>1;){var a=this.getLeftChildIndex_(t),h=this.getRightChildIndex_(t),l=ht;){var s=this.getParentIndex_(e);if(!(r[s]>o))break;i[e]=i[s],r[e]=r[s],e=s}i[e]=n,r[e]=o},Pn.prototype.reprioritize=function(){var t,e,i,r=this.priorityFunction_,n=this.elements_,o=this.priorities_,s=0,a=n.length;for(e=0;e0;)n=(r=this.dequeue()[0]).getKey(),(i=r.getState())===On.ABORT?s=!0:i!==On.IDLE||n in this.tilesLoadingKeys_||(this.tilesLoadingKeys_[n]=!0,++this.tilesLoading_,++o,r.load());0===o&&s&&this.tileChangeCallback_()},e}(bn),Fn=42,An=256;function Nn(t){return t}function Gn(t,e){return void 0!==t?0:void 0}function Dn(t,e){return void 0!==t?t+e:void 0}var kn=0,jn=1,Un="center",Yn="resolution",Bn="rotation";function Vn(t){return Math.pow(t,3)}function Xn(t){return 1-Vn(1-t)}function zn(t){return 3*t*t-2*t*t*t}function Wn(t){return t}var Kn=0;function Hn(t,e){setTimeout(function(){t(e)},0)}function Zn(t){return!(t.sourceCenter&&t.targetCenter&&!Qi(t.sourceCenter,t.targetCenter))&&(t.sourceResolution===t.targetResolution&&t.sourceRotation===t.targetRotation)}var qn=function(t){function e(e){t.call(this);var i=u({},e);this.hints_=[0,0],this.animations_=[],this.updateAnimationKey_,this.updateAnimations_=this.updateAnimations_.bind(this),this.projection_=Ce(i.projection,"EPSG:3857"),this.applyOptions_(i)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.applyOptions_=function(t){var e={};e[Un]=void 0!==t.center?t.center:null;var i=function(t){var e,i,r,n=void 0!==t.minZoom?t.minZoom:Kn,o=void 0!==t.maxZoom?t.maxZoom:28,s=void 0!==t.zoomFactor?t.zoomFactor:2;if(void 0!==t.resolutions){var a=t.resolutions;i=a[n],r=void 0!==a[o]?a[o]:a[a.length-1],e=function(t){return function(e,i,r){if(void 0!==e){var n=z(t,e,r);n=kt(n+i,0,t.length-1);var o=Math.floor(n);if(n!=o&&o1&&"function"==typeof arguments[r-1]&&(e=arguments[r-1],--r),!this.isDef()){var n=arguments[r-1];return n.center&&this.setCenter(n.center),void 0!==n.zoom&&this.setZoom(n.zoom),void 0!==n.rotation&&this.setRotation(n.rotation),void(e&&Hn(e,!0))}for(var o=Date.now(),s=this.getCenter().slice(),a=this.getResolution(),h=this.getRotation(),l=[],u=0;u0},e.prototype.getInteracting=function(){return this.hints_[jn]>0},e.prototype.cancelAnimations=function(){this.setHint(kn,-this.hints_[kn]);for(var t=0,e=this.animations_.length;t=0;--i){for(var r=this.animations_[i],n=!0,o=0,s=r.length;o0?h/a.duration:1;l>=1?(a.complete=!0,l=1):n=!1;var u=a.easing(l);if(a.sourceCenter){var p=a.sourceCenter[0],c=a.sourceCenter[1],d=p+u*(a.targetCenter[0]-p),f=c+u*(a.targetCenter[1]-c);this.set(Un,[d,f])}if(a.sourceResolution&&a.targetResolution){var _=1===u?a.targetResolution:a.sourceResolution+u*(a.targetResolution-a.sourceResolution);a.anchor&&this.set(Un,this.calculateCenterZoom(_,a.anchor)),this.set(Yn,_)}if(void 0!==a.sourceRotation&&void 0!==a.targetRotation){var g=1===u?Xt(a.targetRotation+Math.PI,2*Math.PI)-Math.PI:a.sourceRotation+u*(a.targetRotation-a.sourceRotation);a.anchor&&this.set(Un,this.calculateCenterRotate(g,a.anchor)),this.set(Bn,g)}if(e=!0,!a.complete)break}}if(n){this.animations_[i]=null,this.setHint(kn,-1);var y=r[0].callback;y&&Hn(y,!0)}}this.animations_=this.animations_.filter(Boolean),e&&void 0===this.updateAnimationKey_&&(this.updateAnimationKey_=requestAnimationFrame(this.updateAnimations_))}},e.prototype.calculateCenterRotate=function(t,e){var i,r=this.getCenter();return void 0!==r&&($i(i=[r[0]-e[0],r[1]-e[1]],t-this.getRotation()),Hi(i,e)),i},e.prototype.calculateCenterZoom=function(t,e){var i,r=this.getCenter(),n=this.getResolution();void 0!==r&&void 0!==n&&(i=[e[0]-t*(e[0]-r[0])/n,e[1]-t*(e[1]-r[1])/n]);return i},e.prototype.getSizeFromViewport_=function(){var t=[100,100],e='.ol-viewport[data-view="'+o(this)+'"]',i=document.querySelector(e);if(i){var r=getComputedStyle(i);t[0]=parseInt(r.width,10),t[1]=parseInt(r.height,10)}return t},e.prototype.constrainCenter=function(t){return this.constraints_.center(t)},e.prototype.constrainResolution=function(t,e,i){var r=e||0,n=i||0;return this.constraints_.resolution(t,r,n)},e.prototype.constrainRotation=function(t,e){var i=e||0;return this.constraints_.rotation(t,i)},e.prototype.getCenter=function(){return this.get(Un)},e.prototype.getConstraints=function(){return this.constraints_},e.prototype.getHints=function(t){return void 0!==t?(t[0]=this.hints_[0],t[1]=this.hints_[1],t):this.hints_.slice()},e.prototype.calculateExtent=function(t){var e=t||this.getSizeFromViewport_(),i=this.getCenter();Y(i,1);var r=this.getResolution();Y(void 0!==r,2);var n=this.getRotation();return Y(void 0!==n,3),Ct(i,r,n,e)},e.prototype.getMaxResolution=function(){return this.maxResolution_},e.prototype.getMinResolution=function(){return this.minResolution_},e.prototype.getMaxZoom=function(){return this.getZoomForResolution(this.minResolution_)},e.prototype.setMaxZoom=function(t){this.applyOptions_(this.getUpdatedOptions_({maxZoom:t}))},e.prototype.getMinZoom=function(){return this.getZoomForResolution(this.maxResolution_)},e.prototype.setMinZoom=function(t){this.applyOptions_(this.getUpdatedOptions_({minZoom:t}))},e.prototype.getProjection=function(){return this.projection_},e.prototype.getResolution=function(){return this.get(Yn)},e.prototype.getResolutions=function(){return this.resolutions_},e.prototype.getResolutionForExtent=function(t,e){var i=e||this.getSizeFromViewport_(),r=Ot(t)/i[0],n=Rt(t)/i[1];return Math.max(r,n)},e.prototype.getResolutionForValueFunction=function(t){var e=t||2,i=this.maxResolution_,r=this.minResolution_,n=Math.log(i/r)/Math.log(e);return function(t){return i/Math.pow(e,t*n)}},e.prototype.getRotation=function(){return this.get(Bn)},e.prototype.getValueForResolutionFunction=function(t){var e=t||2,i=this.maxResolution_,r=this.minResolution_,n=Math.log(i/r)/Math.log(e);return function(t){return Math.log(i/t)/Math.log(e)/n}},e.prototype.getState=function(t){var e=this.getCenter(),i=this.getProjection(),r=this.getResolution(),n=r/t,o=this.getRotation();return{center:[Math.round(e[0]/n)*n,Math.round(e[1]/n)*n],projection:void 0!==i?i:null,resolution:r,rotation:o,zoom:this.getZoom()}},e.prototype.getZoom=function(){var t,e=this.getResolution();return void 0!==e&&(t=this.getZoomForResolution(e)),t},e.prototype.getZoomForResolution=function(t){var e,i,r=this.minZoom_||0;if(this.resolutions_){var n=z(this.resolutions_,t,1);r=n,e=this.resolutions_[n],i=n==this.resolutions_.length-1?2:e/this.resolutions_[n+1]}else e=this.maxResolution_,i=this.zoomFactor_;return r+Math.log(e/t)/Math.log(i)},e.prototype.getResolutionForZoom=function(t){return this.constrainResolution(this.maxResolution_,t-this.minZoom_,0)},e.prototype.fit=function(t,e){var i,r=e||{},n=r.size;n||(n=this.getSizeFromViewport_()),Y(Array.isArray(t)||"function"==typeof t.getSimplifiedGeometry,24),Array.isArray(t)?(Y(!bt(t),25),i=Oi(t)):t.getType()===Nt.CIRCLE?(i=Oi(t=t.getExtent())).rotate(this.getRotation(),Tt(t)):i=t;var o,s=void 0!==r.padding?r.padding:[0,0,0,0],a=void 0===r.constrainResolution||r.constrainResolution,h=void 0!==r.nearest&&r.nearest;o=void 0!==r.minResolution?r.minResolution:void 0!==r.maxZoom?this.constrainResolution(this.maxResolution_,r.maxZoom-this.minZoom_,0):0;for(var l=i.getFlatCoordinates(),u=this.getRotation(),p=Math.cos(-u),c=Math.sin(-u),d=1/0,f=1/0,_=-1/0,g=-1/0,y=i.getStride(),v=0,m=l.length;v=0;i--){var r=e[i];if(r.getActive())if(!r.handleEvent(t))break}}},e.prototype.handlePostRender=function(){var t=this.frameState_,e=this.tileQueue_;if(!e.isEmpty()){var i=this.maxTilesLoading_,r=i;if(t){var n=t.viewHints;n[kn]&&(i=this.loadTilesWhileAnimating_?8:0,r=2),n[jn]&&(i=this.loadTilesWhileInteracting_?8:0,r=2)}e.getTilesLoading()0&&t[1]>0}(i)&&r&&r.isDef()){for(var h=r.getHints(this.frameState_?this.frameState_.viewHints:void 0),l=this.getLayerGroup().getLayerStatesArray(),u={},p=0,c=l.length;p=t.minResolution&&e0;if(this.renderedVisible_!=i&&(this.element.style.display=i?"":"none",this.renderedVisible_=i),!Z(e,this.renderedAttributions_)){to(this.ulElement_);for(var r=0,n=e.length;r0?t.animate({rotation:0,duration:this.duration_,easing:Xn}):t.setRotation(0))},e}(uo),Ro=function(t){function e(e){var i=e||{};t.call(this,{element:document.createElement("div"),target:i.target});var r=void 0!==i.className?i.className:"ol-zoom",n=void 0!==i.delta?i.delta:1,o=void 0!==i.zoomInLabel?i.zoomInLabel:"+",s=void 0!==i.zoomOutLabel?i.zoomOutLabel:"−",a=void 0!==i.zoomInTipLabel?i.zoomInTipLabel:"Zoom in",h=void 0!==i.zoomOutTipLabel?i.zoomOutTipLabel:"Zoom out",l=document.createElement("button");l.className=r+"-in",l.setAttribute("type","button"),l.title=a,l.appendChild("string"==typeof o?document.createTextNode(o):o),v(l,M.CLICK,this.handleClick_.bind(this,n));var u=document.createElement("button");u.className=r+"-out",u.setAttribute("type","button"),u.title=h,u.appendChild("string"==typeof s?document.createTextNode(s):s),v(u,M.CLICK,this.handleClick_.bind(this,-n));var p=r+" "+fo+" "+go,c=this.element;c.className=p,c.appendChild(l),c.appendChild(u),this.duration_=void 0!==i.duration?i.duration:250}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.handleClick_=function(t,e){e.preventDefault(),this.zoomByDelta_(t)},e.prototype.zoomByDelta_=function(t){var e=this.getMap().getView();if(e){var i=e.getResolution();if(i){var r=e.constrainResolution(i,t);this.duration_>0?(e.getAnimating()&&e.cancelAnimations(),e.animate({resolution:r,duration:this.duration_,easing:Xn})):e.setResolution(r)}}},e}(uo);function wo(t){var e=t||{},i=new U;return(void 0===e.zoom||e.zoom)&&i.push(new Ro(e.zoomOptions)),(void 0===e.rotate||e.rotate)&&i.push(new Co(e.rotateOptions)),(void 0===e.attribution||e.attribution)&&i.push(new So(e.attributionOptions)),i}var Io={ACTIVE:"active"};function Lo(t,e,i,r){Oo(t,e=t.constrainRotation(e,0),i,r)}function Oo(t,e,i,r){if(void 0!==e){var n=t.getRotation(),o=t.getCenter();void 0!==n&&o&&r>0?t.animate({rotation:e,anchor:i,duration:r,easing:Xn}):t.rotate(e,i)}}function Po(t,e,i,r,n){Mo(t,e=t.constrainResolution(e,0,n),i,r)}function bo(t,e,i,r){var n=t.getResolution(),o=t.constrainResolution(n,e,0);if(void 0!==o){var s=t.getResolutions();o=kt(o,t.getMinResolution()||s[s.length-1],t.getMaxResolution()||s[0])}if(i&&void 0!==o&&o!==n){var a=t.getCenter(),h=t.calculateCenterZoom(o,i);h=t.constrainCenter(h),i=[(o*a[0]-n*h[0])/(o-n),(o*a[1]-n*h[1])/(o-n)]}Mo(t,o,i,r)}function Mo(t,e,i,r){if(e){var n=t.getResolution(),o=t.getCenter();if(void 0!==n&&o&&e!==n&&r)t.animate({resolution:e,anchor:i,duration:r,easing:Xn});else{if(i){var s=t.calculateCenterZoom(e,i);t.setCenter(s)}t.setResolution(e)}}}var Fo=function(t){function e(e){t.call(this),e.handleEvent&&(this.handleEvent=e.handleEvent),this.map_=null,this.setActive(!0)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.getActive=function(){return this.get(Io.ACTIVE)},e.prototype.getMap=function(){return this.map_},e.prototype.handleEvent=function(t){return!0},e.prototype.setActive=function(t){this.set(Io.ACTIVE,t)},e.prototype.setMap=function(t){this.map_=t},e}(D);function Ao(t){var e=!1;if(t.type==Ar.DBLCLICK){var i=t.originalEvent,r=t.map,n=t.coordinate,o=i.shiftKey?-this.delta_:this.delta_;bo(r.getView(),o,n,this.duration_),t.preventDefault(),e=!0}return!e}var No=function(t){function e(e){t.call(this,{handleEvent:Ao});var i=e||{};this.delta_=i.delta?i.delta:1,this.duration_=void 0!==i.duration?i.duration:250}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e}(Fo),Go=function(t){var e=t.originalEvent;return e.altKey&&!(e.metaKey||e.ctrlKey)&&!e.shiftKey},Do=function(t){var e=t.originalEvent;return e.altKey&&!(e.metaKey||e.ctrlKey)&&e.shiftKey},ko=function(t){return t.target.getTargetElement()===document.activeElement},jo=R,Uo=function(t){var e=t.originalEvent;return 0==e.button&&!(Ni&&Gi&&e.ctrlKey)},Yo=w,Bo=function(t){return"pointermove"==t.type},Vo=function(t){return t.type==Ar.SINGLECLICK},Xo=function(t){var e=t.originalEvent;return!e.altKey&&!(e.metaKey||e.ctrlKey)&&!e.shiftKey},zo=function(t){var e=t.originalEvent;return!e.altKey&&!(e.metaKey||e.ctrlKey)&&e.shiftKey},Wo=function(t){var e=t.originalEvent.target.tagName;return"INPUT"!==e&&"SELECT"!==e&&"TEXTAREA"!==e},Ko=function(t){var e=t.pointerEvent;return Y(void 0!==e,56),"mouse"==e.pointerType},Ho=function(t){var e=t.pointerEvent;return Y(void 0!==e,56),e.isPrimary&&0===e.button};function Zo(t){for(var e=t.length,i=0,r=0,n=0;n0}}else if(t.type==Ar.POINTERDOWN){var r=this.handleDownEvent(t);r&&t.preventDefault(),this.handlingDownUpSequence=r,e=this.stopDown(r)}else t.type==Ar.POINTERMOVE&&this.handleMoveEvent(t);return!e},e.prototype.handleMoveEvent=function(t){},e.prototype.handleUpEvent=function(t){return!1},e.prototype.stopDown=function(t){return t},e.prototype.updateTrackedPointers_=function(t){if(function(t){var e=t.type;return e===Ar.POINTERDOWN||e===Ar.POINTERDRAG||e===Ar.POINTERUP}(t)){var e=t.pointerEvent,i=e.pointerId.toString();t.type==Ar.POINTERUP?delete this.trackedPointers_[i]:t.type==Ar.POINTERDOWN?this.trackedPointers_[i]=e:i in this.trackedPointers_&&(this.trackedPointers_[i]=e),this.targetPointers=c(this.trackedPointers_)}},e}(Fo),Jo=function(t){function e(e){t.call(this,{stopDown:w});var i=e||{};this.kinetic_=i.kinetic,this.lastCentroid=null,this.lastPointersCount_,this.panning_=!1,this.condition_=i.condition?i.condition:Xo,this.noKinetic_=!1}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.handleDragEvent=function(t){this.panning_||(this.panning_=!0,this.getMap().getView().setHint(jn,1));var e=this.targetPointers,i=Zo(e);if(e.length==this.lastPointersCount_){if(this.kinetic_&&this.kinetic_.update(i[0],i[1]),this.lastCentroid){var r=this.lastCentroid[0]-i[0],n=i[1]-this.lastCentroid[1],o=t.map.getView(),s=[r,n];tr(s,o.getResolution()),$i(s,o.getRotation()),Hi(s,o.getCenter()),s=o.constrainCenter(s),o.setCenter(s)}}else this.kinetic_&&this.kinetic_.begin();this.lastCentroid=i,this.lastPointersCount_=e.length},e.prototype.handleUpEvent=function(t){var e=t.map,i=e.getView();if(0===this.targetPointers.length){if(!this.noKinetic_&&this.kinetic_&&this.kinetic_.end()){var r=this.kinetic_.getDistance(),n=this.kinetic_.getAngle(),o=i.getCenter(),s=e.getPixelFromCoordinate(o),a=e.getCoordinateFromPixel([s[0]-r*Math.cos(n),s[1]-r*Math.sin(n)]);i.animate({center:i.constrainCenter(a),duration:500,easing:Xn})}return this.panning_&&(this.panning_=!1,i.setHint(jn,-1)),!1}return this.kinetic_&&this.kinetic_.begin(),this.lastCentroid=null,!0},e.prototype.handleDownEvent=function(t){if(this.targetPointers.length>0&&this.condition_(t)){var e=t.map.getView();return this.lastCentroid=null,e.getAnimating()&&e.setCenter(t.frameState.viewState.center),this.kinetic_&&this.kinetic_.begin(),this.noKinetic_=this.targetPointers.length>1,!0}return!1},e}(qo),Qo=function(t){function e(e){var i=e||{};t.call(this,{stopDown:w}),this.condition_=i.condition?i.condition:Do,this.lastAngle_=void 0,this.duration_=void 0!==i.duration?i.duration:250}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.handleDragEvent=function(t){if(Ko(t)){var e=t.map,i=e.getView();if(i.getConstraints().rotation!==Gn){var r=e.getSize(),n=t.pixel,o=Math.atan2(r[1]/2-n[1],n[0]-r[0]/2);if(void 0!==this.lastAngle_){var s=o-this.lastAngle_;Oo(i,i.getRotation()-s)}this.lastAngle_=o}}},e.prototype.handleUpEvent=function(t){if(!Ko(t))return!0;var e=t.map.getView();return e.setHint(jn,-1),Lo(e,e.getRotation(),void 0,this.duration_),!1},e.prototype.handleDownEvent=function(t){return!!Ko(t)&&(!(!Uo(t)||!this.condition_(t))&&(t.map.getView().setHint(jn,1),this.lastAngle_=void 0,!0))},e}(qo),$o=function(t){function e(e){t.call(this),this.geometry_=null,this.element_=document.createElement("div"),this.element_.style.position="absolute",this.element_.className="ol-box "+e,this.map_=null,this.startPixel_=null,this.endPixel_=null}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.disposeInternal=function(){this.setMap(null)},e.prototype.render_=function(){var t=this.startPixel_,e=this.endPixel_,i=this.element_.style;i.left=Math.min(t[0],e[0])+"px",i.top=Math.min(t[1],e[1])+"px",i.width=Math.abs(e[0]-t[0])+"px",i.height=Math.abs(e[1]-t[1])+"px"},e.prototype.setMap=function(t){if(this.map_){this.map_.getOverlayContainer().removeChild(this.element_);var e=this.element_.style;e.left=e.top=e.width=e.height="inherit"}this.map_=t,this.map_&&this.map_.getOverlayContainer().appendChild(this.element_)},e.prototype.setPixels=function(t,e){this.startPixel_=t,this.endPixel_=e,this.createOrUpdateGeometry(),this.render_()},e.prototype.createOrUpdateGeometry=function(){var t=this.startPixel_,e=this.endPixel_,i=[t,[t[0],e[1]],e,[e[0],t[1]]].map(this.map_.getCoordinateFromPixel,this.map_);i[4]=i[0].slice(),this.geometry_?this.geometry_.setCoordinates([i]):this.geometry_=new Ii([i])},e.prototype.getGeometry=function(){return this.geometry_},e}(C),ts="boxstart",es="boxdrag",is="boxend",rs=function(t){function e(e,i,r){t.call(this,e),this.coordinate=i,this.mapBrowserEvent=r}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e}(P),ns=function(t){function e(e){t.call(this);var i=e||{};this.box_=new $o(i.className||"ol-dragbox"),this.minArea_=void 0!==i.minArea?i.minArea:64,this.onBoxEnd_=i.onBoxEnd?i.onBoxEnd:I,this.startPixel_=null,this.condition_=i.condition?i.condition:jo,this.boxEndCondition_=i.boxEndCondition?i.boxEndCondition:this.defaultBoxEndCondition}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.defaultBoxEndCondition=function(t,e,i){var r=i[0]-e[0],n=i[1]-e[1];return r*r+n*n>=this.minArea_},e.prototype.getGeometry=function(){return this.box_.getGeometry()},e.prototype.handleDragEvent=function(t){Ko(t)&&(this.box_.setPixels(this.startPixel_,t.pixel),this.dispatchEvent(new rs(es,t.coordinate,t)))},e.prototype.handleUpEvent=function(t){return!Ko(t)||(this.box_.setMap(null),this.boxEndCondition_(t,this.startPixel_,t.pixel)&&(this.onBoxEnd_(t),this.dispatchEvent(new rs(is,t.coordinate,t))),!1)},e.prototype.handleDownEvent=function(t){return!!Ko(t)&&(!(!Uo(t)||!this.condition_(t))&&(this.startPixel_=t.pixel,this.box_.setMap(t.map),this.box_.setPixels(this.startPixel_,this.startPixel_),this.dispatchEvent(new rs(ts,t.coordinate,t)),!0))},e}(qo);function os(){var t=this.getMap(),e=t.getView(),i=t.getSize(),r=this.getGeometry().getExtent();if(this.out_){var n=e.calculateExtent(i),o=function(t,e){return gt(ut(e),t)}([t.getPixelFromCoordinate(Et(r)),t.getPixelFromCoordinate(Lt(r))]);Mt(n,1/e.getResolutionForExtent(o,i)),r=n}var s=e.constrainResolution(e.getResolutionForExtent(r,i)),a=Tt(r);a=e.constrainCenter(a),e.animate({resolution:s,center:a,duration:this.duration_,easing:Xn})}var ss=function(t){function e(e){var i=e||{},r=i.condition?i.condition:zo;t.call(this,{condition:r,className:i.className||"ol-dragzoom",onBoxEnd:os}),this.duration_=void 0!==i.duration?i.duration:200,this.out_=void 0!==i.out&&i.out}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e}(ns),as={LEFT:37,UP:38,RIGHT:39,DOWN:40};function hs(t){var e=!1;if(t.type==M.KEYDOWN){var i=t.originalEvent.keyCode;if(this.condition_(t)&&(i==as.DOWN||i==as.LEFT||i==as.RIGHT||i==as.UP)){var r=t.map.getView(),n=r.getResolution()*this.pixelDelta_,o=0,s=0;i==as.DOWN?s=-n:i==as.LEFT?o=-n:i==as.RIGHT?o=n:s=n;var a=[o,s];$i(a,r.getRotation()),function(t,e,i){var r=t.getCenter();if(r){var n=t.constrainCenter([r[0]+e[0],r[1]+e[1]]);i?t.animate({duration:i,easing:Wn,center:n}):t.setCenter(n)}}(r,a,this.duration_),t.preventDefault(),e=!0}}return!e}var ls=function(t){function e(e){t.call(this,{handleEvent:hs});var i=e||{};this.defaultCondition_=function(t){return Xo(t)&&Wo(t)},this.condition_=void 0!==i.condition?i.condition:this.defaultCondition_,this.duration_=void 0!==i.duration?i.duration:100,this.pixelDelta_=void 0!==i.pixelDelta?i.pixelDelta:128}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e}(Fo);function us(t){var e=!1;if(t.type==M.KEYDOWN||t.type==M.KEYPRESS){var i=t.originalEvent.charCode;if(this.condition_(t)&&(i=="+".charCodeAt(0)||i=="-".charCodeAt(0))){var r=t.map,n=i=="+".charCodeAt(0)?this.delta_:-this.delta_;bo(r.getView(),n,void 0,this.duration_),t.preventDefault(),e=!0}}return!e}var ps=function(t){function e(e){t.call(this,{handleEvent:us});var i=e||{};this.condition_=i.condition?i.condition:Wo,this.delta_=i.delta?i.delta:1,this.duration_=void 0!==i.duration?i.duration:100}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e}(Fo),cs="trackpad",ds="wheel",fs=function(t){function e(e){var i=e||{};t.call(this,i),this.delta_=0,this.duration_=void 0!==i.duration?i.duration:250,this.timeout_=void 0!==i.timeout?i.timeout:80,this.useAnchor_=void 0===i.useAnchor||i.useAnchor,this.constrainResolution_=i.constrainResolution||!1,this.condition_=i.condition?i.condition:jo,this.lastAnchor_=null,this.startTime_=void 0,this.timeoutId_,this.mode_=void 0,this.trackpadEventGap_=400,this.trackpadTimeoutId_,this.trackpadDeltaPerZoom_=300,this.trackpadZoomBuffer_=1.5}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.decrementInteractingHint_=function(){this.trackpadTimeoutId_=void 0,this.getMap().getView().setHint(jn,-1)},e.prototype.handleEvent=function(t){if(!this.condition_(t))return!0;var e=t.type;if(e!==M.WHEEL&&e!==M.MOUSEWHEEL)return!0;t.preventDefault();var i,r=t.map,n=t.originalEvent;if(this.useAnchor_&&(this.lastAnchor_=t.coordinate),t.type==M.WHEEL?(i=n.deltaY,Fi&&n.deltaMode===WheelEvent.DOM_DELTA_PIXEL&&(i/=Di),n.deltaMode===WheelEvent.DOM_DELTA_LINE&&(i*=40)):t.type==M.MOUSEWHEEL&&(i=-n.wheelDeltaY,Ai&&(i/=3)),0===i)return!1;var o=Date.now();if(void 0===this.startTime_&&(this.startTime_=o),(!this.mode_||o-this.startTime_>this.trackpadEventGap_)&&(this.mode_=Math.abs(i)<4?cs:ds),this.mode_===cs){var s=r.getView();this.trackpadTimeoutId_?clearTimeout(this.trackpadTimeoutId_):s.setHint(jn,1),this.trackpadTimeoutId_=setTimeout(this.decrementInteractingHint_.bind(this),this.trackpadEventGap_);var a=s.getResolution()*Math.pow(2,i/this.trackpadDeltaPerZoom_),h=s.getMinResolution(),l=s.getMaxResolution(),u=0;if(al&&(a=Math.min(a,l*this.trackpadZoomBuffer_),u=-1),this.lastAnchor_){var p=s.calculateCenterZoom(a,this.lastAnchor_);s.setCenter(s.constrainCenter(p))}return s.setResolution(a),0===u&&this.constrainResolution_&&s.animate({resolution:s.constrainResolution(a,i>0?-1:1),easing:Xn,anchor:this.lastAnchor_,duration:this.duration_}),u>0?s.animate({resolution:h,easing:Xn,anchor:this.lastAnchor_,duration:500}):u<0&&s.animate({resolution:l,easing:Xn,anchor:this.lastAnchor_,duration:500}),this.startTime_=o,!1}this.delta_+=i;var c=Math.max(this.timeout_-(o-this.startTime_),0);return clearTimeout(this.timeoutId_),this.timeoutId_=setTimeout(this.handleWheelZoom_.bind(this,r),c),!1},e.prototype.handleWheelZoom_=function(t){var e=t.getView();e.getAnimating()&&e.cancelAnimations();bo(e,-kt(this.delta_,-1,1),this.lastAnchor_,this.duration_),this.mode_=void 0,this.delta_=0,this.lastAnchor_=null,this.startTime_=void 0,this.timeoutId_=void 0},e.prototype.setMouseAnchor=function(t){this.useAnchor_=t,t||(this.lastAnchor_=null)},e}(Fo),_s=function(t){function e(e){var i=e||{},r=i;r.stopDown||(r.stopDown=w),t.call(this,r),this.anchor_=null,this.lastAngle_=void 0,this.rotating_=!1,this.rotationDelta_=0,this.threshold_=void 0!==i.threshold?i.threshold:.3,this.duration_=void 0!==i.duration?i.duration:250}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.handleDragEvent=function(t){var e=0,i=this.targetPointers[0],r=this.targetPointers[1],n=Math.atan2(r.clientY-i.clientY,r.clientX-i.clientX);if(void 0!==this.lastAngle_){var o=n-this.lastAngle_;this.rotationDelta_+=o,!this.rotating_&&Math.abs(this.rotationDelta_)>this.threshold_&&(this.rotating_=!0),e=o}this.lastAngle_=n;var s=t.map,a=s.getView();if(a.getConstraints().rotation!==Gn){var h=s.getViewport().getBoundingClientRect(),l=Zo(this.targetPointers);if(l[0]-=h.left,l[1]-=h.top,this.anchor_=s.getCoordinateFromPixel(l),this.rotating_){var u=a.getRotation();s.render(),Oo(a,u+e,this.anchor_)}}},e.prototype.handleUpEvent=function(t){if(this.targetPointers.length<2){var e=t.map.getView();if(e.setHint(jn,-1),this.rotating_)Lo(e,e.getRotation(),this.anchor_,this.duration_);return!1}return!0},e.prototype.handleDownEvent=function(t){if(this.targetPointers.length>=2){var e=t.map;return this.anchor_=null,this.lastAngle_=void 0,this.rotating_=!1,this.rotationDelta_=0,this.handlingDownUpSequence||e.getView().setHint(jn,1),!0}return!1},e}(qo),gs=function(t){function e(e){var i=e||{},r=i;r.stopDown||(r.stopDown=w),t.call(this,r),this.constrainResolution_=i.constrainResolution||!1,this.anchor_=null,this.duration_=void 0!==i.duration?i.duration:400,this.lastDistance_=void 0,this.lastScaleDelta_=1}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.handleDragEvent=function(t){var e=1,i=this.targetPointers[0],r=this.targetPointers[1],n=i.clientX-r.clientX,o=i.clientY-r.clientY,s=Math.sqrt(n*n+o*o);void 0!==this.lastDistance_&&(e=this.lastDistance_/s),this.lastDistance_=s;var a=t.map,h=a.getView(),l=h.getResolution(),u=h.getMaxResolution(),p=h.getMinResolution(),c=l*e;c>u?(e=u/l,c=u):ce.getMaxResolution()){var r=this.lastScaleDelta_-1;Po(e,i,this.anchor_,this.duration_,r)}return!1}return!0},e.prototype.handleDownEvent=function(t){if(this.targetPointers.length>=2){var e=t.map;return this.anchor_=null,this.lastDistance_=void 0,this.lastScaleDelta_=1,this.handlingDownUpSequence||e.getView().setHint(jn,1),!0}return!1},e}(qo);function ys(t){var e=t||{},i=new U,r=new br(-.005,.05,100);return(void 0===e.altShiftDragRotate||e.altShiftDragRotate)&&i.push(new Qo),(void 0===e.doubleClickZoom||e.doubleClickZoom)&&i.push(new No({delta:e.zoomDelta,duration:e.zoomDuration})),(void 0===e.dragPan||e.dragPan)&&i.push(new Jo({condition:e.onFocusOnly?ko:void 0,kinetic:r})),(void 0===e.pinchRotate||e.pinchRotate)&&i.push(new _s),(void 0===e.pinchZoom||e.pinchZoom)&&i.push(new gs({constrainResolution:e.constrainResolution,duration:e.zoomDuration})),(void 0===e.keyboard||e.keyboard)&&(i.push(new ls),i.push(new ps({delta:e.zoomDelta,duration:e.zoomDuration}))),(void 0===e.mouseWheelZoom||e.mouseWheelZoom)&&i.push(new fs({condition:e.onFocusOnly?ko:void 0,constrainResolution:e.constrainResolution,duration:e.zoomDuration})),(void 0===e.shiftDragZoom||e.shiftDragZoom)&&i.push(new ss({duration:e.zoomDuration})),i}var vs=.5,ms=function(t){function e(e,i,r,n){t.call(this),this.extent=e,this.pixelRatio_=r,this.resolution=i,this.state=n}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.changed=function(){this.dispatchEvent(M.CHANGE)},e.prototype.getExtent=function(){return this.extent},e.prototype.getImage=function(){return r()},e.prototype.getPixelRatio=function(){return this.pixelRatio_},e.prototype.getResolution=function(){return this.resolution},e.prototype.getState=function(){return this.state},e.prototype.load=function(){r()},e}(b),xs={IDLE:0,LOADING:1,LOADED:2,ERROR:3},Es=function(t){function e(e,i,r,n,o){var s=void 0!==o?xs.IDLE:xs.LOADED;t.call(this,e,i,r,s),this.loader_=void 0!==o?o:null,this.canvas_=n,this.error_=null}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.getError=function(){return this.error_},e.prototype.handleLoad_=function(t){t?(this.error_=t,this.state=xs.ERROR):this.state=xs.LOADED,this.changed()},e.prototype.load=function(){this.state==xs.IDLE&&(this.state=xs.LOADING,this.changed(),this.loader_(this.handleLoad_.bind(this)))},e.prototype.getImage=function(){return this.canvas_},e}(ms),Ss={IMAGE:"IMAGE",TILE:"TILE",VECTOR_TILE:"VECTOR_TILE",VECTOR:"VECTOR"},Ts={IMAGE:"image",VECTOR:"vector"},Cs=function(t){function e(e,i,r,n,o){t.call(this,e),this.vectorContext=i,this.frameState=r,this.context=n,this.glContext=o}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e}(P),Rs=function(t){function e(e){t.call(this),this.highWaterMark=void 0!==e?e:2048,this.count_=0,this.entries_={},this.oldest_=null,this.newest_=null}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.canExpireCache=function(){return this.getCount()>this.highWaterMark},e.prototype.clear=function(){this.count_=0,this.entries_={},this.oldest_=null,this.newest_=null,this.dispatchEvent(M.CLEAR)},e.prototype.containsKey=function(t){return this.entries_.hasOwnProperty(t)},e.prototype.forEach=function(t,e){for(var i=this.oldest_;i;)t.call(e,i.value_,i.key_,this),i=i.newer},e.prototype.get=function(t){var e=this.entries_[t];return Y(void 0!==e,15),e===this.newest_?e.value_:(e===this.oldest_?(this.oldest_=this.oldest_.newer,this.oldest_.older=null):(e.newer.older=e.older,e.older.newer=e.newer),e.newer=null,e.older=this.newest_,this.newest_.newer=e,this.newest_=e,e.value_)},e.prototype.remove=function(t){var e=this.entries_[t];return Y(void 0!==e,15),e===this.newest_?(this.newest_=e.older,this.newest_&&(this.newest_.newer=null)):e===this.oldest_?(this.oldest_=e.newer,this.oldest_&&(this.oldest_.older=null)):(e.newer.older=e.older,e.older.newer=e.newer),delete this.entries_[t],--this.count_,e.value_},e.prototype.getCount=function(){return this.count_},e.prototype.getKeys=function(){var t,e=new Array(this.count_),i=0;for(t=this.newest_;t;t=t.older)e[i++]=t.key_;return e},e.prototype.getValues=function(){var t,e=new Array(this.count_),i=0;for(t=this.newest_;t;t=t.older)e[i++]=t.value_;return e},e.prototype.peekLast=function(){return this.oldest_.value_},e.prototype.peekLastKey=function(){return this.oldest_.key_},e.prototype.peekFirstKey=function(){return this.newest_.key_},e.prototype.pop=function(){var t=this.oldest_;return delete this.entries_[t.key_],t.newer&&(t.newer.older=null),this.oldest_=t.newer,this.oldest_||(this.newest_=null),--this.count_,t.value_},e.prototype.replace=function(t,e){this.get(t),this.entries_[t].value_=e},e.prototype.set=function(t,e){Y(!(t in this.entries_),16);var i={key_:t,newer:null,older:this.newest_,value_:e};this.newest_?this.newest_.newer=i:this.oldest_=i,this.newest_=i,this.entries_[t]=i,++this.count_},e.prototype.setSize=function(t){this.highWaterMark=t},e.prototype.prune=function(){for(;this.canExpireCache();)this.pop()},e}(b),ws=[0,0,0,1],Is=[],Ls=[0,0,0,1],Os=[0,0,0,0],Ps=new Rs,bs={},Ms=null,Fs={},As=function(){var t,e,i=60,r=bs,n="32px ",o=["monospace","serif"],s=o.length,a="wmytzilWMYTZIL@#/&?$%10";function h(t){for(var i=Ns(),r=100;r<=700;r+=300){for(var h=r+" ",l=!0,u=0;uthis.maxCacheSize_){var t=0;for(var e in this.cache_){var i=this.cache_[e];0!=(3&t++)||i.hasListener()||(delete this.cache_[e],--this.cacheSize_)}}},zs.prototype.get=function(t,e,i){var r=Ws(t,e,i);return r in this.cache_?this.cache_[r]:null},zs.prototype.set=function(t,e,i,r){var n=Ws(t,e,i);this.cache_[n]=r,++this.cacheSize_},zs.prototype.setSize=function(t){this.maxCacheSize_=t,this.expire()};var Ks=new zs;function Hs(t,e){Ks.expire()}function Zs(t,e){return t.zIndex-e.zIndex}var qs=function(t){function e(e){t.call(this),this.map_=e,this.layerRenderers_={},this.layerRendererListeners_={},this.layerRendererConstructors_=[]}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.dispatchRenderEvent=function(t,e){r()},e.prototype.registerLayerRenderers=function(t){this.layerRendererConstructors_.push.apply(this.layerRendererConstructors_,t)},e.prototype.calculateMatrices2D=function(t){var e=t.viewState,i=t.coordinateToPixelTransform,r=t.pixelToCoordinateTransform;Ye(i,t.size[0]/2,t.size[1]/2,1/e.resolution,-1/e.resolution,-e.rotation,-e.center[0],-e.center[1]),Be(Ge(r,i))},e.prototype.removeLayerRenderers=function(){for(var t in this.layerRenderers_)this.removeLayerRendererByKey_(t).dispose()},e.prototype.forEachFeatureAtCoordinate=function(t,e,i,r,n,s,a){var h,l=e.viewState,u=l.resolution;function p(t,i){var s=e.layerStates[o(i)].managed;if(!(o(t)in e.skippedFeatureUids)||s)return r.call(n,t,s?i:null)}var c=l.projection,d=t;if(c.canWrapX()){var f=c.getExtent(),_=Ot(f),g=t[0];if(gf[2])d=[g+_*Math.ceil((f[0]-g)/_),t[1]]}var y,v=e.layerStatesArray;for(y=v.length-1;y>=0;--y){var m=v[y],x=m.layer;if(mo(m,u)&&s.call(a,x)){var E=this.getLayerRenderer(x),S=x.getSource();if(S&&(h=E.forEachFeatureAtCoordinate(S.getWrapX()?d:t,e,i,p)),h)return h}}},e.prototype.forEachLayerAtPixel=function(t,e,i,n,o,s,a){return r()},e.prototype.hasFeatureAtCoordinate=function(t,e,i,r,n){return void 0!==this.forEachFeatureAtCoordinate(t,e,i,R,this,r,n)},e.prototype.getLayerRenderer=function(t){var e=o(t);if(e in this.layerRenderers_)return this.layerRenderers_[e];for(var i,r=0,n=this.layerRendererConstructors_.length;r=0;--h){var d=u[h],f=d.layer;if(mo(d,l)&&o.call(s,f))if(a=this.getLayerRenderer(f).forEachLayerAtCoordinate(c,e,i,r,n))return a}},e.prototype.registerLayerRenderers=function(e){t.prototype.registerLayerRenderers.call(this,e);for(var i=0,r=e.length;i=.5&&p>=.5&&i.drawImage(r,0,0,+r.width,+r.height,Math.round(h),Math.round(l),Math.round(u),Math.round(p)),i.globalAlpha=a,o&&i.restore()}this.postCompose(i,t,e)},e.prototype.getImage=function(){return r()},e.prototype.getImageTransform=function(){return r()},e.prototype.forEachLayerAtCoordinate=function(t,e,i,r,n){if(this.getImage()){var o=De(this.coordinateToCanvasPixelTransform,t.slice());tr(o,e.viewState.resolution/this.renderedResolution),this.hitCanvasContext_||(this.hitCanvasContext_=Jn(1,1)),this.hitCanvasContext_.clearRect(0,0,1,1),this.hitCanvasContext_.drawImage(this.getImage(),o[0],o[1],1,1,0,0,1,1);var s=this.hitCanvasContext_.getImageData(0,0,1,1).data;return s[3]>0?r.call(n,this.getLayer(),s):void 0}},e}(ta),ia=function(t){function e(i){if(t.call(this,i),this.image_=null,this.imageTransform_=[1,0,0,1,0,0],this.skippedFeatures_=[],this.vectorRenderer_=null,i.getType()===Ss.VECTOR)for(var r=0,n=Js.length;rthis.maxX&&(this.maxX=t.maxX),t.minYthis.maxY&&(this.maxY=t.maxY)},na.prototype.getHeight=function(){return this.maxY-this.minY+1},na.prototype.getSize=function(){return[this.getWidth(),this.getHeight()]},na.prototype.getWidth=function(){return this.maxX-this.minX+1},na.prototype.intersects=function(t){return this.minX<=t.maxX&&this.maxX>=t.minX&&this.minY<=t.maxY&&this.maxY>=t.minY};var sa=na,aa=function(t){function e(e,i){t.call(this,e),this.context=i?null:Jn(),this.oversampling_,this.renderedExtent_=null,this.renderedRevision,this.renderedTiles=[],this.newTiles_=!1,this.tmpExtent=[1/0,1/0,-1/0,-1/0],this.tmpTileRange_=new sa(0,0,0,0),this.imageTransform_=[1,0,0,1,0,0],this.zDirection=0}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.isDrawableTile_=function(t){var e=this.getLayer(),i=t.getState(),r=e.getUseInterimTilesOnError();return i==On.LOADED||i==On.EMPTY||i==On.ERROR&&!r},e.prototype.getTile=function(t,e,i,r,n){var o=this.getLayer(),s=o.getSource().getTile(t,e,i,r,n);return s.getState()==On.ERROR&&(o.getUseInterimTilesOnError()?o.getPreload()>0&&(this.newTiles_=!0):s.setState(On.LOADED)),this.isDrawableTile_(s)||(s=s.getInterimTile()),s},e.prototype.prepareFrame=function(t,e){var i=t.pixelRatio,r=t.size,n=t.viewState,s=n.projection,a=n.resolution,h=n.center,l=this.getLayer(),u=l.getSource(),p=u.getRevision(),c=u.getTileGridForProjection(s),d=c.getZForResolution(a,this.zDirection),f=c.getResolution(d),_=Math.round(a/f)||1,g=t.extent;if(void 0!==e.extent&&(g=wt(g,e.extent)),bt(g))return!1;var y=c.getTileRangeForExtentAndZ(g,d),v=c.getTileRangeExtent(d,y),m=u.getTilePixelRatio(i),x={};x[d]={};var E,S,T,C=this.createLoadedTileFinder(u,s,x),R=t.viewHints,w=R[kn]||R[jn],I=this.tmpExtent,L=this.tmpTileRange_;for(this.newTiles_=!1,S=y.minX;S<=y.maxX;++S)for(T=y.minY;T<=y.maxY;++T)if(!(Date.now()-t.time>16&&w)){if(E=this.getTile(d,S,T,i,s),this.isDrawableTile_(E)){var O=o(this);if(E.getState()==On.LOADED){x[d][E.tileCoord.toString()]=E;var P=E.inTransition(O);this.newTiles_||!P&&-1!==this.renderedTiles.indexOf(E)||(this.newTiles_=!0)}if(1===E.getAlpha(O,t.time))continue}var b=c.getTileCoordChildTileRange(E.tileCoord,L,I),M=!1;b&&(M=C(d+1,b)),M||c.forEachTileCoordParentTileRange(E.tileCoord,C,null,L,I)}var F=f*i/m*_;if(!(this.renderedResolution&&Date.now()-t.time>16&&w)&&(this.newTiles_||!this.renderedExtent_||!ot(this.renderedExtent_,g)||this.renderedRevision!=p||_!=this.oversampling_||!w&&F!=this.renderedResolution)){var A=this.context;if(A){var N=u.getTilePixelSize(d,i,s),G=Math.round(y.getWidth()*N[0]/_),D=Math.round(y.getHeight()*N[1]/_),k=A.canvas;k.width!=G||k.height!=D?(this.oversampling_=_,k.width=G,k.height=D):(this.renderedExtent_&&!dt(v,this.renderedExtent_)&&A.clearRect(0,0,G,D),_=this.oversampling_)}this.renderedTiles.length=0;var j,U,Y,B,V,X,z,W,K,H,Z=Object.keys(x).map(Number);for(Z.sort(function(t,e){return t===d?1:e===d?-1:t>e?1:t0},e.prototype.drawTileImage=function(t,e,i,r,n,s,a,h,l){var u=this.getTileImage(t);if(u){var p=o(this),c=l?t.getAlpha(p,e.time):1,d=this.getLayer().getSource();1!==c||d.getOpaque(e.viewState.projection)||this.context.clearRect(r,n,s,a);var f=c!==this.context.globalAlpha;f&&(this.context.save(),this.context.globalAlpha=c),this.context.drawImage(u,h,h,u.width-2*h,u.height-2*h,r,n,s,a),f&&this.context.restore(),1!==c?e.animate=!0:l&&t.endTransition(p)}},e.prototype.getImage=function(){var t=this.context;return t?t.canvas:null},e.prototype.getImageTransform=function(){return this.imageTransform_},e.prototype.getTileImage=function(t){return t.getImage()},e}(ea);aa.handles=function(t){return t.getType()===Ss.TILE},aa.create=function(t,e){return new aa(e)},aa.prototype.getLayer;var ha=aa,la=i(0),ua=i.n(la),pa=function(){};pa.prototype.getReplay=function(t,e){return r()},pa.prototype.isEmpty=function(){return r()},pa.prototype.addDeclutter=function(t){return r()};var ca=pa,da={CIRCLE:"Circle",DEFAULT:"Default",IMAGE:"Image",LINE_STRING:"LineString",POLYGON:"Polygon",TEXT:"Text"};function fa(t,e,i,r,n,o,s,a){for(var h,l,u,p=[],c=t[e]>t[i-r],d=n.length,f=t[e],_=t[e+1],g=t[e+=r],y=t[e+1],v=0,m=Math.sqrt(Math.pow(g-f,2)+Math.pow(y-_,2)),x="",E=0,S=0;S0?-Math.PI:Math.PI),void 0!==u){var L=I-u;if(L+=L>Math.PI?-2*Math.PI:L<-Math.PI?2*Math.PI:0,Math.abs(L)>a)return null}var O=w/m,P=zt(f,g,O),b=zt(_,y,O);u==I?(c&&(h[0]=P,h[1]=b,h[2]=C/2),h[4]=x):(E=C,h=[P,b,C/2,I,x=T],c?p.unshift(h):p.push(h),u=I),s+=C}return p}var _a={BEGIN_GEOMETRY:0,BEGIN_PATH:1,CIRCLE:2,CLOSE_PATH:3,CUSTOM:4,DRAW_CHARS:5,DRAW_IMAGE:6,END_GEOMETRY:7,FILL:8,MOVE_TO_LINE_TO:9,SET_FILL_STYLE:10,SET_STROKE_STYLE:11,STROKE:12},ga=[_a.FILL],ya=[_a.STROKE],va=[_a.BEGIN_PATH],ma=[_a.CLOSE_PATH],xa=_a,Ea=[da.POLYGON,da.CIRCLE,da.LINE_STRING,da.IMAGE,da.TEXT,da.DEFAULT],Sa={left:0,end:0,center:.5,right:1,start:1,top:0,middle:.5,hanging:.2,alphabetic:.8,ideographic:.8,bottom:1},Ta=[1/0,1/0,-1/0,-1/0],Ca=[1,0,0,1,0,0],Ra=function(t){function e(e,i,r,n,o,s){t.call(this),this.declutterTree=s,this.tolerance=e,this.maxExtent=i,this.overlaps=o,this.pixelRatio=n,this.maxLineWidth=0,this.resolution=r,this.alignFill_,this.beginGeometryInstruction1_=null,this.beginGeometryInstruction2_=null,this.bufferedMaxExtent_=null,this.instructions=[],this.coordinates=[],this.coordinateCache_={},this.renderedTransform_=[1,0,0,1,0,0],this.hitDetectionInstructions=[],this.pixelCoordinates_=null,this.state={},this.viewRotation_=0}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.replayTextBackground_=function(t,e,i,r,n,o,s){t.beginPath(),t.moveTo.apply(t,e),t.lineTo.apply(t,i),t.lineTo.apply(t,r),t.lineTo.apply(t,n),t.lineTo.apply(t,e),o&&(this.alignFill_=o[2],this.fill_(t)),s&&(this.setStrokeStyle_(t,s),t.stroke())},e.prototype.replayImage_=function(t,e,i,r,n,o,s,a,h,l,u,p,c,d,f,_,g,y){var v=g||y;e-=n*=c,i-=o*=c;var m,x,E,S,T=f+l>r.width?r.width-l:f,C=a+u>r.height?r.height-u:a,R=_[3]+T*c+_[1],w=_[0]+C*c+_[2],I=e-_[3],L=i-_[0];(v||0!==p)&&(m=[I,L],x=[I+R,L],E=[I+R,L+w],S=[I,L+w]);var O=null;if(0!==p){var P=e+n,b=i+o;O=Ye(Ca,P,b,1,1,p,-P,-b),ut(Ta),_t(Ta,De(Ca,m)),_t(Ta,De(Ca,x)),_t(Ta,De(Ca,E)),_t(Ta,De(Ca,S))}else lt(I,L,I+R,L+w,Ta);var M=t.canvas,F=y?y[2]*c/2:0,A=Ta[0]-F<=M.width&&Ta[2]+F>=0&&Ta[1]-F<=M.height&&Ta[3]+F>=0;if(d&&(e=Math.round(e),i=Math.round(i)),s){if(!A&&1==s[4])return;ft(s,Ta);var N=A?[t,O?O.slice(0):null,h,r,l,u,T,C,e,i,c]:null;N&&v&&N.push(g,y,m,x,E,S),s.push(N)}else A&&(v&&this.replayTextBackground_(t,m,x,E,S,g,y),Us(t,O,h,r,l,u,T,C,e,i,c))},e.prototype.applyPixelRatio=function(t){var e=this.pixelRatio;return 1==e?t:t.map(function(t){return t*e})},e.prototype.appendFlatCoordinates=function(t,e,i,r,n,o){var s=this.coordinates.length,a=this.getBufferedMaxExtent();o&&(e+=r);var h,l,u,p=[t[e],t[e+1]],c=[NaN,NaN],d=!0;for(h=e+r;h5){var i=t[4];if(1==i||i==t.length-5){var r={minX:t[0],minY:t[1],maxX:t[2],maxY:t[3],value:e};if(!this.declutterTree.collides(r)){this.declutterTree.insert(r);for(var n=5,o=t.length;n11&&this.replayTextBackground_(s[0],s[13],s[14],s[15],s[16],s[11],s[12]),Us.apply(void 0,s))}}t.length=5,ut(t)}}},e.prototype.replay_=function(t,e,i,r,n,s,a){var h;this.pixelCoordinates_&&Z(e,this.renderedTransform_)?h=this.pixelCoordinates_:(this.pixelCoordinates_||(this.pixelCoordinates_=[]),h=Gt(this.coordinates,0,this.coordinates.length,2,e,this.pixelCoordinates_),Ge(this.renderedTransform_,e));for(var l,u,p,c,f,_,g,y,v,m,x,E,S=!d(i),T=0,C=r.length,R=0,w=0,I=0,L=null,O=null,P=this.coordinateCache_,b=this.viewRotation_,M={context:t,pixelRatio:this.pixelRatio,resolution:this.resolution,rotation:b},F=this.instructions!=r||this.overlaps?0:200;TF&&(this.fill_(t),w=0),I>F&&(t.stroke(),I=0),w||I||(t.beginPath(),c=f=NaN),++T;break;case xa.CIRCLE:var N=h[R=A[1]],G=h[R+1],D=h[R+2]-N,k=h[R+3]-G,j=Math.sqrt(D*D+k*k);t.moveTo(N+j,G),t.arc(N,G,j,0,2*Math.PI,!0),++T;break;case xa.CLOSE_PATH:t.closePath(),++T;break;case xa.CUSTOM:R=A[1],l=A[2];var U=A[3],Y=A[4],B=6==A.length?A[5]:void 0;M.geometry=U,M.feature=m,T in P||(P[T]=[]);var V=P[T];B?B(h,R,l,2,V):(V[0]=h[R],V[1]=h[R+1],V.length=2),Y(V,M),++T;break;case xa.DRAW_IMAGE:R=A[1],l=A[2],v=A[3],u=A[4],p=A[5],y=s?null:A[6];var X=A[7],z=A[8],W=A[9],K=A[10],H=A[11],q=A[12],J=A[13],Q=A[14],$=void 0,tt=void 0,et=void 0;for(A.length>16?($=A[15],tt=A[16],et=A[17]):($=Os,tt=et=!1),H&&(q+=b);Rthis.maxLineWidth&&(this.maxLineWidth=i.lineWidth,this.bufferedMaxExtent_=null)}else i.strokeStyle=void 0,i.lineCap=void 0,i.lineDash=null,i.lineDashOffset=void 0,i.lineJoin=void 0,i.lineWidth=void 0,i.miterLimit=void 0},e.prototype.createFill=function(t,e){var i=t.fillStyle,r=[xa.SET_FILL_STYLE,i];return"string"!=typeof i&&r.push(!0),r},e.prototype.applyStroke=function(t){this.instructions.push(this.createStroke(t))},e.prototype.createStroke=function(t){return[xa.SET_STROKE_STYLE,t.strokeStyle,t.lineWidth*this.pixelRatio,t.lineCap,t.lineJoin,t.miterLimit,this.applyPixelRatio(t.lineDash),t.lineDashOffset*this.pixelRatio]},e.prototype.updateFillStyle=function(t,e,i){var r=t.fillStyle;"string"==typeof r&&t.currentFillStyle==r||(void 0!==r&&this.instructions.push(e.call(this,t,i)),t.currentFillStyle=r)},e.prototype.updateStrokeStyle=function(t,e){var i=t.strokeStyle,r=t.lineCap,n=t.lineDash,o=t.lineDashOffset,s=t.lineJoin,a=t.lineWidth,h=t.miterLimit;(t.currentStrokeStyle!=i||t.currentLineCap!=r||n!=t.currentLineDash&&!Z(t.currentLineDash,n)||t.currentLineDashOffset!=o||t.currentLineJoin!=s||t.currentLineWidth!=a||t.currentMiterLimit!=h)&&(void 0!==i&&e.call(this,t),t.currentStrokeStyle=i,t.currentLineCap=r,t.currentLineDash=n,t.currentLineDashOffset=o,t.currentLineJoin=s,t.currentLineWidth=a,t.currentMiterLimit=h)},e.prototype.endGeometry=function(t,e){this.beginGeometryInstruction1_[2]=this.instructions.length,this.beginGeometryInstruction1_=null,this.beginGeometryInstruction2_[2]=this.hitDetectionInstructions.length,this.beginGeometryInstruction2_=null;var i=[xa.END_GEOMETRY,e];this.instructions.push(i),this.hitDetectionInstructions.push(i)},e.prototype.getBufferedMaxExtent=function(){if(!this.bufferedMaxExtent_&&(this.bufferedMaxExtent_=it(this.maxExtent),this.maxLineWidth>0)){var t=this.resolution*(this.maxLineWidth+1)/2;et(this.bufferedMaxExtent_,t,this.bufferedMaxExtent_)}return this.bufferedMaxExtent_},e}(Vs),wa=function(t){function e(e,i,r,n,o,s){t.call(this,e,i,r,n,o,s),this.declutterGroup_=null,this.hitDetectionImage_=null,this.image_=null,this.anchorX_=void 0,this.anchorY_=void 0,this.height_=void 0,this.opacity_=void 0,this.originX_=void 0,this.originY_=void 0,this.rotateWithView_=void 0,this.rotation_=void 0,this.scale_=void 0,this.width_=void 0}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.drawCoordinates_=function(t,e,i,r){return this.appendFlatCoordinates(t,e,i,r,!1,!1)},e.prototype.drawPoint=function(t,e){if(this.image_){this.beginGeometry(t,e);var i=t.getFlatCoordinates(),r=t.getStride(),n=this.coordinates.length,o=this.drawCoordinates_(i,0,i.length,r);this.instructions.push([xa.DRAW_IMAGE,n,o,this.image_,this.anchorX_,this.anchorY_,this.declutterGroup_,this.height_,this.opacity_,this.originX_,this.originY_,this.rotateWithView_,this.rotation_,this.scale_*this.pixelRatio,this.width_]),this.hitDetectionInstructions.push([xa.DRAW_IMAGE,n,o,this.hitDetectionImage_,this.anchorX_,this.anchorY_,this.declutterGroup_,this.height_,this.opacity_,this.originX_,this.originY_,this.rotateWithView_,this.rotation_,this.scale_,this.width_]),this.endGeometry(t,e)}},e.prototype.drawMultiPoint=function(t,e){if(this.image_){this.beginGeometry(t,e);var i=t.getFlatCoordinates(),r=t.getStride(),n=this.coordinates.length,o=this.drawCoordinates_(i,0,i.length,r);this.instructions.push([xa.DRAW_IMAGE,n,o,this.image_,this.anchorX_,this.anchorY_,this.declutterGroup_,this.height_,this.opacity_,this.originX_,this.originY_,this.rotateWithView_,this.rotation_,this.scale_*this.pixelRatio,this.width_]),this.hitDetectionInstructions.push([xa.DRAW_IMAGE,n,o,this.hitDetectionImage_,this.anchorX_,this.anchorY_,this.declutterGroup_,this.height_,this.opacity_,this.originX_,this.originY_,this.rotateWithView_,this.rotation_,this.scale_,this.width_]),this.endGeometry(t,e)}},e.prototype.finish=function(){this.reverseHitDetectionInstructions(),this.anchorX_=void 0,this.anchorY_=void 0,this.hitDetectionImage_=null,this.image_=null,this.height_=void 0,this.scale_=void 0,this.opacity_=void 0,this.originX_=void 0,this.originY_=void 0,this.rotateWithView_=void 0,this.rotation_=void 0,this.width_=void 0},e.prototype.setImageStyle=function(t,e){var i=t.getAnchor(),r=t.getSize(),n=t.getHitDetectionImage(1),o=t.getImage(1),s=t.getOrigin();this.anchorX_=i[0],this.anchorY_=i[1],this.declutterGroup_=e,this.hitDetectionImage_=n,this.image_=o,this.height_=r[1],this.opacity_=t.getOpacity(),this.originX_=s[0],this.originY_=s[1],this.rotateWithView_=t.getRotateWithView(),this.rotation_=t.getRotation(),this.scale_=t.getScale(),this.width_=r[0]},e}(Ra),Ia=function(t){function e(e,i,r,n,o,s){t.call(this,e,i,r,n,o,s)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.drawFlatCoordinates_=function(t,e,i,r){var n=this.coordinates.length,o=this.appendFlatCoordinates(t,e,i,r,!1,!1),s=[xa.MOVE_TO_LINE_TO,n,o];return this.instructions.push(s),this.hitDetectionInstructions.push(s),i},e.prototype.drawLineString=function(t,e){var i=this.state,r=i.strokeStyle,n=i.lineWidth;if(void 0!==r&&void 0!==n){this.updateStrokeStyle(i,this.applyStroke),this.beginGeometry(t,e),this.hitDetectionInstructions.push([xa.SET_STROKE_STYLE,i.strokeStyle,i.lineWidth,i.lineCap,i.lineJoin,i.miterLimit,i.lineDash,i.lineDashOffset],va);var o=t.getFlatCoordinates(),s=t.getStride();this.drawFlatCoordinates_(o,0,o.length,s),this.hitDetectionInstructions.push(ya),this.endGeometry(t,e)}},e.prototype.drawMultiLineString=function(t,e){var i=this.state,r=i.strokeStyle,n=i.lineWidth;if(void 0!==r&&void 0!==n){this.updateStrokeStyle(i,this.applyStroke),this.beginGeometry(t,e),this.hitDetectionInstructions.push([xa.SET_STROKE_STYLE,i.strokeStyle,i.lineWidth,i.lineCap,i.lineJoin,i.miterLimit,i.lineDash,i.lineDashOffset],va);for(var o=t.getEnds(),s=t.getFlatCoordinates(),a=t.getStride(),h=0,l=0,u=o.length;lt&&(y>g&&(g=y,f=v,_=o),y=0,v=o-n)),s=a,u=c,p=d),h=m,l=x}return(y+=a)>g?[v,o]:[f,_]}var Pa={Circle:La,Default:Ra,Image:wa,LineString:Ia,Polygon:La,Text:function(t){function e(e,i,r,n,o,s){t.call(this,e,i,r,n,o,s),this.declutterGroup_,this.labels_=null,this.text_="",this.textOffsetX_=0,this.textOffsetY_=0,this.textRotateWithView_=void 0,this.textRotation_=0,this.textFillState_=null,this.fillStates={},this.textStrokeState_=null,this.strokeStates={},this.textState_={},this.textStates={},this.textKey_="",this.fillKey_="",this.strokeKey_="",this.widths_={},Ps.prune()}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.drawText=function(t,e){var i=this.textFillState_,r=this.textStrokeState_,n=this.textState_;if(""!==this.text_&&n&&(i||r)){var o,s,a=this.coordinates.length,h=t.getType(),l=null,u=2,p=2;if(n.placement===Tr){if(!Pt(this.getBufferedMaxExtent(),t.getExtent()))return;var c;if(l=t.getFlatCoordinates(),p=t.getStride(),h==Nt.LINE_STRING)c=[l.length];else if(h==Nt.MULTI_LINE_STRING)c=t.getEnds();else if(h==Nt.POLYGON)c=t.getEnds().slice(0,1);else if(h==Nt.MULTI_POLYGON){var d=t.getEndss();for(c=[],o=0,s=d.length;o=E)&&l.push(S[o],S[o+1]);if(0==(u=l.length))return}u=this.appendFlatCoordinates(l,0,u,p,!1,!1),(n.backgroundFill||n.backgroundStroke)&&(this.setFillStrokeStyle(n.backgroundFill,n.backgroundStroke),n.backgroundFill&&(this.updateFillStyle(this.state,this.createFill,t),this.hitDetectionInstructions.push(this.createFill(this.state,t))),n.backgroundStroke&&(this.updateStrokeStyle(this.state,this.applyStroke),this.hitDetectionInstructions.push(this.createStroke(this.state)))),this.beginGeometry(t,e),this.drawTextImage_(x,a,u),this.endGeometry(t,e)}}},e.prototype.getImage=function(t,e,i,r){var n,o=r+e+t+i+this.pixelRatio;if(!Ps.containsKey(o)){var s=r?this.strokeStates[r]||this.textStrokeState_:null,a=i?this.fillStates[i]||this.textFillState_:null,h=this.textStates[e]||this.textState_,l=this.pixelRatio,u=h.scale*l,p=Sa[h.textAlign||"center"],c=r&&s.lineWidth?s.lineWidth:0,d=t.split("\n"),f=d.length,_=[],g=function(t,e,i){for(var r=e.length,n=0,o=0;o=o;)Fa(i,t+n,t+o),Fa(i,t+o,t+n),Fa(i,t-o,t+n),Fa(i,t-n,t+o),Fa(i,t-n,t-o),Fa(i,t-o,t-n),Fa(i,t+o,t-n),Fa(i,t+n,t-o),2*((s+=1+2*++o)-n)+1>0&&(s+=1-2*(n-=1));return Ma[t]=i,i}(r);function f(t){for(var e=u.getImageData(0,0,h,h).data,i=0;i0){var n=void 0;return(!p||c!=da.IMAGE&&c!=da.TEXT||-1!==p.indexOf(t))&&(n=o(t)),n||void u.clearRect(0,0,h,h)}}this.declutterTree_&&(p=this.declutterTree_.all().map(function(t){return t.value}));var _,g,y,v,m,x=Object.keys(this.replaysByZIndex_).map(Number);for(x.sort(V),_=x.length-1;_>=0;--_){var E=x[_].toString();for(y=this.replaysByZIndex_[E],g=Ea.length-1;g>=0;--g)if(void 0!==(v=y[c=Ea[g]]))if(!s||c!=da.IMAGE&&c!=da.TEXT){if(m=v.replayHitDetection(u,l,i,n,f,a))return m}else{var S=s[E];S?S.push(v,l.slice(0)):s[E]=[v,l.slice(0)]}}},e.prototype.getClipCoords=function(t){var e=this.maxExtent_,i=e[0],r=e[1],n=e[2],o=e[3],s=[i,r,i,o,n,o,n,r];return Gt(s,0,8,2,t,s),s},e.prototype.getReplay=function(t,e){var i=void 0!==t?t.toString():"0",r=this.replaysByZIndex_[i];void 0===r&&(r={},this.replaysByZIndex_[i]=r);var n=r[e];void 0===n&&(n=new(0,Pa[e])(this.tolerance_,this.maxExtent_,this.resolution_,this.pixelRatio_,this.overlaps_,this.declutterTree_),r[e]=n);return n},e.prototype.getReplays=function(){return this.replaysByZIndex_},e.prototype.isEmpty=function(){return d(this.replaysByZIndex_)},e.prototype.replay=function(t,e,i,r,n,o,s){var a=Object.keys(this.replaysByZIndex_).map(Number);a.sort(V),t.save(),this.clip(t,e);var h,l,u,p,c,d,f=o||Ea;for(h=0,l=a.length;h=n)for(r=n;rl[2];)O=b*++M,p=this.getTransform(e,O),f.replay(_,p,h,o,w),P-=b}if(ks(_,h,I/2,L/2),x&&this.dispatchRenderEvent(_,e,p),_!=t){if(m){var F=t.globalAlpha;t.globalAlpha=i.opacity,t.drawImage(_.canvas,-y,-v),t.globalAlpha=F}else t.drawImage(_.canvas,-y,-v);_.translate(-y,-v)}m||(_.globalAlpha=C)}d&&t.restore()},e.prototype.composeFrame=function(t,e,i){var r=this.getTransform(t,0);this.preCompose(i,t,r),this.compose(i,t,e),this.postCompose(i,t,e,r)},e.prototype.forEachFeatureAtCoordinate=function(t,e,i,r,n){if(this.replayGroup_){var s=e.viewState.resolution,a=e.viewState.rotation,h=this.getLayer(),l={};return this.replayGroup_.forEachFeatureAtCoordinate(t,s,a,i,{},function(t){var e=o(t);if(!(e in l))return l[e]=!0,r.call(n,t,h)},null)}},e.prototype.handleFontsChanged_=function(t){var e=this.getLayer();e.getVisible()&&this.replayGroup_&&e.changed()},e.prototype.handleStyleImageChange_=function(t){this.renderIfReadyAndVisible()},e.prototype.prepareFrame=function(t,e){var i=this.getLayer(),r=i.getSource(),n=t.viewHints[kn],o=t.viewHints[jn],s=i.getUpdateWhileAnimating(),a=i.getUpdateWhileInteracting();if(!this.dirty_&&!s&&n||!a&&o)return!0;var h=t.extent,l=t.viewState,u=l.projection,p=l.resolution,c=t.pixelRatio,d=i.getRevision(),f=i.getRenderBuffer(),_=i.getRenderOrder();void 0===_&&(_=Da);var g=et(h,f*p),y=l.projection.getExtent();if(r.getWrapX()&&l.projection.canWrapX()&&!ot(y,t.extent)){var v=Ot(y),m=Math.max(Ot(g)/2,v);g[0]=y[0]-m,g[2]=y[2]+m}if(!this.dirty_&&this.renderedResolution_==p&&this.renderedRevision_==d&&this.renderedRenderOrder_==_&&ot(this.renderedExtent_,g))return this.replayGroupChanged=!1,!0;this.replayGroup_=null,this.dirty_=!1;var x=new Aa(ja(p,c),g,p,c,r.getOverlaps(),this.declutterTree_,i.getRenderBuffer());r.loadFeatures(g,p,u);var E=function(t){var e,r=t.getStyleFunction()||i.getStyleFunction();if(r&&(e=r(t,p)),e){var n=this.renderFeature(t,p,c,e,x);this.dirty_=this.dirty_||n}}.bind(this);if(_){var S=[];r.forEachFeatureInExtent(g,function(t){S.push(t)}),S.sort(_);for(var T=0,C=S.length;T=0;--x){var E=g[x];if(E.getState()!=On.ABORT)for(var S=E.tileCoord,T=y.getTileCoordExtent(S,this.tmpExtent)[0]-E.extent[0],C=void 0,R=0,w=E.tileKeys.length;R radius + v_halfWidth) {\n if (u_strokeColor.a == 0.0) {\n gl_FragColor = u_fillColor;\n } else {\n gl_FragColor = u_strokeColor;\n }\n gl_FragColor.a = gl_FragColor.a - (dist - (radius + v_halfWidth));\n } else if (u_fillColor.a == 0.0) {\n // Hooray, no fill, just stroke. We can use real antialiasing.\n gl_FragColor = u_strokeColor;\n if (dist < radius - v_halfWidth) {\n gl_FragColor.a = gl_FragColor.a - (radius - v_halfWidth - dist);\n }\n } else {\n gl_FragColor = u_fillColor;\n float strokeDist = radius - v_halfWidth;\n float antialias = 2.0 * v_pixelRatio;\n if (dist > strokeDist) {\n gl_FragColor = u_strokeColor;\n } else if (dist >= strokeDist - antialias) {\n float step = smoothstep(strokeDist - antialias, strokeDist, dist);\n gl_FragColor = mix(u_fillColor, u_strokeColor, step);\n }\n }\n gl_FragColor.a = gl_FragColor.a * u_opacity;\n if (gl_FragColor.a <= 0.0) {\n discard;\n }\n}\n"),ch=new uh("varying vec2 v_center;\nvarying vec2 v_offset;\nvarying float v_halfWidth;\nvarying float v_pixelRatio;\n\n\nattribute vec2 a_position;\nattribute float a_instruction;\nattribute float a_radius;\n\nuniform mat4 u_projectionMatrix;\nuniform mat4 u_offsetScaleMatrix;\nuniform mat4 u_offsetRotateMatrix;\nuniform float u_lineWidth;\nuniform float u_pixelRatio;\n\nvoid main(void) {\n mat4 offsetMatrix = u_offsetScaleMatrix * u_offsetRotateMatrix;\n v_center = vec4(u_projectionMatrix * vec4(a_position, 0.0, 1.0)).xy;\n v_pixelRatio = u_pixelRatio;\n float lineWidth = u_lineWidth * u_pixelRatio;\n v_halfWidth = lineWidth / 2.0;\n if (lineWidth == 0.0) {\n lineWidth = 2.0 * u_pixelRatio;\n }\n vec2 offset;\n // Radius with anitaliasing (roughly).\n float radius = a_radius + 3.0 * u_pixelRatio;\n // Until we get gl_VertexID in WebGL, we store an instruction.\n if (a_instruction == 0.0) {\n // Offsetting the edges of the triangle by lineWidth / 2 is necessary, however\n // we should also leave some space for the antialiasing, thus we offset by lineWidth.\n offset = vec2(-1.0, 1.0);\n } else if (a_instruction == 1.0) {\n offset = vec2(-1.0, -1.0);\n } else if (a_instruction == 2.0) {\n offset = vec2(1.0, -1.0);\n } else {\n offset = vec2(1.0, 1.0);\n }\n\n gl_Position = u_projectionMatrix * vec4(a_position + offset * radius, 0.0, 1.0) +\n offsetMatrix * vec4(offset * lineWidth, 0.0, 0.0);\n v_offset = vec4(u_projectionMatrix * vec4(a_position.x + a_radius, a_position.y,\n 0.0, 1.0)).xy;\n\n if (distance(v_center, v_offset) > 20000.0) {\n gl_Position = vec4(v_center, 0.0, 1.0);\n }\n}\n\n\n"),dh=function(t,e){this.u_projectionMatrix=t.getUniformLocation(e,"u_projectionMatrix"),this.u_offsetScaleMatrix=t.getUniformLocation(e,"u_offsetScaleMatrix"),this.u_offsetRotateMatrix=t.getUniformLocation(e,"u_offsetRotateMatrix"),this.u_lineWidth=t.getUniformLocation(e,"u_lineWidth"),this.u_pixelRatio=t.getUniformLocation(e,"u_pixelRatio"),this.u_opacity=t.getUniformLocation(e,"u_opacity"),this.u_fillColor=t.getUniformLocation(e,"u_fillColor"),this.u_strokeColor=t.getUniformLocation(e,"u_strokeColor"),this.u_size=t.getUniformLocation(e,"u_size"),this.a_position=t.getAttribLocation(e,"a_position"),this.a_instruction=t.getAttribLocation(e,"a_instruction"),this.a_radius=t.getAttribLocation(e,"a_radius")};function fh(t,e){return t[0]=e[0],t[1]=e[1],t[4]=e[2],t[5]=e[3],t[12]=e[4],t[13]=e[5],t}var _h=function(t){function e(e,i){t.call(this),this.tolerance=e,this.maxExtent=i,this.origin=Tt(i),this.projectionMatrix_=[1,0,0,1,0,0],this.offsetRotateMatrix_=[1,0,0,1,0,0],this.offsetScaleMatrix_=[1,0,0,1,0,0],this.tmpMat4_=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1],this.indices=[],this.indicesBuffer=null,this.startIndices=[],this.startIndicesFeature=[],this.vertices=[],this.verticesBuffer=null,this.lineStringReplay=void 0}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.getDeleteResourcesFunction=function(t){return r()},e.prototype.finish=function(t){r()},e.prototype.setUpProgram=function(t,e,i,n){return r()},e.prototype.shutDownProgram=function(t,e){r()},e.prototype.drawReplay=function(t,e,i,n){r()},e.prototype.drawHitDetectionReplayOneByOne=function(t,e,i,n,o){return r()},e.prototype.drawHitDetectionReplay=function(t,e,i,r,n,o){return n?this.drawHitDetectionReplayOneByOne(t,e,i,r,o):this.drawHitDetectionReplayAll(t,e,i,r)},e.prototype.drawHitDetectionReplayAll=function(t,e,i,r){t.clear(t.COLOR_BUFFER_BIT|t.DEPTH_BUFFER_BIT),this.drawReplay(t,e,i,!0);var n=r(null);return n||void 0},e.prototype.replay=function(t,e,i,r,n,o,s,a,h,l,u){var p,c,d,f,_,g,y,v,m=t.getGL();this.lineStringReplay&&(p=m.isEnabled(m.STENCIL_TEST),c=m.getParameter(m.STENCIL_FUNC),d=m.getParameter(m.STENCIL_VALUE_MASK),f=m.getParameter(m.STENCIL_REF),_=m.getParameter(m.STENCIL_WRITEMASK),g=m.getParameter(m.STENCIL_FAIL),y=m.getParameter(m.STENCIL_PASS_DEPTH_PASS),v=m.getParameter(m.STENCIL_PASS_DEPTH_FAIL),m.enable(m.STENCIL_TEST),m.clear(m.STENCIL_BUFFER_BIT),m.stencilMask(255),m.stencilFunc(m.ALWAYS,1,255),m.stencilOp(m.KEEP,m.KEEP,m.REPLACE),this.lineStringReplay.replay(t,e,i,r,n,o,s,a,h,l,u),m.stencilMask(0),m.stencilFunc(m.NOTEQUAL,1,255)),t.bindBuffer(34962,this.verticesBuffer),t.bindBuffer(34963,this.indicesBuffer);var x=this.setUpProgram(m,t,n,o),E=Fe(this.projectionMatrix_);je(E,2/(i*n[0]),2/(i*n[1])),ke(E,-r),Ue(E,-(e[0]-this.origin[0]),-(e[1]-this.origin[1]));var S=Fe(this.offsetScaleMatrix_);je(S,2/n[0],2/n[1]);var T,C=Fe(this.offsetRotateMatrix_);return 0!==r&&ke(C,-r),m.uniformMatrix4fv(x.u_projectionMatrix,!1,fh(this.tmpMat4_,E)),m.uniformMatrix4fv(x.u_offsetScaleMatrix,!1,fh(this.tmpMat4_,S)),m.uniformMatrix4fv(x.u_offsetRotateMatrix,!1,fh(this.tmpMat4_,C)),m.uniform1f(x.u_opacity,s),void 0===h?this.drawReplay(m,t,a,!1):T=this.drawHitDetectionReplay(m,t,a,h,l,u),this.shutDownProgram(m,x),this.lineStringReplay&&(p||m.disable(m.STENCIL_TEST),m.clear(m.STENCIL_BUFFER_BIT),m.stencilFunc(c,f,d),m.stencilMask(_),m.stencilOp(g,v,y)),T},e.prototype.drawElements=function(t,e,i,r){var n=e.hasOESElementIndexUint?5125:5123,o=r-i,s=i*(e.hasOESElementIndexUint?4:2);t.drawElements(4,o,n,s)},e}(Vs),gh=[0,0,0,1],yh=[],vh=[0,0,0,1],mh=Number.EPSILON||2.220446049250313e-16,xh=function(t,e,i,r,n,o){var s=(i-t)*(o-e)-(n-t)*(r-e);return s<=mh&&s>=-mh?void 0:s>0},Eh=35044,Sh=function(t,e){this.arr_=void 0!==t?t:[],this.usage_=void 0!==e?e:Eh};Sh.prototype.getArray=function(){return this.arr_},Sh.prototype.getUsage=function(){return this.usage_};var Th=Sh,Ch=function(t){function e(e,i){t.call(this,e,i),this.defaultLocations_=null,this.styles_=[],this.styleIndices_=[],this.radius_=0,this.state_={fillColor:null,strokeColor:null,lineDash:null,lineDashOffset:void 0,lineWidth:void 0,changed:!1}}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.drawCoordinates_=function(t,e,i,r){var n,o,s=this.vertices.length,a=this.indices.length,h=s/4;for(n=e,o=i;n0&&(this.styles_=[]),this.vertices=null,this.indices=null},e.prototype.getDeleteResourcesFunction=function(t){var e=this.verticesBuffer,i=this.indicesBuffer;return function(){t.deleteBuffer(e),t.deleteBuffer(i)}},e.prototype.setUpProgram=function(t,e,i,r){var n,o=e.getProgram(ph,ch);return this.defaultLocations_?n=this.defaultLocations_:(n=new dh(t,o),this.defaultLocations_=n),e.useProgram(o),t.enableVertexAttribArray(n.a_position),t.vertexAttribPointer(n.a_position,2,5126,!1,16,0),t.enableVertexAttribArray(n.a_instruction),t.vertexAttribPointer(n.a_instruction,1,5126,!1,16,8),t.enableVertexAttribArray(n.a_radius),t.vertexAttribPointer(n.a_radius,1,5126,!1,16,12),t.uniform2fv(n.u_size,i),t.uniform1f(n.u_pixelRatio,r),n},e.prototype.shutDownProgram=function(t,e){t.disableVertexAttribArray(e.a_position),t.disableVertexAttribArray(e.a_instruction),t.disableVertexAttribArray(e.a_radius)},e.prototype.drawReplay=function(t,e,i,r){var n,o,s,a;if(d(i))for(s=this.startIndices[this.startIndices.length-1],n=this.styleIndices_.length-1;n>=0;--n)o=this.styleIndices_[n],a=this.styles_[n],this.setFillStyle_(t,a[0]),this.setStrokeStyle_(t,a[1],a[2]),this.drawElements(t,e,o,s),s=o;else this.drawReplaySkipping_(t,e,i)},e.prototype.drawHitDetectionReplayOneByOne=function(t,e,i,r,n){var s,a,h,l,u,p,c;for(c=this.startIndices.length-2,h=this.startIndices[c+1],s=this.styleIndices_.length-1;s>=0;--s)for(l=this.styles_[s],this.setFillStyle_(t,l[0]),this.setStrokeStyle_(t,l[1],l[2]),u=this.styleIndices_[s];c>=0&&this.startIndices[c]>=u;){if(a=this.startIndices[c],void 0===i[o(p=this.startIndicesFeature[c])]&&p.getGeometry()&&(void 0===n||Pt(n,p.getGeometry().getExtent()))){t.clear(t.COLOR_BUFFER_BIT|t.DEPTH_BUFFER_BIT),this.drawElements(t,e,a,h);var d=r(p);if(d)return d}c--,h=a}},e.prototype.drawReplaySkipping_=function(t,e,i){var r,n,s,a,h,l,u;for(l=this.startIndices.length-2,s=n=this.startIndices[l+1],r=this.styleIndices_.length-1;r>=0;--r){for(a=this.styles_[r],this.setFillStyle_(t,a[0]),this.setStrokeStyle_(t,a[1],a[2]),h=this.styleIndices_[r];l>=0&&this.startIndices[l]>=h;)u=this.startIndices[l],i[o(this.startIndicesFeature[l])]&&(n!==s&&this.drawElements(t,e,n,s),s=u),l--,n=u;n!==s&&this.drawElements(t,e,n,s),n=s=h}},e.prototype.setFillStyle_=function(t,e){t.uniform4fv(this.defaultLocations_.u_fillColor,e)},e.prototype.setStrokeStyle_=function(t,e,i){t.uniform4fv(this.defaultLocations_.u_strokeColor,e),t.uniform1f(this.defaultLocations_.u_lineWidth,i)},e.prototype.setFillStrokeStyle=function(t,e){var i,r;if(e){var n=e.getLineDash();this.state_.lineDash=n||yh;var o=e.getLineDashOffset();this.state_.lineDashOffset=o||0,i=(i=e.getColor())instanceof CanvasGradient||i instanceof CanvasPattern?vh:_r(i).map(function(t,e){return 3!=e?t/255:t})||vh,r=void 0!==(r=e.getWidth())?r:1}else i=[0,0,0,0],r=0;var s=t?t.getColor():[0,0,0,0];s=s instanceof CanvasGradient||s instanceof CanvasPattern?gh:_r(s).map(function(t,e){return 3!=e?t/255:t})||gh,this.state_.strokeColor&&Z(this.state_.strokeColor,i)&&this.state_.fillColor&&Z(this.state_.fillColor,s)&&this.state_.lineWidth===r||(this.state_.changed=!0,this.state_.fillColor=s,this.state_.strokeColor=i,this.state_.lineWidth=r,this.styles_.push([s,i,r]))},e}(_h),Rh=new lh("precision mediump float;\nvarying vec2 v_texCoord;\nvarying float v_opacity;\n\nuniform float u_opacity;\nuniform sampler2D u_image;\n\nvoid main(void) {\n vec4 texColor = texture2D(u_image, v_texCoord);\n gl_FragColor.rgb = texColor.rgb;\n float alpha = texColor.a * v_opacity * u_opacity;\n if (alpha == 0.0) {\n discard;\n }\n gl_FragColor.a = alpha;\n}\n"),wh=new uh("varying vec2 v_texCoord;\nvarying float v_opacity;\n\nattribute vec2 a_position;\nattribute vec2 a_texCoord;\nattribute vec2 a_offsets;\nattribute float a_opacity;\nattribute float a_rotateWithView;\n\nuniform mat4 u_projectionMatrix;\nuniform mat4 u_offsetScaleMatrix;\nuniform mat4 u_offsetRotateMatrix;\n\nvoid main(void) {\n mat4 offsetMatrix = u_offsetScaleMatrix;\n if (a_rotateWithView == 1.0) {\n offsetMatrix = u_offsetScaleMatrix * u_offsetRotateMatrix;\n }\n vec4 offsets = offsetMatrix * vec4(a_offsets, 0.0, 0.0);\n gl_Position = u_projectionMatrix * vec4(a_position, 0.0, 1.0) + offsets;\n v_texCoord = a_texCoord;\n v_opacity = a_opacity;\n}\n\n\n"),Ih=function(t,e){this.u_projectionMatrix=t.getUniformLocation(e,"u_projectionMatrix"),this.u_offsetScaleMatrix=t.getUniformLocation(e,"u_offsetScaleMatrix"),this.u_offsetRotateMatrix=t.getUniformLocation(e,"u_offsetRotateMatrix"),this.u_opacity=t.getUniformLocation(e,"u_opacity"),this.u_image=t.getUniformLocation(e,"u_image"),this.a_position=t.getAttribLocation(e,"a_position"),this.a_texCoord=t.getAttribLocation(e,"a_texCoord"),this.a_offsets=t.getAttribLocation(e,"a_offsets"),this.a_opacity=t.getAttribLocation(e,"a_opacity"),this.a_rotateWithView=t.getAttribLocation(e,"a_rotateWithView")},Lh={LOST:"webglcontextlost",RESTORED:"webglcontextrestored"};function Oh(t,e,i){var r=t.createTexture();return t.bindTexture(t.TEXTURE_2D,r),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MAG_FILTER,t.LINEAR),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MIN_FILTER,t.LINEAR),void 0!==e&&t.texParameteri(eh,$a,e),void 0!==i&&t.texParameteri(eh,th,i),r}function Ph(t,e,i,r,n){var o=Oh(t,r,n);return t.texImage2D(t.TEXTURE_2D,0,t.RGBA,e,i,0,t.RGBA,t.UNSIGNED_BYTE,null),o}function bh(t,e,i,r){var n=Oh(t,i,r);return t.texImage2D(t.TEXTURE_2D,0,t.RGBA,t.RGBA,t.UNSIGNED_BYTE,e),n}var Mh=function(t){function e(e,i){t.call(this),this.canvas_=e,this.gl_=i,this.bufferCache_={},this.shaderCache_={},this.programCache_={},this.currentProgram_=null,this.hitDetectionFramebuffer_=null,this.hitDetectionTexture_=null,this.hitDetectionRenderbuffer_=null,this.hasOESElementIndexUint=X(oh,"OES_element_index_uint"),this.hasOESElementIndexUint&&i.getExtension("OES_element_index_uint"),v(this.canvas_,Lh.LOST,this.handleWebGLContextLost,this),v(this.canvas_,Lh.RESTORED,this.handleWebGLContextRestored,this)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.bindBuffer=function(t,e){var i=this.getGL(),r=e.getArray(),n=o(e);if(n in this.bufferCache_){var s=this.bufferCache_[n];i.bindBuffer(t,s.buffer)}else{var a,h=i.createBuffer();i.bindBuffer(t,h),34962==t?a=new Float32Array(r):34963==t&&(a=this.hasOESElementIndexUint?new Uint32Array(r):new Uint16Array(r)),i.bufferData(t,a,e.getUsage()),this.bufferCache_[n]={buf:e,buffer:h}}},e.prototype.deleteBuffer=function(t){var e=this.getGL(),i=o(t),r=this.bufferCache_[i];e.isContextLost()||e.deleteBuffer(r.buffer),delete this.bufferCache_[i]},e.prototype.disposeInternal=function(){S(this.canvas_);var t=this.getGL();if(!t.isContextLost()){for(var e in this.bufferCache_)t.deleteBuffer(this.bufferCache_[e].buffer);for(var i in this.programCache_)t.deleteProgram(this.programCache_[i]);for(var r in this.shaderCache_)t.deleteShader(this.shaderCache_[r]);t.deleteFramebuffer(this.hitDetectionFramebuffer_),t.deleteRenderbuffer(this.hitDetectionRenderbuffer_),t.deleteTexture(this.hitDetectionTexture_)}},e.prototype.getCanvas=function(){return this.canvas_},e.prototype.getGL=function(){return this.gl_},e.prototype.getHitDetectionFramebuffer=function(){return this.hitDetectionFramebuffer_||this.initHitDetectionFramebuffer_(),this.hitDetectionFramebuffer_},e.prototype.getShader=function(t){var e=o(t);if(e in this.shaderCache_)return this.shaderCache_[e];var i=this.getGL(),r=i.createShader(t.getType());return i.shaderSource(r,t.getSource()),i.compileShader(r),this.shaderCache_[e]=r,r},e.prototype.getProgram=function(t,e){var i=o(t)+"/"+o(e);if(i in this.programCache_)return this.programCache_[i];var r=this.getGL(),n=r.createProgram();return r.attachShader(n,this.getShader(t)),r.attachShader(n,this.getShader(e)),r.linkProgram(n),this.programCache_[i]=n,n},e.prototype.handleWebGLContextLost=function(){p(this.bufferCache_),p(this.shaderCache_),p(this.programCache_),this.currentProgram_=null,this.hitDetectionFramebuffer_=null,this.hitDetectionTexture_=null,this.hitDetectionRenderbuffer_=null},e.prototype.handleWebGLContextRestored=function(){},e.prototype.initHitDetectionFramebuffer_=function(){var t=this.gl_,e=t.createFramebuffer();t.bindFramebuffer(t.FRAMEBUFFER,e);var i=Ph(t,1,1),r=t.createRenderbuffer();t.bindRenderbuffer(t.RENDERBUFFER,r),t.renderbufferStorage(t.RENDERBUFFER,t.DEPTH_COMPONENT16,1,1),t.framebufferTexture2D(t.FRAMEBUFFER,t.COLOR_ATTACHMENT0,t.TEXTURE_2D,i,0),t.framebufferRenderbuffer(t.FRAMEBUFFER,t.DEPTH_ATTACHMENT,t.RENDERBUFFER,r),t.bindTexture(t.TEXTURE_2D,null),t.bindRenderbuffer(t.RENDERBUFFER,null),t.bindFramebuffer(t.FRAMEBUFFER,null),this.hitDetectionFramebuffer_=e,this.hitDetectionTexture_=i,this.hitDetectionRenderbuffer_=r},e.prototype.useProgram=function(t){return t!=this.currentProgram_&&(this.getGL().useProgram(t),this.currentProgram_=t,!0)},e}(C),Fh=function(t){function e(e,i){t.call(this,e,i),this.anchorX=void 0,this.anchorY=void 0,this.groupIndices=[],this.hitDetectionGroupIndices=[],this.height=void 0,this.imageHeight=void 0,this.imageWidth=void 0,this.defaultLocations=null,this.opacity=void 0,this.originX=void 0,this.originY=void 0,this.rotateWithView=void 0,this.rotation=void 0,this.scale=void 0,this.width=void 0}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.getDeleteResourcesFunction=function(t){var e=this.verticesBuffer,i=this.indicesBuffer,r=this.getTextures(!0),n=t.getGL();return function(){var o,s;if(!n.isContextLost())for(o=0,s=r.length;o0?n[s-1]:0,u=n[s],p=l,c=l;h=0;--s)for(t.bindTexture(eh,c[s]),a=s>0?this.hitDetectionGroupIndices[s-1]:0,l=this.hitDetectionGroupIndices[s];p>=0&&this.startIndices[p]>=a;){if(h=this.startIndices[p],void 0===i[o(u=this.startIndicesFeature[p])]&&u.getGeometry()&&(void 0===n||Pt(n,u.getGeometry().getExtent()))){t.clear(t.COLOR_BUFFER_BIT|t.DEPTH_BUFFER_BIT),this.drawElements(t,e,h,l);var d=r(u);if(d)return d}l=h,p--}},e.prototype.finish=function(t){this.anchorX=void 0,this.anchorY=void 0,this.height=void 0,this.imageHeight=void 0,this.imageWidth=void 0,this.indices=null,this.opacity=void 0,this.originX=void 0,this.originY=void 0,this.rotateWithView=void 0,this.rotation=void 0,this.scale=void 0,this.vertices=null,this.width=void 0},e.prototype.getTextures=function(t){return r()},e.prototype.getHitDetectionTextures=function(){return r()},e}(_h),Ah=function(t){function e(e,i){t.call(this,e,i),this.images_=[],this.hitDetectionImages_=[],this.textures_=[],this.hitDetectionTextures_=[]}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.drawMultiPoint=function(t,e){this.startIndices.push(this.indices.length),this.startIndicesFeature.push(e);var i=t.getFlatCoordinates(),r=t.getStride();this.drawCoordinates(i,0,i.length,r)},e.prototype.drawPoint=function(t,e){this.startIndices.push(this.indices.length),this.startIndicesFeature.push(e);var i=t.getFlatCoordinates(),r=t.getStride();this.drawCoordinates(i,0,i.length,r)},e.prototype.finish=function(e){var i=e.getGL();this.groupIndices.push(this.indices.length),this.hitDetectionGroupIndices.push(this.indices.length),this.verticesBuffer=new Th(this.vertices);var r=this.indices;this.indicesBuffer=new Th(r);var n={};this.createTextures(this.textures_,this.images_,n,i),this.createTextures(this.hitDetectionTextures_,this.hitDetectionImages_,n,i),this.images_=null,this.hitDetectionImages_=null,t.prototype.finish.call(this,e)},e.prototype.setImageStyle=function(t){var e=t.getAnchor(),i=t.getImage(1),r=t.getImageSize(),n=t.getHitDetectionImage(1),s=t.getOpacity(),a=t.getOrigin(),h=t.getRotateWithView(),l=t.getRotation(),u=t.getSize(),p=t.getScale();0===this.images_.length?this.images_.push(i):o(this.images_[this.images_.length-1])!=o(i)&&(this.groupIndices.push(this.indices.length),this.images_.push(i)),0===this.hitDetectionImages_.length?this.hitDetectionImages_.push(n):o(this.hitDetectionImages_[this.hitDetectionImages_.length-1])!=o(n)&&(this.hitDetectionGroupIndices.push(this.indices.length),this.hitDetectionImages_.push(n)),this.anchorX=e[0],this.anchorY=e[1],this.height=u[1],this.imageHeight=r[1],this.imageWidth=r[0],this.opacity=s,this.originX=a[0],this.originY=a[1],this.rotation=l,this.rotateWithView=h,this.scale=p,this.width=u[0]},e.prototype.getTextures=function(t){return t?this.textures_.concat(this.hitDetectionTextures_):this.textures_},e.prototype.getHitDetectionTextures=function(){return this.hitDetectionTextures_},e}(Fh);function Nh(t,e,i,r){var n=i-r;return t[e]===t[n]&&t[e+1]===t[n+1]&&(i-e)/r>3&&!!Ke(t,e,i,r)}var Gh=new lh("precision mediump float;\nvarying float v_round;\nvarying vec2 v_roundVertex;\nvarying float v_halfWidth;\n\n\n\nuniform float u_opacity;\nuniform vec4 u_color;\nuniform vec2 u_size;\nuniform float u_pixelRatio;\n\nvoid main(void) {\n if (v_round > 0.0) {\n vec2 windowCoords = vec2((v_roundVertex.x + 1.0) / 2.0 * u_size.x * u_pixelRatio,\n (v_roundVertex.y + 1.0) / 2.0 * u_size.y * u_pixelRatio);\n if (length(windowCoords - gl_FragCoord.xy) > v_halfWidth * u_pixelRatio) {\n discard;\n }\n }\n gl_FragColor = u_color;\n float alpha = u_color.a * u_opacity;\n if (alpha == 0.0) {\n discard;\n }\n gl_FragColor.a = alpha;\n}\n"),Dh=new uh("varying float v_round;\nvarying vec2 v_roundVertex;\nvarying float v_halfWidth;\n\n\nattribute vec2 a_lastPos;\nattribute vec2 a_position;\nattribute vec2 a_nextPos;\nattribute float a_direction;\n\nuniform mat4 u_projectionMatrix;\nuniform mat4 u_offsetScaleMatrix;\nuniform mat4 u_offsetRotateMatrix;\nuniform float u_lineWidth;\nuniform float u_miterLimit;\n\nbool nearlyEquals(in float value, in float ref) {\n float epsilon = 0.000000000001;\n return value >= ref - epsilon && value <= ref + epsilon;\n}\n\nvoid alongNormal(out vec2 offset, in vec2 nextP, in float turnDir, in float direction) {\n vec2 dirVect = nextP - a_position;\n vec2 normal = normalize(vec2(-turnDir * dirVect.y, turnDir * dirVect.x));\n offset = u_lineWidth / 2.0 * normal * direction;\n}\n\nvoid miterUp(out vec2 offset, out float round, in bool isRound, in float direction) {\n float halfWidth = u_lineWidth / 2.0;\n vec2 tangent = normalize(normalize(a_nextPos - a_position) + normalize(a_position - a_lastPos));\n vec2 normal = vec2(-tangent.y, tangent.x);\n vec2 dirVect = a_nextPos - a_position;\n vec2 tmpNormal = normalize(vec2(-dirVect.y, dirVect.x));\n float miterLength = abs(halfWidth / dot(normal, tmpNormal));\n offset = normal * direction * miterLength;\n round = 0.0;\n if (isRound) {\n round = 1.0;\n } else if (miterLength > u_miterLimit + u_lineWidth) {\n offset = halfWidth * tmpNormal * direction;\n }\n}\n\nbool miterDown(out vec2 offset, in vec4 projPos, in mat4 offsetMatrix, in float direction) {\n bool degenerate = false;\n vec2 tangent = normalize(normalize(a_nextPos - a_position) + normalize(a_position - a_lastPos));\n vec2 normal = vec2(-tangent.y, tangent.x);\n vec2 dirVect = a_lastPos - a_position;\n vec2 tmpNormal = normalize(vec2(-dirVect.y, dirVect.x));\n vec2 longOffset, shortOffset, longVertex;\n vec4 shortProjVertex;\n float halfWidth = u_lineWidth / 2.0;\n if (length(a_nextPos - a_position) > length(a_lastPos - a_position)) {\n longOffset = tmpNormal * direction * halfWidth;\n shortOffset = normalize(vec2(dirVect.y, -dirVect.x)) * direction * halfWidth;\n longVertex = a_nextPos;\n shortProjVertex = u_projectionMatrix * vec4(a_lastPos, 0.0, 1.0);\n } else {\n shortOffset = tmpNormal * direction * halfWidth;\n longOffset = normalize(vec2(dirVect.y, -dirVect.x)) * direction * halfWidth;\n longVertex = a_lastPos;\n shortProjVertex = u_projectionMatrix * vec4(a_nextPos, 0.0, 1.0);\n }\n //Intersection algorithm based on theory by Paul Bourke (http://paulbourke.net/geometry/pointlineplane/).\n vec4 p1 = u_projectionMatrix * vec4(longVertex, 0.0, 1.0) + offsetMatrix * vec4(longOffset, 0.0, 0.0);\n vec4 p2 = projPos + offsetMatrix * vec4(longOffset, 0.0, 0.0);\n vec4 p3 = shortProjVertex + offsetMatrix * vec4(-shortOffset, 0.0, 0.0);\n vec4 p4 = shortProjVertex + offsetMatrix * vec4(shortOffset, 0.0, 0.0);\n float denom = (p4.y - p3.y) * (p2.x - p1.x) - (p4.x - p3.x) * (p2.y - p1.y);\n float firstU = ((p4.x - p3.x) * (p1.y - p3.y) - (p4.y - p3.y) * (p1.x - p3.x)) / denom;\n float secondU = ((p2.x - p1.x) * (p1.y - p3.y) - (p2.y - p1.y) * (p1.x - p3.x)) / denom;\n float epsilon = 0.000000000001;\n if (firstU > epsilon && firstU < 1.0 - epsilon && secondU > epsilon && secondU < 1.0 - epsilon) {\n shortProjVertex.x = p1.x + firstU * (p2.x - p1.x);\n shortProjVertex.y = p1.y + firstU * (p2.y - p1.y);\n offset = shortProjVertex.xy;\n degenerate = true;\n } else {\n float miterLength = abs(halfWidth / dot(normal, tmpNormal));\n offset = normal * direction * miterLength;\n }\n return degenerate;\n}\n\nvoid squareCap(out vec2 offset, out float round, in bool isRound, in vec2 nextP,\n in float turnDir, in float direction) {\n round = 0.0;\n vec2 dirVect = a_position - nextP;\n vec2 firstNormal = normalize(dirVect);\n vec2 secondNormal = vec2(turnDir * firstNormal.y * direction, -turnDir * firstNormal.x * direction);\n vec2 hypotenuse = normalize(firstNormal - secondNormal);\n vec2 normal = vec2(turnDir * hypotenuse.y * direction, -turnDir * hypotenuse.x * direction);\n float length = sqrt(v_halfWidth * v_halfWidth * 2.0);\n offset = normal * length;\n if (isRound) {\n round = 1.0;\n }\n}\n\nvoid main(void) {\n bool degenerate = false;\n float direction = float(sign(a_direction));\n mat4 offsetMatrix = u_offsetScaleMatrix * u_offsetRotateMatrix;\n vec2 offset;\n vec4 projPos = u_projectionMatrix * vec4(a_position, 0.0, 1.0);\n bool round = nearlyEquals(mod(a_direction, 2.0), 0.0);\n\n v_round = 0.0;\n v_halfWidth = u_lineWidth / 2.0;\n v_roundVertex = projPos.xy;\n\n if (nearlyEquals(mod(a_direction, 3.0), 0.0) || nearlyEquals(mod(a_direction, 17.0), 0.0)) {\n alongNormal(offset, a_nextPos, 1.0, direction);\n } else if (nearlyEquals(mod(a_direction, 5.0), 0.0) || nearlyEquals(mod(a_direction, 13.0), 0.0)) {\n alongNormal(offset, a_lastPos, -1.0, direction);\n } else if (nearlyEquals(mod(a_direction, 23.0), 0.0)) {\n miterUp(offset, v_round, round, direction);\n } else if (nearlyEquals(mod(a_direction, 19.0), 0.0)) {\n degenerate = miterDown(offset, projPos, offsetMatrix, direction);\n } else if (nearlyEquals(mod(a_direction, 7.0), 0.0)) {\n squareCap(offset, v_round, round, a_nextPos, 1.0, direction);\n } else if (nearlyEquals(mod(a_direction, 11.0), 0.0)) {\n squareCap(offset, v_round, round, a_lastPos, -1.0, direction);\n }\n if (!degenerate) {\n vec4 offsets = offsetMatrix * vec4(offset, 0.0, 0.0);\n gl_Position = projPos + offsets;\n } else {\n gl_Position = vec4(offset, 0.0, 1.0);\n }\n}\n\n\n"),kh=function(t,e){this.u_projectionMatrix=t.getUniformLocation(e,"u_projectionMatrix"),this.u_offsetScaleMatrix=t.getUniformLocation(e,"u_offsetScaleMatrix"),this.u_offsetRotateMatrix=t.getUniformLocation(e,"u_offsetRotateMatrix"),this.u_lineWidth=t.getUniformLocation(e,"u_lineWidth"),this.u_miterLimit=t.getUniformLocation(e,"u_miterLimit"),this.u_opacity=t.getUniformLocation(e,"u_opacity"),this.u_color=t.getUniformLocation(e,"u_color"),this.u_size=t.getUniformLocation(e,"u_size"),this.u_pixelRatio=t.getUniformLocation(e,"u_pixelRatio"),this.a_lastPos=t.getAttribLocation(e,"a_lastPos"),this.a_position=t.getAttribLocation(e,"a_position"),this.a_nextPos=t.getAttribLocation(e,"a_nextPos"),this.a_direction=t.getAttribLocation(e,"a_direction")},jh=3,Uh=5,Yh=7,Bh=11,Vh=13,Xh=17,zh=19,Wh=23,Kh=function(t){function e(e,i){t.call(this,e,i),this.defaultLocations_=null,this.styles_=[],this.styleIndices_=[],this.state_={strokeColor:null,lineCap:void 0,lineDash:null,lineDashOffset:void 0,lineJoin:void 0,lineWidth:void 0,miterLimit:void 0,changed:!1}}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.drawCoordinates_=function(t,e,i,r){var n,o,s,a,h,l,u,p,c=this.vertices.length,d=this.indices.length,f="bevel"===this.state_.lineJoin?0:"miter"===this.state_.lineJoin?1:2,_="butt"===this.state_.lineCap?0:"square"===this.state_.lineCap?1:2,g=Nh(t,e,i,r),y=d,v=1;for(n=e,o=i;ne&&(this.indices[d++]=h,this.indices[d++]=y-1,this.indices[d++]=y,this.indices[d++]=h+2,this.indices[d++]=h,this.indices[d++]=v*a>0?y:y-1),this.indices[d++]=h,this.indices[d++]=h+2,this.indices[d++]=h+1,y=h+2,v=a,f&&(c=this.addVertices_(l,u,p,a*Wh*f,c),this.indices[d++]=h+1,this.indices[d++]=h+3,this.indices[d++]=h)}g&&(h=h||c/7,a=Si([l[0],l[1],u[0],u[1],p[0],p[1]],0,6,2)?1:-1,c=this.addVertices_(l,u,p,a*Vh*(f||1),c),c=this.addVertices_(l,u,p,-a*zh*(f||1),c),this.indices[d++]=h,this.indices[d++]=y-1,this.indices[d++]=y,this.indices[d++]=h+1,this.indices[d++]=h,this.indices[d++]=v*a>0?y:y-1)},e.prototype.addVertices_=function(t,e,i,r,n){return this.vertices[n++]=t[0],this.vertices[n++]=t[1],this.vertices[n++]=e[0],this.vertices[n++]=e[1],this.vertices[n++]=i[0],this.vertices[n++]=i[1],this.vertices[n++]=r,n},e.prototype.isValid_=function(t,e,i,r){var n=i-e;return!(n<2*r)&&(n!==2*r||!Z([t[e],t[e+1]],[t[e+r],t[e+r+1]]))},e.prototype.drawLineString=function(t,e){var i=t.getFlatCoordinates(),r=t.getStride();this.isValid_(i,0,i.length,r)&&(i=Dt(i,0,i.length,r,-this.origin[0],-this.origin[1]),this.state_.changed&&(this.styleIndices_.push(this.indices.length),this.state_.changed=!1),this.startIndices.push(this.indices.length),this.startIndicesFeature.push(e),this.drawCoordinates_(i,0,i.length,r))},e.prototype.drawMultiLineString=function(t,e){var i=this.indices.length,r=t.getEnds();r.unshift(0);var n,o,s=t.getFlatCoordinates(),a=t.getStride();if(r.length>1)for(n=1,o=r.length;ni&&(this.startIndices.push(i),this.startIndicesFeature.push(e),this.state_.changed&&(this.styleIndices_.push(i),this.state_.changed=!1))},e.prototype.drawPolygonCoordinates=function(t,e,i){var r,n;if(Nh(t,0,t.length,i)||(t.push(t[0]),t.push(t[1])),this.drawCoordinates_(t,0,t.length,i),e.length)for(r=0,n=e.length;r0&&(this.styles_=[]),this.vertices=null,this.indices=null},e.prototype.getDeleteResourcesFunction=function(t){var e=this.verticesBuffer,i=this.indicesBuffer;return function(){t.deleteBuffer(e),t.deleteBuffer(i)}},e.prototype.setUpProgram=function(t,e,i,r){var n,o=e.getProgram(Gh,Dh);return this.defaultLocations_?n=this.defaultLocations_:(n=new kh(t,o),this.defaultLocations_=n),e.useProgram(o),t.enableVertexAttribArray(n.a_lastPos),t.vertexAttribPointer(n.a_lastPos,2,5126,!1,28,0),t.enableVertexAttribArray(n.a_position),t.vertexAttribPointer(n.a_position,2,5126,!1,28,8),t.enableVertexAttribArray(n.a_nextPos),t.vertexAttribPointer(n.a_nextPos,2,5126,!1,28,16),t.enableVertexAttribArray(n.a_direction),t.vertexAttribPointer(n.a_direction,1,5126,!1,28,24),t.uniform2fv(n.u_size,i),t.uniform1f(n.u_pixelRatio,r),n},e.prototype.shutDownProgram=function(t,e){t.disableVertexAttribArray(e.a_lastPos),t.disableVertexAttribArray(e.a_position),t.disableVertexAttribArray(e.a_nextPos),t.disableVertexAttribArray(e.a_direction)},e.prototype.drawReplay=function(t,e,i,r){var n,o,s,a,h=t.getParameter(t.DEPTH_FUNC),l=t.getParameter(t.DEPTH_WRITEMASK);if(r||(t.enable(t.DEPTH_TEST),t.depthMask(!0),t.depthFunc(t.NOTEQUAL)),d(i))for(s=this.startIndices[this.startIndices.length-1],n=this.styleIndices_.length-1;n>=0;--n)o=this.styleIndices_[n],a=this.styles_[n],this.setStrokeStyle_(t,a[0],a[1],a[2]),this.drawElements(t,e,o,s),t.clear(t.DEPTH_BUFFER_BIT),s=o;else this.drawReplaySkipping_(t,e,i);r||(t.disable(t.DEPTH_TEST),t.clear(t.DEPTH_BUFFER_BIT),t.depthMask(l),t.depthFunc(h))},e.prototype.drawReplaySkipping_=function(t,e,i){var r,n,s,a,h,l,u;for(l=this.startIndices.length-2,s=n=this.startIndices[l+1],r=this.styleIndices_.length-1;r>=0;--r){for(a=this.styles_[r],this.setStrokeStyle_(t,a[0],a[1],a[2]),h=this.styleIndices_[r];l>=0&&this.startIndices[l]>=h;)u=this.startIndices[l],i[o(this.startIndicesFeature[l])]&&(n!==s&&(this.drawElements(t,e,n,s),t.clear(t.DEPTH_BUFFER_BIT)),s=u),l--,n=u;n!==s&&(this.drawElements(t,e,n,s),t.clear(t.DEPTH_BUFFER_BIT)),n=s=h}},e.prototype.drawHitDetectionReplayOneByOne=function(t,e,i,r,n){var s,a,h,l,u,p,c;for(c=this.startIndices.length-2,h=this.startIndices[c+1],s=this.styleIndices_.length-1;s>=0;--s)for(l=this.styles_[s],this.setStrokeStyle_(t,l[0],l[1],l[2]),u=this.styleIndices_[s];c>=0&&this.startIndices[c]>=u;){if(a=this.startIndices[c],void 0===i[o(p=this.startIndicesFeature[c])]&&p.getGeometry()&&(void 0===n||Pt(n,p.getGeometry().getExtent()))){t.clear(t.COLOR_BUFFER_BIT|t.DEPTH_BUFFER_BIT),this.drawElements(t,e,a,h);var d=r(p);if(d)return d}c--,h=a}},e.prototype.setStrokeStyle_=function(t,e,i,r){t.uniform4fv(this.defaultLocations_.u_color,e),t.uniform1f(this.defaultLocations_.u_lineWidth,i),t.uniform1f(this.defaultLocations_.u_miterLimit,r)},e.prototype.setFillStrokeStyle=function(t,e){var i=e.getLineCap();this.state_.lineCap=void 0!==i?i:"round";var r=e.getLineDash();this.state_.lineDash=r||yh;var n=e.getLineDashOffset();this.state_.lineDashOffset=n||0;var o=e.getLineJoin();this.state_.lineJoin=void 0!==o?o:"round";var s=e.getColor();s=s instanceof CanvasGradient||s instanceof CanvasPattern?vh:_r(s).map(function(t,e){return 3!=e?t/255:t})||vh;var a=e.getWidth();a=void 0!==a?a:1;var h=e.getMiterLimit();h=void 0!==h?h:10,this.state_.strokeColor&&Z(this.state_.strokeColor,s)&&this.state_.lineWidth===a&&this.state_.miterLimit===h||(this.state_.changed=!0,this.state_.strokeColor=s,this.state_.lineWidth=a,this.state_.miterLimit=h,this.styles_.push([s,a,h]))},e}(_h),Hh=new lh("precision mediump float;\n\n\n\nuniform vec4 u_color;\nuniform float u_opacity;\n\nvoid main(void) {\n gl_FragColor = u_color;\n float alpha = u_color.a * u_opacity;\n if (alpha == 0.0) {\n discard;\n }\n gl_FragColor.a = alpha;\n}\n"),Zh=new uh("\n\nattribute vec2 a_position;\n\nuniform mat4 u_projectionMatrix;\nuniform mat4 u_offsetScaleMatrix;\nuniform mat4 u_offsetRotateMatrix;\n\nvoid main(void) {\n gl_Position = u_projectionMatrix * vec4(a_position, 0.0, 1.0);\n}\n\n\n"),qh=function(t,e){this.u_projectionMatrix=t.getUniformLocation(e,"u_projectionMatrix"),this.u_offsetScaleMatrix=t.getUniformLocation(e,"u_offsetScaleMatrix"),this.u_offsetRotateMatrix=t.getUniformLocation(e,"u_offsetRotateMatrix"),this.u_color=t.getUniformLocation(e,"u_color"),this.u_opacity=t.getUniformLocation(e,"u_opacity"),this.a_position=t.getAttribLocation(e,"a_position")},Jh=function(t){this.first_,this.last_,this.head_,this.circular_=void 0===t||t,this.length_=0};Jh.prototype.insertItem=function(t){var e={prev:void 0,next:void 0,data:t},i=this.head_;if(i){var r=i.next;e.prev=i,e.next=r,i.next=e,r&&(r.prev=e),i===this.last_&&(this.last_=e)}else this.first_=e,this.last_=e,this.circular_&&(e.next=e,e.prev=e);this.head_=e,this.length_++},Jh.prototype.removeItem=function(){var t=this.head_;if(t){var e=t.next,i=t.prev;e&&(e.prev=i),i&&(i.next=e),this.head_=e||i,this.first_===this.last_?(this.head_=void 0,this.first_=void 0,this.last_=void 0):this.first_===t?this.first_=this.head_:this.last_===t&&(this.last_=i?this.head_.prev:this.head_),this.length_--}},Jh.prototype.firstItem=function(){if(this.head_=this.first_,this.head_)return this.head_.data},Jh.prototype.lastItem=function(){if(this.head_=this.last_,this.head_)return this.head_.data},Jh.prototype.nextItem=function(){if(this.head_&&this.head_.next)return this.head_=this.head_.next,this.head_.data},Jh.prototype.getNextItem=function(){if(this.head_&&this.head_.next)return this.head_.next.data},Jh.prototype.prevItem=function(){if(this.head_&&this.head_.prev)return this.head_=this.head_.prev,this.head_.data},Jh.prototype.getPrevItem=function(){if(this.head_&&this.head_.prev)return this.head_.prev.data},Jh.prototype.getCurrItem=function(){if(this.head_)return this.head_.data},Jh.prototype.setFirstItem=function(){this.circular_&&this.head_&&(this.first_=this.head_,this.last_=this.head_.prev)},Jh.prototype.concat=function(t){if(t.head_){if(this.head_){var e=this.head_.next;this.head_.next=t.first_,t.first_.prev=this.head_,e.prev=t.last_,t.last_.next=e,this.length_+=t.length_}else this.head_=t.head_,this.first_=t.first_,this.last_=t.last_,this.length_=t.length_;t.head_=void 0,t.first_=void 0,t.last_=void 0,t.length_=0}},Jh.prototype.getLength=function(){return this.length_};var Qh=Jh,$h=function(t){this.rbush_=ua()(t,void 0),this.items_={}};$h.prototype.insert=function(t,e){var i={minX:t[0],minY:t[1],maxX:t[2],maxY:t[3],value:e};this.rbush_.insert(i),this.items_[o(e)]=i},$h.prototype.load=function(t,e){for(var i=new Array(e.length),r=0,n=e.length;r=s;o-=e)l=this.createPoint_(t[o],t[o+1],p++),d.push(this.insertItem_(h,l,i)),c.push([Math.min(h.x,l.x),Math.min(h.y,l.y),Math.max(h.x,l.x),Math.max(h.y,l.y)]),h=l;d.push(this.insertItem_(l,a,i)),c.push([Math.min(h.x,l.x),Math.min(h.y,l.y),Math.max(h.x,l.x),Math.max(h.y,l.y)])}r.load(c,d)},e.prototype.getMaxCoords_=function(t){var e=t.firstItem(),i=e,r=[i.p0.x,i.p0.y];do{(i=t.nextItem()).p0.x>r[0]&&(r=[i.p0.x,i.p0.y])}while(i!==e);return r},e.prototype.classifyPoints_=function(t,e,i){var r=t.firstItem(),n=r,o=t.nextItem(),s=!1;do{var a=i?xh(o.p1.x,o.p1.y,n.p1.x,n.p1.y,n.p0.x,n.p0.y):xh(n.p0.x,n.p0.y,n.p1.x,n.p1.y,o.p1.x,o.p1.y);void 0===a?(this.removeItem_(n,o,t,e),s=!0,o===r&&(r=t.getNextItem()),o=n,t.prevItem()):n.p1.reflex!==a&&(n.p1.reflex=a,s=!0),n=o,o=t.nextItem()}while(n!==r);return s},e.prototype.bridgeHole_=function(t,e,i,r,n){for(var o=t.firstItem();o.p1.x!==e;)o=t.nextItem();var s,a,h,l,u=o.p1,p={x:r,y:u.y,i:-1},c=1/0,d=this.getIntersections_({p0:u,p1:p},n,!0);for(s=0,a=d.length;s0){var y=this.getPointsInTriangle_(u,l,o.p1,n);if(y.length){var v=1/0;for(s=0,a=y.length;s3;)if(r){if(!this.clipEars_(t,e,r,i)&&!this.classifyPoints_(t,e,i)&&!this.resolveSelfIntersections_(t,e,!0))break}else if(!this.clipEars_(t,e,r,i)&&!this.classifyPoints_(t,e,i)&&!this.resolveSelfIntersections_(t,e)){if(!(r=this.isSimple_(t,e))){this.splitPolygon_(t,e);break}i=!this.isClockwise_(t),this.classifyPoints_(t,e,i)}if(3===t.getLength()){var n=this.indices.length;this.indices[n++]=t.getPrevItem().p0.i,this.indices[n++]=t.getCurrItem().p0.i,this.indices[n++]=t.getNextItem().p0.i}},e.prototype.clipEars_=function(t,e,i,r){var n,o,s,a=this.indices.length,h=t.firstItem(),l=t.getPrevItem(),u=h,p=t.nextItem(),c=t.getNextItem(),d=!1;do{if(n=u.p0,o=u.p1,s=p.p1,!1===o.reflex){var f=void 0;f=i?0===this.getPointsInTriangle_(n,o,s,e,!0).length:r?this.diagonalIsInside_(c.p1,s,o,n,l.p0):this.diagonalIsInside_(l.p0,n,o,s,c.p1),(i||0===this.getIntersections_({p0:n,p1:s},e).length)&&f&&(i||!1===n.reflex||!1===s.reflex||Si([l.p0.x,l.p0.y,n.x,n.y,o.x,o.y,s.x,s.y,c.p1.x,c.p1.y],0,10,2)===!r)&&(this.indices[a++]=n.i,this.indices[a++]=o.i,this.indices[a++]=s.i,this.removeItem_(u,p,t,e),p===h&&(h=c),d=!0)}l=t.getPrevItem(),u=t.getCurrItem(),p=t.nextItem(),c=t.getNextItem()}while(u!==h&&t.getLength()>3);return d},e.prototype.resolveSelfIntersections_=function(t,e,i){var r=t.firstItem();t.nextItem();var n=r,o=t.nextItem(),s=!1;do{var a=this.calculateIntersection_(n.p0,n.p1,o.p0,o.p1,i);if(a){var h=!1,l=this.vertices.length,u=this.indices.length,p=l/2,c=t.prevItem();t.removeItem(),e.remove(c),h=c===r;var d=void 0;if(i?(a[0]===n.p0.x&&a[1]===n.p0.y?(t.prevItem(),d=n.p0,o.p0=d,e.remove(n),h=h||n===r):(d=o.p1,n.p1=d,e.remove(o),h=h||o===r),t.removeItem()):(d=this.createPoint_(a[0],a[1],p),n.p1=d,o.p0=d,e.update([Math.min(n.p0.x,n.p1.x),Math.min(n.p0.y,n.p1.y),Math.max(n.p0.x,n.p1.x),Math.max(n.p0.y,n.p1.y)],n),e.update([Math.min(o.p0.x,o.p1.x),Math.min(o.p0.y,o.p1.y),Math.max(o.p0.x,o.p1.x),Math.max(o.p0.y,o.p1.y)],o)),this.indices[u++]=c.p0.i,this.indices[u++]=c.p1.i,this.indices[u++]=d.i,s=!0,h)break}n=t.getPrevItem(),o=t.nextItem()}while(n!==r);return s},e.prototype.isSimple_=function(t,e){var i=t.firstItem(),r=i;do{if(this.getIntersections_(r,e).length)return!1;r=t.nextItem()}while(r!==i);return!0},e.prototype.isClockwise_=function(t){var e=2*t.getLength(),i=new Array(e),r=t.firstItem(),n=r,o=0;do{i[o++]=n.p0.x,i[o++]=n.p0.y,n=t.nextItem()}while(n!==r);return Si(i,0,e,2)},e.prototype.splitPolygon_=function(t,e){var i=t.firstItem(),r=i;do{var n=this.getIntersections_(r,e);if(n.length){var o=n[0],s=this.vertices.length/2,a=this.calculateIntersection_(r.p0,r.p1,o.p0,o.p1),h=this.createPoint_(a[0],a[1],s),l=new Qh,u=new tl;this.insertItem_(h,r.p1,l,u),r.p1=h,e.update([Math.min(r.p0.x,h.x),Math.min(r.p0.y,h.y),Math.max(r.p0.x,h.x),Math.max(r.p0.y,h.y)],r);for(var p=t.nextItem();p!==o;)this.insertItem_(p.p0,p.p1,l,u),e.remove(p),t.removeItem(),p=t.getCurrItem();this.insertItem_(o.p0,h,l,u),o.p0=h,e.update([Math.min(o.p1.x,h.x),Math.min(o.p1.y,h.y),Math.max(o.p1.x,h.x),Math.max(o.p1.y,h.y)],o),this.classifyPoints_(t,e,!1),this.triangulate_(t,e),this.classifyPoints_(l,u,!1),this.triangulate_(l,u);break}r=t.nextItem()}while(r!==i)},e.prototype.createPoint_=function(t,e,i){var r=this.vertices.length;return this.vertices[r++]=t,this.vertices[r++]=e,{x:t,y:e,i:i,reflex:void 0}},e.prototype.insertItem_=function(t,e,i,r){var n={p0:t,p1:e};return i.insertItem(n),r&&r.insert([Math.min(t.x,e.x),Math.min(t.y,e.y),Math.max(t.x,e.x),Math.max(t.y,e.y)],n),n},e.prototype.removeItem_=function(t,e,i,r){i.getCurrItem()===e&&(i.removeItem(),t.p1=e.p1,r.remove(e),r.update([Math.min(t.p0.x,t.p1.x),Math.min(t.p0.y,t.p1.y),Math.max(t.p0.x,t.p1.x),Math.max(t.p0.y,t.p1.y)],t))},e.prototype.getPointsInTriangle_=function(t,e,i,r,n){for(var o=[],s=r.getInExtent([Math.min(t.x,e.x,i.x),Math.min(t.y,e.y,i.y),Math.max(t.x,e.x,i.x),Math.max(t.y,e.y,i.y)]),a=0,h=s.length;amh&&s<1-mh&&a>mh&&a<1-mh||n&&s>=0&&s<=1&&a>=0&&a<=1)return[t.x+s*(e.x-t.x),t.y+s*(e.y-t.y)]}},e.prototype.diagonalIsInside_=function(t,e,i,r,n){if(void 0===e.reflex||void 0===r.reflex)return!1;var o=(i.x-r.x)*(e.y-r.y)>(i.y-r.y)*(e.x-r.x),s=(n.x-r.x)*(e.y-r.y)<(n.y-r.y)*(e.x-r.x),a=(t.x-e.x)*(r.y-e.y)>(t.y-e.y)*(r.x-e.x),h=(i.x-e.x)*(r.y-e.y)<(i.y-e.y)*(r.x-e.x),l=r.reflex?s||o:s&&o,u=e.reflex?h||a:h&&a;return l&&u},e.prototype.drawMultiPolygon=function(t,e){var i,r,n,o,s=t.getEndss(),a=t.getStride(),h=this.indices.length,l=this.lineStringReplay.getCurrentIndex(),u=t.getFlatCoordinates(),p=0;for(i=0,r=s.length;i0){var d=Dt(u,p,c[0],a,-this.origin[0],-this.origin[1]);if(d.length){var f=[],_=void 0;for(n=1,o=c.length;nh&&(this.startIndices.push(h),this.startIndicesFeature.push(e),this.state_.changed&&(this.styleIndices_.push(h),this.state_.changed=!1)),this.lineStringReplay.getCurrentIndex()>l&&this.lineStringReplay.setPolygonStyle(e,l)},e.prototype.drawPolygon=function(t,e){var i=t.getEnds(),r=t.getStride();if(i.length>0){var n=t.getFlatCoordinates().map(Number),o=Dt(n,0,i[0],r,-this.origin[0],-this.origin[1]);if(o.length){var s,a,h,l=[];for(s=1,a=i.length;s0&&(this.styles_=[]),this.vertices=null,this.indices=null},e.prototype.getDeleteResourcesFunction=function(t){var e=this.verticesBuffer,i=this.indicesBuffer,r=this.lineStringReplay.getDeleteResourcesFunction(t);return function(){t.deleteBuffer(e),t.deleteBuffer(i),r()}},e.prototype.setUpProgram=function(t,e,i,r){var n,o=e.getProgram(Hh,Zh);return this.defaultLocations_?n=this.defaultLocations_:(n=new qh(t,o),this.defaultLocations_=n),e.useProgram(o),t.enableVertexAttribArray(n.a_position),t.vertexAttribPointer(n.a_position,2,5126,!1,8,0),n},e.prototype.shutDownProgram=function(t,e){t.disableVertexAttribArray(e.a_position)},e.prototype.drawReplay=function(t,e,i,r){var n,o,s,a,h=t.getParameter(t.DEPTH_FUNC),l=t.getParameter(t.DEPTH_WRITEMASK);if(r||(t.enable(t.DEPTH_TEST),t.depthMask(!0),t.depthFunc(t.NOTEQUAL)),d(i))for(s=this.startIndices[this.startIndices.length-1],n=this.styleIndices_.length-1;n>=0;--n)o=this.styleIndices_[n],a=this.styles_[n],this.setFillStyle_(t,a),this.drawElements(t,e,o,s),s=o;else this.drawReplaySkipping_(t,e,i);r||(t.disable(t.DEPTH_TEST),t.clear(t.DEPTH_BUFFER_BIT),t.depthMask(l),t.depthFunc(h))},e.prototype.drawHitDetectionReplayOneByOne=function(t,e,i,r,n){var s,a,h,l,u,p,c;for(c=this.startIndices.length-2,h=this.startIndices[c+1],s=this.styleIndices_.length-1;s>=0;--s)for(l=this.styles_[s],this.setFillStyle_(t,l),u=this.styleIndices_[s];c>=0&&this.startIndices[c]>=u;){if(a=this.startIndices[c],void 0===i[o(p=this.startIndicesFeature[c])]&&p.getGeometry()&&(void 0===n||Pt(n,p.getGeometry().getExtent()))){t.clear(t.COLOR_BUFFER_BIT|t.DEPTH_BUFFER_BIT),this.drawElements(t,e,a,h);var d=r(p);if(d)return d}c--,h=a}},e.prototype.drawReplaySkipping_=function(t,e,i){var r,n,s,a,h,l,u;for(l=this.startIndices.length-2,s=n=this.startIndices[l+1],r=this.styleIndices_.length-1;r>=0;--r){for(a=this.styles_[r],this.setFillStyle_(t,a),h=this.styleIndices_[r];l>=0&&this.startIndices[l]>=h;)u=this.startIndices[l],i[o(this.startIndicesFeature[l])]&&(n!==s&&(this.drawElements(t,e,n,s),t.clear(t.DEPTH_BUFFER_BIT)),s=u),l--,n=u;n!==s&&(this.drawElements(t,e,n,s),t.clear(t.DEPTH_BUFFER_BIT)),n=s=h}},e.prototype.setFillStyle_=function(t,e){t.uniform4fv(this.defaultLocations_.u_color,e)},e.prototype.setFillStrokeStyle=function(t,e){var i=t?t.getColor():[0,0,0,0];if(i=i instanceof CanvasGradient||i instanceof CanvasPattern?gh:_r(i).map(function(t,e){return 3!=e?t/255:t})||gh,this.state_.fillColor&&Z(i,this.state_.fillColor)||(this.state_.fillColor=i,this.state_.changed=!0,this.styles_.push(i)),e)this.lineStringReplay.setFillStrokeStyle(null,e);else{var r=new Er({color:[0,0,0,0],width:0});this.lineStringReplay.setFillStrokeStyle(null,r)}},e}(_h),il=function(t,e){this.space_=e,this.emptyBlocks_=[{x:0,y:0,width:t,height:t}],this.entries_={},this.context_=Jn(t,t),this.canvas_=this.context_.canvas};il.prototype.get=function(t){return this.entries_[t]||null},il.prototype.add=function(t,e,i,r,n){for(var o=0,s=this.emptyBlocks_.length;o=e+this.space_&&a.height>=i+this.space_){var h={offsetX:a.x+this.space_,offsetY:a.y+this.space_,image:this.canvas_};return this.entries_[t]=h,r.call(n,this.context_,a.x+this.space_,a.y+this.space_),this.split_(o,a,e+this.space_,i+this.space_),h}}return null},il.prototype.split_=function(t,e,i,r){var n,o;e.width-i>e.height-r?(n={x:e.x+i,y:e.y,width:e.width-i,height:e.height},o={x:e.x,y:e.y+r,width:i,height:e.height-r},this.updateBlocks_(t,n,o)):(n={x:e.x+i,y:e.y,width:e.width-i,height:r},o={x:e.x,y:e.y+r,width:e.width,height:e.height-r},this.updateBlocks_(t,n,o))},il.prototype.updateBlocks_=function(t,e,i){var r=[t,1];e.width>0&&e.height>0&&r.push(e),i.width>0&&i.height>0&&r.push(i),this.emptyBlocks_.splice.apply(this.emptyBlocks_,r)};var rl=il,nl=function(t){var e=t||{};this.currentSize_=void 0!==e.initialSize?e.initialSize:256,this.maxSize_=void 0!==e.maxSize?e.maxSize:void 0!==nh?nh:2048,this.space_=void 0!==e.space?e.space:1,this.atlases_=[new rl(this.currentSize_,this.space_)],this.currentHitSize_=this.currentSize_,this.hitAtlases_=[new rl(this.currentHitSize_,this.space_)]};nl.prototype.getInfo=function(t){var e=this.getInfo_(this.atlases_,t);if(!e)return null;var i=this.getInfo_(this.hitAtlases_,t);return this.mergeInfos_(e,i)},nl.prototype.getInfo_=function(t,e){for(var i=0,r=t.length;ithis.maxSize_||i+this.space_>this.maxSize_)return null;var s=this.add_(!1,t,e,i,r,o);if(!s)return null;var a=void 0!==n?n:I,h=this.add_(!0,t,e,i,a,o);return this.mergeInfos_(s,h)},nl.prototype.add_=function(t,e,i,r,n,o){var s,a,h,l,u=t?this.hitAtlases_:this.atlases_;for(h=0,l=u.length;h=0;--d)if(void 0!==(_=f[Ea[d]])&&(g=_.replay(t,e,i,r,n,o,s,a,h,l,u)))return g},e.prototype.forEachFeatureAtCoordinate=function(t,e,i,r,n,o,s,a,h,l){var u,p=e.getGL();return p.bindFramebuffer(p.FRAMEBUFFER,e.getHitDetectionFramebuffer()),void 0!==this.renderBuffer_&&(u=et(pt(t),r*this.renderBuffer_)),this.replayHitDetection_(e,t,r,n,al,s,a,h,function(t){var e=new Uint8Array(4);if(p.readPixels(0,0,1,1,p.RGBA,p.UNSIGNED_BYTE,e),e[3]>0){var i=l(t);if(i)return i}},!0,u)},e.prototype.hasFeatureAtCoordinate=function(t,e,i,r,n,o,s,a,h){var l=e.getGL();return l.bindFramebuffer(l.FRAMEBUFFER,e.getHitDetectionFramebuffer()),void 0!==this.replayHitDetection_(e,t,r,n,al,s,a,h,function(t){var e=new Uint8Array(4);return l.readPixels(0,0,1,1,l.RGBA,l.UNSIGNED_BYTE,e),e[3]>0},!1)},e}(ca),ul=function(t){function e(e,i,r,n,o,s,a){t.call(this),this.context_=e,this.center_=i,this.extent_=s,this.pixelRatio_=a,this.size_=o,this.rotation_=n,this.resolution_=r,this.imageStyle_=null,this.fillStyle_=null,this.strokeStyle_=null,this.textStyle_=null}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.drawText_=function(t,e){var i=this.context_,r=t.getReplay(0,da.TEXT);r.setTextStyle(this.textStyle_),r.drawText(e,null),r.finish(i);r.replay(this.context_,this.center_,this.resolution_,this.rotation_,this.size_,this.pixelRatio_,1,{},void 0,!1),r.getDeleteResourcesFunction(i)()},e.prototype.setStyle=function(t){this.setFillStrokeStyle(t.getFill(),t.getStroke()),this.setImageStyle(t.getImage()),this.setTextStyle(t.getText())},e.prototype.drawGeometry=function(t){switch(t.getType()){case Nt.POINT:this.drawPoint(t,null);break;case Nt.LINE_STRING:this.drawLineString(t,null);break;case Nt.POLYGON:this.drawPolygon(t,null);break;case Nt.MULTI_POINT:this.drawMultiPoint(t,null);break;case Nt.MULTI_LINE_STRING:this.drawMultiLineString(t,null);break;case Nt.MULTI_POLYGON:this.drawMultiPolygon(t,null);break;case Nt.GEOMETRY_COLLECTION:this.drawGeometryCollection(t,null);break;case Nt.CIRCLE:this.drawCircle(t,null)}},e.prototype.drawFeature=function(t,e){var i=e.getGeometryFunction()(t);i&&Pt(this.extent_,i.getExtent())&&(this.setStyle(e),this.drawGeometry(i))},e.prototype.drawGeometryCollection=function(t,e){var i,r,n=t.getGeometriesArray();for(i=0,r=n.length;in[0]||o[1]<0||o[1]>n[1])){this.hitCanvasContext_||(this.hitCanvasContext_=Jn(1,1)),this.hitCanvasContext_.clearRect(0,0,1,1),this.hitCanvasContext_.drawImage(this.image_.getImage(),o[0],o[1],1,1,0,0,1,1);var s=this.hitCanvasContext_.getImageData(0,0,1,1).data;return s[3]>0?i.call(r,this.getLayer(),s):void 0}}},e.prototype.getHitTransformationMatrix_=function(t,e){var i=[1,0,0,1,0,0];Ue(i,-1,-1),je(i,2/t[0],2/t[1]),Ue(i,0,t[1]),je(i,1,-1);var r=Be(this.projectionMatrix.slice()),n=[1,0,0,1,0,0];return Ue(n,0,e[1]),je(n,1,-1),je(n,e[0]/2,e[1]/2),Ue(n,1,1),Ae(n,r),Ae(n,i),n},e}(fl);_l.handles=function(t){return t.getType()===Ss.IMAGE},_l.create=function(t,e){return new _l(t,e)};var gl=_l,yl=function(t){function e(e){t.call(this,e);var i=e.getViewport();this.canvas_=document.createElement("canvas"),this.canvas_.style.width="100%",this.canvas_.style.height="100%",this.canvas_.style.display="block",this.canvas_.className=fo,i.insertBefore(this.canvas_,i.childNodes[0]||null),this.clipTileCanvasWidth_=0,this.clipTileCanvasHeight_=0,this.clipTileContext_=Jn(),this.renderedVisible_=!0,this.gl_=rh(this.canvas_,{antialias:!0,depth:!0,failIfMajorPerformanceCaveat:!0,preserveDrawingBuffer:!1,stencil:!0}),this.context_=new Mh(this.canvas_,this.gl_),v(this.canvas_,Lh.LOST,this.handleWebGLContextLost,this),v(this.canvas_,Lh.RESTORED,this.handleWebGLContextRestored,this),this.textureCache_=new Rs,this.focus_=null,this.tileTextureQueue_=new bn(function(t){var e=t[1],i=t[2],r=e[0]-this.focus_[0],n=e[1]-this.focus_[1];return 65536*Math.log(i)+Math.sqrt(r*r+n*n)/i}.bind(this),function(t){return t[0].getKey()}),this.loadNextTileTexture_=function(t,e){if(!this.tileTextureQueue_.isEmpty()){this.tileTextureQueue_.reprioritize();var i=this.tileTextureQueue_.dequeue(),r=i[0],n=i[3],o=i[4];this.bindTileTexture(r,n,o,Qa,Qa)}return!1}.bind(this),this.textureCacheFrameMarkerCount_=0,this.initializeGL_()}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.bindTileTexture=function(t,e,i,r,n){var o=this.getGL(),s=t.getKey();if(this.textureCache_.containsKey(s)){var a=this.textureCache_.get(s);o.bindTexture(eh,a.texture),a.magFilter!=r&&(o.texParameteri(eh,10240,r),a.magFilter=r),a.minFilter!=n&&(o.texParameteri(eh,10241,n),a.minFilter=n)}else{var h=o.createTexture(),l=t;if(o.bindTexture(eh,h),i>0){var u=this.clipTileContext_.canvas,p=this.clipTileContext_;this.clipTileCanvasWidth_!==e[0]||this.clipTileCanvasHeight_!==e[1]?(u.width=e[0],u.height=e[1],this.clipTileCanvasWidth_=e[0],this.clipTileCanvasHeight_=e[1]):p.clearRect(0,0,e[0],e[1]),p.drawImage(l.getImage(),i,i,e[0],e[1],0,0,e[0],e[1]),o.texImage2D(eh,0,6408,6408,5121,u)}else o.texImage2D(eh,0,6408,6408,5121,l.getImage());o.texParameteri(eh,10240,r),o.texParameteri(eh,10241,n),o.texParameteri(eh,$a,33071),o.texParameteri(eh,th,33071),this.textureCache_.set(s,{texture:h,magFilter:r,minFilter:n})}},e.prototype.dispatchRenderEvent=function(t,e){var i=this.getMap();if(i.hasListener(t)){var r=this.context_,n=e.extent,o=e.size,s=e.viewState,a=e.pixelRatio,h=s.resolution,l=s.center,u=s.rotation,p=new ul(r,l,h,u,o,n,a),c=new Cs(t,p,e,null,r);i.dispatchEvent(c)}},e.prototype.disposeInternal=function(){var e=this.getGL();e.isContextLost()||this.textureCache_.forEach(function(t){t&&e.deleteTexture(t.texture)}),this.context_.dispose(),t.prototype.disposeInternal.call(this)},e.prototype.expireCache_=function(t,e){for(var i,r=this.getGL();this.textureCache_.getCount()-this.textureCacheFrameMarkerCount_>1024;){if(i=this.textureCache_.peekLast())r.deleteTexture(i.texture);else{if(+this.textureCache_.peekLastKey()==e.index)break;--this.textureCacheFrameMarkerCount_}this.textureCache_.pop()}},e.prototype.getContext=function(){return this.context_},e.prototype.getGL=function(){return this.gl_},e.prototype.getTileTextureQueue=function(){return this.tileTextureQueue_},e.prototype.handleWebGLContextLost=function(t){t.preventDefault(),this.textureCache_.clear(),this.textureCacheFrameMarkerCount_=0;var e=this.getLayerRenderers();for(var i in e){e[i].handleWebGLContextLost()}},e.prototype.handleWebGLContextRestored=function(){this.initializeGL_(),this.getMap().render()},e.prototype.initializeGL_=function(){var t=this.gl_;t.activeTexture(33984),t.blendFuncSeparate(770,771,1,771),t.disable(2884),t.disable(2929),t.disable(3089),t.disable(2960)},e.prototype.isTileTextureLoaded=function(t){return this.textureCache_.containsKey(t.getKey())},e.prototype.renderFrame=function(t){var e=this.getContext(),i=this.getGL();if(i.isContextLost())return!1;if(!t)return this.renderedVisible_&&(this.canvas_.style.display="none",this.renderedVisible_=!1),!1;this.focus_=t.focus,this.textureCache_.set((-t.index).toString(),null),++this.textureCacheFrameMarkerCount_,this.dispatchRenderEvent(ur.PRECOMPOSE,t);var r=[],n=t.layerStatesArray;q(n,Zs);var o,s,a=t.viewState.resolution;for(o=0,s=n.length;o1024&&t.postRenderFunctions.push(this.expireCache_.bind(this)),this.tileTextureQueue_.isEmpty()||(t.postRenderFunctions.push(this.loadNextTileTexture_),t.animate=!0),this.dispatchRenderEvent(ur.POSTCOMPOSE,t),this.scheduleRemoveUnusedLayerRenderers(t),this.scheduleExpireIconCache(t)},e.prototype.forEachFeatureAtCoordinate=function(t,e,i,r,n,o,s){var a;if(this.getGL().isContextLost())return!1;var h,l=e.viewState,u=e.layerStatesArray;for(h=u.length-1;h>=0;--h){var p=u[h],c=p.layer;if(mo(p,l.resolution)&&o.call(s,c))if(a=this.getLayerRenderer(c).forEachFeatureAtCoordinate(t,e,i,r))return a}},e.prototype.hasFeatureAtCoordinate=function(t,e,i,r,n){var o=!1;if(this.getGL().isContextLost())return!1;var s,a=e.viewState,h=e.layerStatesArray;for(s=h.length-1;s>=0;--s){var l=h[s],u=l.layer;if(mo(l,a.resolution)&&r.call(n,u))if(o=this.getLayerRenderer(u).hasFeatureAtCoordinate(t,e))return!0}return o},e.prototype.forEachLayerAtPixel=function(t,e,i,r,n,o,s){if(this.getGL().isContextLost())return!1;var a,h,l=e.viewState,u=e.layerStatesArray;for(h=u.length-1;h>=0;--h){var p=u[h],c=p.layer;if(mo(p,l.resolution)&&o.call(n,c))if(a=this.getLayerRenderer(c).forEachLayerAtPixel(t,e,r,n))return a}},e}(qs),vl=function(t){function e(e,i,r){t.call(this);var n=r||{};this.tileCoord=e,this.state=i,this.interimTile=null,this.key="",this.transition_=void 0===n.transition?250:n.transition,this.transitionStarts_={}}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.changed=function(){this.dispatchEvent(M.CHANGE)},e.prototype.getKey=function(){return this.key+"/"+this.tileCoord},e.prototype.getInterimTile=function(){if(!this.interimTile)return this;var t=this.interimTile;do{if(t.getState()==On.LOADED)return t;t=t.interimTile}while(t);return this},e.prototype.refreshInterimChain=function(){if(this.interimTile){var t=this.interimTile,e=this;do{if(t.getState()==On.LOADED){t.interimTile=null;break}t.getState()==On.LOADING?e=t:t.getState()==On.IDLE?e.interimTile=t.interimTile:e=t,t=e.interimTile}while(t)}},e.prototype.getTileCoord=function(){return this.tileCoord},e.prototype.getState=function(){return this.state},e.prototype.setState=function(t){this.state=t,this.changed()},e.prototype.load=function(){},e.prototype.getAlpha=function(t,e){if(!this.transition_)return 1;var i=this.transitionStarts_[t];if(i){if(-1===i)return 1}else i=e,this.transitionStarts_[t]=i;var r=e-i+1e3/60;return r>=this.transition_?1:Vn(r/this.transition_)},e.prototype.inTransition=function(t){return!!this.transition_&&-1!==this.transitionStarts_[t]},e.prototype.endTransition=function(t){this.transition_&&(this.transitionStarts_[t]=-1)},e}(b);function ml(){var t=Jn(1,1);return t.fillStyle="rgba(0,0,0,0)",t.fillRect(0,0,1,1),t.canvas}var xl=function(t){function e(e,i,r,n,o,s){t.call(this,e,i,s),this.crossOrigin_=n,this.src_=r,this.image_=new Image,null!==n&&(this.image_.crossOrigin=n),this.imageListenerKeys_=null,this.tileLoadFunction_=o}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.disposeInternal=function(){this.state==On.LOADING&&(this.unlistenImage_(),this.image_=ml()),this.interimTile&&this.interimTile.dispose(),this.state=On.ABORT,this.changed(),t.prototype.disposeInternal.call(this)},e.prototype.getImage=function(){return this.image_},e.prototype.getKey=function(){return this.src_},e.prototype.handleImageError_=function(){this.state=On.ERROR,this.unlistenImage_(),this.image_=ml(),this.changed()},e.prototype.handleImageLoad_=function(){var t=this.image_;t.naturalWidth&&t.naturalHeight?this.state=On.LOADED:this.state=On.EMPTY,this.unlistenImage_(),this.changed()},e.prototype.load=function(){this.state==On.ERROR&&(this.state=On.IDLE,this.image_=new Image,null!==this.crossOrigin_&&(this.image_.crossOrigin=this.crossOrigin_)),this.state==On.IDLE&&(this.state=On.LOADING,this.changed(),this.imageListenerKeys_=[m(this.image_,M.ERROR,this.handleImageError_,this),m(this.image_,M.LOAD,this.handleImageLoad_,this)],this.tileLoadFunction_(this,this.src_))},e.prototype.unlistenImage_=function(){this.imageListenerKeys_.forEach(E),this.imageListenerKeys_=null},e}(vl);function El(t,e,i,r){return void 0!==r?(r[0]=t,r[1]=e,r[2]=i,r):[t,e,i]}function Sl(t,e,i){return t+"/"+e+"/"+i}function Tl(t){return Sl(t[0],t[1],t[2])}function Cl(t){return(t[1]<0||i&&0===o)})}(this.resolutions_,function(t,e){return e-t},!0),17),!t.origins)for(var i=0,r=this.resolutions_.length-1;i=this.minZoom;){if(o=2===this.zoomFactor_?oa(s=Math.floor(s/2),s,a=Math.floor(a/2),a,r):this.getTileRangeForExtentAndZ(h,l,r),e.call(i,l,o))return!0;--l}return!1},Ol.prototype.getExtent=function(){return this.extent_},Ol.prototype.getMaxZoom=function(){return this.maxZoom},Ol.prototype.getMinZoom=function(){return this.minZoom},Ol.prototype.getOrigin=function(t){return this.origin_?this.origin_:this.origins_[t]},Ol.prototype.getResolution=function(t){return this.resolutions_[t]},Ol.prototype.getResolutions=function(){return this.resolutions_},Ol.prototype.getTileCoordChildTileRange=function(t,e,i){if(t[0]i||i>e.getMaxZoom())return!1;var o,s=e.getExtent();return!(o=s?e.getTileRangeForExtentAndZ(s,i):e.getFullTileRange(i))||o.containsXY(r,n)}(t,r)?t:null},e.prototype.refresh=function(){this.tileCache.clear(),this.changed()},e.prototype.useTile=function(t,e,i,r){},e}(Il),kl=function(t){function e(e,i){t.call(this,e),this.tile=i}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e}(P),jl=Dl,Ul=new lh("precision mediump float;\nvarying vec2 v_texCoord;\n\n\nuniform sampler2D u_texture;\n\nvoid main(void) {\n gl_FragColor = texture2D(u_texture, v_texCoord);\n}\n"),Yl=new uh("varying vec2 v_texCoord;\n\n\nattribute vec2 a_position;\nattribute vec2 a_texCoord;\nuniform vec4 u_tileOffset;\n\nvoid main(void) {\n gl_Position = vec4(a_position * u_tileOffset.xy + u_tileOffset.zw, 0., 1.);\n v_texCoord = a_texCoord;\n}\n\n\n"),Bl=function(t,e){this.u_tileOffset=t.getUniformLocation(e,"u_tileOffset"),this.u_texture=t.getUniformLocation(e,"u_texture"),this.a_position=t.getAttribLocation(e,"a_position"),this.a_texCoord=t.getAttribLocation(e,"a_texCoord")},Vl=function(t){function e(e,i){t.call(this,e,i),this.fragmentShader_=Ul,this.vertexShader_=Yl,this.locations_=null,this.renderArrayBuffer_=new Th([0,0,0,1,1,0,1,1,0,1,0,0,1,1,1,0]),this.renderedTileRange_=null,this.renderedFramebufferExtent_=null,this.renderedRevision_=-1,this.tmpSize_=[0,0]}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.disposeInternal=function(){this.mapRenderer.getContext().deleteBuffer(this.renderArrayBuffer_),t.prototype.disposeInternal.call(this)},e.prototype.createLoadedTileFinder=function(t,e,i){var r=this.mapRenderer;return function(n,o){return t.forEachLoadedTile(e,n,o,function(t){var e=r.isTileTextureLoaded(t);return e&&(i[n]||(i[n]={}),i[n][t.tileCoord.toString()]=t),e})}},e.prototype.handleWebGLContextLost=function(){t.prototype.handleWebGLContextLost.call(this),this.locations_=null},e.prototype.prepareFrame=function(t,e,i){var r=this.mapRenderer,n=i.getGL(),o=t.viewState,s=o.projection,a=this.getLayer(),h=a.getSource();if(!(h instanceof jl))return!0;var l,u=h.getTileGridForProjection(s),p=u.getZForResolution(o.resolution),c=u.getResolution(p),d=h.getTilePixelSize(p,t.pixelRatio,s),f=d[0]/ho(u.getTileSize(p),this.tmpSize_)[0],_=c/f,g=h.getTilePixelRatio(f)*h.getGutterForProjection(s),y=o.center,v=t.extent,m=u.getTileRangeForExtentAndZ(v,p);if(this.renderedTileRange_&&this.renderedTileRange_.equals(m)&&this.renderedRevision_==h.getRevision())l=this.renderedFramebufferExtent_;else{var x=m.getSize(),E=function(t){return Y(00?i.call(r,this.getLayer(),h):void 0}},e}(fl);Vl.handles=function(t){return t.getType()===Ss.TILE},Vl.create=function(t,e){return new Vl(t,e)};var Xl=Vl,zl=function(t){function e(e,i){t.call(this,e,i),this.dirty_=!1,this.renderedRevision_=-1,this.renderedResolution_=NaN,this.renderedExtent_=[1/0,1/0,-1/0,-1/0],this.renderedRenderOrder_=null,this.replayGroup_=null,this.layerState_=null}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.composeFrame=function(t,e,i){this.layerState_=e;var r=t.viewState,n=this.replayGroup_,o=t.size,s=t.pixelRatio,a=this.mapRenderer.getGL();n&&!n.isEmpty()&&(a.enable(a.SCISSOR_TEST),a.scissor(0,0,o[0]*s,o[1]*s),n.replay(i,r.center,r.resolution,r.rotation,o,s,e.opacity,e.managed?t.skippedFeatureUids:{}),a.disable(a.SCISSOR_TEST))},e.prototype.disposeInternal=function(){var e=this.replayGroup_;if(e){var i=this.mapRenderer.getContext();e.getDeleteResourcesFunction(i)(),this.replayGroup_=null}t.prototype.disposeInternal.call(this)},e.prototype.forEachFeatureAtCoordinate=function(t,e,i,r,n){if(this.replayGroup_&&this.layerState_){var s=this.mapRenderer.getContext(),a=e.viewState,h=this.getLayer(),l=this.layerState_,u={};return this.replayGroup_.forEachFeatureAtCoordinate(t,s,a.center,a.resolution,a.rotation,e.size,e.pixelRatio,l.opacity,{},function(t){var e=o(t);if(!(e in u))return u[e]=!0,r.call(n,t,h)})}},e.prototype.hasFeatureAtCoordinate=function(t,e){if(this.replayGroup_&&this.layerState_){var i=this.mapRenderer.getContext(),r=e.viewState,n=this.layerState_;return this.replayGroup_.hasFeatureAtCoordinate(t,i,r.center,r.resolution,r.rotation,e.size,e.pixelRatio,n.opacity,e.skippedFeatureUids)}return!1},e.prototype.forEachLayerAtPixel=function(t,e,i,r){var n=De(e.pixelToCoordinateTransform,t.slice());return this.hasFeatureAtCoordinate(n,e)?i.call(r,this.getLayer(),null):void 0},e.prototype.handleStyleImageChange_=function(t){this.renderIfReadyAndVisible()},e.prototype.prepareFrame=function(t,e,i){var r=this.getLayer(),n=r.getSource(),o=t.viewHints[kn],s=t.viewHints[jn],a=r.getUpdateWhileAnimating(),h=r.getUpdateWhileInteracting();if(!this.dirty_&&!a&&o||!h&&s)return!0;var l=t.extent,u=t.viewState,p=u.projection,c=u.resolution,d=t.pixelRatio,f=r.getRevision(),_=r.getRenderBuffer(),g=r.getRenderOrder();void 0===g&&(g=Da);var y=et(l,_*c);if(!this.dirty_&&this.renderedResolution_==c&&this.renderedRevision_==f&&this.renderedRenderOrder_==g&&ot(this.renderedExtent_,y))return!0;this.replayGroup_&&t.postRenderFunctions.push(this.replayGroup_.getDeleteResourcesFunction(i)),this.dirty_=!1;var v=new ll(ja(c,d),y,r.getRenderBuffer());n.loadFeatures(y,c,p);var m=function(t){var e,i=t.getStyleFunction()||r.getStyleFunction();if(i&&(e=i(t,c)),e){var n=this.renderFeature(t,c,d,e,v);this.dirty_=this.dirty_||n}}.bind(this);if(g){var x=[];n.forEachFeatureInExtent(y,function(t){x.push(t)}),x.sort(g),x.forEach(m.bind(this))}else n.forEachFeatureInExtent(y,m);return v.finish(i),this.renderedResolution_=c,this.renderedRevision_=f,this.renderedRenderOrder_=g,this.renderedExtent_=y,this.replayGroup_=v,!0},e.prototype.renderFeature=function(t,e,i,r,n){if(!r)return!1;var o=!1;if(Array.isArray(r))for(var s=r.length-1;s>=0;--s)o=Ua(n,t,r[s],ka(e,i),this.handleStyleImageChange_,this)||o;else o=Ua(n,t,r,ka(e,i),this.handleStyleImageChange_,this)||o;return o},e}(fl);zl.handles=function(t){return t.getType()===Ss.VECTOR},zl.create=function(t,e){return new zl(t,e)};var Wl=zl,Kl=function(t){function e(e){(e=u({},e)).controls||(e.controls=wo()),e.interactions||(e.interactions=ys()),t.call(this,e)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.createRenderer=function(){var t=new yl(this);return t.registerLayerRenderers([gl,Xl,Wl]),t},e}(lo),Hl={ARRAY_BUFFER:"arraybuffer",JSON:"json",TEXT:"text",XML:"xml"};function Zl(t,e,i,r){return function(n,o,s){var a=new XMLHttpRequest;a.open("GET","function"==typeof t?t(n,o,s):t,!0),e.getType()==Hl.ARRAY_BUFFER&&(a.responseType="arraybuffer"),a.onload=function(t){if(!a.status||a.status>=200&&a.status<300){var n,o=e.getType();o==Hl.JSON||o==Hl.TEXT?n=a.responseText:o==Hl.XML?(n=a.responseXML)||(n=(new DOMParser).parseFromString(a.responseText,"application/xml")):o==Hl.ARRAY_BUFFER&&(n=a.response),n?i.call(this,e.readFeatures(n,{featureProjection:s}),e.readProjection(n),e.getLastExtent()):r.call(this)}else r.call(this)}.bind(this),a.onerror=function(){r.call(this)}.bind(this),a.send()}}function ql(t,e){return Zl(t,e,function(t,e){"function"==typeof this.addFeatures&&this.addFeatures(t)},I)}function Jl(t,e){return[[-1/0,-1/0,1/0,1/0]]}var Ql=document.implementation.createDocument("","",null),$l="http://www.w3.org/2001/XMLSchema-instance";function tu(t,e){return Ql.createElementNS(t,e)}function eu(t,e){return function t(e,i,r){if(e.nodeType==Node.CDATA_SECTION_NODE||e.nodeType==Node.TEXT_NODE)i?r.push(String(e.nodeValue).replace(/(\r\n|\r|\n)/g,"")):r.push(e.nodeValue);else{var n;for(n=e.firstChild;n;n=n.nextSibling)t(n,i,r)}return r}(t,e,[]).join("")}function iu(t){return"documentElement"in t}function ru(t){return(new DOMParser).parseFromString(t,"application/xml")}function nu(t,e){return function(i,r){var n=t.call(void 0!==e?e:this,i,r);void 0!==n&&K(r[r.length-1],n)}}function ou(t,e){return function(i,r){var n=t.call(void 0!==e?e:this,i,r);void 0!==n&&r[r.length-1].push(n)}}function su(t,e){return function(i,r){var n=t.call(void 0!==e?e:this,i,r);void 0!==n&&(r[r.length-1]=n)}}function au(t,e,i){return function(r,n){var o=t.call(void 0!==i?i:this,r,n);if(void 0!==o){var s=n[n.length-1],a=void 0!==e?e:r.localName;(a in s?s[a]:s[a]=[]).push(o)}}}function hu(t,e,i){return function(r,n){var o=t.call(void 0!==i?i:this,r,n);void 0!==o&&(n[n.length-1][void 0!==e?e:r.localName]=o)}}function lu(t,e){return function(i,r,n){t.call(void 0!==e?e:this,i,r,n),n[n.length-1].node.appendChild(i)}}function uu(t,e){var i,r;return function(e,n,o){if(void 0===i){i={};var s={};s[e.localName]=t,i[e.namespaceURI]=s,r=pu(e.localName)}yu(i,r,n,o)}}function pu(t,e){var i=t;return function(t,r,n){var o=r[r.length-1].node,s=i;return void 0===s&&(s=n),tu(void 0!==e?e:o.namespaceURI,s)}}var cu=pu();function du(t,e){for(var i=e.length,r=new Array(i),n=0;n0)||H(h,function(i){return e.Identifier==i.TileMatrix||-1===e.Identifier.indexOf(":")&&t.Identifier+":"+e.Identifier===i.TileMatrix})){n.push(e.Identifier);var i=28e-5*e.ScaleDenominator/p,l=e.TileWidth,u=e.TileHeight;c?o.push([e.TopLeftCorner[1],e.TopLeftCorner[0]]):o.push(e.TopLeftCorner),r.push(i),s.push(l==u?l:[l,u]),a.push([e.MatrixWidth,-e.MatrixHeight])}}),new mu({extent:e,origins:o,resolutions:r,matrixIds:n,tileSizes:s,sizes:a})}var Su=function(t){this.opacity_=t.opacity,this.rotateWithView_=t.rotateWithView,this.rotation_=t.rotation,this.scale_=t.scale};Su.prototype.clone=function(){return new Su({opacity:this.getOpacity(),scale:this.getScale(),rotation:this.getRotation(),rotateWithView:this.getRotateWithView()})},Su.prototype.getOpacity=function(){return this.opacity_},Su.prototype.getRotateWithView=function(){return this.rotateWithView_},Su.prototype.getRotation=function(){return this.rotation_},Su.prototype.getScale=function(){return this.scale_},Su.prototype.getSnapToPixel=function(){return!1},Su.prototype.getAnchor=function(){return r()},Su.prototype.getImage=function(t){return r()},Su.prototype.getHitDetectionImage=function(t){return r()},Su.prototype.getImageState=function(){return r()},Su.prototype.getImageSize=function(){return r()},Su.prototype.getHitDetectionImageSize=function(){return r()},Su.prototype.getOrigin=function(){return r()},Su.prototype.getSize=function(){return r()},Su.prototype.setOpacity=function(t){this.opacity_=t},Su.prototype.setRotateWithView=function(t){this.rotateWithView_=t},Su.prototype.setRotation=function(t){this.rotation_=t},Su.prototype.setScale=function(t){this.scale_=t},Su.prototype.setSnapToPixel=function(t){},Su.prototype.listenImageChange=function(t,e){return r()},Su.prototype.load=function(){r()},Su.prototype.unlistenImageChange=function(t,e){r()};var Tu=Su,Cu=function(t){function e(e){var i=void 0!==e.rotateWithView&&e.rotateWithView;t.call(this,{opacity:1,rotateWithView:i,rotation:void 0!==e.rotation?e.rotation:0,scale:1}),this.checksums_=null,this.canvas_=null,this.hitDetectionCanvas_=null,this.fill_=void 0!==e.fill?e.fill:null,this.origin_=[0,0],this.points_=e.points,this.radius_=void 0!==e.radius?e.radius:e.radius1,this.radius2_=e.radius2,this.angle_=void 0!==e.angle?e.angle:0,this.stroke_=void 0!==e.stroke?e.stroke:null,this.anchor_=null,this.size_=null,this.imageSize_=null,this.hitDetectionImageSize_=null,this.atlasManager_=e.atlasManager,this.render_(this.atlasManager_)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.clone=function(){var t=new e({fill:this.getFill()?this.getFill().clone():void 0,points:this.getPoints(),radius:this.getRadius(),radius2:this.getRadius2(),angle:this.getAngle(),stroke:this.getStroke()?this.getStroke().clone():void 0,rotation:this.getRotation(),rotateWithView:this.getRotateWithView(),atlasManager:this.atlasManager_});return t.setOpacity(this.getOpacity()),t.setScale(this.getScale()),t},e.prototype.getAnchor=function(){return this.anchor_},e.prototype.getAngle=function(){return this.angle_},e.prototype.getFill=function(){return this.fill_},e.prototype.getHitDetectionImage=function(t){return this.hitDetectionCanvas_},e.prototype.getImage=function(t){return this.canvas_},e.prototype.getImageSize=function(){return this.imageSize_},e.prototype.getHitDetectionImageSize=function(){return this.hitDetectionImageSize_},e.prototype.getImageState=function(){return xs.LOADED},e.prototype.getOrigin=function(){return this.origin_},e.prototype.getPoints=function(){return this.points_},e.prototype.getRadius=function(){return this.radius_},e.prototype.getRadius2=function(){return this.radius2_},e.prototype.getSize=function(){return this.size_},e.prototype.getStroke=function(){return this.stroke_},e.prototype.listenImageChange=function(t,e){},e.prototype.load=function(){},e.prototype.unlistenImageChange=function(t,e){},e.prototype.render_=function(t){var e,i,r="",n="",o=0,s=null,a=0,h=0;this.stroke_&&(null===(i=this.stroke_.getColor())&&(i=Ls),i=Ys(i),void 0===(h=this.stroke_.getWidth())&&(h=1),s=this.stroke_.getLineDash(),a=this.stroke_.getLineDashOffset(),ki||(s=null,a=0),void 0===(n=this.stroke_.getLineJoin())&&(n="round"),void 0===(r=this.stroke_.getLineCap())&&(r="round"),void 0===(o=this.stroke_.getMiterLimit())&&(o=10));var l=2*(this.radius_+h)+1,u={strokeStyle:i,strokeWidth:h,size:l,lineCap:r,lineDash:s,lineDashOffset:a,lineJoin:n,miterLimit:o};if(void 0===t){var p=Jn(l,l);this.canvas_=p.canvas,e=l=this.canvas_.width,this.draw_(u,p,0,0),this.createHitDetectionCanvas_(u)}else{l=Math.round(l);var c,d=!this.fill_;d&&(c=this.drawHitDetectionCanvas_.bind(this,u));var f=this.getChecksum(),_=t.add(f,l,l,this.draw_.bind(this,u),c);this.canvas_=_.image,this.origin_=[_.offsetX,_.offsetY],e=_.image.width,d?(this.hitDetectionCanvas_=_.hitImage,this.hitDetectionImageSize_=[_.hitImage.width,_.hitImage.height]):(this.hitDetectionCanvas_=this.canvas_,this.hitDetectionImageSize_=[e,e])}this.anchor_=[l/2,l/2],this.size_=[l,l],this.imageSize_=[e,e]},e.prototype.draw_=function(t,e,i,r){var n,o,s;e.setTransform(1,0,0,1,0,0),e.translate(i,r),e.beginPath();var a=this.points_;if(a===1/0)e.arc(t.size/2,t.size/2,this.radius_,0,2*Math.PI,!0);else{var h=void 0!==this.radius2_?this.radius2_:this.radius_;for(h!==this.radius_&&(a*=2),n=0;n<=a;n++)o=2*n*Math.PI/a-Math.PI/2+this.angle_,s=n%2==0?this.radius_:h,e.lineTo(t.size/2+s*Math.cos(o),t.size/2+s*Math.sin(o))}if(this.fill_){var l=this.fill_.getColor();null===l&&(l=ws),e.fillStyle=Ys(l),e.fill()}this.stroke_&&(e.strokeStyle=t.strokeStyle,e.lineWidth=t.strokeWidth,t.lineDash&&(e.setLineDash(t.lineDash),e.lineDashOffset=t.lineDashOffset),e.lineCap=t.lineCap,e.lineJoin=t.lineJoin,e.miterLimit=t.miterLimit,e.stroke()),e.closePath()},e.prototype.createHitDetectionCanvas_=function(t){if(this.hitDetectionImageSize_=[t.size,t.size],this.fill_)this.hitDetectionCanvas_=this.canvas_;else{var e=Jn(t.size,t.size);this.hitDetectionCanvas_=e.canvas,this.drawHitDetectionCanvas_(t,e,0,0)}},e.prototype.drawHitDetectionCanvas_=function(t,e,i,r){e.setTransform(1,0,0,1,0,0),e.translate(i,r),e.beginPath();var n=this.points_;if(n===1/0)e.arc(t.size/2,t.size/2,this.radius_,0,2*Math.PI,!0);else{var o,s,a,h=void 0!==this.radius2_?this.radius2_:this.radius_;for(h!==this.radius_&&(n*=2),o=0;o<=n;o++)a=2*o*Math.PI/n-Math.PI/2+this.angle_,s=o%2==0?this.radius_:h,e.lineTo(t.size/2+s*Math.cos(a),t.size/2+s*Math.sin(a))}e.fillStyle=dr(ws),e.fill(),this.stroke_&&(e.strokeStyle=t.strokeStyle,e.lineWidth=t.strokeWidth,t.lineDash&&(e.setLineDash(t.lineDash),e.lineDashOffset=t.lineDashOffset),e.stroke()),e.closePath()},e.prototype.getChecksum=function(){var t=this.stroke_?this.stroke_.getChecksum():"-",e=this.fill_?this.fill_.getChecksum():"-";if(!this.checksums_||t!=this.checksums_[1]||e!=this.checksums_[2]||this.radius_!=this.checksums_[3]||this.radius2_!=this.checksums_[4]||this.angle_!=this.checksums_[5]||this.points_!=this.checksums_[6]){var i="r"+t+e+(void 0!==this.radius_?this.radius_.toString():"-")+(void 0!==this.radius2_?this.radius2_.toString():"-")+(void 0!==this.angle_?this.angle_.toString():"-")+(void 0!==this.points_?this.points_.toString():"-");this.checksums_=[i,t,e,this.radius_,this.radius2_,this.angle_,this.points_]}return this.checksums_[0]},e}(Tu),Ru=function(t){function e(e){var i=e||{};t.call(this,{points:1/0,fill:i.fill,radius:i.radius,stroke:i.stroke,atlasManager:i.atlasManager})}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.clone=function(){var t=new e({fill:this.getFill()?this.getFill().clone():void 0,stroke:this.getStroke()?this.getStroke().clone():void 0,radius:this.getRadius(),atlasManager:this.atlasManager_});return t.setOpacity(this.getOpacity()),t.setScale(this.getScale()),t},e.prototype.setRadius=function(t){this.radius_=t,this.render_(this.atlasManager_)},e}(Cu),wu={FRACTION:"fraction",PIXELS:"pixels"},Iu=function(t){function e(e,i,r,n,o,s){t.call(this),this.hitDetectionImage_=null,this.image_=e||new Image,null!==n&&(this.image_.crossOrigin=n),this.canvas_=s?document.createElement("canvas"):null,this.color_=s,this.imageListenerKeys_=null,this.imageState_=o,this.size_=r,this.src_=i,this.tainted_}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.isTainted_=function(){if(void 0===this.tainted_&&this.imageState_===xs.LOADED){this.tainted_=!1;var t=Jn(1,1);try{t.drawImage(this.image_,0,0),t.getImageData(0,0,1,1)}catch(t){this.tainted_=!0}}return!0===this.tainted_},e.prototype.dispatchChangeEvent_=function(){this.dispatchEvent(M.CHANGE)},e.prototype.handleImageError_=function(){this.imageState_=xs.ERROR,this.unlistenImage_(),this.dispatchChangeEvent_()},e.prototype.handleImageLoad_=function(){this.imageState_=xs.LOADED,this.size_&&(this.image_.width=this.size_[0],this.image_.height=this.size_[1]),this.size_=[this.image_.width,this.image_.height],this.unlistenImage_(),this.replaceColor_(),this.dispatchChangeEvent_()},e.prototype.getImage=function(t){return this.canvas_?this.canvas_:this.image_},e.prototype.getImageState=function(){return this.imageState_},e.prototype.getHitDetectionImage=function(t){if(!this.hitDetectionImage_)if(this.isTainted_()){var e=this.size_[0],i=this.size_[1],r=Jn(e,i);r.fillRect(0,0,e,i),this.hitDetectionImage_=r.canvas}else this.hitDetectionImage_=this.image_;return this.hitDetectionImage_},e.prototype.getSize=function(){return this.size_},e.prototype.getSrc=function(){return this.src_},e.prototype.load=function(){if(this.imageState_==xs.IDLE){this.imageState_=xs.LOADING,this.imageListenerKeys_=[m(this.image_,M.ERROR,this.handleImageError_,this),m(this.image_,M.LOAD,this.handleImageLoad_,this)];try{this.image_.src=this.src_}catch(t){this.handleImageError_()}}},e.prototype.replaceColor_=function(){if(this.color_&&!this.isTainted_()){this.canvas_.width=this.image_.width,this.canvas_.height=this.image_.height;var t=this.canvas_.getContext("2d");t.drawImage(this.image_,0,0);for(var e=t.getImageData(0,0,this.image_.width,this.image_.height),i=e.data,r=this.color_[0]/255,n=this.color_[1]/255,o=this.color_[2]/255,s=0,a=i.length;s0,6);var p=void 0!==i.src?xs.IDLE:xs.LOADED;this.color_=void 0!==i.color?_r(i.color):null,this.iconImage_=function(t,e,i,r,n,o){var s=Ks.get(e,r,o);return s||(s=new Iu(t,e,i,r,n,o),Ks.set(e,r,o,s)),s}(h,u,l,this.crossOrigin_,p,this.color_),this.offset_=void 0!==i.offset?i.offset:[0,0],this.offsetOrigin_=void 0!==i.offsetOrigin?i.offsetOrigin:Lu.TOP_LEFT,this.origin_=null,this.size_=void 0!==i.size?i.size:null}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.clone=function(){return new e({anchor:this.anchor_.slice(),anchorOrigin:this.anchorOrigin_,anchorXUnits:this.anchorXUnits_,anchorYUnits:this.anchorYUnits_,crossOrigin:this.crossOrigin_,color:this.color_&&this.color_.slice?this.color_.slice():this.color_||void 0,src:this.getSrc(),offset:this.offset_.slice(),offsetOrigin:this.offsetOrigin_,size:null!==this.size_?this.size_.slice():void 0,opacity:this.getOpacity(),scale:this.getScale(),rotation:this.getRotation(),rotateWithView:this.getRotateWithView()})},e.prototype.getAnchor=function(){if(this.normalizedAnchor_)return this.normalizedAnchor_;var t=this.anchor_,e=this.getSize();if(this.anchorXUnits_==wu.FRACTION||this.anchorYUnits_==wu.FRACTION){if(!e)return null;t=this.anchor_.slice(),this.anchorXUnits_==wu.FRACTION&&(t[0]*=e[0]),this.anchorYUnits_==wu.FRACTION&&(t[1]*=e[1])}if(this.anchorOrigin_!=Lu.TOP_LEFT){if(!e)return null;t===this.anchor_&&(t=this.anchor_.slice()),this.anchorOrigin_!=Lu.TOP_RIGHT&&this.anchorOrigin_!=Lu.BOTTOM_RIGHT||(t[0]=-t[0]+e[0]),this.anchorOrigin_!=Lu.BOTTOM_LEFT&&this.anchorOrigin_!=Lu.BOTTOM_RIGHT||(t[1]=-t[1]+e[1])}return this.normalizedAnchor_=t,this.normalizedAnchor_},e.prototype.setAnchor=function(t){this.anchor_=t,this.normalizedAnchor_=null},e.prototype.getColor=function(){return this.color_},e.prototype.getImage=function(t){return this.iconImage_.getImage(t)},e.prototype.getImageSize=function(){return this.iconImage_.getSize()},e.prototype.getHitDetectionImageSize=function(){return this.getImageSize()},e.prototype.getImageState=function(){return this.iconImage_.getImageState()},e.prototype.getHitDetectionImage=function(t){return this.iconImage_.getHitDetectionImage(t)},e.prototype.getOrigin=function(){if(this.origin_)return this.origin_;var t=this.offset_;if(this.offsetOrigin_!=Lu.TOP_LEFT){var e=this.getSize(),i=this.iconImage_.getSize();if(!e||!i)return null;t=t.slice(),this.offsetOrigin_!=Lu.TOP_RIGHT&&this.offsetOrigin_!=Lu.BOTTOM_RIGHT||(t[0]=i[0]-e[0]-t[0]),this.offsetOrigin_!=Lu.BOTTOM_LEFT&&this.offsetOrigin_!=Lu.BOTTOM_RIGHT||(t[1]=i[1]-e[1]-t[1])}return this.origin_=t,this.origin_},e.prototype.getSrc=function(){return this.iconImage_.getSrc()},e.prototype.getSize=function(){return this.size_?this.size_:this.iconImage_.getSize()},e.prototype.listenImageChange=function(t,e){return v(this.iconImage_,M.CHANGE,t,e)},e.prototype.load=function(){this.iconImage_.load()},e.prototype.unlistenImageChange=function(t,e){x(this.iconImage_,M.CHANGE,t,e)},e}(Tu),Pu=function(t){var e=t||{};this.geometry_=null,this.geometryFunction_=Au,void 0!==e.geometry&&this.setGeometry(e.geometry),this.fill_=void 0!==e.fill?e.fill:null,this.image_=void 0!==e.image?e.image:null,this.renderer_=void 0!==e.renderer?e.renderer:null,this.stroke_=void 0!==e.stroke?e.stroke:null,this.text_=void 0!==e.text?e.text:null,this.zIndex_=e.zIndex};Pu.prototype.clone=function(){var t=this.getGeometry();return t&&"object"==typeof t&&(t=t.clone()),new Pu({geometry:t,fill:this.getFill()?this.getFill().clone():void 0,image:this.getImage()?this.getImage().clone():void 0,stroke:this.getStroke()?this.getStroke().clone():void 0,text:this.getText()?this.getText().clone():void 0,zIndex:this.getZIndex()})},Pu.prototype.getRenderer=function(){return this.renderer_},Pu.prototype.setRenderer=function(t){this.renderer_=t},Pu.prototype.getGeometry=function(){return this.geometry_},Pu.prototype.getGeometryFunction=function(){return this.geometryFunction_},Pu.prototype.getFill=function(){return this.fill_},Pu.prototype.setFill=function(t){this.fill_=t},Pu.prototype.getImage=function(){return this.image_},Pu.prototype.setImage=function(t){this.image_=t},Pu.prototype.getStroke=function(){return this.stroke_},Pu.prototype.setStroke=function(t){this.stroke_=t},Pu.prototype.getText=function(){return this.text_},Pu.prototype.setText=function(t){this.text_=t},Pu.prototype.getZIndex=function(){return this.zIndex_},Pu.prototype.setGeometry=function(t){"function"==typeof t?this.geometryFunction_=t:"string"==typeof t?this.geometryFunction_=function(e){return e.get(t)}:t?void 0!==t&&(this.geometryFunction_=function(){return t}):this.geometryFunction_=Au,this.geometry_=t},Pu.prototype.setZIndex=function(t){this.zIndex_=t};var bu=null;function Mu(t,e){if(!bu){var i=new mr({color:"rgba(255,255,255,0.4)"}),r=new Er({color:"#3399CC",width:1.25});bu=[new Pu({image:new Ru({fill:i,stroke:r,radius:5}),fill:i,stroke:r})]}return bu}function Fu(){var t={},e=[255,255,255,1],i=[0,153,255,1];return t[Nt.POLYGON]=[new Pu({fill:new mr({color:[255,255,255,.5]})})],t[Nt.MULTI_POLYGON]=t[Nt.POLYGON],t[Nt.LINE_STRING]=[new Pu({stroke:new Er({color:e,width:5})}),new Pu({stroke:new Er({color:i,width:3})})],t[Nt.MULTI_LINE_STRING]=t[Nt.LINE_STRING],t[Nt.CIRCLE]=t[Nt.POLYGON].concat(t[Nt.LINE_STRING]),t[Nt.POINT]=[new Pu({image:new Ru({radius:6,fill:new mr({color:i}),stroke:new Er({color:e,width:1.5})}),zIndex:1/0})],t[Nt.MULTI_POINT]=t[Nt.POINT],t[Nt.GEOMETRY_COLLECTION]=t[Nt.POLYGON].concat(t[Nt.LINE_STRING],t[Nt.POINT]),t}function Au(t){return t.getGeometry()}var Nu=Pu;function Gu(t,e){var i=/\{z\}/g,r=/\{x\}/g,n=/\{y\}/g,o=/\{-y\}/g;return function(s,a,h){return s?t.replace(i,s[0].toString()).replace(r,s[1].toString()).replace(n,function(){return(-s[2]-1).toString()}).replace(o,function(){var t=s[0],i=e.getFullTileRange(t);return Y(i,55),(i.getHeight()+s[2]).toString()}):void 0}}function Du(t,e){for(var i=t.length,r=new Array(i),n=0;n0&&(o/=l)}return o}function Vu(t,e,i,r){var n=i-t,o=r-e,s=Math.sqrt(n*n+o*o);return[Math.round(i+n/s),Math.round(r+o/s)]}function Xu(t,e,i,r,n,o,s,a,h,l,u){var p=Jn(Math.round(i*t),Math.round(i*e));if(0===h.length)return p.canvas;p.scale(i,i);var c=[1/0,1/0,-1/0,-1/0];h.forEach(function(t,e,i){ft(c,t.extent)});var d=Ot(c),f=Rt(c),_=Jn(Math.round(i*d/r),Math.round(i*f/r)),g=i/r;h.forEach(function(t,e,i){var r=t.extent[0]-c[0],n=-(t.extent[3]-c[3]),o=Ot(t.extent),s=Rt(t.extent);_.drawImage(t.image,l,l,t.image.width-2*l,t.image.height-2*l,r*g,n*g,o*g,s*g)});var y=It(s);return a.getTriangles().forEach(function(t,e,n){var s=t.source,a=t.target,h=s[0][0],l=s[0][1],u=s[1][0],d=s[1][1],f=s[2][0],g=s[2][1],v=(a[0][0]-y[0])/o,m=-(a[0][1]-y[1])/o,x=(a[1][0]-y[0])/o,E=-(a[1][1]-y[1])/o,S=(a[2][0]-y[0])/o,T=-(a[2][1]-y[1])/o,C=h,R=l;h=0,l=0;var w=function(t){for(var e=t.length,i=0;in&&(n=s,r=o)}if(0===n)return null;var a=t[r];t[r]=t[i],t[i]=a;for(var h=i+1;h=0;c--){p[c]=t[c][e]/t[c][c];for(var d=c-1;d>=0;d--)t[d][e]-=t[d][c]*p[c]}return p}([[u-=C,d-=R,0,0,x-v],[f-=C,g-=R,0,0,S-v],[0,0,u,d,E-m],[0,0,f,g,T-m]]);if(w){p.save(),p.beginPath();var I=(v+x+S)/3,L=(m+E+T)/3,O=Vu(I,L,v,m),P=Vu(I,L,x,E),b=Vu(I,L,S,T);p.moveTo(P[0],P[1]),p.lineTo(O[0],O[1]),p.lineTo(b[0],b[1]),p.clip(),p.transform(w[0],w[2],w[1],w[3],v,m),p.translate(c[0]-C,c[3]-R),p.scale(r/i,-r/i),p.drawImage(_.canvas,0,0),p.restore()}}),u&&(p.save(),p.strokeStyle="black",p.lineWidth=1,a.getTriangles().forEach(function(t,e,i){var r=t.target,n=(r[0][0]-y[0])/o,s=-(r[0][1]-y[1])/o,a=(r[1][0]-y[0])/o,h=-(r[1][1]-y[1])/o,l=(r[2][0]-y[0])/o,u=-(r[2][1]-y[1])/o;p.beginPath(),p.moveTo(a,h),p.lineTo(n,s),p.lineTo(l,u),p.closePath(),p.stroke()}),p.restore()),p.canvas}var zu=function(t,e,i,r,n){this.sourceProj_=t,this.targetProj_=e;var o={},s=Oe(this.targetProj_,this.sourceProj_);this.transformInv_=function(t){var e=t[0]+"/"+t[1];return o[e]||(o[e]=s(t)),o[e]},this.maxSourceExtent_=r,this.errorThresholdSquared_=n*n,this.triangles_=[],this.wrapsXInSource_=!1,this.canWrapXInSource_=this.sourceProj_.canWrapX()&&!!r&&!!this.sourceProj_.getExtent()&&Ot(r)==Ot(this.sourceProj_.getExtent()),this.sourceWorldWidth_=this.sourceProj_.getExtent()?Ot(this.sourceProj_.getExtent()):null,this.targetWorldWidth_=this.targetProj_.getExtent()?Ot(this.targetProj_.getExtent()):null;var a=It(i),h=Lt(i),l=St(i),u=Et(i),p=this.transformInv_(a),c=this.transformInv_(h),d=this.transformInv_(l),f=this.transformInv_(u);if(this.addQuad_(a,h,l,u,p,c,d,f,10),this.wrapsXInSource_){var _=1/0;this.triangles_.forEach(function(t,e,i){_=Math.min(_,t.source[0][0],t.source[1][0],t.source[2][0])}),this.triangles_.forEach(function(t){if(Math.max(t.source[0][0],t.source[1][0],t.source[2][0])-_>this.sourceWorldWidth_/2){var e=[[t.source[0][0],t.source[0][1]],[t.source[1][0],t.source[1][1]],[t.source[2][0],t.source[2][1]]];e[0][0]-_>this.sourceWorldWidth_/2&&(e[0][0]-=this.sourceWorldWidth_),e[1][0]-_>this.sourceWorldWidth_/2&&(e[1][0]-=this.sourceWorldWidth_),e[2][0]-_>this.sourceWorldWidth_/2&&(e[2][0]-=this.sourceWorldWidth_);var i=Math.min(e[0][0],e[1][0],e[2][0]);Math.max(e[0][0],e[1][0],e[2][0])-i.5&&u<1,d=!1;if(h>0){if(this.targetProj_.isGlobal()&&this.targetWorldWidth_)d=Ot(tt([t,e,i,r]))/this.targetWorldWidth_>.25||d;!c&&this.sourceProj_.isGlobal()&&u&&(d=u>.25||d)}if(d||!this.maxSourceExtent_||Pt(l,this.maxSourceExtent_)){if(!(d||isFinite(n[0])&&isFinite(n[1])&&isFinite(o[0])&&isFinite(o[1])&&isFinite(s[0])&&isFinite(s[1])&&isFinite(a[0])&&isFinite(a[1]))){if(!(h>0))return;d=!0}if(h>0){if(!d){var f,_=[(t[0]+i[0])/2,(t[1]+i[1])/2],g=this.transformInv_(_);if(c)f=(Xt(n[0],p)+Xt(s[0],p))/2-Xt(g[0],p);else f=(n[0]+s[0])/2-g[0];var y=(n[1]+s[1])/2-g[1];d=f*f+y*y>this.errorThresholdSquared_}if(d){if(Math.abs(t[0]-i[0])<=Math.abs(t[1]-i[1])){var v=[(e[0]+i[0])/2,(e[1]+i[1])/2],m=this.transformInv_(v),x=[(r[0]+t[0])/2,(r[1]+t[1])/2],E=this.transformInv_(x);this.addQuad_(t,e,v,x,n,o,m,E,h-1),this.addQuad_(x,v,i,r,E,m,s,a,h-1)}else{var S=[(t[0]+e[0])/2,(t[1]+e[1])/2],T=this.transformInv_(S),C=[(i[0]+r[0])/2,(i[1]+r[1])/2],R=this.transformInv_(C);this.addQuad_(t,S,C,r,n,T,R,a,h-1),this.addQuad_(S,e,i,C,T,o,s,R,h-1)}return}}if(c){if(!this.canWrapXInSource_)return;this.wrapsXInSource_=!0}this.addTriangle_(t,i,r,n,s,a),this.addTriangle_(t,e,i,n,o,s)}},zu.prototype.calculateSourceExtent=function(){var t=[1/0,1/0,-1/0,-1/0];return this.triangles_.forEach(function(e,i,r){var n=e.source;_t(t,n[0]),_t(t,n[1]),_t(t,n[2])}),t},zu.prototype.getTriangles=function(){return this.triangles_};var Wu=zu,Ku=function(t){function e(e,i,r,n,o,s,a,h,l,u,p){t.call(this,o,On.IDLE),this.renderEdges_=void 0!==p&&p,this.pixelRatio_=a,this.gutter_=h,this.canvas_=null,this.sourceTileGrid_=i,this.targetTileGrid_=n,this.wrappedTileCoord_=s||o,this.sourceTiles_=[],this.sourcesListenerKeys_=null,this.sourceZ_=0;var c=n.getTileCoordExtent(this.wrappedTileCoord_),d=this.targetTileGrid_.getExtent(),f=this.sourceTileGrid_.getExtent(),_=d?wt(c,d):c;if(0!==xt(_)){var g=e.getExtent();g&&(f=f?wt(f,g):g);var y=n.getResolution(this.wrappedTileCoord_[0]),v=Bu(e,r,Tt(_),y);if(!isFinite(v)||v<=0)this.state=On.EMPTY;else{var m=void 0!==u?u:vs;if(this.triangulation_=new Wu(e,r,_,f,v*m),0!==this.triangulation_.getTriangles().length){this.sourceZ_=i.getZForResolution(v);var x=this.triangulation_.calculateSourceExtent();if(f&&(e.canWrapX()?(x[1]=kt(x[1],f[1],f[3]),x[3]=kt(x[3],f[1],f[3])):x=wt(x,f)),xt(x)){for(var E=i.getTileRangeForExtentAndZ(x,this.sourceZ_),S=E.minX;S<=E.maxX;S++)for(var T=E.minY;T<=E.maxY;T++){var C=l(this.sourceZ_,S,T,a);C&&this.sourceTiles_.push(C)}0===this.sourceTiles_.length&&(this.state=On.EMPTY)}else this.state=On.EMPTY}else this.state=On.EMPTY}}else this.state=On.EMPTY}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.disposeInternal=function(){this.state==On.LOADING&&this.unlistenSources_(),t.prototype.disposeInternal.call(this)},e.prototype.getImage=function(){return this.canvas_},e.prototype.reproject_=function(){var t=[];if(this.sourceTiles_.forEach(function(e,i,r){e&&e.getState()==On.LOADED&&t.push({extent:this.sourceTileGrid_.getTileCoordExtent(e.tileCoord),image:e.getImage()})}.bind(this)),this.sourceTiles_.length=0,0===t.length)this.state=On.ERROR;else{var e=this.wrappedTileCoord_[0],i=this.targetTileGrid_.getTileSize(e),r="number"==typeof i?i:i[0],n="number"==typeof i?i:i[1],o=this.targetTileGrid_.getResolution(e),s=this.sourceTileGrid_.getResolution(this.sourceZ_),a=this.targetTileGrid_.getTileCoordExtent(this.wrappedTileCoord_);this.canvas_=Xu(r,n,this.pixelRatio_,s,this.sourceTileGrid_.getExtent(),o,a,this.triangulation_,t,this.gutter_,this.renderEdges_),this.state=On.LOADED}this.changed()},e.prototype.load=function(){if(this.state==On.IDLE){this.state=On.LOADING,this.changed();var t=0;this.sourcesListenerKeys_=[],this.sourceTiles_.forEach(function(e,i,r){var n=e.getState();if(n==On.IDLE||n==On.LOADING){t++;var o=v(e,M.CHANGE,function(i){var r=e.getState();r!=On.LOADED&&r!=On.ERROR&&r!=On.EMPTY||(E(o),0===--t&&(this.unlistenSources_(),this.reproject_()))},this);this.sourcesListenerKeys_.push(o)}}.bind(this)),this.sourceTiles_.forEach(function(t,e,i){t.getState()==On.IDLE&&t.load()}),0===t&&setTimeout(this.reproject_.bind(this),0)}},e.prototype.unlistenSources_=function(){this.sourcesListenerKeys_.forEach(E),this.sourcesListenerKeys_=null},e}(vl),Hu="tileloadstart",Zu="tileloadend",qu="tileloaderror",Ju=function(t){function e(e){t.call(this,{attributions:e.attributions,cacheSize:e.cacheSize,opaque:e.opaque,projection:e.projection,state:e.state,tileGrid:e.tileGrid,tilePixelRatio:e.tilePixelRatio,wrapX:e.wrapX,transition:e.transition,key:e.key,attributionsCollapsible:e.attributionsCollapsible}),this.generateTileUrlFunction_=!e.tileUrlFunction,this.tileLoadFunction=e.tileLoadFunction,this.tileUrlFunction=e.tileUrlFunction?e.tileUrlFunction.bind(this):ju,this.urls=null,e.urls?this.setUrls(e.urls):e.url&&this.setUrl(e.url),e.tileUrlFunction&&this.setTileUrlFunction(e.tileUrlFunction,this.key_),this.tileLoadingKeys_={}}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.getTileLoadFunction=function(){return this.tileLoadFunction},e.prototype.getTileUrlFunction=function(){return this.tileUrlFunction},e.prototype.getUrls=function(){return this.urls},e.prototype.handleTileChange=function(t){var e,i=t.target,r=o(i),n=i.getState();n==On.LOADING?(this.tileLoadingKeys_[r]=!0,e=Hu):r in this.tileLoadingKeys_&&(delete this.tileLoadingKeys_[r],e=n==On.ERROR?qu:n==On.LOADED||n==On.ABORT?Zu:void 0),void 0!=e&&this.dispatchEvent(new kl(e,i))},e.prototype.setTileLoadFunction=function(t){this.tileCache.clear(),this.tileLoadFunction=t,this.changed()},e.prototype.setTileUrlFunction=function(t,e){this.tileUrlFunction=t,this.tileCache.pruneExceptNewestZ(),void 0!==e?this.setKey(e):this.changed()},e.prototype.setUrl=function(t){var e=this.urls=Uu(t);this.setUrls(e)},e.prototype.setUrls=function(t){this.urls=t;var e=t.join("\n");this.generateTileUrlFunction_?this.setTileUrlFunction(Du(t,this.tileGrid),e):this.setKey(e)},e.prototype.useTile=function(t,e,i){var r=Sl(t,e,i);this.tileCache.containsKey(r)&&this.tileCache.get(r)},e}(jl);function Qu(t,e){t.getImage().src=e}var $u=function(t){function e(e){t.call(this,{attributions:e.attributions,cacheSize:e.cacheSize,opaque:e.opaque,projection:e.projection,state:e.state,tileGrid:e.tileGrid,tileLoadFunction:e.tileLoadFunction?e.tileLoadFunction:Qu,tilePixelRatio:e.tilePixelRatio,tileUrlFunction:e.tileUrlFunction,url:e.url,urls:e.urls,wrapX:e.wrapX,transition:e.transition,key:e.key,attributionsCollapsible:e.attributionsCollapsible}),this.crossOrigin=void 0!==e.crossOrigin?e.crossOrigin:null,this.tileClass=void 0!==e.tileClass?e.tileClass:xl,this.tileCacheForProjection={},this.tileGridForProjection={},this.reprojectionErrorThreshold_=e.reprojectionErrorThreshold,this.renderReprojectionEdges_=!1}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.canExpireCache=function(){if(this.tileCache.canExpireCache())return!0;for(var t in this.tileCacheForProjection)if(this.tileCacheForProjection[t].canExpireCache())return!0;return!1},e.prototype.expireCache=function(t,e){var i=this.getTileCacheForProjection(t);for(var r in this.tileCache.expireCache(this.tileCache==i?e:{}),this.tileCacheForProjection){var n=this.tileCacheForProjection[r];n.expireCache(n==i?e:{})}},e.prototype.getGutterForProjection=function(t){return this.getProjection()&&t&&!Ie(this.getProjection(),t)?0:this.getGutter()},e.prototype.getGutter=function(){return 0},e.prototype.getOpaque=function(e){return!(this.getProjection()&&e&&!Ie(this.getProjection(),e))&&t.prototype.getOpaque.call(this,e)},e.prototype.getTileGridForProjection=function(t){var e=this.getProjection();if(!this.tileGrid||e&&!Ie(e,t)){var i=o(t);return i in this.tileGridForProjection||(this.tileGridForProjection[i]=bl(t)),this.tileGridForProjection[i]}return this.tileGrid},e.prototype.getTileCacheForProjection=function(t){var e=this.getProjection();if(!e||Ie(e,t))return this.tileCache;var i=o(t);return i in this.tileCacheForProjection||(this.tileCacheForProjection[i]=new Rl(this.tileCache.highWaterMark)),this.tileCacheForProjection[i]},e.prototype.createTile_=function(t,e,i,r,n,o){var s=[t,e,i],a=this.getTileCoordForTileUrlFunction(s,n),h=a?this.tileUrlFunction(a,r,n):void 0,l=new this.tileClass(s,void 0!==h?On.IDLE:On.EMPTY,void 0!==h?h:"",this.crossOrigin,this.tileLoadFunction,this.tileOptions);return l.key=o,v(l,M.CHANGE,this.handleTileChange,this),l},e.prototype.getTile=function(t,e,i,r,n){var o=this.getProjection();if(o&&n&&!Ie(o,n)){var s,a=this.getTileCacheForProjection(n),h=[t,e,i],l=Tl(h);a.containsKey(l)&&(s=a.get(l));var u=this.getKey();if(s&&s.key==u)return s;var p=this.getTileGridForProjection(o),c=this.getTileGridForProjection(n),d=this.getTileCoordForTileUrlFunction(h,n),f=new Ku(o,p,n,c,h,d,this.getTilePixelRatio(r),this.getGutter(),function(t,e,i,r){return this.getTileInternal(t,e,i,r,o)}.bind(this),this.reprojectionErrorThreshold_,this.renderReprojectionEdges_);return f.key=u,s?(f.interimTile=s,f.refreshInterimChain(),a.replace(l,f)):a.set(l,f),f}return this.getTileInternal(t,e,i,r,o||n)},e.prototype.getTileInternal=function(t,e,i,r,n){var o=null,s=Sl(t,e,i),a=this.getKey();if(this.tileCache.containsKey(s)){if((o=this.tileCache.get(s)).key!=a){var h=o;o=this.createTile_(t,e,i,r,n,a),h.getState()==On.IDLE?o.interimTile=h.interimTile:o.interimTile=h,o.refreshInterimChain(),this.tileCache.replace(s,o)}}else o=this.createTile_(t,e,i,r,n,a),this.tileCache.set(s,o);return o},e.prototype.setRenderReprojectionEdges=function(t){if(this.renderReprojectionEdges_!=t){for(var e in this.renderReprojectionEdges_=t,this.tileCacheForProjection)this.tileCacheForProjection[e].clear();this.changed()}},e.prototype.setTileGridForProjection=function(t,e){var i=Ee(t);if(i){var r=o(i);r in this.tileGridForProjection||(this.tileGridForProjection[r]=e)}},e}(Ju),tp=function(t){function e(e){var i=void 0!==e.hidpi&&e.hidpi;t.call(this,{cacheSize:e.cacheSize,crossOrigin:"anonymous",opaque:!0,projection:Ee("EPSG:3857"),reprojectionErrorThreshold:e.reprojectionErrorThreshold,state:ro.LOADING,tileLoadFunction:e.tileLoadFunction,tilePixelRatio:i?2:1,wrapX:void 0===e.wrapX||e.wrapX,transition:e.transition}),this.hidpi_=i,this.culture_=void 0!==e.culture?e.culture:"en-us",this.maxZoom_=void 0!==e.maxZoom?e.maxZoom:-1,this.apiKey_=e.key,this.imagerySet_=e.imagerySet,Yu("https://dev.virtualearth.net/REST/v1/Imagery/Metadata/"+this.imagerySet_+"?uriScheme=https&include=ImageryProviders&key="+this.apiKey_+"&c="+this.culture_,this.handleImageryMetadataResponse.bind(this),void 0,"jsonp")}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.getApiKey=function(){return this.apiKey_},e.prototype.getImagerySet=function(){return this.imagerySet_},e.prototype.handleImageryMetadataResponse=function(t){if(200==t.statusCode&&"OK"==t.statusDescription&&"ValidCredentials"==t.authenticationResultCode&&1==t.resourceSets.length&&1==t.resourceSets[0].resources.length){var e=t.resourceSets[0].resources[0],i=-1==this.maxZoom_?e.zoomMax:this.maxZoom_,r=Gl(this.getProjection()),n=this.hidpi_?2:1,o=e.imageWidth==e.imageHeight?e.imageWidth/n:[e.imageWidth/n,e.imageHeight/n],s=Fl({extent:r,minZoom:e.zoomMin,maxZoom:i,tileSize:o});this.tileGrid=s;var a=this.culture_,h=this.hidpi_;if(this.tileUrlFunction=ku(e.imageUrlSubdomains.map(function(t){var i=[0,0,0],r=e.imageUrl.replace("{subdomain}",t).replace("{culture}",a);return function(t,e,n){if(t){El(t[0],t[1],-t[2]-1,i);var o=r;return h&&(o+="&dpi=d1&device=mobile"),o.replace("{quadkey}",function(t){var e,i,r=t[0],n=new Array(r),o=1<>=1;return n.join("")}(i))}}})),e.imageryProviders){var l=Le(Ee("EPSG:4326"),this.getProjection());this.setAttributions(function(t){var i=[],r=t.viewState,n=this.getTileGrid().getTileCoordForCoordAndResolution(r.center,r.resolution)[0];return e.imageryProviders.map(function(e){for(var r=!1,o=e.coverageAreas,s=0,a=o.length;s=h.zoomMin&&n<=h.zoomMax){var u=h.bbox;if(Pt(Ft([u[1],u[0],u[3],u[2]],l),t.extent)){r=!0;break}}}r&&i.push(e.attribution)}),i.push('Terms of Use'),i}.bind(this))}this.setState(ro.READY)}else this.setState(ro.ERROR)},e}($u),ep=function(t){function e(e){var i=e||{},r=void 0!==i.projection?i.projection:"EPSG:3857",n=void 0!==i.tileGrid?i.tileGrid:Fl({extent:Gl(r),maxZoom:i.maxZoom,minZoom:i.minZoom,tileSize:i.tileSize});t.call(this,{attributions:i.attributions,cacheSize:i.cacheSize,crossOrigin:i.crossOrigin,opaque:i.opaque,projection:r,reprojectionErrorThreshold:i.reprojectionErrorThreshold,tileGrid:n,tileLoadFunction:i.tileLoadFunction,tilePixelRatio:i.tilePixelRatio,tileUrlFunction:i.tileUrlFunction,url:i.url,urls:i.urls,wrapX:void 0===i.wrapX||i.wrapX,transition:i.transition,attributionsCollapsible:i.attributionsCollapsible})}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e}($u),ip=function(t){function e(e){t.call(this,{attributions:e.attributions,cacheSize:e.cacheSize,crossOrigin:e.crossOrigin,maxZoom:void 0!==e.maxZoom?e.maxZoom:18,minZoom:e.minZoom,projection:e.projection,wrapX:e.wrapX}),this.account_=e.account,this.mapId_=e.map||"",this.config_=e.config||{},this.templateCache_={},this.initializeMap_()}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.getConfig=function(){return this.config_},e.prototype.updateConfig=function(t){u(this.config_,t),this.initializeMap_()},e.prototype.setConfig=function(t){this.config_=t||{},this.initializeMap_()},e.prototype.initializeMap_=function(){var t=JSON.stringify(this.config_);if(this.templateCache_[t])this.applyTemplate_(this.templateCache_[t]);else{var e="https://"+this.account_+".carto.com/api/v1/map";this.mapId_&&(e+="/named/"+this.mapId_);var i=new XMLHttpRequest;i.addEventListener("load",this.handleInitResponse_.bind(this,t)),i.addEventListener("error",this.handleInitError_.bind(this)),i.open("POST",e),i.setRequestHeader("Content-type","application/json"),i.send(JSON.stringify(this.config_))}},e.prototype.handleInitResponse_=function(t,e){var i=e.target;if(!i.status||i.status>=200&&i.status<300){var r;try{r=JSON.parse(i.responseText)}catch(t){return void this.setState(ro.ERROR)}this.applyTemplate_(r),this.templateCache_[t]=r,this.setState(ro.READY)}else this.setState(ro.ERROR)},e.prototype.handleInitError_=function(t){this.setState(ro.ERROR)},e.prototype.applyTemplate_=function(t){var e="https://"+t.cdn_url.https+"/"+this.account_+"/api/v1/map/"+t.layergroupid+"/{z}/{x}/{y}.png";this.setUrl(e)},e}(ep),rp={ADDFEATURE:"addfeature",CHANGEFEATURE:"changefeature",CLEAR:"clear",REMOVEFEATURE:"removefeature"},np=function(t){function e(e,i){t.call(this,e),this.feature=i}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e}(P),op=function(t){function e(e){var i=e||{};t.call(this,{attributions:i.attributions,projection:void 0,state:ro.READY,wrapX:void 0===i.wrapX||i.wrapX}),this.loader_=I,this.format_=i.format,this.overlaps_=void 0==i.overlaps||i.overlaps,this.url_=i.url,void 0!==i.loader?this.loader_=i.loader:void 0!==this.url_&&(Y(this.format_,7),this.loader_=ql(this.url_,this.format_)),this.strategy_=void 0!==i.strategy?i.strategy:Jl;var r,n,o=void 0===i.useSpatialIndex||i.useSpatialIndex;this.featuresRtree_=o?new tl:null,this.loadedExtentsRtree_=new tl,this.nullGeometryFeatures_={},this.idIndex_={},this.undefIdIndex_={},this.featureChangeKeys_={},this.featuresCollection_=null,Array.isArray(i.features)?n=i.features:i.features&&(n=(r=i.features).getArray()),o||void 0!==r||(r=new U(n)),void 0!==n&&this.addFeaturesInternal(n),void 0!==r&&this.bindFeaturesCollection_(r)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.addFeature=function(t){this.addFeatureInternal(t),this.changed()},e.prototype.addFeatureInternal=function(t){var e=o(t);if(this.addToIndex_(e,t)){this.setupChangeEvents_(e,t);var i=t.getGeometry();if(i){var r=i.getExtent();this.featuresRtree_&&this.featuresRtree_.insert(r,t)}else this.nullGeometryFeatures_[e]=t;this.dispatchEvent(new np(rp.ADDFEATURE,t))}},e.prototype.setupChangeEvents_=function(t,e){this.featureChangeKeys_[t]=[v(e,M.CHANGE,this.handleFeatureChange_,this),v(e,l,this.handleFeatureChange_,this)]},e.prototype.addToIndex_=function(t,e){var i=!0,r=e.getId();return void 0!==r?r.toString()in this.idIndex_?i=!1:this.idIndex_[r.toString()]=e:(Y(!(t in this.undefIdIndex_),30),this.undefIdIndex_[t]=e),i},e.prototype.addFeatures=function(t){this.addFeaturesInternal(t),this.changed()},e.prototype.addFeaturesInternal=function(t){for(var e=[],i=[],r=[],n=0,s=t.length;n=0;--i){var r=this.geometryFunction(t[i]);r?Hi(e,r.getCoordinates()):t.splice(i,1)}tr(e,1/t.length);var n=new B(new ci(e));return n.set("features",t),n},e}(op),ap=function(t){function e(e,i,r,n,o,s){var a=e.getExtent(),h=i.getExtent(),l=h?wt(r,h):r,u=Bu(e,i,Tt(l),n),p=new Wu(e,i,l,a,u*vs),c=s(p.calculateSourceExtent(),u,o),d=xs.LOADED;c&&(d=xs.IDLE);var f=c?c.getPixelRatio():1;t.call(this,r,n,f,d),this.targetProj_=i,this.maxSourceExtent_=a,this.triangulation_=p,this.targetResolution_=n,this.targetExtent_=r,this.sourceImage_=c,this.sourcePixelRatio_=f,this.canvas_=null,this.sourceListenerKey_=null}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.disposeInternal=function(){this.state==xs.LOADING&&this.unlistenSource_(),t.prototype.disposeInternal.call(this)},e.prototype.getImage=function(){return this.canvas_},e.prototype.getProjection=function(){return this.targetProj_},e.prototype.reproject_=function(){var t=this.sourceImage_.getState();if(t==xs.LOADED){var e=Ot(this.targetExtent_)/this.targetResolution_,i=Rt(this.targetExtent_)/this.targetResolution_;this.canvas_=Xu(e,i,this.sourcePixelRatio_,this.sourceImage_.getResolution(),this.maxSourceExtent_,this.targetResolution_,this.targetExtent_,this.triangulation_,[{extent:this.sourceImage_.getExtent(),image:this.sourceImage_.getImage()}],0)}this.state=t,this.changed()},e.prototype.load=function(){if(this.state==xs.IDLE){this.state=xs.LOADING,this.changed();var t=this.sourceImage_.getState();t==xs.LOADED||t==xs.ERROR?this.reproject_():(this.sourceListenerKey_=v(this.sourceImage_,M.CHANGE,function(t){var e=this.sourceImage_.getState();e!=xs.LOADED&&e!=xs.ERROR||(this.unlistenSource_(),this.reproject_())},this),this.sourceImage_.load())}},e.prototype.unlistenSource_=function(){E(this.sourceListenerKey_),this.sourceListenerKey_=null},e}(ms),hp="imageloadstart",lp="imageloadend",up="imageloaderror",pp=function(t){function e(e,i){t.call(this,e),this.image=i}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e}(P);function cp(t,e){t.getImage().src=e}var dp=function(t){function e(e){t.call(this,{attributions:e.attributions,projection:e.projection,state:e.state}),this.resolutions_=void 0!==e.resolutions?e.resolutions:null,this.reprojectedImage_=null,this.reprojectedRevision_=0}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.getResolutions=function(){return this.resolutions_},e.prototype.findNearestResolution=function(t){if(this.resolutions_){var e=z(this.resolutions_,t,0);t=this.resolutions_[e]}return t},e.prototype.getImage=function(t,e,i,r){var n=this.getProjection();if(n&&r&&!Ie(n,r)){if(this.reprojectedImage_){if(this.reprojectedRevision_==this.getRevision()&&Ie(this.reprojectedImage_.getProjection(),r)&&this.reprojectedImage_.getResolution()==e&&dt(this.reprojectedImage_.getExtent(),t))return this.reprojectedImage_;this.reprojectedImage_.dispose(),this.reprojectedImage_=null}return this.reprojectedImage_=new ap(n,r,t,e,i,function(t,e,i){return this.getImageInternal(t,e,i,n)}.bind(this)),this.reprojectedRevision_=this.getRevision(),this.reprojectedImage_}return n&&(r=n),this.getImageInternal(t,e,i,r)},e.prototype.getImageInternal=function(t,e,i,n){return r()},e.prototype.handleImageChange=function(t){var e=t.target;switch(e.getState()){case xs.LOADING:this.loading=!0,this.dispatchEvent(new pp(hp,e));break;case xs.LOADED:this.loading=!1,this.dispatchEvent(new pp(lp,e));break;case xs.ERROR:this.loading=!1,this.dispatchEvent(new pp(up,e))}},e}(Il),fp=function(t){function e(e,i,r,n,o,s){t.call(this,e,i,r,xs.IDLE),this.src_=n,this.image_=new Image,null!==o&&(this.image_.crossOrigin=o),this.imageListenerKeys_=null,this.state=xs.IDLE,this.imageLoadFunction_=s}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.getImage=function(){return this.image_},e.prototype.handleImageError_=function(){this.state=xs.ERROR,this.unlistenImage_(),this.changed()},e.prototype.handleImageLoad_=function(){void 0===this.resolution&&(this.resolution=Rt(this.extent)/this.image_.height),this.state=xs.LOADED,this.unlistenImage_(),this.changed()},e.prototype.load=function(){this.state!=xs.IDLE&&this.state!=xs.ERROR||(this.state=xs.LOADING,this.changed(),this.imageListenerKeys_=[m(this.image_,M.ERROR,this.handleImageError_,this),m(this.image_,M.LOAD,this.handleImageLoad_,this)],this.imageLoadFunction_(this,this.src_))},e.prototype.setImage=function(t){this.image_=t},e.prototype.unlistenImage_=function(){this.imageListenerKeys_.forEach(E),this.imageListenerKeys_=null},e}(ms);function _p(t,e){var i=[];Object.keys(e).forEach(function(t){null!==e[t]&&void 0!==e[t]&&i.push(t+"="+encodeURIComponent(e[t]))});var r=i.join("&");return(t=-1===(t=t.replace(/[?&]$/,"")).indexOf("?")?t+"?":t+"&")+r}var gp=function(t){function e(e){var i=e||{};t.call(this,{attributions:i.attributions,projection:i.projection,resolutions:i.resolutions}),this.crossOrigin_=void 0!==i.crossOrigin?i.crossOrigin:null,this.hidpi_=void 0===i.hidpi||i.hidpi,this.url_=i.url,this.imageLoadFunction_=void 0!==i.imageLoadFunction?i.imageLoadFunction:cp,this.params_=i.params||{},this.image_=null,this.imageSize_=[0,0],this.renderedRevision_=0,this.ratio_=void 0!==i.ratio?i.ratio:1.5}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.getParams=function(){return this.params_},e.prototype.getImageInternal=function(t,e,i,r){if(void 0===this.url_)return null;e=this.findNearestResolution(e),i=this.hidpi_?i:1;var n=this.image_;if(n&&this.renderedRevision_==this.getRevision()&&n.getResolution()==e&&n.getPixelRatio()==i&&ot(n.getExtent(),t))return n;var o={F:"image",FORMAT:"PNG32",TRANSPARENT:!0};u(o,this.params_);var s=((t=t.slice())[0]+t[2])/2,a=(t[1]+t[3])/2;if(1!=this.ratio_){var h=this.ratio_*Ot(t)/2,l=this.ratio_*Rt(t)/2;t[0]=s-h,t[1]=a-l,t[2]=s+h,t[3]=a+l}var p=e/i,c=Math.ceil(Ot(t)/p),d=Math.ceil(Rt(t)/p);t[0]=s-p*c/2,t[2]=s+p*c/2,t[1]=a-p*d/2,t[3]=a+p*d/2,this.imageSize_[0]=c,this.imageSize_[1]=d;var f=this.getRequestUrl_(t,this.imageSize_,i,r,o);return this.image_=new fp(t,e,i,f,this.crossOrigin_,this.imageLoadFunction_),this.renderedRevision_=this.getRevision(),v(this.image_,M.CHANGE,this.handleImageChange,this),this.image_},e.prototype.getImageLoadFunction=function(){return this.imageLoadFunction_},e.prototype.getRequestUrl_=function(t,e,i,r,n){var o=r.getCode().split(":").pop();n.SIZE=e[0]+","+e[1],n.BBOX=t.join(","),n.BBOXSR=o,n.IMAGESR=o,n.DPI=Math.round(90*i);var s=this.url_,a=s.replace(/MapServer\/?$/,"MapServer/export").replace(/ImageServer\/?$/,"ImageServer/exportImage");return a==s&&Y(!1,50),_p(a,n)},e.prototype.getUrl=function(){return this.url_},e.prototype.setImageLoadFunction=function(t){this.image_=null,this.imageLoadFunction_=t,this.changed()},e.prototype.setUrl=function(t){t!=this.url_&&(this.url_=t,this.image_=null,this.changed())},e.prototype.updateParams=function(t){u(this.params_,t),this.image_=null,this.changed()},e}(dp),yp=function(t){function e(e){var i=e||{};t.call(this,{attributions:i.attributions,projection:i.projection,resolutions:i.resolutions,state:i.state}),this.canvasFunction_=i.canvasFunction,this.canvas_=null,this.renderedRevision_=0,this.ratio_=void 0!==i.ratio?i.ratio:1.5}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.getImageInternal=function(t,e,i,r){e=this.findNearestResolution(e);var n=this.canvas_;if(n&&this.renderedRevision_==this.getRevision()&&n.getResolution()==e&&n.getPixelRatio()==i&&ot(n.getExtent(),t))return n;Mt(t=t.slice(),this.ratio_);var o=[Ot(t)/e*i,Rt(t)/e*i],s=this.canvasFunction_.call(this,t,e,i,o,r);return s&&(n=new Es(t,e,i,s)),this.canvas_=n,this.renderedRevision_=this.getRevision(),n},e}(dp);var vp=function(t){function e(e){t.call(this,{projection:e.projection,resolutions:e.resolutions}),this.crossOrigin_=void 0!==e.crossOrigin?e.crossOrigin:null,this.displayDpi_=void 0!==e.displayDpi?e.displayDpi:96,this.params_=e.params||{},this.url_=e.url,this.imageLoadFunction_=void 0!==e.imageLoadFunction?e.imageLoadFunction:cp,this.hidpi_=void 0===e.hidpi||e.hidpi,this.metersPerUnit_=void 0!==e.metersPerUnit?e.metersPerUnit:1,this.ratio_=void 0!==e.ratio?e.ratio:1,this.useOverlay_=void 0!==e.useOverlay&&e.useOverlay,this.image_=null,this.renderedRevision_=0}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.getParams=function(){return this.params_},e.prototype.getImageInternal=function(t,e,i,r){e=this.findNearestResolution(e),i=this.hidpi_?i:1;var n=this.image_;if(n&&this.renderedRevision_==this.getRevision()&&n.getResolution()==e&&n.getPixelRatio()==i&&ot(n.getExtent(),t))return n;1!=this.ratio_&&Mt(t=t.slice(),this.ratio_);var o=[Ot(t)/e*i,Rt(t)/e*i];if(void 0!==this.url_){var s=this.getUrl(this.url_,this.params_,t,o,r);v(n=new fp(t,e,i,s,this.crossOrigin_,this.imageLoadFunction_),M.CHANGE,this.handleImageChange,this)}else n=null;return this.image_=n,this.renderedRevision_=this.getRevision(),n},e.prototype.getImageLoadFunction=function(){return this.imageLoadFunction_},e.prototype.updateParams=function(t){u(this.params_,t),this.changed()},e.prototype.getUrl=function(t,e,i,r,n){var o=function(t,e,i,r){var n=Ot(t),o=Rt(t),s=e[0],a=e[1],h=.0254/r;return a*n>s*o?n*i/(s*h):o*i/(a*h)}(i,r,this.metersPerUnit_,this.displayDpi_),s=Tt(i),a={OPERATION:this.useOverlay_?"GETDYNAMICMAPOVERLAYIMAGE":"GETMAPIMAGE",VERSION:"2.0.0",LOCALE:"en",CLIENTAGENT:"ol/source/ImageMapGuide source",CLIP:"1",SETDISPLAYDPI:this.displayDpi_,SETDISPLAYWIDTH:Math.round(r[0]),SETDISPLAYHEIGHT:Math.round(r[1]),SETVIEWSCALE:o,SETVIEWCENTERX:s[0],SETVIEWCENTERY:s[1]};return u(a,e),_p(t,a)},e.prototype.setImageLoadFunction=function(t){this.image_=null,this.imageLoadFunction_=t,this.changed()},e}(dp),mp=function(t){function e(e){var i=void 0!==e.crossOrigin?e.crossOrigin:null,r=void 0!==e.imageLoadFunction?e.imageLoadFunction:cp;t.call(this,{attributions:e.attributions,projection:Ee(e.projection)}),this.url_=e.url,this.imageExtent_=e.imageExtent,this.image_=new fp(this.imageExtent_,void 0,1,this.url_,i,r),this.imageSize_=e.imageSize?e.imageSize:null,v(this.image_,M.CHANGE,this.handleImageChange,this)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.getImageExtent=function(){return this.imageExtent_},e.prototype.getImageInternal=function(t,e,i,r){return Pt(t,this.image_.getExtent())?this.image_:null},e.prototype.getUrl=function(){return this.url_},e.prototype.handleImageChange=function(e){if(this.image_.getState()==xs.LOADED){var i,r,n=this.image_.getExtent(),o=this.image_.getImage();this.imageSize_?(i=this.imageSize_[0],r=this.imageSize_[1]):(i=o.width,r=o.height);var s=Rt(n)/r,a=Math.ceil(Ot(n)/s);if(a!=i){var h=Jn(a,r),l=h.canvas;h.drawImage(o,0,0,i,r,0,0,l.width,l.height),this.image_.setImage(l)}}t.prototype.handleImageChange.call(this,e)},e}(dp),xp="1.3.0",Ep="carmentaserver",Sp="geoserver",Tp="mapserver",Cp="qgis",Rp=[101,101],wp=function(t){function e(e){var i=e||{};t.call(this,{attributions:i.attributions,projection:i.projection,resolutions:i.resolutions}),this.crossOrigin_=void 0!==i.crossOrigin?i.crossOrigin:null,this.url_=i.url,this.imageLoadFunction_=void 0!==i.imageLoadFunction?i.imageLoadFunction:cp,this.params_=i.params||{},this.v13_=!0,this.updateV13_(),this.serverType_=i.serverType,this.hidpi_=void 0===i.hidpi||i.hidpi,this.image_=null,this.imageSize_=[0,0],this.renderedRevision_=0,this.ratio_=void 0!==i.ratio?i.ratio:1.5}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.getGetFeatureInfoUrl=function(t,e,i,r){if(void 0!==this.url_){var n=Ee(i),o=this.getProjection();o&&o!==n&&(e=Bu(o,n,t,e),t=Pe(t,n,o));var s=Ct(t,e,0,Rp),a={SERVICE:"WMS",VERSION:xp,REQUEST:"GetFeatureInfo",FORMAT:"image/png",TRANSPARENT:!0,QUERY_LAYERS:this.params_.LAYERS};u(a,this.params_,r);var h=Math.floor((t[0]-s[0])/e),l=Math.floor((s[3]-t[1])/e);return a[this.v13_?"I":"X"]=h,a[this.v13_?"J":"Y"]=l,this.getRequestUrl_(s,Rp,1,o||n,a)}},e.prototype.getParams=function(){return this.params_},e.prototype.getImageInternal=function(t,e,i,r){if(void 0===this.url_)return null;e=this.findNearestResolution(e),1==i||this.hidpi_&&void 0!==this.serverType_||(i=1);var n=e/i,o=Tt(t),s=Ct(o,n,0,[Math.ceil(Ot(t)/n),Math.ceil(Rt(t)/n)]),a=Ct(o,n,0,[Math.ceil(this.ratio_*Ot(t)/n),Math.ceil(this.ratio_*Rt(t)/n)]),h=this.image_;if(h&&this.renderedRevision_==this.getRevision()&&h.getResolution()==e&&h.getPixelRatio()==i&&ot(h.getExtent(),s))return h;var l={SERVICE:"WMS",VERSION:xp,REQUEST:"GetMap",FORMAT:"image/png",TRANSPARENT:!0};u(l,this.params_),this.imageSize_[0]=Math.round(Ot(a)/n),this.imageSize_[1]=Math.round(Rt(a)/n);var p=this.getRequestUrl_(a,this.imageSize_,i,r,l);return this.image_=new fp(a,e,i,p,this.crossOrigin_,this.imageLoadFunction_),this.renderedRevision_=this.getRevision(),v(this.image_,M.CHANGE,this.handleImageChange,this),this.image_},e.prototype.getImageLoadFunction=function(){return this.imageLoadFunction_},e.prototype.getRequestUrl_=function(t,e,i,r,n){if(Y(void 0!==this.url_,9),n[this.v13_?"CRS":"SRS"]=r.getCode(),"STYLES"in this.params_||(n.STYLES=""),1!=i)switch(this.serverType_){case Sp:var o=90*i+.5|0;"FORMAT_OPTIONS"in n?n.FORMAT_OPTIONS+=";dpi:"+o:n.FORMAT_OPTIONS="dpi:"+o;break;case Tp:n.MAP_RESOLUTION=90*i;break;case Ep:case Cp:n.DPI=90*i;break;default:Y(!1,8)}n.WIDTH=e[0],n.HEIGHT=e[1];var s,a=r.getAxisOrientation();return s=this.v13_&&"ne"==a.substr(0,2)?[t[1],t[0],t[3],t[2]]:t,n.BBOX=s.join(","),_p(this.url_,n)},e.prototype.getUrl=function(){return this.url_},e.prototype.setImageLoadFunction=function(t){this.image_=null,this.imageLoadFunction_=t,this.changed()},e.prototype.setUrl=function(t){t!=this.url_&&(this.url_=t,this.image_=null,this.changed())},e.prototype.updateParams=function(t){u(this.params_,t),this.updateV13_(),this.image_=null,this.changed()},e.prototype.updateV13_=function(){var t=this.params_.VERSION||xp;this.v13_=Ki(t,"1.3")>=0},e}(dp),Ip='© OpenStreetMap contributors.',Lp=function(t){function e(e){var i,r=e||{};i=void 0!==r.attributions?r.attributions:[Ip];var n=void 0!==r.crossOrigin?r.crossOrigin:"anonymous",o=void 0!==r.url?r.url:"https://{a-c}.tile.openstreetmap.org/{z}/{x}/{y}.png";t.call(this,{attributions:i,cacheSize:r.cacheSize,crossOrigin:n,opaque:void 0===r.opaque||r.opaque,maxZoom:void 0!==r.maxZoom?r.maxZoom:19,reprojectionErrorThreshold:r.reprojectionErrorThreshold,tileLoadFunction:r.tileLoadFunction,url:o,wrapX:r.wrapX,attributionsCollapsible:!1})}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e}(ep),Op=i(2),Pp=function(t){function e(e){var i=e||{};t.call(this,i),this.type=Ss.IMAGE}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e}(xo);Pp.prototype.getSource;var bp=Pp,Mp="preload",Fp="useInterimTilesOnError",Ap=function(t){function e(e){var i=e||{},r=u({},i);delete r.preload,delete r.useInterimTilesOnError,t.call(this,r),this.setPreload(void 0!==i.preload?i.preload:0),this.setUseInterimTilesOnError(void 0===i.useInterimTilesOnError||i.useInterimTilesOnError),this.type=Ss.TILE}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.getPreload=function(){return this.get(Mp)},e.prototype.setPreload=function(t){this.set(Mp,t)},e.prototype.getUseInterimTilesOnError=function(){return this.get(Fp)},e.prototype.setUseInterimTilesOnError=function(t){this.set(Fp,t)},e}(xo);Ap.prototype.getSource;var Np=Ap,Gp="beforeoperations",Dp="afteroperations",kp={PIXEL:"pixel",IMAGE:"image"},jp=function(t){function e(e,i,r){t.call(this,e),this.extent=i.extent,this.resolution=i.viewState.resolution/i.pixelRatio,this.data=r}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e}(P),Up=null;function Yp(t,e,i){if(!t.prepareFrame(e,i))return null;var r=e.size[0],n=e.size[1];if(Up){var o=Up.canvas;o.width!==r||o.height!==n?Up=Jn(r,n):Up.clearRect(0,0,r,n)}else Up=Jn(r,n);return t.composeFrame(e,i,Up),Up.getImageData(0,0,r,n)}function Bp(t){var e=t,i=t,r=t,n=null;return"function"==typeof e.getTile?n=function(t){var e=new Np({source:t});return new ha(e)}(e):"function"==typeof i.getImage?n=function(t){var e=new bp({source:t});return new ra(e)}(i):r.getType()===Ss.TILE?n=new ha(r):r.getType()!=Ss.IMAGE&&r.getType()!=Ss.VECTOR||(n=new ra(r)),n}var Vp=function(t){function e(e){t.call(this,{projection:null}),this.worker_=null,this.operationType_=void 0!==e.operationType?e.operationType:kp.PIXEL,this.threads_=void 0!==e.threads?e.threads:1,this.renderers_=function(t){for(var e=t.length,i=new Array(e),r=0;rStamen Design, under CC BY 3.0.',Ip],zp={terrain:{extension:"jpg",opaque:!0},"terrain-background":{extension:"jpg",opaque:!0},"terrain-labels":{extension:"png",opaque:!1},"terrain-lines":{extension:"png",opaque:!1},"toner-background":{extension:"png",opaque:!0},toner:{extension:"png",opaque:!0},"toner-hybrid":{extension:"png",opaque:!1},"toner-labels":{extension:"png",opaque:!1},"toner-lines":{extension:"png",opaque:!1},"toner-lite":{extension:"png",opaque:!0},watercolor:{extension:"jpg",opaque:!0}},Wp={terrain:{minZoom:4,maxZoom:18},toner:{minZoom:0,maxZoom:20},watercolor:{minZoom:1,maxZoom:16}},Kp=function(t){function e(e){var i=e.layer.indexOf("-"),r=-1==i?e.layer:e.layer.slice(0,i),n=Wp[r],o=zp[e.layer],s=void 0!==e.url?e.url:"https://stamen-tiles-{a-d}.a.ssl.fastly.net/"+e.layer+"/{z}/{x}/{y}."+o.extension;t.call(this,{attributions:Xp,cacheSize:e.cacheSize,crossOrigin:"anonymous",maxZoom:void 0!=e.maxZoom?e.maxZoom:n.maxZoom,minZoom:void 0!=e.minZoom?e.minZoom:n.minZoom,opaque:o.opaque,reprojectionErrorThreshold:e.reprojectionErrorThreshold,tileLoadFunction:e.tileLoadFunction,url:s,wrapX:e.wrapX})}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e}(ep);function Hp(t,e,i){var r=this.getTileGrid();if(r||(r=this.getTileGridForProjection(i)),!(r.getResolutions().length<=t[0])){var n=r.getTileCoordExtent(t,this.tmpExtent_),o=ho(r.getTileSize(t[0]),this.tmpSize);1!=e&&(o=ao(o,e,this.tmpSize));var s={F:"image",FORMAT:"PNG32",TRANSPARENT:!0};return u(s,this.params_),this.getRequestUrl_(t,o,n,e,i,s)}}var Zp=function(t){function e(e){var i=e||{};t.call(this,{attributions:i.attributions,cacheSize:i.cacheSize,crossOrigin:i.crossOrigin,projection:i.projection,reprojectionErrorThreshold:i.reprojectionErrorThreshold,tileGrid:i.tileGrid,tileLoadFunction:i.tileLoadFunction,tileUrlFunction:Hp,url:i.url,urls:i.urls,wrapX:void 0===i.wrapX||i.wrapX,transition:i.transition}),this.params_=i.params||{},this.tmpExtent_=[1/0,1/0,-1/0,-1/0],this.setKey(this.getKeyForParams_())}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.getKeyForParams_=function(){var t=0,e=[];for(var i in this.params_)e[t++]=i+"-"+this.params_[i];return e.join("/")},e.prototype.getParams=function(){return this.params_},e.prototype.getRequestUrl_=function(t,e,i,r,n,o){var s=this.urls;if(s){var a,h=n.getCode().split(":").pop();if(o.SIZE=e[0]+","+e[1],o.BBOX=i.join(","),o.BBOXSR=h,o.IMAGESR=h,o.DPI=Math.round(o.DPI?o.DPI*r:90*r),1==s.length)a=s[0];else a=s[Xt(Cl(t),s.length)];return _p(a.replace(/MapServer\/?$/,"MapServer/export").replace(/ImageServer\/?$/,"ImageServer/exportImage"),o)}},e.prototype.getTilePixelRatio=function(t){return t},e.prototype.updateParams=function(t){u(this.params_,t),this.setKey(this.getKeyForParams_())},e}($u),qp=function(t){function e(e,i,r){t.call(this,e,On.LOADED),this.tileSize_=i,this.text_=r,this.canvas_=null}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.getImage=function(){if(this.canvas_)return this.canvas_;var t=this.tileSize_,e=Jn(t[0],t[1]);return e.strokeStyle="black",e.strokeRect(.5,.5,t[0]+.5,t[1]+.5),e.fillStyle="black",e.textAlign="center",e.textBaseline="middle",e.font="24px sans-serif",e.fillText(this.text_,t[0]/2,t[1]/2),this.canvas_=e.canvas,e.canvas},e.prototype.load=function(){},e}(vl),Jp=function(t){function e(e){t.call(this,{opaque:!1,projection:e.projection,tileGrid:e.tileGrid,wrapX:void 0===e.wrapX||e.wrapX})}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.getTile=function(t,e,i){var r=Sl(t,e,i);if(this.tileCache.containsKey(r))return this.tileCache.get(r);var n=ho(this.tileGrid.getTileSize(t)),o=[t,e,i],s=this.getTileCoordForTileUrlFunction(o),a=s?this.getTileCoordForTileUrlFunction(s).toString():"",h=new qp(o,n,a);return this.tileCache.set(r,h),h},e}(jl),Qp=function(t){function e(e){if(t.call(this,{attributions:e.attributions,cacheSize:e.cacheSize,crossOrigin:e.crossOrigin,projection:Ee("EPSG:3857"),reprojectionErrorThreshold:e.reprojectionErrorThreshold,state:ro.LOADING,tileLoadFunction:e.tileLoadFunction,wrapX:void 0===e.wrapX||e.wrapX,transition:e.transition}),this.tileJSON_=null,e.url)if(e.jsonp)Yu(e.url,this.handleTileJSONResponse.bind(this),this.handleTileJSONError.bind(this));else{var i=new XMLHttpRequest;i.addEventListener("load",this.onXHRLoad_.bind(this)),i.addEventListener("error",this.onXHRError_.bind(this)),i.open("GET",e.url),i.send()}else e.tileJSON?this.handleTileJSONResponse(e.tileJSON):Y(!1,51)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.onXHRLoad_=function(t){var e=t.target;if(!e.status||e.status>=200&&e.status<300){var i;try{i=JSON.parse(e.responseText)}catch(t){return void this.handleTileJSONError()}this.handleTileJSONResponse(i)}else this.handleTileJSONError()},e.prototype.onXHRError_=function(t){this.handleTileJSONError()},e.prototype.getTileJSON=function(){return this.tileJSON_},e.prototype.handleTileJSONResponse=function(t){var e,i=Ee("EPSG:4326"),r=this.getProjection();if(void 0!==t.bounds){var n=Le(i,r);e=Ft(t.bounds,n)}var o=t.minzoom||0,s=t.maxzoom||22,a=Fl({extent:Gl(r),maxZoom:s,minZoom:o});if(this.tileGrid=a,this.tileUrlFunction=Du(t.tiles,a),void 0!==t.attribution&&!this.getAttributions()){var h=void 0!==e?e:i.getExtent();this.setAttributions(function(e){return Pt(h,e.extent)?[t.attribution]:null})}this.tileJSON_=t,this.setState(ro.READY)},e.prototype.handleTileJSONError=function(){this.setState(ro.ERROR)},e}($u);function $p(t,e,i){var r=this.getTileGrid();if(r||(r=this.getTileGridForProjection(i)),!(r.getResolutions().length<=t[0])){1==e||this.hidpi_&&void 0!==this.serverType_||(e=1);var n=r.getResolution(t[0]),o=r.getTileCoordExtent(t,this.tmpExtent_),s=ho(r.getTileSize(t[0]),this.tmpSize),a=this.gutter_;0!==a&&(s=so(s,a,this.tmpSize),o=et(o,n*a,o)),1!=e&&(s=ao(s,e,this.tmpSize));var h={SERVICE:"WMS",VERSION:xp,REQUEST:"GetMap",FORMAT:"image/png",TRANSPARENT:!0};return u(h,this.params_),this.getRequestUrl_(t,s,o,e,i,h)}}var tc=function(t){function e(e){var i=e||{},r=i.params||{},n=!("TRANSPARENT"in r)||r.TRANSPARENT;t.call(this,{attributions:i.attributions,cacheSize:i.cacheSize,crossOrigin:i.crossOrigin,opaque:!n,projection:i.projection,reprojectionErrorThreshold:i.reprojectionErrorThreshold,tileClass:i.tileClass,tileGrid:i.tileGrid,tileLoadFunction:i.tileLoadFunction,tileUrlFunction:$p,url:i.url,urls:i.urls,wrapX:void 0===i.wrapX||i.wrapX,transition:i.transition}),this.gutter_=void 0!==i.gutter?i.gutter:0,this.params_=r,this.v13_=!0,this.serverType_=i.serverType,this.hidpi_=void 0===i.hidpi||i.hidpi,this.tmpExtent_=[1/0,1/0,-1/0,-1/0],this.updateV13_(),this.setKey(this.getKeyForParams_())}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.getGetFeatureInfoUrl=function(t,e,i,r){var n=Ee(i),o=this.getProjection(),s=this.getTileGrid();s||(s=this.getTileGridForProjection(n));var a=s.getTileCoordForCoordAndResolution(t,e);if(!(s.getResolutions().length<=a[0])){var h=s.getResolution(a[0]),l=s.getTileCoordExtent(a,this.tmpExtent_),p=ho(s.getTileSize(a[0]),this.tmpSize),c=this.gutter_;0!==c&&(p=so(p,c,this.tmpSize),l=et(l,h*c,l)),o&&o!==n&&(h=Bu(o,n,t,h),l=be(l,n,o),t=Pe(t,n,o));var d={SERVICE:"WMS",VERSION:xp,REQUEST:"GetFeatureInfo",FORMAT:"image/png",TRANSPARENT:!0,QUERY_LAYERS:this.params_.LAYERS};u(d,this.params_,r);var f=Math.floor((t[0]-l[0])/h),_=Math.floor((l[3]-t[1])/h);return d[this.v13_?"I":"X"]=f,d[this.v13_?"J":"Y"]=_,this.getRequestUrl_(a,p,l,1,o||n,d)}},e.prototype.getGutter=function(){return this.gutter_},e.prototype.getParams=function(){return this.params_},e.prototype.getRequestUrl_=function(t,e,i,r,n,o){var s=this.urls;if(s){if(o.WIDTH=e[0],o.HEIGHT=e[1],o[this.v13_?"CRS":"SRS"]=n.getCode(),"STYLES"in this.params_||(o.STYLES=""),1!=r)switch(this.serverType_){case Sp:var a=90*r+.5|0;"FORMAT_OPTIONS"in o?o.FORMAT_OPTIONS+=";dpi:"+a:o.FORMAT_OPTIONS="dpi:"+a;break;case Tp:o.MAP_RESOLUTION=90*r;break;case Ep:case Cp:o.DPI=90*r;break;default:Y(!1,52)}var h,l,u=n.getAxisOrientation(),p=i;if(this.v13_&&"ne"==u.substr(0,2))h=i[0],p[0]=i[1],p[1]=h,h=i[2],p[2]=i[3],p[3]=h;if(o.BBOX=p.join(","),1==s.length)l=s[0];else l=s[Xt(Cl(t),s.length)];return _p(l,o)}},e.prototype.getTilePixelRatio=function(t){return this.hidpi_&&void 0!==this.serverType_?t:1},e.prototype.getKeyForParams_=function(){var t=0,e=[];for(var i in this.params_)e[t++]=i+"-"+this.params_[i];return e.join("/")},e.prototype.updateParams=function(t){u(this.params_,t),this.updateV13_(),this.setKey(this.getKeyForParams_())},e.prototype.updateV13_=function(){var t=this.params_.VERSION||xp;this.v13_=Ki(t,"1.3")>=0},e}($u),ec=function(t){function e(e,i,r,n,o,s){t.call(this,e,i),this.src_=r,this.extent_=n,this.preemptive_=o,this.grid_=null,this.keys_=null,this.data_=null,this.jsonp_=s}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.getImage=function(){return null},e.prototype.getData=function(t){if(!this.grid_||!this.keys_)return null;var e=(t[0]-this.extent_[0])/(this.extent_[2]-this.extent_[0]),i=(t[1]-this.extent_[1])/(this.extent_[3]-this.extent_[1]),r=this.grid_[Math.floor((1-i)*this.grid_.length)];if("string"!=typeof r)return null;var n=r.charCodeAt(Math.floor(e*r.length));n>=93&&n--,n>=35&&n--;var o=null;if((n-=32)in this.keys_){var s=this.keys_[n];o=this.data_&&s in this.data_?this.data_[s]:s}return o},e.prototype.forDataAtCoordinate=function(t,e,i,r){this.state==On.IDLE&&!0===r?(m(this,M.CHANGE,function(r){e.call(i,this.getData(t))},this),this.loadInternal_()):!0===r?setTimeout(function(){e.call(i,this.getData(t))}.bind(this),0):e.call(i,this.getData(t))},e.prototype.getKey=function(){return this.src_},e.prototype.handleError_=function(){this.state=On.ERROR,this.changed()},e.prototype.handleLoad_=function(t){this.grid_=t.grid,this.keys_=t.keys,this.data_=t.data,this.state=On.EMPTY,this.changed()},e.prototype.loadInternal_=function(){if(this.state==On.IDLE)if(this.state=On.LOADING,this.jsonp_)Yu(this.src_,this.handleLoad_.bind(this),this.handleError_.bind(this));else{var t=new XMLHttpRequest;t.addEventListener("load",this.onXHRLoad_.bind(this)),t.addEventListener("error",this.onXHRError_.bind(this)),t.open("GET",this.src_),t.send()}},e.prototype.onXHRLoad_=function(t){var e=t.target;if(!e.status||e.status>=200&&e.status<300){var i;try{i=JSON.parse(e.responseText)}catch(t){return void this.handleError_()}this.handleLoad_(i)}else this.handleError_()},e.prototype.onXHRError_=function(t){this.handleError_()},e.prototype.load=function(){this.preemptive_&&this.loadInternal_()},e}(vl),ic=function(t){function e(e){if(t.call(this,{projection:Ee("EPSG:3857"),state:ro.LOADING}),this.preemptive_=void 0===e.preemptive||e.preemptive,this.tileUrlFunction_=ju,this.template_=void 0,this.jsonp_=e.jsonp||!1,e.url)if(this.jsonp_)Yu(e.url,this.handleTileJSONResponse.bind(this),this.handleTileJSONError.bind(this));else{var i=new XMLHttpRequest;i.addEventListener("load",this.onXHRLoad_.bind(this)),i.addEventListener("error",this.onXHRError_.bind(this)),i.open("GET",e.url),i.send()}else e.tileJSON?this.handleTileJSONResponse(e.tileJSON):Y(!1,51)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.onXHRLoad_=function(t){var e=t.target;if(!e.status||e.status>=200&&e.status<300){var i;try{i=JSON.parse(e.responseText)}catch(t){return void this.handleTileJSONError()}this.handleTileJSONResponse(i)}else this.handleTileJSONError()},e.prototype.onXHRError_=function(t){this.handleTileJSONError()},e.prototype.getTemplate=function(){return this.template_},e.prototype.forDataAtCoordinateAndResolution=function(t,e,i,r){if(this.tileGrid){var n=this.tileGrid.getTileCoordForCoordAndResolution(t,e);this.getTile(n[0],n[1],n[2],1,this.getProjection()).forDataAtCoordinate(t,i,null,r)}else!0===r?setTimeout(function(){i(null)},0):i(null)},e.prototype.handleTileJSONError=function(){this.setState(ro.ERROR)},e.prototype.handleTileJSONResponse=function(t){var e,i=Ee("EPSG:4326"),r=this.getProjection();if(void 0!==t.bounds){var n=Le(i,r);e=Ft(t.bounds,n)}var o=t.minzoom||0,s=t.maxzoom||22,a=Fl({extent:Gl(r),maxZoom:s,minZoom:o});this.tileGrid=a,this.template_=t.template;var h=t.grids;if(h){if(this.tileUrlFunction_=Du(h,a),void 0!==t.attribution){var l=void 0!==e?e:i.getExtent();this.setAttributions(function(e){return Pt(l,e.extent)?[t.attribution]:null})}this.setState(ro.READY)}else this.setState(ro.ERROR)},e.prototype.getTile=function(t,e,i,r,n){var o=Sl(t,e,i);if(this.tileCache.containsKey(o))return this.tileCache.get(o);var s=[t,e,i],a=this.getTileCoordForTileUrlFunction(s,n),h=this.tileUrlFunction_(a,r,n),l=new ec(s,void 0!==h?On.IDLE:On.EMPTY,void 0!==h?h:"",this.tileGrid.getTileCoordExtent(s),this.preemptive_,this.jsonp_);return this.tileCache.set(o,l),l},e.prototype.useTile=function(t,e,i){var r=Sl(t,e,i);this.tileCache.containsKey(r)&&this.tileCache.get(r)},e}(jl),rc=function(t){function e(i,r,n,o,s,a,h,l,u,p,c,d,f,_,g){if(t.call(this,i,r,{transition:0}),this.context_={},this.loader_,this.replayState_={},this.sourceTiles_=p,this.tileKeys=[],this.extent=null,this.sourceRevision_=n,this.wrappedTileCoord=a,this.loadListenerKeys_=[],this.sourceTileListenerKeys_=[],a){var y=this.extent=u.getTileCoordExtent(a),m=u.getResolution(g),x=l.getZForResolution(m),E=g!=i[0],S=0;if(l.forEachTileCoord(y,x,function(t){var e=wt(y,l.getTileCoordExtent(t)),i=l.getExtent();if(i&&(e=wt(e,i,e)),Ot(e)/m>=.5&&Rt(e)/m>=.5){++S;var r=t.toString(),n=p[r];if(!n&&!E){var a=h(t,c,d);n=p[r]=new f(t,void 0==a?On.EMPTY:On.IDLE,void 0==a?"":a,o,s),this.sourceTileListenerKeys_.push(v(n,M.CHANGE,_))}!n||E&&n.getState()!=On.LOADED||(n.consumers++,this.tileKeys.push(r))}}.bind(this)),E&&S==this.tileKeys.length&&this.finishLoading_(),g<=i[0]&&this.state!=On.LOADED)for(;g>u.getMinZoom();){var T=new e(i,r,n,o,s,a,h,l,u,p,c,d,f,I,--g);if(T.state==On.LOADED){this.interimTile=T;break}}}}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.disposeInternal=function(){this.state=On.ABORT,this.changed(),this.interimTile&&this.interimTile.dispose();for(var e=0,i=this.tileKeys.length;e=0;--i){var r=this.getTile(this.tileKeys[i]).getState();r!=On.LOADED&&--t,r==On.EMPTY&&++e}t==this.tileKeys.length?(this.loadListenerKeys_.forEach(E),this.loadListenerKeys_.length=0,this.setState(On.LOADED)):this.setState(e==this.tileKeys.length?On.EMPTY:On.ERROR)},e}(vl);function nc(t,e){var i=Zl(e,t.getFormat(),t.onLoad.bind(t),t.onError.bind(t));t.setLoader(i)}var oc=[0,0,4096,4096],sc=function(t){function e(e,i,r,n,o,s){t.call(this,e,i,s),this.consumers=0,this.extent_=null,this.format_=n,this.features_=null,this.loader_,this.projection_=null,this.replayGroups_={},this.tileLoadFunction_=o,this.url_=r}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.disposeInternal=function(){this.features_=null,this.replayGroups_={},this.state=On.ABORT,this.changed(),t.prototype.disposeInternal.call(this)},e.prototype.getExtent=function(){return this.extent_||oc},e.prototype.getFormat=function(){return this.format_},e.prototype.getFeatures=function(){return this.features_},e.prototype.getKey=function(){return this.url_},e.prototype.getProjection=function(){return this.projection_},e.prototype.getReplayGroup=function(t,e){return this.replayGroups_[o(t)+","+e]},e.prototype.load=function(){this.state==On.IDLE&&(this.setState(On.LOADING),this.tileLoadFunction_(this,this.url_),this.loader_(null,NaN,null))},e.prototype.onLoad=function(t,e,i){this.setProjection(e),this.setFeatures(t),this.setExtent(i)},e.prototype.onError=function(){this.setState(On.ERROR)},e.prototype.setExtent=function(t){this.extent_=t},e.prototype.setFeatures=function(t){this.features_=t,this.setState(On.LOADED)},e.prototype.setProjection=function(t){this.projection_=t},e.prototype.setReplayGroup=function(t,e,i){this.replayGroups_[o(t)+","+e]=i},e.prototype.setLoader=function(t){this.loader_=t},e}(vl),ac=function(t){function e(e){var i=e.projection||"EPSG:3857",r=e.extent||Gl(i),n=e.tileGrid||Fl({extent:r,maxZoom:e.maxZoom||22,minZoom:e.minZoom,tileSize:e.tileSize||512});t.call(this,{attributions:e.attributions,cacheSize:void 0!==e.cacheSize?e.cacheSize:128,opaque:!1,projection:i,state:e.state,tileGrid:n,tileLoadFunction:e.tileLoadFunction?e.tileLoadFunction:nc,tileUrlFunction:e.tileUrlFunction,url:e.url,urls:e.urls,wrapX:void 0===e.wrapX||e.wrapX,transition:e.transition}),this.format_=e.format?e.format:null,this.sourceTiles_={},this.overlaps_=void 0==e.overlaps||e.overlaps,this.tileClass=e.tileClass?e.tileClass:sc,this.tileGrids_={}}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.getOverlaps=function(){return this.overlaps_},e.prototype.clear=function(){this.tileCache.clear(),this.sourceTiles_={}},e.prototype.getTile=function(t,e,i,r,n){var o=Sl(t,e,i);if(this.tileCache.containsKey(o))return this.tileCache.get(o);var s=[t,e,i],a=this.getTileCoordForTileUrlFunction(s,n),h=new rc(s,null!==a?On.IDLE:On.EMPTY,this.getRevision(),this.format_,this.tileLoadFunction,a,this.tileUrlFunction,this.tileGrid,this.getTileGridForProjection(n),this.sourceTiles_,r,n,this.tileClass,this.handleTileChange.bind(this),s[0]);return this.tileCache.set(o,h),h},e.prototype.getTileGridForProjection=function(t){var e=t.getCode(),i=this.tileGrids_[e];if(!i){var r=this.tileGrid;i=this.tileGrids_[e]=Nl(t,void 0,r?r.getTileSize(r.getMinZoom()):void 0)}return i},e.prototype.getTilePixelRatio=function(t){return t},e.prototype.getTilePixelSize=function(t,e,i){var r=ho(this.getTileGridForProjection(i).getTileSize(t),this.tmpSize);return[Math.round(r[0]*e),Math.round(r[1]*e)]},e}(Ju),hc={KVP:"KVP",REST:"REST"},lc=function(t){function e(e){var i=void 0!==e.requestEncoding?e.requestEncoding:hc.KVP,r=e.tileGrid,n=e.urls;void 0===n&&void 0!==e.url&&(n=Uu(e.url)),t.call(this,{attributions:e.attributions,cacheSize:e.cacheSize,crossOrigin:e.crossOrigin,projection:e.projection,reprojectionErrorThreshold:e.reprojectionErrorThreshold,tileClass:e.tileClass,tileGrid:r,tileLoadFunction:e.tileLoadFunction,tilePixelRatio:e.tilePixelRatio,tileUrlFunction:ju,urls:n,wrapX:void 0!==e.wrapX&&e.wrapX,transition:e.transition}),this.version_=void 0!==e.version?e.version:"1.0.0",this.format_=void 0!==e.format?e.format:"image/jpeg",this.dimensions_=void 0!==e.dimensions?e.dimensions:{},this.layer_=e.layer,this.matrixSet_=e.matrixSet,this.style_=e.style,this.requestEncoding_=i,this.setKey(this.getKeyForDimensions_()),n&&n.length>0&&(this.tileUrlFunction=ku(n.map(uc.bind(this))))}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.setUrls=function(t){this.urls=t;var e=t.join("\n");this.setTileUrlFunction(ku(t.map(uc.bind(this))),e)},e.prototype.getDimensions=function(){return this.dimensions_},e.prototype.getFormat=function(){return this.format_},e.prototype.getLayer=function(){return this.layer_},e.prototype.getMatrixSet=function(){return this.matrixSet_},e.prototype.getRequestEncoding=function(){return this.requestEncoding_},e.prototype.getStyle=function(){return this.style_},e.prototype.getVersion=function(){return this.version_},e.prototype.getKeyForDimensions_=function(){var t=0,e=[];for(var i in this.dimensions_)e[t++]=i+"-"+this.dimensions_[i];return e.join("/")},e.prototype.updateDimensions=function(t){u(this.dimensions_,t),this.setKey(this.getKeyForDimensions_())},e}($u);function uc(t){var e=this.requestEncoding_,i={layer:this.layer_,style:this.style_,tilematrixset:this.matrixSet_};e==hc.KVP&&u(i,{Service:"WMTS",Request:"GetTile",Version:this.version_,Format:this.format_}),t=e==hc.KVP?_p(t,i):t.replace(/\{(\w+?)\}/g,function(t,e){return e.toLowerCase()in i?i[e.toLowerCase()]:t});var r=this.tileGrid,n=this.dimensions_;return function(i,o,s){if(i){var a={TileMatrix:r.getMatrixId(i[0]),TileCol:i[1],TileRow:-i[2]-1};u(a,n);var h=t;return h=e==hc.KVP?_p(h,a):h.replace(/\{(\w+?)\}/g,function(t,e){return a[e]})}}}var pc={DEFAULT:"default",TRUNCATED:"truncated"},cc=function(t){function e(e,i,r,n,o,s,a){t.call(this,i,r,n,o,s,a),this.zoomifyImage_=null,this.tileSize_=ho(e.getTileSize(i[0]))}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.getImage=function(){if(this.zoomifyImage_)return this.zoomifyImage_;var e=t.prototype.getImage.call(this);if(this.state==On.LOADED){var i=this.tileSize_;if(e.width==i[0]&&e.height==i[1])return this.zoomifyImage_=e,e;var r=Jn(i[0],i[1]);return r.drawImage(e,0,0),this.zoomifyImage_=r.canvas,r.canvas}return e},e}(xl),dc=function(t){function e(e){var i=e||{},r=i.size,n=void 0!==i.tierSizeCalculation?i.tierSizeCalculation:pc.DEFAULT,o=r[0],s=r[1],a=i.extent||[0,-r[1],r[0],0],h=[],l=i.tileSize||An,u=l;switch(n){case pc.DEFAULT:for(;o>u||s>u;)h.push([Math.ceil(o/u),Math.ceil(s/u)]),u+=u;break;case pc.TRUNCATED:for(var p=o,c=s;p>u||c>u;)h.push([Math.ceil(p/u),Math.ceil(c/u)]),p>>=1,c>>=1;break;default:Y(!1,53)}h.push([1,1]),h.reverse();for(var d=[1],f=[0],_=1,g=h.length;_0)break}this.source_&&(this.source_.clear(),this.source_.addFeatures(s)),this.dispatchEvent(new Tc(Sc,t,s,n))},e.prototype.registerListeners_=function(){var t=this.getMap();if(t){var e=this.target?this.target:t.getViewport();this.dropListenKeys_=[v(e,M.DROP,Cc,this),v(e,M.DRAGENTER,Rc,this),v(e,M.DRAGOVER,Rc,this),v(e,M.DROP,Rc,this)]}},e.prototype.setActive=function(e){t.prototype.setActive.call(this,e),e?this.registerListeners_():this.unregisterListeners_()},e.prototype.setMap=function(e){this.unregisterListeners_(),t.prototype.setMap.call(this,e),this.getActive()&&this.registerListeners_()},e.prototype.tryReadFeatures_=function(t,e,i){try{return t.readFeatures(e,i)}catch(t){return null}},e.prototype.unregisterListeners_=function(){this.dropListenKeys_&&(this.dropListenKeys_.forEach(E),this.dropListenKeys_=null)},e}(Fo),Ic=function(t){function e(e){var i=e||{};t.call(this,i),this.condition_=i.condition?i.condition:zo,this.lastAngle_=void 0,this.lastMagnitude_=void 0,this.lastScaleDelta_=0,this.duration_=void 0!==i.duration?i.duration:400}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.handleDragEvent=function(t){if(Ko(t)){var e=t.map,i=e.getSize(),r=t.pixel,n=r[0]-i[0]/2,o=i[1]/2-r[1],s=Math.atan2(o,n),a=Math.sqrt(n*n+o*o),h=e.getView();if(h.getConstraints().rotation!==Gn&&void 0!==this.lastAngle_){var l=s-this.lastAngle_;Oo(h,h.getRotation()-l)}if(this.lastAngle_=s,void 0!==this.lastMagnitude_)Mo(h,this.lastMagnitude_*(h.getResolution()/a));void 0!==this.lastMagnitude_&&(this.lastScaleDelta_=this.lastMagnitude_/a),this.lastMagnitude_=a}},e.prototype.handleUpEvent=function(t){if(!Ko(t))return!0;var e=t.map.getView();e.setHint(jn,-1);var i=this.lastScaleDelta_-1;return Lo(e,e.getRotation()),Po(e,e.getResolution(),void 0,this.duration_,i),this.lastScaleDelta_=0,!1},e.prototype.handleDownEvent=function(t){return!!Ko(t)&&(!!this.condition_(t)&&(t.map.getView().setHint(jn,1),this.lastAngle_=void 0,this.lastMagnitude_=void 0,!0))},e}(qo),Lc=function(t){function e(e,i,r){if(t.call(this),void 0!==r&&void 0===i)this.setFlatCoordinates(r,e);else{var n=i||0;this.setCenterAndRadius(e,n,r)}}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.clone=function(){return new e(this.flatCoordinates.slice(),void 0,this.layout)},e.prototype.closestPointXY=function(t,e,i,r){var n=this.flatCoordinates,o=t-n[0],s=e-n[1],a=o*o+s*s;if(a=e[0]||(t[1]<=e[1]&&t[3]>=e[1]||mt(t,this.intersectsCoordinate,this))}return!1},e.prototype.setCenter=function(t){var e=this.stride,i=this.flatCoordinates[e]-this.flatCoordinates[0],r=t.slice();r[e]=r[0]+i;for(var n=1;n=this.dragVertexDelay_?(this.downPx_=e.pixel,this.shouldHandle_=!this.freehand_,i=!0):this.lastDragTime_=void 0,this.shouldHandle_&&void 0!==this.downTimeout_&&(clearTimeout(this.downTimeout_),this.downTimeout_=void 0));return this.freehand_&&e.type===Ar.POINTERDRAG&&null!==this.sketchFeature_?(this.addToDrawing_(e),r=!1):this.freehand_&&e.type===Ar.POINTERDOWN?r=!1:i?(r=e.type===Ar.POINTERMOVE)&&this.freehand_?r=this.handlePointerMove_(e):(e.pointerEvent.pointerType==Ur||e.type===Ar.POINTERDRAG&&void 0===this.downTimeout_)&&this.handlePointerMove_(e):e.type===Ar.DBLCLICK&&(r=!1),t.prototype.handleEvent.call(this,e)&&r},e.prototype.handleDownEvent=function(t){return this.shouldHandle_=!this.freehand_,this.freehand_?(this.downPx_=t.pixel,this.finishCoordinate_||this.startDrawing_(t),!0):!!this.condition_(t)&&(this.lastDragTime_=Date.now(),this.downTimeout_=setTimeout(function(){this.handlePointerMove_(new Nr(Ar.POINTERMOVE,t.map,t.pointerEvent,!1,t.frameState))}.bind(this),this.dragVertexDelay_),this.downPx_=t.pixel,!0)},e.prototype.handleUpEvent=function(t){var e=!0;this.downTimeout_&&(clearTimeout(this.downTimeout_),this.downTimeout_=void 0),this.handlePointerMove_(t);var i=this.mode_===Ac.CIRCLE;return this.shouldHandle_?(this.finishCoordinate_?this.freehand_||i?this.finishDrawing():this.atFinish_(t)?this.finishCondition_(t)&&this.finishDrawing():this.addToDrawing_(t):(this.startDrawing_(t),this.mode_===Ac.POINT&&this.finishDrawing()),e=!1):this.freehand_&&(this.finishCoordinate_=null,this.abortDrawing_()),!e&&this.stopClick_&&t.stopPropagation(),e},e.prototype.handlePointerMove_=function(t){if(this.downPx_&&(!this.freehand_&&this.shouldHandle_||this.freehand_&&!this.shouldHandle_)){var e=this.downPx_,i=t.pixel,r=e[0]-i[0],n=e[1]-i[1],o=r*r+n*n;if(this.shouldHandle_=this.freehand_?o>this.squaredClickTolerance_:o<=this.squaredClickTolerance_,!this.shouldHandle_)return!0}return this.finishCoordinate_?this.modifyDrawing_(t):this.createOrUpdateSketchPoint_(t),!0},e.prototype.atFinish_=function(t){var e=!1;if(this.sketchFeature_){var i=!1,r=[this.finishCoordinate_];if(this.mode_===Ac.LINE_STRING)i=this.sketchCoords_.length>this.minPoints_;else if(this.mode_===Ac.POLYGON){var n=this.sketchCoords_;i=n[0].length>this.minPoints_,r=[n[0][0],n[0][n[0].length-2]]}if(i)for(var o=t.map,s=0,a=r.length;s=this.maxPoints_&&(this.freehand_?i.pop():e=!0),i.push(r.slice()),this.geometryFunction_(i,n)):this.mode_===Ac.POLYGON&&((i=this.sketchCoords_[0]).length>=this.maxPoints_&&(this.freehand_?i.pop():e=!0),i.push(r.slice()),e&&(this.finishCoordinate_=i[0]),this.geometryFunction_(this.sketchCoords_,n)),this.updateSketchFeatures_(),e&&this.finishDrawing()},e.prototype.removeLastPoint=function(){if(this.sketchFeature_){var t,e=this.sketchFeature_.getGeometry();this.mode_===Ac.LINE_STRING?((t=this.sketchCoords_).splice(-2,1),this.geometryFunction_(t,e),t.length>=2&&(this.finishCoordinate_=t[t.length-2].slice())):this.mode_===Ac.POLYGON&&((t=this.sketchCoords_[0]).splice(-2,1),this.sketchLine_.getGeometry().setCoordinates(t),this.geometryFunction_(this.sketchCoords_,e)),0===t.length&&(this.finishCoordinate_=null),this.updateSketchFeatures_()}},e.prototype.finishDrawing=function(){var t=this.abortDrawing_();if(t){var e=this.sketchCoords_,i=t.getGeometry();this.mode_===Ac.LINE_STRING?(e.pop(),this.geometryFunction_(e,i)):this.mode_===Ac.POLYGON&&(e[0].pop(),this.geometryFunction_(e,i),e=i.getCoordinates()),this.type_===Nt.MULTI_POINT?t.setGeometry(new bc([e])):this.type_===Nt.MULTI_LINE_STRING?t.setGeometry(new Pc([e])):this.type_===Nt.MULTI_POLYGON&&t.setGeometry(new Fc([e])),this.dispatchEvent(new Dc(Gc,t)),this.features_&&this.features_.push(t),this.source_&&this.source_.addFeature(t)}},e.prototype.abortDrawing_=function(){this.finishCoordinate_=null;var t=this.sketchFeature_;return t&&(this.sketchFeature_=null,this.sketchPoint_=null,this.sketchLine_=null,this.overlay_.getSource().clear(!0)),t},e.prototype.extend=function(t){var e=t.getGeometry();this.sketchFeature_=t,this.sketchCoords_=e.getCoordinates();var i=this.sketchCoords_[this.sketchCoords_.length-1];this.finishCoordinate_=i.slice(),this.sketchCoords_.push(i.slice()),this.updateSketchFeatures_(),this.dispatchEvent(new Dc(Nc,this.sketchFeature_))},e.prototype.updateSketchFeatures_=function(){var t=[];this.sketchFeature_&&t.push(this.sketchFeature_),this.sketchLine_&&t.push(this.sketchLine_),this.sketchPoint_&&t.push(this.sketchPoint_);var e=this.overlay_.getSource();e.clear(!0),e.addFeatures(t)},e.prototype.updateState_=function(){var t=this.getMap(),e=this.getActive();t&&e||this.abortDrawing_(),this.overlay_.setMap(e?t:null)},e}(qo),jc={EXTENTCHANGED:"extentchanged"},Uc=function(t){function e(e){t.call(this,jc.EXTENTCHANGED),this.extent=e}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e}(P);function Yc(t){return function(e){return tt([t,e])}}function Bc(t,e){return t[0]==e[0]?function(i){return tt([t,[i[0],e[1]]])}:t[1]==e[1]?function(i){return tt([t,[e[0],i[1]]])}:null}var Vc=function(t){function e(e){var i=e||{};t.call(this,i),this.extent_=null,this.pointerHandler_=null,this.pixelTolerance_=void 0!==i.pixelTolerance?i.pixelTolerance:10,this.snappedToVertex_=!1,this.extentFeature_=null,this.vertexFeature_=null,e||(e={}),this.extentOverlay_=new gc({source:new op({useSpatialIndex:!1,wrapX:!!e.wrapX}),style:e.boxStyle?e.boxStyle:function(){var t=Fu();return function(e,i){return t[Nt.POLYGON]}}(),updateWhileAnimating:!0,updateWhileInteracting:!0}),this.vertexOverlay_=new gc({source:new op({useSpatialIndex:!1,wrapX:!!e.wrapX}),style:e.pointerStyle?e.pointerStyle:function(){var t=Fu();return function(e,i){return t[Nt.POINT]}}(),updateWhileAnimating:!0,updateWhileInteracting:!0}),e.extent&&this.setExtent(e.extent)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.snapToVertex_=function(t,e){var i=e.getCoordinateFromPixel(t),r=this.getExtent();if(r){var n=function(t){return[[[t[0],t[1]],[t[0],t[3]]],[[t[0],t[3]],[t[2],t[3]]],[[t[2],t[3]],[t[2],t[1]]],[[t[2],t[1]],[t[0],t[1]]]]}(r);n.sort(function(t,e){return rr(i,t)-rr(i,e)});var o=n[0],s=Zi(i,o),a=e.getPixelFromCoordinate(s);if(ir(t,a)<=this.pixelTolerance_){var h=e.getPixelFromCoordinate(o[0]),l=e.getPixelFromCoordinate(o[1]),u=er(a,h),p=er(a,l),c=Math.sqrt(Math.min(u,p));return this.snappedToVertex_=c<=this.pixelTolerance_,this.snappedToVertex_&&(s=u>p?o[1]:o[0]),s}}return null},e.prototype.handlePointerMove_=function(t){var e=t.pixel,i=t.map,r=this.snapToVertex_(e,i);r||(r=i.getCoordinateFromPixel(e)),this.createOrUpdatePointerFeature_(r)},e.prototype.createOrUpdateExtentFeature_=function(t){var e=this.extentFeature_;return e?t?e.setGeometry(Oi(t)):e.setGeometry(void 0):(e=new B(t?Oi(t):{}),this.extentFeature_=e,this.extentOverlay_.getSource().addFeature(e)),e},e.prototype.createOrUpdatePointerFeature_=function(t){var e=this.vertexFeature_;e?e.getGeometry().setCoordinates(t):(e=new B(new ci(t)),this.vertexFeature_=e,this.vertexOverlay_.getSource().addFeature(e));return e},e.prototype.handleEvent=function(e){return!e.pointerEvent||(e.type!=Ar.POINTERMOVE||this.handlingDownUpSequence||this.handlePointerMove_(e),t.prototype.handleEvent.call(this,e),!1)},e.prototype.handleDownEvent=function(t){var e=t.pixel,i=t.map,r=this.getExtent(),n=this.snapToVertex_(e,i),o=function(t){var e=null,i=null;return t[0]==r[0]?e=r[2]:t[0]==r[2]&&(e=r[0]),t[1]==r[1]?i=r[3]:t[1]==r[3]&&(i=r[1]),null!==e&&null!==i?[e,i]:null};if(n&&r){var s=n[0]==r[0]||n[0]==r[2]?n[0]:null,a=n[1]==r[1]||n[1]==r[3]?n[1]:null;null!==s&&null!==a?this.pointerHandler_=Yc(o(n)):null!==s?this.pointerHandler_=Bc(o([s,r[1]]),o([s,r[3]])):null!==a&&(this.pointerHandler_=Bc(o([r[0],a]),o([r[2],a])))}else n=i.getCoordinateFromPixel(e),this.setExtent([n[0],n[1],n[0],n[1]]),this.pointerHandler_=Yc(n);return!0},e.prototype.handleDragEvent=function(t){if(this.pointerHandler_){var e=t.coordinate;this.setExtent(this.pointerHandler_(e)),this.createOrUpdatePointerFeature_(e)}return!0},e.prototype.handleUpEvent=function(t){this.pointerHandler_=null;var e=this.getExtent();return e&&0!==xt(e)||this.setExtent(null),!1},e.prototype.setMap=function(e){this.extentOverlay_.setMap(e),this.vertexOverlay_.setMap(e),t.prototype.setMap.call(this,e)},e.prototype.getExtent=function(){return this.extent_},e.prototype.setExtent=function(t){this.extent_=t||null,this.createOrUpdateExtentFeature_(t),this.dispatchEvent(new Uc(this.extent_))},e}(qo),Xc=1,zc="modifystart",Wc="modifyend",Kc=function(t){function e(e,i,r){t.call(this,e),this.features=i,this.mapBrowserEvent=r}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e}(P);function Hc(t,e){return t.index-e.index}function Zc(t,e){var i=e.geometry;if(i.getType()===Nt.CIRCLE){var r=i;if(e.index===Xc){var n=er(r.getCenter(),t),o=Math.sqrt(n)-r.getRadius();return o*o}}return rr(t,e.segment)}function qc(t,e){var i=e.geometry;return i.getType()===Nt.CIRCLE&&e.index===Xc?i.getClosestPoint(t):Zi(t,e.segment)}var Jc=function(t){function e(e){var i;if(t.call(this,e),this.condition_=e.condition?e.condition:Ho,this.defaultDeleteCondition_=function(t){return Go(t)&&Vo(t)},this.deleteCondition_=e.deleteCondition?e.deleteCondition:this.defaultDeleteCondition_,this.insertVertexCondition_=e.insertVertexCondition?e.insertVertexCondition:jo,this.vertexFeature_=null,this.vertexSegments_=null,this.lastPixel_=[0,0],this.ignoreNextSingleClick_=!1,this.modified_=!1,this.rBush_=new tl,this.pixelTolerance_=void 0!==e.pixelTolerance?e.pixelTolerance:10,this.snappedToVertex_=!1,this.changingFeature_=!1,this.dragSegments_=[],this.overlay_=new gc({source:new op({useSpatialIndex:!1,wrapX:!!e.wrapX}),style:e.style?e.style:function(){var t=Fu();return function(e,i){return t[Nt.POINT]}}(),updateWhileAnimating:!0,updateWhileInteracting:!0}),this.SEGMENT_WRITERS_={Point:this.writePointGeometry_,LineString:this.writeLineStringGeometry_,LinearRing:this.writeLineStringGeometry_,Polygon:this.writePolygonGeometry_,MultiPoint:this.writeMultiPointGeometry_,MultiLineString:this.writeMultiLineStringGeometry_,MultiPolygon:this.writeMultiPolygonGeometry_,Circle:this.writeCircleGeometry_,GeometryCollection:this.writeGeometryCollectionGeometry_},this.source_=null,e.source?(this.source_=e.source,i=new U(this.source_.getFeatures()),v(this.source_,rp.ADDFEATURE,this.handleSourceAdd_,this),v(this.source_,rp.REMOVEFEATURE,this.handleSourceRemove_,this)):i=e.features,!i)throw new Error("The modify interaction requires features or a source");this.features_=i,this.features_.forEach(this.addFeature_.bind(this)),v(this.features_,h.ADD,this.handleFeatureAdd_,this),v(this.features_,h.REMOVE,this.handleFeatureRemove_,this),this.lastPointerEvent_=null}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.addFeature_=function(t){var e=t.getGeometry();e&&e.getType()in this.SEGMENT_WRITERS_&&this.SEGMENT_WRITERS_[e.getType()].call(this,t,e);var i=this.getMap();i&&i.isRendered()&&this.getActive()&&this.handlePointerAtPixel_(this.lastPixel_,i),v(t,M.CHANGE,this.handleFeatureChange_,this)},e.prototype.willModifyFeatures_=function(t){this.modified_||(this.modified_=!0,this.dispatchEvent(new Kc(zc,this.features_,t)))},e.prototype.removeFeature_=function(t){this.removeFeatureSegmentData_(t),this.vertexFeature_&&0===this.features_.getLength()&&(this.overlay_.getSource().removeFeature(this.vertexFeature_),this.vertexFeature_=null),x(t,M.CHANGE,this.handleFeatureChange_,this)},e.prototype.removeFeatureSegmentData_=function(t){var e=this.rBush_,i=[];e.forEach(function(e){t===e.feature&&i.push(e)});for(var r=i.length-1;r>=0;--r)e.remove(i[r])},e.prototype.setActive=function(e){this.vertexFeature_&&!e&&(this.overlay_.getSource().removeFeature(this.vertexFeature_),this.vertexFeature_=null),t.prototype.setActive.call(this,e)},e.prototype.setMap=function(e){this.overlay_.setMap(e),t.prototype.setMap.call(this,e)},e.prototype.getOverlay=function(){return this.overlay_},e.prototype.handleSourceAdd_=function(t){t.feature&&this.features_.push(t.feature)},e.prototype.handleSourceRemove_=function(t){t.feature&&this.features_.remove(t.feature)},e.prototype.handleFeatureAdd_=function(t){this.addFeature_(t.element)},e.prototype.handleFeatureChange_=function(t){if(!this.changingFeature_){var e=t.target;this.removeFeature_(e),this.addFeature_(e)}},e.prototype.handleFeatureRemove_=function(t){var e=t.element;this.removeFeature_(e)},e.prototype.writePointGeometry_=function(t,e){var i=e.getCoordinates(),r={feature:t,geometry:e,segment:[i,i]};this.rBush_.insert(e.getExtent(),r)},e.prototype.writeMultiPointGeometry_=function(t,e){for(var i=e.getCoordinates(),r=0,n=i.length;r=0;--_)this.insertVertex_.apply(this,r[_])}return!!this.vertexFeature_},e.prototype.handleUpEvent=function(t){for(var e=this.dragSegments_.length-1;e>=0;--e){var i=this.dragSegments_[e][0],r=i.geometry;if(r.getType()===Nt.CIRCLE){var n=r.getCenter(),o=i.featureSegments[0],s=i.featureSegments[1];o.segment[0]=o.segment[1]=n,s.segment[0]=s.segment[1]=n,this.rBush_.update(pt(n),o),this.rBush_.update(r.getExtent(),s)}else this.rBush_.update(tt(i.segment),i)}return this.modified_&&(this.dispatchEvent(new Kc(Wc,this.features_,t)),this.modified_=!1),!1},e.prototype.handlePointerMove_=function(t){this.lastPixel_=t.pixel,this.handlePointerAtPixel_(t.pixel,t.map)},e.prototype.handlePointerAtPixel_=function(t,e){var i=e.getCoordinateFromPixel(t),r=et(pt(i),e.getView().getResolution()*this.pixelTolerance_),n=this.rBush_.getInExtent(r);if(n.length>0){n.sort(function(t,e){return Zc(i,t)-Zc(i,e)});var s=n[0],a=s.segment,h=qc(i,s),l=e.getPixelFromCoordinate(h),u=ir(t,l);if(u<=this.pixelTolerance_){var p={};if(s.geometry.getType()===Nt.CIRCLE&&s.index===Xc)this.snappedToVertex_=!0,this.createOrUpdateVertexFeature_(h);else{var c=e.getPixelFromCoordinate(a[0]),d=e.getPixelFromCoordinate(a[1]),f=er(l,c),_=er(l,d);u=Math.sqrt(Math.min(f,_)),this.snappedToVertex_=u<=this.pixelTolerance_,this.snappedToVertex_&&(h=f>_?a[1]:a[0]),this.createOrUpdateVertexFeature_(h);for(var g=1,y=n.length;g=0;--n)p=o((u=(i=c[n])[0]).feature),u.depth&&(p+="-"+u.depth.join("-")),p in d||(d[p]={}),0===i[1]?(d[p].right=u,d[p].index=u.index):1==i[1]&&(d[p].left=u,d[p].index=u.index+1);for(p in d){switch(l=d[p].right,a=d[p].left,h=(s=d[p].index)-1,u=void 0!==a?a:l,h<0&&(h=0),t=e=(r=u.geometry).getCoordinates(),f=!1,r.getType()){case Nt.MULTI_LINE_STRING:e[u.depth[0]].length>2&&(e[u.depth[0]].splice(s,1),f=!0);break;case Nt.LINE_STRING:e.length>2&&(e.splice(s,1),f=!0);break;case Nt.MULTI_POLYGON:t=t[u.depth[1]];case Nt.POLYGON:(t=t[u.depth[0]]).length>4&&(s==t.length-1&&(s=0),t.splice(s,1),f=!0,0===s&&(t.pop(),t.push(t[0]),h=t.length-1))}if(f){this.setGeometryCoordinates_(r,e);var _=[];if(void 0!==a&&(this.rBush_.remove(a),_.push(a.segment[0])),void 0!==l&&(this.rBush_.remove(l),_.push(l.segment[1])),void 0!==a&&void 0!==l){var g={depth:u.depth,feature:u.feature,geometry:u.geometry,index:h,segment:_};this.rBush_.insert(tt(g.segment),g)}this.updateSegmentIndices_(r,s,u.depth,-1),this.vertexFeature_&&(this.overlay_.getSource().removeFeature(this.vertexFeature_),this.vertexFeature_=null),c.length=0}}return f},e.prototype.setGeometryCoordinates_=function(t,e){this.changingFeature_=!0,t.setCoordinates(e),this.changingFeature_=!1},e.prototype.updateSegmentIndices_=function(t,e,i,r){this.rBush_.forEachInExtent(t.getExtent(),function(n){n.geometry===t&&(void 0===i||void 0===n.depth||Z(n.depth,i))&&n.index>e&&(n.index+=r)})},e}(qo),Qc={SELECT:"select"},$c=function(t){function e(e,i,r,n){t.call(this,e),this.selected=i,this.deselected=r,this.mapBrowserEvent=n}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e}(P);function td(t){if(!this.condition_(t))return!0;var e=this.addCondition_(t),i=this.removeCondition_(t),r=this.toggleCondition_(t),n=!e&&!i&&!r,o=t.map,s=this.getFeatures(),a=[],h=[];if(n){p(this.featureLayerAssociation_),o.forEachFeatureAtPixel(t.pixel,function(t,e){if(this.filter_(t,e))return h.push(t),this.addFeatureLayerAssociation_(t,e),!this.multi_}.bind(this),{layerFilter:this.layerFilter_,hitTolerance:this.hitTolerance_});for(var l=s.getLength()-1;l>=0;--l){var u=s.item(l),c=h.indexOf(u);c>-1?h.splice(c,1):(s.remove(u),a.push(u))}0!==h.length&&s.extend(h)}else{o.forEachFeatureAtPixel(t.pixel,function(t,n){if(this.filter_(t,n))return!e&&!r||X(s.getArray(),t)?(i||r)&&X(s.getArray(),t)&&(a.push(t),this.removeFeatureLayerAssociation_(t)):(h.push(t),this.addFeatureLayerAssociation_(t,n)),!this.multi_}.bind(this),{layerFilter:this.layerFilter_,hitTolerance:this.hitTolerance_});for(var d=a.length-1;d>=0;--d)s.remove(a[d]);s.extend(h)}return(h.length>0||a.length>0)&&this.dispatchEvent(new $c(Qc.SELECT,h,a,t)),Bo(t)}var ed=function(t){function e(e){t.call(this,{handleEvent:td});var i=e||{};this.condition_=i.condition?i.condition:Vo,this.addCondition_=i.addCondition?i.addCondition:Yo,this.removeCondition_=i.removeCondition?i.removeCondition:Yo,this.toggleCondition_=i.toggleCondition?i.toggleCondition:zo,this.multi_=!!i.multi&&i.multi,this.filter_=i.filter?i.filter:R,this.hitTolerance_=i.hitTolerance?i.hitTolerance:0;var r,n=new gc({source:new op({useSpatialIndex:!1,features:i.features,wrapX:i.wrapX}),style:i.style?i.style:function(){var t=Fu();return K(t[Nt.POLYGON],t[Nt.LINE_STRING]),K(t[Nt.GEOMETRY_COLLECTION],t[Nt.LINE_STRING]),function(e,i){return e.getGeometry()?t[e.getGeometry().getType()]:null}}(),updateWhileAnimating:!0,updateWhileInteracting:!0});if(this.featureOverlay_=n,i.layers)if("function"==typeof i.layers)r=i.layers;else{var o=i.layers;r=function(t){return X(o,t)}}else r=R;this.layerFilter_=r,this.featureLayerAssociation_={};var s=this.getFeatures();v(s,h.ADD,this.addFeature_,this),v(s,h.REMOVE,this.removeFeature_,this)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.addFeatureLayerAssociation_=function(t,e){this.featureLayerAssociation_[o(t)]=e},e.prototype.getFeatures=function(){return this.featureOverlay_.getSource().getFeaturesCollection()},e.prototype.getHitTolerance=function(){return this.hitTolerance_},e.prototype.getLayer=function(t){return this.featureLayerAssociation_[o(t)]},e.prototype.getOverlay=function(){return this.featureOverlay_},e.prototype.setHitTolerance=function(t){this.hitTolerance_=t},e.prototype.setMap=function(e){var i=this.getMap(),r=this.getFeatures();i&&r.forEach(i.unskipFeature.bind(i)),t.prototype.setMap.call(this,e),this.featureOverlay_.setMap(e),e&&r.forEach(e.skipFeature.bind(e))},e.prototype.addFeature_=function(t){var e=this.getMap();e&&e.skipFeature(t.element)},e.prototype.removeFeature_=function(t){var e=this.getMap();e&&e.unskipFeature(t.element)},e.prototype.removeFeatureLayerAssociation_=function(t){delete this.featureLayerAssociation_[o(t)]},e}(Fo);function id(t){return t.feature?t.feature:t.element?t.element:void 0}var rd=function(t){function e(e){var i=e||{},r=i;r.handleDownEvent||(r.handleDownEvent=R),r.stopDown||(r.stopDown=w),t.call(this,r),this.source_=i.source?i.source:null,this.vertex_=void 0===i.vertex||i.vertex,this.edge_=void 0===i.edge||i.edge,this.features_=i.features?i.features:null,this.featuresListenerKeys_=[],this.featureChangeListenerKeys_={},this.indexedFeaturesExtents_={},this.pendingFeatures_={},this.pixelCoordinate_=null,this.pixelTolerance_=void 0!==i.pixelTolerance?i.pixelTolerance:10,this.sortByDistance_=function(t,e){var i=rr(this.pixelCoordinate_,t.segment),r=rr(this.pixelCoordinate_,e.segment);return i-r}.bind(this),this.rBush_=new tl,this.SEGMENT_WRITERS_={Point:this.writePointGeometry_,LineString:this.writeLineStringGeometry_,LinearRing:this.writeLineStringGeometry_,Polygon:this.writePolygonGeometry_,MultiPoint:this.writeMultiPointGeometry_,MultiLineString:this.writeMultiLineStringGeometry_,MultiPolygon:this.writeMultiPolygonGeometry_,GeometryCollection:this.writeGeometryCollectionGeometry_,Circle:this.writeCircleGeometry_}}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.addFeature=function(t,e){var i=void 0===e||e,r=o(t),n=t.getGeometry();if(n){var s=this.SEGMENT_WRITERS_[n.getType()];s&&(this.indexedFeaturesExtents_[r]=n.getExtent([1/0,1/0,-1/0,-1/0]),s.call(this,t,n))}i&&(this.featureChangeListenerKeys_[r]=v(t,M.CHANGE,this.handleFeatureChange_,this))},e.prototype.forEachFeatureAdd_=function(t){this.addFeature(t)},e.prototype.forEachFeatureRemove_=function(t){this.removeFeature(t)},e.prototype.getFeatures_=function(){var t;return this.features_?t=this.features_:this.source_&&(t=this.source_.getFeatures()),t},e.prototype.handleEvent=function(e){var i=this.snapTo(e.pixel,e.coordinate,e.map);return i.snapped&&(e.coordinate=i.vertex.slice(0,2),e.pixel=i.vertexPixel),t.prototype.handleEvent.call(this,e)},e.prototype.handleFeatureAdd_=function(t){var e=id(t);this.addFeature(e)},e.prototype.handleFeatureRemove_=function(t){var e=id(t);this.removeFeature(e)},e.prototype.handleFeatureChange_=function(t){var e=t.target;if(this.handlingDownUpSequence){var i=o(e);i in this.pendingFeatures_||(this.pendingFeatures_[i]=e)}else this.updateFeature_(e)},e.prototype.handleUpEvent=function(t){var e=c(this.pendingFeatures_);return e.length&&(e.forEach(this.updateFeature_.bind(this)),this.pendingFeatures_={}),!1},e.prototype.removeFeature=function(t,e){var i=void 0===e||e,r=o(t),n=this.indexedFeaturesExtents_[r];if(n){var s=this.rBush_,a=[];s.forEachInExtent(n,function(e){t===e.feature&&a.push(e)});for(var h=a.length-1;h>=0;--h)s.remove(a[h])}i&&(E(this.featureChangeListenerKeys_[r]),delete this.featureChangeListenerKeys_[r])},e.prototype.setMap=function(e){var i=this.getMap(),r=this.featuresListenerKeys_,n=this.getFeatures_();i&&(r.forEach(E),r.length=0,n.forEach(this.forEachFeatureRemove_.bind(this))),t.prototype.setMap.call(this,e),e&&(this.features_?r.push(v(this.features_,h.ADD,this.handleFeatureAdd_,this),v(this.features_,h.REMOVE,this.handleFeatureRemove_,this)):this.source_&&r.push(v(this.source_,rp.ADDFEATURE,this.handleFeatureAdd_,this),v(this.source_,rp.REMOVEFEATURE,this.handleFeatureRemove_,this)),n.forEach(this.forEachFeatureAdd_.bind(this)))},e.prototype.snapTo=function(t,e,i){var r=tt([i.getCoordinateFromPixel([t[0]-this.pixelTolerance_,t[1]+this.pixelTolerance_]),i.getCoordinateFromPixel([t[0]+this.pixelTolerance_,t[1]-this.pixelTolerance_])]),n=this.rBush_.getInExtent(r);this.vertex_&&!this.edge_&&(n=n.filter(function(t){return t.feature.getGeometry().getType()!==Nt.CIRCLE}));var o,s,a,h,l=!1,u=null,p=null;if(n.length>0){this.pixelCoordinate_=e,n.sort(this.sortByDistance_);var c=n[0].segment,d=n[0].feature.getGeometry().getType()===Nt.CIRCLE;this.vertex_&&!this.edge_?(o=i.getPixelFromCoordinate(c[0]),s=i.getPixelFromCoordinate(c[1]),a=er(t,o),h=er(t,s),Math.sqrt(Math.min(a,h))<=this.pixelTolerance_&&(l=!0,u=a>h?c[1]:c[0],p=i.getPixelFromCoordinate(u))):this.edge_&&(u=d?function(t,e){var i=e.getRadius(),r=e.getCenter(),n=r[0],o=r[1],s=t[0]-n,a=t[1]-o;0===s&&0===a&&(s=1);var h=Math.sqrt(s*s+a*a);return[n+i*s/h,o+i*a/h]}(e,n[0].feature.getGeometry()):Zi(e,c),ir(t,p=i.getPixelFromCoordinate(u))<=this.pixelTolerance_&&(l=!0,this.vertex_&&!d&&(o=i.getPixelFromCoordinate(c[0]),s=i.getPixelFromCoordinate(c[1]),a=er(p,o),h=er(p,s),Math.sqrt(Math.min(a,h))<=this.pixelTolerance_&&(u=a>h?c[1]:c[0],p=i.getPixelFromCoordinate(u))))),l&&(p=[Math.round(p[0]),Math.round(p[1])])}return{snapped:l,vertex:u,vertexPixel:p}},e.prototype.updateFeature_=function(t){this.removeFeature(t,!1),this.addFeature(t,!1)},e.prototype.writeCircleGeometry_=function(t,e){for(var i=Pi(e).getCoordinates()[0],r=0,n=i.length-1;r=0;i--){var u=o[i][0],p=ot(new pi(u).getExtent(),new pi(h).getExtent());if(p){o[i].push(h),l=!0;break}}l||o.push([h.reverse()])}return o}(r.rings,n);1===o.length?(i=Nt.POLYGON,t.rings=o[0]):(i=Nt.MULTI_POLYGON,t.rings=o)}return dd((0,gd[i])(t),!1,e)}function md(t){var e=At.XY;return!0===t.hasZ&&!0===t.hasM?e=At.XYZM:!0===t.hasZ?e=At.XYZ:!0===t.hasM&&(e=At.XYM),e}function xd(t){var e=t.getLayout();return{hasZ:e===At.XYZ||e===At.XYZM,hasM:e===At.XYM||e===At.XYZM}}function Ed(t,e){return(0,yd[t.getType()])(dd(t,!0,e),e)}yd[Nt.POINT]=function(t,e){var i,r=t.getCoordinates(),n=t.getLayout();n===At.XYZ?i={x:r[0],y:r[1],z:r[2]}:n===At.XYM?i={x:r[0],y:r[1],m:r[2]}:n===At.XYZM?i={x:r[0],y:r[1],z:r[2],m:r[3]}:n===At.XY?i={x:r[0],y:r[1]}:Y(!1,34);return i},yd[Nt.LINE_STRING]=function(t,e){var i=t,r=xd(i);return{hasZ:r.hasZ,hasM:r.hasM,paths:[i.getCoordinates()]}},yd[Nt.POLYGON]=function(t,e){var i=t,r=xd(i);return{hasZ:r.hasZ,hasM:r.hasM,rings:i.getCoordinates(!1)}},yd[Nt.MULTI_POINT]=function(t,e){var i=t,r=xd(i);return{hasZ:r.hasZ,hasM:r.hasM,points:i.getCoordinates()}},yd[Nt.MULTI_LINE_STRING]=function(t,e){var i=t,r=xd(i);return{hasZ:r.hasZ,hasM:r.hasM,paths:i.getCoordinates()}},yd[Nt.MULTI_POLYGON]=function(t,e){for(var i=xd(t),r=t.getCoordinates(!1),n=[],o=0;o=0;s--)n.push(r[o][s]);return{hasZ:i.hasZ,hasM:i.hasM,rings:n}};var Sd=function(t){function e(e){var i=e||{};t.call(this),this.geometryName_=i.geometryName}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.readFeatureFromObject=function(t,e){var i=t,r=vd(i.geometry,e),n=new B;return this.geometryName_&&n.setGeometryName(this.geometryName_),n.setGeometry(r),e&&e.idField&&i.attributes[e.idField]&&n.setId(i.attributes[e.idField]),i.attributes&&n.setProperties(i.attributes),n},e.prototype.readFeaturesFromObject=function(t,e){var i=e||{};if(t.features){var r=[],n=t.features;i.idField=t.objectIdFieldName;for(var o=0,s=n.length;o0?i[0]:null},e.prototype.readFeatureFromNode=function(t,e){return null},e.prototype.readFeatures=function(t,e){if(t){if("string"==typeof t){var i=ru(t);return this.readFeaturesFromDocument(i,e)}return iu(t)?this.readFeaturesFromDocument(t,e):this.readFeaturesFromNode(t,e)}return[]},e.prototype.readFeaturesFromDocument=function(t,e){for(var i=[],r=t.firstChild;r;r=r.nextSibling)r.nodeType==Node.ELEMENT_NODE&&K(i,this.readFeaturesFromNode(r,e));return i},e.prototype.readFeaturesFromNode=function(t,e){return r()},e.prototype.readGeometry=function(t,e){if(t){if("string"==typeof t){var i=ru(t);return this.readGeometryFromDocument(i,e)}return iu(t)?this.readGeometryFromDocument(t,e):this.readGeometryFromNode(t,e)}return null},e.prototype.readGeometryFromDocument=function(t,e){return null},e.prototype.readGeometryFromNode=function(t,e){return null},e.prototype.readProjection=function(t){if(t){if("string"==typeof t){var e=ru(t);return this.readProjectionFromDocument(e)}return iu(t)?this.readProjectionFromDocument(t):this.readProjectionFromNode(t)}return null},e.prototype.readProjectionFromDocument=function(t){return this.dataProjection},e.prototype.readProjectionFromNode=function(t){return this.dataProjection},e.prototype.writeFeature=function(t,e){var i=this.writeFeatureNode(t,e);return this.xmlSerializer_.serializeToString(i)},e.prototype.writeFeatureNode=function(t,e){return null},e.prototype.writeFeatures=function(t,e){var i=this.writeFeaturesNode(t,e);return this.xmlSerializer_.serializeToString(i)},e.prototype.writeFeaturesNode=function(t,e){return null},e.prototype.writeGeometry=function(t,e){var i=this.writeGeometryNode(t,e);return this.xmlSerializer_.serializeToString(i)},e.prototype.writeGeometryNode=function(t,e){return null},e}(cd),Cd="http://www.opengis.net/gml",Rd=/^[\s\xa0]*$/,wd=function(t){function e(e){t.call(this);var i=e||{};this.featureType=i.featureType,this.featureNS=i.featureNS,this.srsName=i.srsName,this.schemaLocation="",this.FEATURE_COLLECTION_PARSERS={},this.FEATURE_COLLECTION_PARSERS[this.namespace]={featureMember:ou(this.readFeaturesInternal),featureMembers:su(this.readFeaturesInternal)}}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.readFeaturesInternal=function(t,e){var i=t.localName,r=null;if("FeatureCollection"==i)r=gu([],this.FEATURE_COLLECTION_PARSERS,t,e,this);else if("featureMembers"==i||"featureMember"==i){var n=e[0],o=n.featureType,s=n.featureNS;if(!o&&t.childNodes){o=[],s={};for(var a=0,h=t.childNodes.length;a0){n[a]={_content_:n[a]};for(var l=0;l1?o.Document=t:1==t.length&&(o.Placemark=t[0]);var s=o_[i.namespaceURI],a=du(o,s);return vu(n,s_,cu,a,[e],s,this),i},e}(Td);function g_(t,e){var i=null,r=[0,0],n="start";if(t.getImage()){var o=t.getImage().getImageSize();if(null===o&&(o=Bf),2==o.length){var s=t.getImage().getScale();r[0]=s*o[0]/2,r[1]=-s*o[1]/2,n="left"}}if(null!==t.getText()){var a=t.getText();(i=a.clone()).setFont(a.getFont()||c_.getFont()),i.setScale(a.getScale()||c_.getScale()),i.setFill(a.getFill()||c_.getFill()),i.setStroke(a.getStroke()||u_)}else i=c_.clone();return i.setText(e),i.setOffsetX(r[0]),i.setOffsetY(r[1]),i.setTextAlign(n),new Nu({text:i})}function y_(t){var e=eu(t,!1),i=/^\s*#?\s*([0-9A-Fa-f]{8})\s*$/.exec(e);if(i){var r=i[1];return[parseInt(r.substr(6,2),16),parseInt(r.substr(4,2),16),parseInt(r.substr(2,2),16),parseInt(r.substr(0,2),16)/255]}}function v_(t){for(var e,i=eu(t,!1),r=[],n=/^\s*([+\-]?\d*\.?\d+(?:e[+\-]?\d+)?)\s*,\s*([+\-]?\d*\.?\d+(?:e[+\-]?\d+)?)(?:\s*,\s*([+\-]?\d*\.?\d+(?:e[+\-]?\d+)?))?\s*/i;e=n.exec(i);){var o=parseFloat(e[1]),s=parseFloat(e[2]),a=e[3]?parseFloat(e[3]):0;r.push(o,s,a),i=i.substr(e[0].length)}if(""===i)return r}function m_(t){var e=eu(t,!1).trim(),i=t.baseURI;return i&&"about:blank"!=i||(i=window.location.href),i?new URL(e,i).href:e}function x_(t){return bd(t)}var E_=fu($f,{Pair:function(t,e){var i=gu({},q_,t,e);if(!i)return;var r=i.key;if(r&&"normal"==r){var n=i.styleUrl;n&&(e[e.length-1]=n);var o=i.Style;o&&(e[e.length-1]=o)}}});function S_(t,e){return gu(void 0,E_,t,e)}var T_=fu($f,{Icon:hu(function(t,e){var i=gu({},M_,t,e);return i||null}),heading:hu(bd),hotSpot:hu(function(t){var e,i=t.getAttribute("xunits"),r=t.getAttribute("yunits");return e="insetPixels"!==i?"insetPixels"!==r?Lu.BOTTOM_LEFT:Lu.TOP_LEFT:"insetPixels"!==r?Lu.BOTTOM_RIGHT:Lu.TOP_RIGHT,{x:parseFloat(t.getAttribute("x")),xunits:t_[i],y:parseFloat(t.getAttribute("y")),yunits:t_[r],origin:e}}),scale:hu(x_)});var C_=fu($f,{color:hu(y_),scale:hu(x_)});var R_=fu($f,{color:hu(y_),width:hu(bd)});var w_=fu($f,{color:hu(y_),fill:hu(Ld),outline:hu(Ld)});var I_=fu($f,{coordinates:su(v_)});function L_(t,e){return gu(null,I_,t,e)}var O_=fu(Qf,{Track:ou(b_)});var P_=fu($f,{when:function(t,e){var i=e[e.length-1].whens,r=eu(t,!1),n=Date.parse(r);i.push(isNaN(n)?0:n)}},fu(Qf,{coord:function(t,e){var i=e[e.length-1].flatCoordinates,r=eu(t,!1),n=/^\s*([+\-]?\d+(?:\.\d*)?(?:e[+\-]?\d*)?)\s+([+\-]?\d+(?:\.\d*)?(?:e[+\-]?\d*)?)\s+([+\-]?\d+(?:\.\d*)?(?:e[+\-]?\d*)?)\s*$/i.exec(r);if(n){var o=parseFloat(n[1]),s=parseFloat(n[2]),a=parseFloat(n[3]);i.push(o,s,a,0)}else i.push(0,0,0,0)}}));function b_(t,e){var i=gu({flatCoordinates:[],whens:[]},P_,t,e);if(i){for(var r=i.flatCoordinates,n=i.whens,o=0,s=Math.min(r.length,n.length);o0,u=h.href;u?r=u:l&&(r=Vf);var p,c=Lu.BOTTOM_LEFT,d=i.hotSpot;d?(n=[d.x,d.y],o=d.xunits,s=d.yunits,c=d.origin):r===Vf?(n=jf,o=Uf,s=Yf):/^http:\/\/maps\.(?:google|gstatic)\.com\//.test(r)&&(n=[.5,0],o=wu.FRACTION,s=wu.FRACTION);var f,_=h.x,g=h.y;void 0!==_&&void 0!==g&&(p=[_,g]);var y,v=h.w,m=h.h;void 0!==v&&void 0!==m&&(f=[v,m]);var x=i.heading;void 0!==x&&(y=Vt(x));var E=i.scale;if(l){r==Vf&&(f=Bf,void 0===E&&(E=Xf));var S=new Ou({anchor:n,anchorOrigin:c,anchorXUnits:o,anchorYUnits:s,crossOrigin:"anonymous",offset:p,offsetOrigin:Lu.BOTTOM_LEFT,rotation:y,scale:E,size:f,src:r});a.imageStyle=S}else a.imageStyle=h_}},LabelStyle:function(t,e){var i=gu({},C_,t,e);if(i){var r=e[e.length-1],n=new Rr({fill:new mr({color:"color"in i?i.color:kf}),scale:i.scale});r.textStyle=n}},LineStyle:function(t,e){var i=gu({},R_,t,e);if(i){var r=e[e.length-1],n=new Er({color:"color"in i?i.color:kf,width:"width"in i?i.width:1});r.strokeStyle=n}},PolyStyle:function(t,e){var i=gu({},w_,t,e);if(i){var r=e[e.length-1],n=new mr({color:"color"in i?i.color:kf});r.fillStyle=n;var o=i.fill;void 0!==o&&(r.fill=o);var s=i.outline;void 0!==s&&(r.outline=s)}}});function X_(t,e){var i=gu({},V_,t,e);if(!i)return null;var r,n="fillStyle"in i?i.fillStyle:a_,o=i.fill;void 0===o||o||(n=null),"imageStyle"in i?i.imageStyle!=h_&&(r=i.imageStyle):r=l_;var s="textStyle"in i?i.textStyle:c_,a="strokeStyle"in i?i.strokeStyle:p_,h=i.outline;return void 0===h||h||(a=null),[new Nu({fill:n,image:r,stroke:a,text:s,zIndex:void 0})]}function z_(t,e){var i,r,n,o=e.length,s=new Array(e.length),a=new Array(e.length),h=new Array(e.length);i=r=n=!1;for(var l=0;l0){var a=du(n,s);vu(r,wg,Lg,[{names:s,values:a}],i)}var h=e.getStyleFunction();if(h){var l=h(e,0);if(l){var u=Array.isArray(l)?l[0]:l;this.writeStyles_&&(n.Style=u);var p=u.getText();p&&(n.name=p.getText())}}var c=i[i.length-1].node,d=Ig[c.namespaceURI],f=du(n,d);vu(r,wg,cu,f,i,d);var _=i[0],g=e.getGeometry();g&&(g=dd(g,!0,_)),vu(r,wg,yg,[g],i)}var Pg=fu($f,["extrude","tessellate","altitudeMode","coordinates"]),bg=fu($f,{extrude:lu(Gd),tessellate:lu(Gd),altitudeMode:lu(jd),coordinates:lu(function(t,e,i){var r,n=i[i.length-1],o=n.layout,s=n.stride;o==At.XY||o==At.XYM?r=2:o==At.XYZ||o==At.XYZM?r=3:Y(!1,34);var a=e.length,h="";if(a>0){h+=e[0];for(var l=1;l>3)?i.readString():2===t?i.readFloat():3===t?i.readDouble():4===t?i.readVarint64():5===t?i.readVarint():6===t?i.readSVarint():7===t?i.readBoolean():null;e.values.push(r)}}function qg(t,e,i){if(1==t)e.id=i.readVarint();else if(2==t)for(var r=i.readVarint()+i.pos;i.pos>3}s--,1===o||2===o?(a+=t.readSVarint(),h+=t.readSVarint(),1===o&&l>u&&(r.push(l),u=l),i.push(a,h),l+=2):7===o?l>u&&(i.push(i[u],i[u+1]),l+=2):Y(!1,59)}l>u&&(r.push(l),u=l)},e.prototype.createFeature_=function(t,e,i){var r,n=e.type;if(0===n)return null;var o=e.id,s=e.properties;s[this.layerName_]=e.layer.name;var a=[],h=[];this.readRawGeometry_(t,e,a,h);var l=function(t,e){var i;1===t?i=1===e?Nt.POINT:Nt.MULTI_POINT:2===t?i=1===e?Nt.LINE_STRING:Nt.MULTI_LINE_STRING:3===t&&(i=Nt.POLYGON);return i}(n,h.length);if(this.featureClass_===Kg)r=new this.featureClass_(l,a,h,s,o);else{var u;if(l==Nt.POLYGON){for(var p=[],c=0,d=0,f=0,_=h.length;f<_;++f){var g=h[f];Si(a,c,g,2)||(p.push(h.slice(d,f)),d=f),c=g}u=p.length>1?new Fc(a,At.XY,p):new Ii(a,At.XY,h)}else u=l===Nt.POINT?new ci(a,At.XY):l===Nt.LINE_STRING?new hr(a,At.XY):l===Nt.POLYGON?new Ii(a,At.XY,h):l===Nt.MULTI_POINT?new bc(a,At.XY):l===Nt.MULTI_LINE_STRING?new Pc(a,At.XY,h):null;r=new(0,this.featureClass_),this.geometryName_&&r.setGeometryName(this.geometryName_);var y=dd(u,!1,this.adaptOptions(i));r.setGeometry(y),r.setId(o),r.setProperties(s)}return r},e.prototype.getLastExtent=function(){return this.extent_},e.prototype.getType=function(){return Hl.ARRAY_BUFFER},e.prototype.readFeatures=function(t,e){var i=this.layers_,r=new Xg.a(t),n=r.readFields(Hg,{}),o=[];for(var s in n)if(!i||-1!=i.indexOf(s)){for(var a=n[s],h=0,l=a.length;h>1):n>>1}return e}(t),n=0,o=r.length;n=32;)e=63+(32|31&t),i+=String.fromCharCode(e),t>>=5;return e=t+63,i+=String.fromCharCode(e)}var cy=function(t){function e(e){t.call(this);var i=e||{};this.dataProjection=Ee("EPSG:4326"),this.factor_=i.factor?i.factor:1e5,this.geometryLayout_=i.geometryLayout?i.geometryLayout:At.XY}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.readFeatureFromText=function(t,e){var i=this.readGeometryFromText(t,e);return new B(i)},e.prototype.readFeaturesFromText=function(t,e){return[this.readFeatureFromText(t,e)]},e.prototype.readGeometryFromText=function(t,e){var i=ze(this.geometryLayout_),r=hy(t,i,this.factor_);sy(r,0,r.length,i,r);var n=ri(r,0,r.length,i);return dd(new hr(n,this.geometryLayout_),!1,this.adaptOptions(e))},e.prototype.writeFeatureText=function(t,e){var i=t.getGeometry();return i?this.writeGeometryText(i,e):(Y(!1,40),"")},e.prototype.writeFeaturesText=function(t,e){return this.writeFeatureText(t[0],e)},e.prototype.writeGeometryText=function(t,e){var i=(t=dd(t,!0,this.adaptOptions(e))).getFlatCoordinates(),r=t.getStride();return sy(i,0,i.length,r,i),ay(i,r,this.factor_)},e}(zf),dy={Point:function(t,e,i){var r=t.coordinates;e&&i&&vy(r,e,i);return new ci(r)},LineString:function(t,e){var i=fy(t.arcs,e);return new hr(i)},Polygon:function(t,e){for(var i=[],r=0,n=t.arcs.length;r0&&n.pop(),r=i>=0?e[i]:e[~i].slice().reverse(),n.push.apply(n,r);for(var a=0,h=n.length;a=2,57)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e}(Ey),Ty=function(t){function e(e){t.call(this,"And",Array.prototype.slice.call(arguments))}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e}(Sy),Cy=function(t){function e(e,i,r){t.call(this,"BBOX"),this.geometryName=e,this.extent=i,this.srsName=r}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e}(Ey),Ry=function(t){function e(e,i,r,n){t.call(this,e),this.geometryName=i||"the_geom",this.geometry=r,this.srsName=n}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e}(Ey),wy=function(t){function e(e,i,r){t.call(this,"Contains",e,i,r)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e}(Ry),Iy=function(t){function e(e,i){t.call(this,e),this.propertyName=i}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e}(Ey),Ly=function(t){function e(e,i,r){t.call(this,"During",e),this.begin=i,this.end=r}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e}(Iy),Oy=function(t){function e(e,i,r,n){t.call(this,e,i),this.expression=r,this.matchCase=n}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e}(Iy),Py=function(t){function e(e,i,r){t.call(this,"PropertyIsEqualTo",e,i,r)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e}(Oy),by=function(t){function e(e,i){t.call(this,"PropertyIsGreaterThan",e,i)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e}(Oy),My=function(t){function e(e,i){t.call(this,"PropertyIsGreaterThanOrEqualTo",e,i)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e}(Oy),Fy=function(t){function e(e,i,r){t.call(this,"Intersects",e,i,r)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e}(Ry),Ay=function(t){function e(e,i,r){t.call(this,"PropertyIsBetween",e),this.lowerBoundary=i,this.upperBoundary=r}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e}(Iy),Ny=function(t){function e(e,i,r,n,o,s){t.call(this,"PropertyIsLike",e),this.pattern=i,this.wildCard=void 0!==r?r:"*",this.singleChar=void 0!==n?n:".",this.escapeChar=void 0!==o?o:"!",this.matchCase=s}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e}(Iy),Gy=function(t){function e(e){t.call(this,"PropertyIsNull",e)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e}(Iy),Dy=function(t){function e(e,i){t.call(this,"PropertyIsLessThan",e,i)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e}(Oy),ky=function(t){function e(e,i){t.call(this,"PropertyIsLessThanOrEqualTo",e,i)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e}(Oy),jy=function(t){function e(e){t.call(this,"Not"),this.condition=e}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e}(Ey),Uy=function(t){function e(e,i,r){t.call(this,"PropertyIsNotEqualTo",e,i,r)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e}(Oy),Yy=function(t){function e(e){t.call(this,"Or",Array.prototype.slice.call(arguments))}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e}(Sy),By=function(t){function e(e,i,r){t.call(this,"Within",e,i,r)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e}(Ry);function Vy(t){var e=[null].concat(Array.prototype.slice.call(arguments));return new(Function.prototype.bind.apply(Ty,e))}function Xy(t,e,i){return new Cy(t,e,i)}var zy={"http://www.opengis.net/gml":{boundedBy:hu(Id.prototype.readGeometryElement,"bounds")}},Wy={"http://www.opengis.net/wfs":{totalInserted:hu(Fd),totalUpdated:hu(Fd),totalDeleted:hu(Fd)}},Ky={"http://www.opengis.net/wfs":{TransactionSummary:hu(function(t,e){return gu({},Wy,t,e)},"transactionSummary"),InsertResults:hu(function(t,e){return gu([],ov,t,e)},"insertIds")}},Hy={"http://www.opengis.net/wfs":{PropertyName:lu(jd)}},Zy={"http://www.opengis.net/wfs":{Insert:lu(function(t,e,i){var r=i[i.length-1],n=r.featureType,o=r.featureNS,s=r.gmlVersion,a=tu(o,n);t.appendChild(a),2===s?Zd.prototype.writeFeatureElement(a,e,i):Vd.prototype.writeFeatureElement(a,e,i)}),Update:lu(function(t,e,i){var r=i[i.length-1];Y(void 0!==e.getId(),27);var n=r.featureType,o=r.featurePrefix,s=r.featureNS,a=av(o,n),h=e.getGeometryName();t.setAttribute("typeName",a),t.setAttributeNS(Jy,"xmlns:"+o,s);var l=e.getId();if(void 0!==l){for(var u=e.getKeys(),p=[],c=0,d=u.length;c="a"&&t<="z"||t>="A"&&t<="Z"},Ov.prototype.isNumeric_=function(t,e){return t>="0"&&t<="9"||"."==t&&!(void 0!==e&&e)},Ov.prototype.isWhiteSpace_=function(t){return" "==t||"\t"==t||"\r"==t||"\n"==t},Ov.prototype.nextChar_=function(){return this.wkt.charAt(++this.index_)},Ov.prototype.nextToken=function(){var t,e=this.nextChar_(),i=this.index_,r=e;if("("==e)t=Sv;else if(","==e)t=Rv;else if(")"==e)t=Tv;else if(this.isNumeric_(e)||"-"==e)t=Cv,r=this.readNumber_();else if(this.isAlpha_(e))t=Ev,r=this.readText_();else{if(this.isWhiteSpace_(e))return this.nextToken();if(""!==e)throw new Error("Unexpected character: "+e);t=wv}return{position:i,value:r,type:t}},Ov.prototype.readNumber_=function(){var t,e=this.index_,i=!1,r=!1;do{"."==t?i=!0:"e"!=t&&"E"!=t||(r=!0),t=this.nextChar_()}while(this.isNumeric_(t,i)||!r&&("e"==t||"E"==t)||r&&("-"==t||"+"==t));return parseFloat(this.wkt.substring(e,this.index_--))},Ov.prototype.readText_=function(){var t,e=this.index_;do{t=this.nextChar_()}while(this.isAlpha_(t));return this.wkt.substring(e,this.index_--).toUpperCase()};var Pv=function(t){this.lexer_=t,this.token_,this.layout_=At.XY};function bv(t){var e=t.getCoordinates();return 0===e.length?"":e.join(" ")}function Mv(t){for(var e=t.getCoordinates(),i=[],r=0,n=e.length;r0&&(e+=" "+r)}return 0===i.length?e+" "+vv:e+"("+i+")"}var Gv=function(t){function e(e){t.call(this);var i=e||{};this.splitCollection_=void 0!==i.splitCollection&&i.splitCollection}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.parse_=function(t){var e=new Ov(t);return new Pv(e).parse()},e.prototype.readFeatureFromText=function(t,e){var i=this.readGeometryFromText(t,e);if(i){var r=new B;return r.setGeometry(i),r}return null},e.prototype.readFeaturesFromText=function(t,e){for(var i=[],r=this.readGeometryFromText(t,e),n=[],o=0,s=(i=this.splitCollection_&&r.getType()==Nt.GEOMETRY_COLLECTION?r.getGeometriesArray():[r]).length;o.75*u||l>.75*p?this.resetExtent_():ot(o,r)||this.recenter_()}},e.prototype.resetExtent_=function(){var t=this.getMap(),e=this.ovmap_,i=t.getSize(),r=t.getView().calculateExtent(i),n=e.getView(),o=Math.log(7.5)/Math.LN2;Mt(r,1/(.1*Math.pow(2,o/2))),n.fit(r)},e.prototype.recenter_=function(){var t=this.getMap(),e=this.ovmap_,i=t.getView();e.getView().setCenter(i.getCenter())},e.prototype.updateBox_=function(){var t=this.getMap(),e=this.ovmap_;if(t.isRendered()&&e.isRendered()){var i=t.getSize(),r=t.getView(),n=e.getView(),o=r.getRotation(),s=this.boxOverlay_,a=this.boxOverlay_.getElement(),h=r.calculateExtent(i),l=n.getResolution(),u=Et(h),p=Lt(h),c=this.calculateCoordinateRotate_(o,u);s.setPosition(c),a&&(a.style.width=Math.abs((u[0]-p[0])/l)+"px",a.style.height=Math.abs((p[1]-u[1])/l)+"px")}},e.prototype.calculateCoordinateRotate_=function(t,e){var i,r=this.getMap().getView().getCenter();return r&&($i(i=[e[0]-r[0],e[1]-r[1]],t),Hi(i,r)),i},e.prototype.handleClick_=function(t){t.preventDefault(),this.handleToggle_()},e.prototype.handleToggle_=function(){this.element.classList.toggle(yo),this.collapsed_?Qn(this.collapseLabel_,this.label_):Qn(this.label_,this.collapseLabel_),this.collapsed_=!this.collapsed_;var t=this.ovmap_;this.collapsed_||t.isRendered()||(t.updateSize(),this.resetExtent_(),m(t,Rn,function(t){this.updateBox_()},this))},e.prototype.getCollapsible=function(){return this.collapsible_},e.prototype.setCollapsible=function(t){this.collapsible_!==t&&(this.collapsible_=t,this.element.classList.toggle("ol-uncollapsible"),!t&&this.collapsed_&&this.handleToggle_())},e.prototype.setCollapsed=function(t){this.collapsible_&&this.collapsed_!==t&&this.handleToggle_()},e.prototype.getCollapsed=function(){return this.collapsed_},e.prototype.getOverviewMap=function(){return this.ovmap_},e}(uo),ex="units",ix={DEGREES:"degrees",IMPERIAL:"imperial",NAUTICAL:"nautical",METRIC:"metric",US:"us"},rx=[1,2,5];function nx(t){var e=t.frameState;this.viewState_=e?e.viewState:null,this.updateElement_()}var ox=function(t){function e(e){var i=e||{},r=void 0!==i.className?i.className:"ol-scale-line";t.call(this,{element:document.createElement("div"),render:i.render||nx,target:i.target}),this.innerElement_=document.createElement("div"),this.innerElement_.className=r+"-inner",this.element.className=r+" "+fo,this.element.appendChild(this.innerElement_),this.viewState_=null,this.minWidth_=void 0!==i.minWidth?i.minWidth:64,this.renderedVisible_=!1,this.renderedWidth_=void 0,this.renderedHTML_="",v(this,G(ex),this.handleUnitsChanged_,this),this.setUnits(i.units||ix.METRIC)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.getUnits=function(){return this.get(ex)},e.prototype.handleUnitsChanged_=function(){this.updateElement_()},e.prototype.setUnits=function(t){this.set(ex,t)},e.prototype.updateElement_=function(){var t=this.viewState_;if(t){var e=t.center,i=t.projection,r=this.getUnits(),n=r==ix.DEGREES?$t.DEGREES:$t.METERS,o=Se(i,t.resolution,e,n);i.getUnits()!=$t.DEGREES&&i.getMetersPerUnit()&&n==$t.METERS&&(o*=i.getMetersPerUnit());var s=this.minWidth_*o,a="";if(r==ix.DEGREES){var h=Qt[$t.DEGREES];i.getUnits()==$t.DEGREES?s*=h:o/=h,s=this.minWidth_)break;++p}var c=l+" "+a;this.renderedHTML_!=c&&(this.innerElement_.innerHTML=c,this.renderedHTML_=c),this.renderedWidth_!=u&&(this.innerElement_.style.width=u+"px",this.renderedWidth_=u),this.renderedVisible_||(this.element.style.display="",this.renderedVisible_=!0)}else this.renderedVisible_&&(this.element.style.display="none",this.renderedVisible_=!1)},e}(uo),sx={VERTICAL:0,HORIZONTAL:1};function ax(t){if(t.frameState){this.sliderInitialized_||this.initSlider_();var e=t.frameState.viewState.resolution;e!==this.currentResolution_&&(this.currentResolution_=e,this.setThumbPosition_(e))}}var hx=function(t){function e(e){var i=e||{};t.call(this,{element:document.createElement("div"),render:i.render||ax}),this.dragListenerKeys_=[],this.currentResolution_=void 0,this.direction_=sx.VERTICAL,this.dragging_,this.heightLimit_=0,this.widthLimit_=0,this.previousX_,this.previousY_,this.thumbSize_=null,this.sliderInitialized_=!1,this.duration_=void 0!==i.duration?i.duration:200;var r=void 0!==i.className?i.className:"ol-zoomslider",n=document.createElement("button");n.setAttribute("type","button"),n.className=r+"-thumb "+fo;var o=this.element;o.className=r+" "+fo+" "+go,o.appendChild(n),this.dragger_=new Tn(o),v(this.dragger_,Gr.POINTERDOWN,this.handleDraggerStart_,this),v(this.dragger_,Gr.POINTERMOVE,this.handleDraggerDrag_,this),v(this.dragger_,Gr.POINTERUP,this.handleDraggerEnd_,this),v(o,M.CLICK,this.handleContainerClick_,this),v(n,M.CLICK,O)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.disposeInternal=function(){this.dragger_.dispose(),t.prototype.disposeInternal.call(this)},e.prototype.setMap=function(e){t.prototype.setMap.call(this,e),e&&e.render()},e.prototype.initSlider_=function(){var t=this.element,e=t.offsetWidth,i=t.offsetHeight,r=t.firstElementChild,n=getComputedStyle(r),o=r.offsetWidth+parseFloat(n.marginRight)+parseFloat(n.marginLeft),s=r.offsetHeight+parseFloat(n.marginTop)+parseFloat(n.marginBottom);this.thumbSize_=[o,s],e>i?(this.direction_=sx.HORIZONTAL,this.widthLimit_=e-o):(this.direction_=sx.VERTICAL,this.heightLimit_=i-s),this.sliderInitialized_=!0},e.prototype.handleContainerClick_=function(t){var e=this.getMap().getView(),i=this.getRelativePosition_(t.offsetX-this.thumbSize_[0]/2,t.offsetY-this.thumbSize_[1]/2),r=this.getResolutionForPosition_(i);e.animate({resolution:e.constrainResolution(r),duration:this.duration_,easing:Xn})},e.prototype.handleDraggerStart_=function(t){if(!this.dragging_&&t.originalEvent.target===this.element.firstElementChild&&(this.getMap().getView().setHint(jn,1),this.previousX_=t.clientX,this.previousY_=t.clientY,this.dragging_=!0,0===this.dragListenerKeys_.length)){var e=this.handleDraggerDrag_,i=this.handleDraggerEnd_;this.dragListenerKeys_.push(v(document,M.MOUSEMOVE,e,this),v(document,Gr.POINTERMOVE,e,this),v(document,M.MOUSEUP,i,this),v(document,Gr.POINTERUP,i,this))}},e.prototype.handleDraggerDrag_=function(t){if(this.dragging_){var e=this.element.firstElementChild,i=t.clientX-this.previousX_+parseFloat(e.style.left),r=t.clientY-this.previousY_+parseFloat(e.style.top),n=this.getRelativePosition_(i,r);this.currentResolution_=this.getResolutionForPosition_(n),this.getMap().getView().setResolution(this.currentResolution_),this.setThumbPosition_(this.currentResolution_),this.previousX_=t.clientX,this.previousY_=t.clientY}},e.prototype.handleDraggerEnd_=function(t){if(this.dragging_){var e=this.getMap().getView();e.setHint(jn,-1),e.animate({resolution:e.constrainResolution(this.currentResolution_),duration:this.duration_,easing:Xn}),this.dragging_=!1,this.previousX_=void 0,this.previousY_=void 0,this.dragListenerKeys_.forEach(E),this.dragListenerKeys_.length=0}},e.prototype.setThumbPosition_=function(t){var e=this.getPositionForResolution_(t),i=this.element.firstElementChild;this.direction_==sx.HORIZONTAL?i.style.left=this.widthLimit_*e+"px":i.style.top=this.heightLimit_*e+"px"},e.prototype.getRelativePosition_=function(t,e){return kt(this.direction_===sx.HORIZONTAL?t/this.widthLimit_:e/this.heightLimit_,0,1)},e.prototype.getResolutionForPosition_=function(t){return this.getMap().getView().getResolutionForValueFunction()(1-t)},e.prototype.getPositionForResolution_=function(t){return 1-this.getMap().getView().getValueForResolutionFunction()(t)},e}(uo),lx=function(t){function e(e){var i=e||{};t.call(this,{element:document.createElement("div"),target:i.target}),this.extent=i.extent?i.extent:null;var r=void 0!==i.className?i.className:"ol-zoom-extent",n=void 0!==i.label?i.label:"E",o=void 0!==i.tipLabel?i.tipLabel:"Fit to extent",s=document.createElement("button");s.setAttribute("type","button"),s.title=o,s.appendChild("string"==typeof n?document.createTextNode(n):n),v(s,M.CLICK,this.handleClick_,this);var a=r+" "+fo+" "+go,h=this.element;h.className=a,h.appendChild(s)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.handleClick_=function(t){t.preventDefault(),this.handleZoomToExtent()},e.prototype.handleZoomToExtent=function(){var t=this.getMap().getView(),e=this.extent?this.extent:t.getProjection().getExtent();t.fit(e)},e}(uo),ux={array:{},color:{},colorlike:{},control:{},coordinate:{},easing:{},events:{}};ux.events.condition={},ux.extent={},ux.featureloader={},ux.format={},ux.format.filter={},ux.geom={},ux.has={},ux.interaction={},ux.layer={},ux.loadingstrategy={},ux.proj={},ux.proj.Units={},ux.proj.proj4={},ux.render={},ux.render.canvas={},ux.renderer={},ux.renderer.canvas={},ux.renderer.webgl={},ux.size={},ux.source={},ux.sphere={},ux.style={},ux.style.IconImageCache={},ux.tilegrid={},ux.xml={},ux.Collection=U,ux.Feature=B,ux.Geolocation=zi,ux.Graticule=Or,ux.Kinetic=br,ux.Map=Ha,ux.Object=D,ux.Observable=F,ux.Observable.unByKey=function(t){if(Array.isArray(t))for(var e=0,i=t.length;e180)&&(i[0]=Xt(r+180,360)-180),i},ux.proj.transform=Pe,ux.proj.transformExtent=be,ux.render.VectorContext=Vs,ux.render.canvas.labelCache=Ps,ux.render.toContext=function(t,e){var i=t.canvas,r=e||{},n=r.pixelRatio||Di,o=r.size;o&&(i.width=o[0]*n,i.height=o[1]*n,i.style.width=o[0]+"px",i.style.height=o[1]+"px");var s=[0,0,i.width,i.height],a=je([1,0,0,1,0,0],n,n);return new Xs(t,n,s,a,0)},ux.renderer.canvas.ImageLayer=ra,ux.renderer.canvas.Map=Qs,ux.renderer.canvas.TileLayer=ha,ux.renderer.canvas.VectorLayer=Ba,ux.renderer.canvas.VectorTileLayer=Ka,ux.renderer.webgl.ImageLayer=gl,ux.renderer.webgl.Map=yl,ux.renderer.webgl.TileLayer=Xl,ux.renderer.webgl.VectorLayer=Wl,ux.size.toSize=ho,ux.source.BingMaps=tp,ux.source.CartoDB=ip,ux.source.Cluster=sp,ux.source.Image=dp,ux.source.ImageArcGISRest=gp,ux.source.ImageCanvas=yp,ux.source.ImageMapGuide=vp,ux.source.ImageStatic=mp,ux.source.ImageWMS=wp,ux.source.OSM=Lp,ux.source.OSM.ATTRIBUTION=Ip,ux.source.Raster=Vp,ux.source.Source=Il,ux.source.Stamen=Kp,ux.source.Tile=jl,ux.source.TileArcGISRest=Zp,ux.source.TileDebug=Jp,ux.source.TileImage=$u,ux.source.TileJSON=Qp,ux.source.TileWMS=tc,ux.source.UTFGrid=ic,ux.source.Vector=op,ux.source.VectorTile=ac,ux.source.WMTS=lc,ux.source.WMTS.optionsFromCapabilities=function(t,e){var i=H(t.Contents.Layer,function(t,i,r){return t.Identifier==e.layer});if(null===i)return null;var r,n=t.Contents.TileMatrixSet;(r=i.TileMatrixSetLink.length>1?J(i.TileMatrixSetLink,"projection"in e?function(t,i,r){var o=H(n,function(e){return e.Identifier==t.TileMatrixSet}).SupportedCRS,s=Ee(o.replace(/urn:ogc:def:crs:(\w+):(.*:)?(\w+)$/,"$1:$3"))||Ee(o),a=Ee(e.projection);return s&&a?Ie(s,a):o==e.projection}:function(t,i,r){return t.TileMatrixSet==e.matrixSet}):0)<0&&(r=0);var o=i.TileMatrixSetLink[r].TileMatrixSet,s=i.TileMatrixSetLink[r].TileMatrixSetLimits,a=i.Format[0];"format"in e&&(a=e.format),(r=J(i.Style,function(t,i,r){return"style"in e?t.Title==e.style:t.isDefault}))<0&&(r=0);var h=i.Style[r].Identifier,l={};"Dimension"in i&&i.Dimension.forEach(function(t,e,i){var r=t.Identifier,n=t.Default;void 0===n&&(n=t.Value[0]),l[r]=n});var u,p=H(t.Contents.TileMatrixSet,function(t,e,i){return t.Identifier==o}),c=p.SupportedCRS;if(c&&(u=Ee(c.replace(/urn:ogc:def:crs:(\w+):(.*:)?(\w+)$/,"$1:$3"))||Ee(c)),"projection"in e){var d=Ee(e.projection);d&&(u&&!Ie(d,u)||(u=d))}var f,_,g=i.WGS84BoundingBox;if(void 0!==g){var y=Ee("EPSG:4326").getExtent();_=g[0]==y[0]&&g[2]==y[2],f=be(g,"EPSG:4326",u);var v=u.getExtent();v&&(ot(v,f)||(f=void 0))}var m=Eu(p,f,s),x=[],E=e.requestEncoding;if(E=void 0!==E?E:"","OperationsMetadata"in t&&"GetTile"in t.OperationsMetadata)for(var S=t.OperationsMetadata.GetTile.DCP.HTTP.Get,T=0,C=S.length;T has to be removed, as well as the just before the W3 validation box. Unfortunately this then forces 600px width even when the window is small — thus eliminating the margin altogether.... + +I use it for now only in Diary/edited/1097/13A, 13B, 13C.html; and /0404/19.html +*/ + background-color: #e6fffb ! important; + width: 600px; + margin-left: auto; + margin-right: auto; + margin-top: 3em; +} + +BODY.gazetteer { +/* + background-color: #bdffde ! important; + */ + background-color: #c0ffe0 ! important; + margin-top: 30px; +} + +BODY.gazetteer_links { + background-color: #c5ffe2 ! important; + margin-top: 30px; +} + +BODY.home { + background-color: #ffff66 ! important; + margin-top: 30px; +/* +background as long as the Russian attack on Ukraine continues: + */ + background-image: url("https://penelope.uchicago.edu/Thayer/Images/Utility/Backgrounds/Ukraine.gif") ! important; + background-repeat: repeat-y; +} + +BODY.Roman_archaic { + background-color: #ffddcc ! important; + margin-top: 30px; +} + +BODY.Roman_imperial { + background-color: #ffccff ! important; + margin-top: 30px; +} + +BODY.Roman_Republican { + background-color: #ccddff ! important; + margin-top: 30px; +} + +BODY.Late_Antique { + background-color: #ecdaff ! important; + margin-top: 30px; +} + +BODY.fixed { + background-attachment: fixed; + background-repeat: repeat; +} + +BODY.help { + background-color: #ffcccc ! important; + margin-top: 30px; +} + +BODY.resources { + background-color: #f5ffff ! important; + color: #006600 ! important; + margin-top: 30px; +} + +BODY.WP { + background-color: #000000 ! important; + color: #ffffff ! important; + margin-top: 30px; +} + +/*Greek TEST*/ + BODY.WP DIV.default1 { + margin-left: 5em; + margin-right: 5em; + color: #ffffff ! important; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + } + BODY.WP .source { + color: #99ff99 ! important; + } + BODY.WP A { + color: #ccccff ! important; + } + BODY.WP TD.upcell A { + color: #0000ff ! important; + } + BODY.WP TD.alsocell A { + color: #0000ff ! important; + } + BODY.WP TD.diarycell A { + color: #0000ff ! important; + } + BODY.WP TD.offcell A { + color: #0000ff ! important; + } + +DIV.spacious { + width: 65vw; + margin-left: auto; + margin-right: auto; + color: #000066 ! important; /*color must match the background*/ + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; +} + +/* + +▸ Use names of countries only to define country-related styles. +▸ Use names of languages only to define language-related styles. + +*/ + +/*languages/scripts: +source, archaic, aboriginal; +Latin, Greek, Hebrew (Aramaic, Syriac), Runic, Gothic/Vandalic [same color: plain/italic]; +Russian/Slavic [identical]; +Coptic, Arabic (Punic, Turkish, Persian), Indian/Sanskrit [same color: plain/italic], Chinese/Japanese [same color: plain/italic]; +Catalan, Dutch, French, German, Italian, Portuguese, Provencal, Spanish +*/ + +/* +UNUSABLE FONTS: + +BECAUSE OF GREEK [search: ▸Greek TEST◂] : + Georgia: old tonos (wedge) + Verdana: old tonos (stroke) + Atavyros: ῥ rendered as ῤ + Minion Pro: no spaces before Greek capitals with rough breathings + +FOR OTHER REASONS: + Aroania: nulls the command-hyphen +*/ + +/* +COLORS + are in + https://penelope.uchicago.edu/Thayer/Utility/Styles/colors.css +*/ + +.black_letter { + text-transform: none; + font-family: Canterbury, "Cloister Black", Cimbrian, Raubtier, Lancaster, Augusta, Rochester, PaladinFLF, "Kleukens-Fraktur", "Palatino Linotype", Palatino, "Arial Unicode Ms", "Titus Cyberbit Basic", "Lucida Sans Unicode", serif, sans-serif ! important; +} + +.invisible { + visibility: hidden ! important; +} + +.error .Greek { + color: #ff0000 ! important; + font-weight: bold; + font-size: 120%; +} + +/* for modern geographical names, etc.: */ +.modern { + color: #5ebf20 ! important; +} + +.aboriginal { + color: #ff8f33 ! important; + font-family: Verdana, sans-serif; + font-size: 90%; +} + +/* same as Persian: */ +.Arabic { + color: #336644 ! important; +} + .Arabic .emend { + color: #444400 ! important; + } + + A SPAN.Arabic { + color: #669966 ! important; + } + +.Aramaic { + color: #555500 ! important; +} + .Aramaic .emend { + color: #664400 ! important; + } + + A SPAN.Aramaic { + color: #669966 ! important; + } + +.archaic { + color: #666600 ! important; +} + .archaic .emend { + color: #cccc00 ! important; + } + + A SPAN.archaic { + color: #669966 ! important; + } + +.Armenian { + color: #660099 ! important; +} + +SPAN LANG.be /* Belarusian */ { + font-size: 108%; +} + +.Belarusian { + color: #990000 ! important; + font-size: 108%; +} + +.book_Belarusian { + color: #990000 ! important; + font-size: 108%; + font-variant: small-caps; +} + +.translit_Belarusian { + color: #990000 ! important; +} + +.bland_Belarusian { + color: inherit ! important; + font-size: 108%; + line-height: 1.00; /* Belarusian fonts have more line-height built‑in, force smaller */ +} + +.Catalan { + color: #cc2200 ! important; +} + + .Catalan .emend { + color: #ee6633 ! important; + } + +.Dutch { + color: #006600 ! important; +} + + .Dutch .Dutch { + color: #002200 ! important; + } + + .Dutch .source { + color: #002200 ! important; + } + +BODY.gazetteer .Dutch { + color: #003300 ! important; +} + +.Egyptian { + color: #ff6600 ! important; +} + +.English/* use only in pages in other languages */ { + color: #009933 ! important; +} + + .English .emend { + color: #80cc4c ! important; + } + + .English .English { + color: #002200 ! important; + } + + .English .source { + color: #002200 ! important; + } + +French { + color: #009933 ! important; +} + + .French .emend { + color: #119955 ! important; + } + + .French .French { + color: #002200 ! important; + } + + .French .source { + color: #002200 ! important; + } + + .mynote .French { + color: #666633 ! important; + } + + .mynoteWide .French { + color: #666633 ! important; + } + +.Georgian { + color: #cc0099 ! important; +} + +.German { + color: #339999 ! important; +} + + .German .German { + color: #002200 ! important; + } + + .German .source { + color: #002200 ! important; + } + +.Gothic { + color: #660099 ! important; +} + +/*Greek TEST (settled)*/ +/*what I want here is a nice flowing slightly Byzantine look:*/ +/*Avdira: nice if somewhat mannered*/ +/*Alfios: nice but too small*/ +/*Quivira: ok but mannered: accents and breathings shifted*/ +/*Times New Roman: ok but circumflexes and diereses smooshed*/ +.Greek { + font-family: "Avdira", "Titus Cyberbit Basic", serif ! important; + color: #996600 ! important; +} + .Greek I { + font-style: italic; + letter-spacing: .2em; + /* a compromise: the traditional wide spacing, but also true italics */ + } + + .Greek .emend { + color: #dd8833 ! important; + } + + .Greek .emphasis { + color: #cc6600 ! important; + } + + .Greek .italic { + font-style: italic; + letter-spacing: .2em; + /* a compromise: the traditional wide spacing, but also true italics */ + } + + .Greek .outquote { + color: #dd8833 ! important; /* same as .Greek .emend */ + } + + .mynote .Greek { + color: #996600 ! important; + } + + .mynoteWide .Greek { + color: #996600 ! important; + } + +/* for use in Eboxes: */ + .EboxGreek { + font-weight: bold; + color: #996600 ! important; + } + +.translit_Greek { + color: #996600 ! important; +} + .translit_Greek .emend { + color: #dd8833 ! important; + } + + .translit_Greek .emphasis { + color: #cc6600 ! important; + } + + .mynote .translit_Greek { + color: #996600 ! important; + } + + .mynoteWide .translit_Greek { + color: #996600 ! important; + } + +.Greek2 { + font-family: "Palatino Linotype", "Lucida Grande", "Arial Unicode Ms", "Titus Cyberbit Basic", "Lucida Sans Unicode", sans-serif ! important; + color: #663300 ! important; + font-size: 95%; +} + .Greek2 .emend { + color: #dd8833 ! important; + } + + .Greek2 .emphasis { + color: #cc6600 ! important; + } + +.Greek_title { +/* OLD, KEEP FOR NOW: + font-family: "Lucida Grande", "Palatino Linotype", "Arial Unicode Ms", "Titus Cyberbit Basic", "Lucida Sans Unicode", sans-serif ! important; + */ + font-style: italic; + letter-spacing: .08em; +/* OLD, KEEP FOR NOW: + font-size: 95%; + */ +} + +.Hebrew { + direction: rtl ! important; + color: #666600 ! important; +} + .Hebrew .emend { + color: #774400 ! important; + } + + A SPAN.Hebrew { + color: #669966 ! important; + } + +.translit_Hebrew { + color: #666600 ! important; +} + .translit_Hebrew .emend { + color: #774400 ! important; + } + + A SPAN.translit_Hebrew { + color: #669966 ! important; + } + +.Indian { + color: #ff8f33 ! important; + font-family: Verdana, sans-serif; + font-size: 90%; +} + +.Italian { + color: #006600 ! important; +} + + .Italian .Italian { + color: #002200 ! important; + } + + .Italian .source { + color: #002200 ! important; + } + + .mynote .Italian { + color: #00b300 ! important; + } + +BODY.gazetteer .Italian { + color: #009922 ! important; +} + +.Chinese { +/* + color: #dcbd75 ! important; /* OLD + */ + color: #b88e2e ! important; + font-family: Verdana, sans-serif; + font-size: 90%; +} + +.Japanese { + color: #da5300 ! important; + font-family: Verdana, sans-serif; + font-size: 90%; + font-style: italic; +} + +.Latin { + color: #990000 ! important; +} + + .Latin .emend { + color: #ee6633 ! important; + } + + .mynote .Latin { + color: #990000 ! important; + } + +/* for use in Eboxes: */ + .EboxLatin { + font-weight: bold; + color: #990000 ! important; + } + +.Latin_addendum { + color: #993399 ! important; +} + +.Latin_emend { + color: #ee6633 ! important; +} + +.Latin_pale { + color: #ff6666 ! important; +} + +/* same as Arabic: */ +.Persian { + color: #336644 ! important; +} + .Persian .emend { + color: #444400 ! important; + } + + A SPAN.Persian { + color: #669966 ! important; + } + +.Portuguese { + color: #006600 ! important; +} + + .Portuguese .Portuguese { + color: #002200 ! important; + } + + .Portuguese .source { + color: #002200 ! important; + } + +BODY.gazetteer .Portuguese { + color: #003300 ! important; +} + + +.Provencal { + color: #e65c00 ! important; +} + + .Provencal .emend { + color: #ee6633 ! important; + } + +.Punic { + color: #336644 ! important; +} + .Punic .emend { + color: #444400 ! important; + } + + A SPAN.Punic { + color: #669966 ! important; + } + +.Runic { + font-family: "Quivira", "Apple Symbols", "Geneva", serif ! important; + color: #339999 ! important; +} + +.RunicQuivira { + font-family: "Quivira" ! important; + color: #339999 ! important; +} + +.RunicGeneva { + font-family: "Geneva" ! important; + color: #339999 ! important; +} + +.RunicApple { + font-family: "Apple Symbols" ! important; + color: #339999 ! important; +} + +.Russian { +/* WAS: + color: #ff7e24 ! important; + */ + color: #ffa114 ! important; + font-size: 108%; +} + +.translit_Russian { + color: #ffa114 ! important; +} + +.Sanskrit { + color: #ff8f33 ! important; + font-family: Verdana, sans-serif; + font-size: 90%; + font-style: italic; +} + +.translit_Sanskrit { + color: #ff8f33 ! important; + font-family: Verdana, sans-serif; + font-size: 90%; + font-style: italic; +} + +.Scandinavian { + color: #660099 ! important; +} + +.Slavic { + color: #e73659 ! important; +} + +.Syriac { + color: #666600 ! important; +} + .Syriac .emend { + color: #774400 ! important; + } + + A SPAN.Syriac { + color: #669966 ! important; + } + +.Turkish { + color: #336644 ! important; +} + .Turkish .emend { + color: #444400 ! important; + } + + A SPAN.Turkish { + color: #669966 ! important; + } + +SPAN LANG.uk /* Ukrainian */ { + font-size: 108%; +} + +.Ukrainian { + color: #f7c708 ! important; + font-size: 108%; +} + +.book_Ukrainian { + color: #f7c708 ! important; + font-size: 108%; + font-variant: small-caps; +} + +.translit_Ukrainian { + color: #f7c708 ! important; +} + +.bland_Ukrainian { + color: inherit ! important; + font-size: 108%; + line-height: 1.00; /* Ukrainian fonts have more line-height built‑in, force smaller */ +} + +.Vandalic { + font-family: Atavyros, "Lucida Grande", "Palatino Linotype", "Arial Unicode Ms", "Titus Cyberbit Basic", "Lucida Sans Unicode", sans-serif ! important; + color: #660099 ! important; + font-size: 95%; + font-style: italic; +} + + TABLE TR.odd { + background-color: #ccffff ! important; + } + + TABLE TR TD.odd { + background-color: #ccffff ! important; + } + + TABLE TR.even { + background-color: #99ffff ! important; + } + + TABLE TR TD.even { + background-color: #99ffff ! important; + } + +.odd .emend { + color: #33ccff ! important; + } + +.even .emend { + color: #00ccff ! important; + } + +/* THIS DOESN'T SEEM TO WORK: */ +/* +COLGROUP COL.grisaille { + background-color: #ff0000 ! important; + } + + */ + + +TABLE.prompt { +/* DO NOT DELETE: */ +/* used in Ebox.js */ + margin-bottom: 0em; +} + +TABLE.Ptolemy { + width: 600px; + border: 1px solid; + background-color: #eeffff ! important; + padding-left: 4px; + padding-right: 4px; + vertical-align: bottom; +} +TABLE.Ptolemy TD { + padding-left: 2px; + padding-right: 2px; + vertical-align: bottom; +} +TABLE.Ptolemy TD.text { + width: 420px; +} +TABLE.Ptolemy TD.text P { + margin-left: 1em; + text-indent: -1em; +} +TABLE.Ptolemy TR.alternate { + background-color: #ccffff ! important; +} +TABLE.Ptolemy TD.numbers { + width: 90px; +} + +TABLE.flexible { + table-layout: auto; + width: 100%; +} + +/*TABLE.padded: for making the table readable, cells not jammed together*/ +TABLE.padded TD { + padding-left: 12px; + padding-right: 12px; +} + +/*TABLE.rowspadded: separates the rows as well*/ +TABLE.rowspadded TD { + padding-top: 12px; + padding-left: 12px; + padding-right: 12px; +} + +TD.padded { + padding-left: 12px; + padding-right: 12px; +} + +TABLE.preface { + width: 600px; +/* WAS : + width: 576px; + ▸ If there's a reason for it, revert. . . + */ + background-color: #e9e9e9 ! important; + margin-left: auto; + margin-right: auto; + margin-top: 5em; + border-collapse: separate; + border-spacing: 1px; + border: 4px ridge #f6f6f6; + line-height: 1.5; +} + +TABLE.imageTEST { + border: 1px solid; + margin-left: auto; + margin-right: auto; + margin-top: 1em; + text-align: center; +} + + .imageTEST TR { + text-align: justify; + } + +TABLE.justify TD { + text-align: justify; +} + +TABLE.rubric { + width: 600px; + font-size: 85%; + margin-top: 2em; + margin-left: auto; + margin-right: auto; +} + + TABLE.rubric P.summary { + font-size: 85%; + margin-top: 3em; + margin-left: 0; + margin-right: 0; + text-indent: 0; + text-align: right; + } + + TABLE.rubric P.postsummary { + font-size: 85%; + margin-top: -.5em; + margin-left: 0; + margin-right: 0; + text-indent: 0; + text-align: right; + } + +.artist_catalog { + text-align: center; + background-color: #ffff66 ! important; + color: #00aaff ! important; + font-size: 80%; +} + + .artist_catalog A:link { + font-weight: bold; + color: #9922ff ! important; + } + + .artist_catalog H1 { + margin-top: .5em; + margin-bottom: .5em; + font-size: 120%; + font-weight: normal; + font-style: italic; + } + + .artist_catalog P { + margin-top: 0em; + margin-bottom: .7em; + } + + .artist_catalog .town { + color: #0040ff ! important; + } + + .artist_catalog .separator { + color: #ff3366 ! important; + } + +/* the "spaced" styles can be used for SPAN, and they will be uncentered*/ +/* if inside a justified class, they will also be uncentered */ +.slightly_condensed { + text-align: center; + letter-spacing: .05em; +} + +.condensed1 { + text-align: center; + letter-spacing: -.25em; +} + +.condensed2 { + text-align: center; + letter-spacing: -.5em; +} + +.slightly_spaced { + text-align: center; + letter-spacing: .25em; +} + +.spaced1 { + text-align: center; + letter-spacing: .5em; +} + +.spaced2 { + text-align: center; + letter-spacing: 1.0em; +} + +.spaced3 { + text-align: center; + letter-spacing: 1.5em; +} + +.spaced4 { + text-align: center; + letter-spacing: 2.0em; +} + +/* +The following style ("skipped") is used when I've temporarily skipped part of what ought to be a full webpage: + */ +.skipped { + margin-top: 5em; + text-align: center; + letter-spacing: 1.0em; + font-weight: bold; +} + +/* +The following style ("interlinear") is used to format running text with an interlinear translation. + +For explanation, see: +http://www.crosswire.org/~dmsmith/interlinear/ + +For use, see: +E/Gazetteer/Places/Europe/Italy/_Texts/HODIHI/2d_edition/1/NoteC*.html +and +E/Journals/ArtBulletin/41/1/Theodosius_or_Justinian*.html +*/ + +SPAN.interlinear SPAN { + float: left; + padding: 0 0.5em 0.5em 0; + text-align: center; +} +SPAN.interlinear SPAN SPAN { + float: none; + padding: 0; + display: block; +} +SPAN.interlinear SPAN SPAN SPAN { + display: inline; +} + +.Coptic { +/* Unicode range from 2C80 */ + font-family: Analecta, Aegyptus ! important; + color: #ff6600 ! important; /* matches .hieroglyphic */ + font-size: 100%; +} + .Coptic .emend { + color: #dd8833 ! important; + } + + .Coptic .emphasis { + color: #cc6600 ! important; + } + +.translit_Coptic { + color: #ff6600 ! important; /* matches .hieroglyphic */ +} + .translit_Coptic .emend { + color: #dd8833 ! important; + } + + .translit_Coptic .emphasis { + color: #cc6600 ! important; + } + +/* +The following style ("hieroglyphic") is STILL IN TEST based on "interlinear". +The sandbox is in + Thayer/hieroglyphic_sandbox.htm +altho also (imperfect and commented out) on + E/Gazetteer/Places/Africa/Egypt/_Topics/history/home.html + */ +SPAN.hieroglyphic { + color: #ff6600 ! important; /* matches .Coptic */ +} +SPAN.hieroglyphic SPAN { + float: left; + padding: 0; + text-align: center; +} +SPAN.hieroglyphic SPAN SPAN { + float: none; + padding: 0; + display: block; + line-height: 70%; +} +SPAN.hieroglyphic SPAN SPAN SPAN { + display: inline-block; +} + +SPAN.hieroglyphic SPAN SPAN.half1 { + line-height: 50%; +} +SPAN.hieroglyphic SPAN SPAN.half1 SPAN { + display: inline-block; +} + +SPAN.hieroglyphic SPAN SPAN.half1 SPAN .up1 { + vertical-align: 10%; +} +SPAN.hieroglyphic SPAN SPAN.half1 SPAN .up2 { + vertical-align: 20%; +} +SPAN.hieroglyphic SPAN SPAN.half1 SPAN .up3 { + vertical-align: 30%; +} +SPAN.hieroglyphic SPAN SPAN.half1 SPAN .up4 { + vertical-align: 40%; +} + +SPAN.hieroglyphic SPAN SPAN.half2 { + line-height: 50%; +} +SPAN.hieroglyphic SPAN SPAN.half2 SPAN { + display: inline-block; +} + +SPAN.hieroglyphic SPAN SPAN.third { + line-height: 33%; +} +SPAN.hieroglyphic SPAN SPAN.third SPAN { + display: inline-block; + padding-bottom: 50px; +} + + +/* +inline_hieroglyphic is used only one page, + E/Roman/Texts/Manetho/History_of_Egypt/1*.html +but successfully + (5 times: notes 2, 6, 49, 67, 72) +It has the advantage of returning correct search results in Google and on the displayed page: + */ + +SPAN.inline_hieroglyphic { + color: #ff6600 ! important; /* matches .Coptic */ + font-weight: bolder ! important; /* VERY important, else unreadable! */ + line-height: 1px; /* forces line height */ +} +SPAN.inline_hieroglyphic .up1 { + vertical-align: 3px; +} +SPAN.inline_hieroglyphic .up2 { + vertical-align: 6px; +} +SPAN.inline_hieroglyphic .up3 { + vertical-align: 9px; +} +SPAN.inline_hieroglyphic .up4 { + vertical-align: 12px; +} +SPAN.inline_hieroglyphic .up5 { + vertical-align: 15px; +} +SPAN.inline_hieroglyphic .up6 { + vertical-align: 18px; +} + +SPAN.inline_hieroglyphic .right1 { + position: relative; + right: -.4em; +} +SPAN.inline_hieroglyphic .right2 { + position: relative; + right: -.6em; +} +SPAN.inline_hieroglyphic .right3 { + position: relative; + right: -.8em; +} +SPAN.inline_hieroglyphic .right4 { + position: relative; + right: -1.0em; +} +SPAN.inline_hieroglyphic .right5 { + position: relative; + right: -1.2em; +} +SPAN.inline_hieroglyphic .right6 { + position: relative; + right: -1.4em; +} +SPAN.inline_hieroglyphic .right7 { + position: relative; + right: -1.6em; +} +SPAN.inline_hieroglyphic .left1 { + position: relative; + left: -.4em; +} +SPAN.inline_hieroglyphic .left2 { + position: relative; + left: -.6em; +} +SPAN.inline_hieroglyphic .left3 { + position: relative; + left: -.8em; +} +SPAN.inline_hieroglyphic .left4 { + position: relative; + left: -1.0em; +} +SPAN.inline_hieroglyphic .left5 { + position: relative; + left: -1.2em; +} +SPAN.inline_hieroglyphic .left6 { + position: relative; + left: -1.4em; +} +SPAN.inline_hieroglyphic .left7 { + position: relative; + left: -1.6em; +} +SPAN.inline_hieroglyphic .left8 { + position: relative; + left: -1.8em; +} +SPAN.inline_hieroglyphic .left9 { + position: relative; + left: -2.0em; +} +SPAN.inline_hieroglyphic .left10 { + position: relative; + left: -2.2em; +} + +/* +The following "quadrat" forms have not yet been used anywhere: + */ +SPAN.inline_hieroglyphic .quadrat { + display: inline-block; + text-align: center; +} + +SPAN.inline_hieroglyphic .quadrat .top { + line-height: 0.5; + vertical-align: text-top; +} + +SPAN.inline_hieroglyphic .quadrat .bottom { + line-height: 0.5; + vertical-align: baseline; +} + + + +/* +Semi-workaround for hieroglyphic used for now only in +E/Gazetteer/Places/Africa/Egypt/_Topics/history/home.html + */ +.hiero2 { + color: #ff6600 ! important; /* matches .Coptic */ +} +.hiero2 .all { + vertical-align: 0em; +} +.hiero2 .mid { + vertical-align: +.2em; +} +.hiero2 .half1 { + line-height: 0.5; + vertical-align: +.65em; +} +.hiero2 .half2 { + line-height: 0.5; + vertical-align: 0em; + position: relative; +/* + left: -0.55em; + */ +} +.skitter1 { + left: -0.55em; +} +.skitter2 { + left: -1.1em; +} + +.skitter3 { + left: -5em; +} + +.asterisks { + color: #0066cc ! important; + text-align: center; + letter-spacing: .5em; +} + +TR.gazetteer { + background-color: #99ffcc ! important; +} + +SPAN.map_callout { + font-family: Verdana, sans-serif; + text-transform: none; + background-color: #3300ff ! important; + color: #ffffff ! important; +} + +SPAN.map_callout_red { + font-family: Verdana, sans-serif; + text-transform: none; + background-color: #ff0000 ! important; + color: #ffffff ! important; +} + +SPAN.small_map_callout { + font-size: 60%; + font-family: Verdana, sans-serif; + text-transform: none; + vertical-align: +.2em; + background-color: #3300ff ! important; + color: #ffffff ! important; +} + +SPAN.small_map_callout_red { + font-size: 60%; + font-family: Verdana, sans-serif; + text-transform: none; + vertical-align: +.2em; + background-color: #ff0000 ! important; + color: #ffffff ! important; +} + +A { + text-decoration: none; + -webkit-hyphens: none; + -ms-hyphens: none; + hyphens: none; +} + +.verse_speaker { + position: absolute; + top: auto; + margin-left: -8.5em; + margin-bottom: .1em; + margin-top: .1em; + height: 0em; + font-size: .8rem; + font-style: italic; + font-family: Verdana, Ariel, Helvetica, sans-serif; + text-align: right; +} + +.speaker { + position: absolute; + top: auto; + margin-left: -4em; + margin-bottom: .1em; + margin-top: .1em; + height: 0em; + width: 3em; + font-size: .8rem; + font-style: italic; + font-family: Verdana, Ariel, Helvetica, sans-serif; + text-align: right; +} + .m1 .speaker { + position: absolute; + top: auto; + margin-left: -5em; + } + +.obelus { + position: absolute; + top: auto; + margin-left: -3.7em; + margin-bottom: 0em; + margin-top: .1em; + height: 0em; + width: 3em; + font-size: .7rem; + font-family: Verdana, Ariel, Helvetica, sans-serif; + text-align: right; +} + +.box { + width: 60%; + margin-left: auto; + margin-right: auto; + border: 1px solid; + padding: 2em; +} + +/* "multiline" styles are for creating multi-line brackets, parens, integrals, etc. */ +.multiline2 { + position: relative; +} + .multiline2 .sub { + position: absolute; + left: 0em; + bottom: -.4em; +} + .multiline2 .sup { + position: absolute; + left: 0em; + bottom: +.4em; +} + +.multiline3 { + position: relative; +} + + .multiline3 .sub { + position: absolute; + left: 0em; + bottom: -1em; +} + + .multiline3 .sup { + position: absolute; + left: 0em; + bottom: +1em; +} + +.multiline4 { + position: relative; +} + + .multiline4 .sup1 { + position: absolute; + left: 0em; + bottom: +1.5em; +} + + .multiline4 .sup2 { + position: absolute; + left: 0em; + bottom: +.6em; +} + + .multiline4 .sub3 { + position: absolute; + left: 0em; + bottom: -.6em; +} + + .multiline4 .sub4 { + position: absolute; + left: 0em; + bottom: -1.5em; +} + +.translation_flag { + position: absolute; + top: auto; + } + +.line1 { + margin-top: 0em; + margin-bottom: 0em; + margin-left: 2em; + margin-right: 1em; + text-indent: -1em; +} + + .line1 .translation_flag { + margin-left: -4em; + } + +.line2 { + margin-top: 0em; + margin-bottom: 0em; + margin-left: 3em; + margin-right: 2em; + text-indent: -1em; +} + + .line2 .translation_flag { + margin-left: -5em; + } + + .line2 .linenum { + margin-left: -6.4em; +} + + .line2 .obelus { + margin-left: -5.2em; +} + +.line3 { + margin-top: 0em; + margin-bottom: 0em; + margin-left: 4em; + margin-right: 3em; + text-indent: -1em; +} + + .line3 .translation_flag { + margin-left: -6em; + } + + .line3 .linenum { + margin-left: -7.8em; +} + + .line3 .obelus { + margin-left: -6.2em; +} + +.line4 { + margin-top: 0em; + margin-bottom: 0em; + margin-left: 5em; + margin-right: 4em; + text-indent: -1em; +} + + .line4 .translation_flag { + margin-left: -7em; + } + + .line4 .linenum { + margin-left: -8.5em; +} + + .line4 .obelus { + margin-left: -7.2em; +} + +.line5 { + margin-top: 0em; + margin-bottom: 0em; + margin-left: 6em; + margin-right: 5em; + text-indent: -1em; +} + + .line5 .translation_flag { + margin-left: -8em; + } + + .line5 .linenum { + margin-left: -9.5em; +} + + .line5 .obelus { + margin-left: -8.2em; +} + +.line6 { + margin-top: 0em; + margin-bottom: 0em; + margin-left: 7em; + margin-right: 6em; + text-indent: -1em; +} + + .line6 .translation_flag { + margin-left: -9em; + } + + .line6 .linenum { + margin-left: -10.5em; +} + + .line6 .obelus { + margin-left: -9.2em; +} + +.line7 { + margin-top: 0em; + margin-bottom: 0em; + margin-left: 8em; + margin-right: 7em; + text-indent: -1em; +} + + .line7 .translation_flag { + margin-left: -10em; + } + + .line7 .linenum { + margin-left: -11.5em; +} + + .line7 .obelus { + margin-left: -10.2em; +} + +.line8 { + margin-top: 0em; + margin-bottom: 0em; + margin-left: 9em; + margin-right: 8em; + text-indent: -1em; +} + + .line8 .translation_flag { + margin-left: -11em; + } + + .line8 .linenum { + margin-left: -12.5em; +} + + .line8 .obelus { + margin-left: -11.2em; +} + +.line9 { + margin-top: 0em; + margin-bottom: 0em; + margin-left: 10em; + margin-right: 9em; + text-indent: -1em; +} + + .line9 .translation_flag { + margin-left: -12em; + } + + .line9 .linenum { + margin-left: -13.5em; +} + + .line9 .obelus { + margin-left: -12.2em; +} + +.line10 { + margin-top: 0em; + margin-bottom: 0em; + margin-left: 11em; + margin-right: 10em; + text-indent: -1em; +} + + .line10 .translation_flag { + margin-left: -13em; + } + + .line10 .linenum { + margin-left: -14.5em; +} + + .line10 .obelus { + margin-left: -13.2em; +} + +.startline1 { + margin-top: 1.5em; + margin-bottom: 0em; + margin-left: 2em; + margin-right: 1em; + text-indent: -1em; +} + + .startline1 .translation_flag { + margin-left: -4em; + } + +.startline2 { + margin-top: 1.5em; + margin-bottom: 0em; + margin-left: 3em; + margin-right: 2em; + text-indent: -1em; +} + + .startline2 .translation_flag { + margin-left: -5em; + } + + .startline2 .linenum { + margin-left: -6.5em; +} + + .startline2 .obelus { + margin-left: -5.2em; +} + +.alert { + background-color: #ffff66 ! important; + color: #ff0000 ! important; + font-style: italic; +} + .alert A:link { + font-weight: bold; + color: #0000ff ! important; + } + .alert A:visited { + font-weight: bold; + color: #0000ff ! important; + } + .alert A:hover { + font-weight: bold; + color: #0000ff ! important; + } + .alert A:active { + font-weight: bold; + color: #0000ff ! important; + } + +.apparatus { + font-style: italic; +} + + .apparatus I { + font-style: normal; + font-size: 90%; + } + + .apparatus .Latin { + font-style: normal; + font-size: 95%; + } + + .apparatus .Greek { + font-style: normal; + } + + .apparatus .manuscript { + font-style: normal; + } + +.attention { + color: #ff0000 ! important; + font-style: italic; +} + +.center { + text-align: center; +} + +.crux { + background-color: #ffff66 ! important; + color: #ff0000 ! important; + vertical-align: top; + font-size: 80%; + font-style: normal; +} + .crux A:link { + font-weight: bold; + color: #0000ff ! important; + } + .crux A:visited { + font-weight: bold; + color: #0000ff ! important; + } + .crux A:hover { + font-weight: bold; + color: #0000ff ! important; + } + .crux A:active { + font-weight: bold; + color: #0000ff ! important; + } + + +.disordered_section { + text-align: center; + font-size: 85%; + font-style: italic; + background-color: #ccffff ! important; +} + +/* +syntax: 12 + */ +.stacked_fraction { + display: inline-block; + text-align: center; + font-size: 40%; + padding-left: 4px; +} + +.stacked_fraction .top { + padding-left: 4px; + text-decoration: underline; +} + +.stacked_fraction .bottom { + padding-left: 4px; + line-height: 0.6; + display: block; +} + +/* +syntax: 1/2 + */ +.fraction { + font-size: 60%; + vertical-align: middle; +} + +.fraction .top { + vertical-align: 25%; +} + +.fraction .bottom { + vertical-align: -10%; +} + +.inscription { + font-family: Verdana, sans-serif; + font-size: 80%; + line-height: 1.875; /* normal line height of 1.5 × (100%/80%) */ + -webkit-hyphens: none; + -ms-hyphens: none; + hyphens: none; +} + + .inscription .superscript { + font-size: 50%; + vertical-align: top; + } + +.kaput { + color: #666666 ! important; +} + +.lapis { + font-family: Verdana, sans-serif; + font-size: 80%; + color: #990000 ! important; + line-height: 1.5; +} + + .lapis .superscript { + font-size: 50%; + vertical-align: top; + } + + .lapis .emend { + color: #ee6633 ! important; + } + +.ligature { + color: #006666 ! important; +} + +.manuscript { + color: #000066 ! important; + font-family: Arial, sans-serif; + font-style: normal; + font-weight: bold; + font-size: 75%; +} + +.notice { + color: #003300 ! important; +} + +.offlinks { + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-size: 112%; + font-weight: bold; +} + +.Old_English { + text-transform: none; + font-family: Canterbury, "Cloister Black", Cimbrian, Raubtier, Lancaster, Augusta, Rochester, PaladinFLF, "Kleukens-Fraktur", "Palatino Linotype", Palatino, "Arial Unicode Ms", "Titus Cyberbit Basic", "Lucida Sans Unicode", serif, sans-serif ! important; +} + +.override_link { + color: #99ffff ! important; +} + +.overstrike { + text-decoration: line-through; +} + +.Palatino10 { + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-size: 69%; +} + +.bypass { +/* +same color as: poor_reading + */ + color: #999999 ! important; +} + + .Greek .bypass { + color: #ddc085 ! important; + } + + .Latin .bypass { + color: #999999 ! important; + } + +.poor_reading { +/* +same color as: bypass + */ + color: #999999 ! important; + text-decoration: line-through; +} + + .Greek .poor_reading { + color: #ddc085 ! important; + } + + .Latin .poor_reading { + color: #999999 ! important; + } + +.Roman { + color: #ff40c5 ! important; +} + +.site_summary { + font-family: sans-serif; + font-weight: normal; + font-size: 56%; +} + +.source { + color: #006600 ! important; +} + + .source .emend { + color: #119955 ! important; + } + + .source .Italian { + color: #002200 ! important; + } + + .source .source { + color: #002200 ! important; + } + +.Spanish { + color: #778800 ! important; +} + + .Spanish .emend { + color: #119955 ! important; + } + + .Spanish .source { + color: #002200 ! important; + } + +.superheading { + margin-top: 5em; + font-weight: bold; + text-transform: uppercase; + color: #009900 ! important; +} + +.two_links { +/* +for format, see +E/Gazetteer/Places/America/United_States/_Topics/history/_Texts/LESUSC/Bibliography*.html + */ + background-color: #f5d6e9 !important; + border-radius: 10% !important; + padding-top: 3px !important; + padding-bottom: 1px !important; + padding-left: 5px !important; + padding-right: 5px !important; + display: inline; + overflow: hidden; + white-space: nowrap; + + color: #00ff00 !important; + font-size: .6rem !important; + vertical-align: 1px; +} + .two_links A:link { + font-weight: bold; + color: #0000ff ! important; + } + .two_links A:visited { + font-weight: bold; + color: #ff0000 ! important; + } + .two_links A:hover { + font-weight: bold; + color: #ff00ff ! important; + } + +.whole { + -webkit-hyphens: none; + -ms-hyphens: none; + hyphens: none; +} + +.xURL { + font-family: Monaco, Consolas; +} + +.disclaimer_bar { + margin-top: 0em; + margin-bottom: 0em; + font-family: Verdana, Ariel, Helvetica, sans-serif; + font-size: 60%; + text-align: center; + background-color: #000000 ! important; + color: #ffff33 ! important; +} + + .disclaimer_bar P { + margin-top: 0em; + margin-bottom: 0em; + } + +.help_bar { + margin-top: 0em; + margin-bottom: 0em; + font-family: Verdana, Ariel, Helvetica, sans-serif; + font-size: 60%; + text-align: center; + background-color: #478acc ! important; + color: #ffffff ! important; +} + + .help_bar P { + margin-bottom: 1.5em; + } + + .help_bar A:link { + color: #ffff00 ! important; + font-style: italic; + font-weight: bold; + } + + .help_bar A:visited { + color: #ff6600 ! important; + font-style: italic; + font-weight: bold; + } + + .help_bar I { + line-height: .6; + font-size: 120%; + font-style: normal; + font-weight: bold; + color: #ff99cc ! important; + } + + .help_bar .asterisk { + line-height: .7; + font-size: 140%; + font-style: normal; + font-weight: bold; + color: #ff99cc ! important; + vertical-align: bottom; + } + +.high_alert { + background-color: #ffff33 ! important; + color: #ff0000 ! important; +} + +.left { + text-align: left; +} + +.right { + text-align: right; +} + +.a0 { + margin-bottom: 0em; +} + +.a1 { + margin-bottom: 1em; +} + +.a2 { + margin-bottom: 5em; +} + +.reduced_leading { + margin-top: -.7em; +} + +/* Jun 2017: used only in HALAHS */ +.strip { + margin-bottom: .3em; +} + +.b0 { + margin-top: 0em; +} + +.b1 { + margin-top: 1em; +} + +.nudge { + margin-top: 0.25em; +} + +.halfstart { + margin-top: 1.5em; +} + +.minirubric { + margin-top: 1.85em; +} + +.start { + margin-top: 3em; +} + +.start2 { + margin-top: 5em; +} + +.start3 { + margin-top: 7em; +} + +.halfafter { + margin-bottom: 1.5em; +} + +.after { + margin-bottom: 3em; +} + +.after2 { + margin-bottom: 5em; +} + +.after3 { + margin-bottom: 7em; +} + +.drop5 { + margin-top: 5px; +} + +.critical_note { + text-align: justify; + font-style: italic; +} + + .critical_note I { + font-style: normal; /*(don't italicize)*/ + } + + .critical_note .Latin { + font-style: normal; + color: #990000 ! important; + } + + .critical_note .Greek { + font-style: normal; + } + + .critical_note .manuscript { + font-style: normal; + } + +A.left_margin_ref { + position: absolute; + top: auto; + left: +6em; + text-align: right; + font-family: Verdana, sans-serif; + font-style: normal; + font-size: .58rem; + font-weight: bold; + text-transform: none; + color: #0000ff ! important; + vertical-align: super; +} +A.left_margin_ref:link { + text-decoration: none; + color: #0077cc ! important; +} +A.left_margin_ref:visited { + text-decoration: none; + color: #ff0000 ! important; +} +A.left_margin_ref:hover { + text-decoration: none; + color: #ff0000 ! important; + background-color: #ffff00 ! important; +} + +.running_title { + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + position: absolute; + top: auto; + width: 90px; + left: +65px; + text-align: center; + font-style: normal; + font-weight: normal; + text-transform: none; + font-variant: normal; + font-size: 15px; + line-height: 1.2; +} + +.my_running_title { + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + position: absolute; + top: auto; + width: 90px; + left: +65px; + text-align: center; + font-size: .60rem; + font-style: italic; + font-weight: normal; + text-transform: none; + font-variant: normal; + line-height: 1.4; + +/* + color matches .emend + */ + +/* +Inside the style, open with a command-space in style "larger", like this: +  +which drops the title down for appearance + */ +} + +.scribal_heading { + margin-top: 3.5em; + margin-left: 3em; + text-indent: -3em; + text-align: justify; + font-size: 90%; + font-style: italic; +} + +.i1 { + text-indent: 1em; +} + +.i1 .running_title { + text-indent: 0; +} + +.i2 { + text-indent: 2em; +} + +.i3 { + text-indent: 3em; +} + +.i4 { + text-indent: 4em; +} + +.i5 { + text-indent: 5em; +} + +.i6 { + text-indent: 6em; +} + +.i7 { + text-indent: 7em; +} + +.i8 { + text-indent: 8em; +} + +.i9 { + text-indent: 9em; +} + +.i10 { + text-indent: 10em; +} + +.i11 { + text-indent: 11em; +} + +.i12 { + text-indent: 12em; +} + +.i13 { + text-indent: 13em; +} + +.i14 { + text-indent: 14em; +} + +.i15 { + text-indent: 15em; +} + +.i16 { + text-indent: 16em; +} + +.i17 { + text-indent: 17em; +} + +.i18 { + text-indent: 18em; +} + +.justify { + text-align: justify; +} + +.justified { + text-align: justify; +} + +.L1 { + margin-left: 1em; +} + +.L2 { + margin-left: 2em; +} + +.L3 { + margin-left: 3em; +} + +.L4 { + margin-left: 4em; +} + +.L5 { + margin-left: 5em; +} + +.L6 { + margin-left: 6em; +} + +.L7 { + margin-left: 7em; +} + +.L8 { + margin-left: 8em; +} + +.L9 { + margin-left: 9em; +} + +.L10 { + margin-left: 10em; +} + +.L11 { + margin-left: 11em; +} + +.L12 { + margin-left: 12em; +} + +.L13 { + margin-left: 13em; +} + +.L14 { + margin-left: 14em; +} + +.L15 { + margin-left: 15em; +} + +.L16 { + margin-left: 16em; +} + +.L17 { + margin-left: 17em; +} + +.L18 { + margin-left: 18em; +} + +.L19 { + margin-left: 19em; +} + +.L20 { + margin-left: 20em; +} + +.r1 { + margin-right: 1em; + text-align: right; +} + +.r2 { + margin-right: 2em; + text-align: right; +} + +.r3 { + margin-right: 3em; + text-align: right; +} + +.r4 { + margin-right: 4em; + text-align: right; +} + +.r5 { + margin-right: 5em; + text-align: right; +} + +.r6 { + margin-right: 6em; + text-align: right; +} + +.r7 { + margin-right: 7em; + text-align: right; +} + +.r8 { + margin-right: 8em; + text-align: right; +} + +.r9 { + margin-right: 9em; + text-align: right; +} + +.r10 { + margin-right: 10em; + text-align: right; +} + +.r11 { + margin-right: 11em; + text-align: right; +} + +.r12 { + margin-right: 12em; + text-align: right; +} + +.r13 { + margin-right: 13em; + text-align: right; +} + +.r14 { + margin-right: 14em; + text-align: right; +} + +.r15 { + margin-right: 15em; + text-align: right; +} + +.r16 { + margin-right: 16em; + text-align: right; +} + +.r17 { + margin-right: 17em; + text-align: right; +} + +.r18 { + margin-right: 18em; + text-align: right; +} + +.r19 { + margin-right: 19em; + text-align: right; +} + +.r20 { + margin-right: 20em; + text-align: right; +} + +.pushright1j { + margin-left: 1em; + text-align: justify; +} + +.pushright2j { + margin-left: 2em; + text-align: justify; +} + +.pushright3j { + margin-left: 3em; + text-align: justify; +} + +.pushright4j { + margin-left: 4em; + text-align: justify; +} + +.pushright5j { + margin-left: 5em; + text-align: justify; +} + +.pushright6j { + margin-left: 6em; + text-align: justify; +} + +.pushright7j { + margin-left: 7em; + text-align: justify; +} + +.pushright8j { + margin-left: 8em; + text-align: justify; +} + +.m1 { + margin-left: 1em; + margin-right: 1em; +} + +.b0m1j { +/* used for "b0 m1 justify" inside overLib boxes where quotes can't be used, as in the signatures of Britannica articles. +The other workaround is to use quotes, calling them " */ + margin-top: 0em; + margin-left: 1em; + margin-right: 1em; + text-align: justify; +} + +.m2 { + margin-left: 2em; + margin-right: 2em; +} + +.m3 { + margin-left: 3em; + margin-right: 3em; +} + +.m4 { + margin-left: 4em; + margin-right: 4em; +} + +.m5 { + margin-left: 5em; + margin-right: 5em; +} + +.m6 { + margin-left: 6em; + margin-right: 6em; +} + +.m7 { + margin-left: 7em; + margin-right: 7em; +} + +.m8 { + margin-left: 8em; + margin-right: 8em; +} + +.m9 { + margin-left: 9em; + margin-right: 9em; +} + +.m10 { + margin-left: 10em; + margin-right: 10em; +} + +.m11 { + margin-left: 11em; + margin-right: 11em; +} + +.m12 { + margin-left: 12em; + margin-right: 12em; +} + +.m13 { + margin-left: 13em; + margin-right: 13em; +} + +.m14 { + margin-left: 14em; + margin-right: 14em; +} + +.m15 { + margin-left: 15em; + margin-right: 15em; +} + +.m16 { + margin-left: 16em; + margin-right: 16em; +} + +.m17 { + margin-left: 17em; + margin-right: 17em; +} + +.m18 { + margin-left: 18em; + margin-right: 18em; +} + +.m19 { + margin-left: 19em; + margin-right: 19em; +} + +.m20 { + margin-left: 20em; + margin-right: 20em; +} + +.x1 { + margin-left: 1em; + text-indent: -1em; +} + +.x2 { + margin-left: 2em; + text-indent: -2em; +} + +.x3 { + margin-left: 3em; + text-indent: -3em; +} + +.x4 { + margin-left: 4em; + text-indent: -4em; +} + +.x5 { + margin-left: 5em; + text-indent: -5em; +} + +.x6 { + margin-left: 6em; + text-indent: -6em; +} + +.x7 { + margin-left: 7em; + text-indent: -7em; +} + +.x8 { + margin-left: 8em; + text-indent: -8em; +} + +.x9 { + margin-left: 9em; + text-indent: -9em; +} + +.x10 { + margin-left: 10em; + text-indent: -10em; +} + +.m1x1 { + margin-left: 2em; + margin-right: 1em; + text-indent: -1em; +} + +.m1x2 { + margin-left: 3em; + margin-right: 1em; + text-indent: -2em; +} + +.m1x3 { + margin-left: 4em; + margin-right: 1em; + text-indent: -3em; +} + +.m1x4 { + margin-left: 5em; + margin-right: 1em; + text-indent: -4em; +} + +.m1x5 { + margin-left: 6em; + margin-right: 1em; + text-indent: -5em; +} + +.m1x6 { + margin-left: 7em; + margin-right: 1em; + text-indent: -6em; +} + +.m1x7 { + margin-left: 8em; + margin-right: 1em; + text-indent: -7em; +} + +.m1x8 { + margin-left: 8em; + margin-right: 1em; + text-indent: -9em; +} + +.m2x1 { + margin-left: 3em; + margin-right: 2em; + text-indent: -1em; +} + +.m2x2 { + margin-left: 4em; + margin-right: 2em; + text-indent: -2em; +} + +.m2x3 { + margin-left: 5em; + margin-right: 2em; + text-indent: -3em; +} + +.m2x4 { + margin-left: 6em; + margin-right: 2em; + text-indent: -4em; +} + +.m3x1 { + margin-left: 4em; + margin-right: 2em; + text-indent: -1em; +} + +.m3x2 { + margin-left: 5em; + margin-right: 2em; + text-indent: -2em; +} + +.m3x3 { + margin-left: 6em; + margin-right: 2em; + text-indent: -3em; +} + +.m3x4 { + margin-left: 7em; + margin-right: 2em; + text-indent: -4em; +} + +.m4x1 { + margin-left: 5em; + margin-right: 2em; + text-indent: -1em; +} + +.m4x2 { + margin-left: 6em; + margin-right: 2em; + text-indent: -2em; +} + +.m4x3 { + margin-left: 7em; + margin-right: 2em; + text-indent: -3em; +} + +.m4x4 { + margin-left: 8em; + margin-right: 2em; + text-indent: -4em; +} + +.m5x1 { + margin-left: 6em; + margin-right: 2em; + text-indent: -1em; +} + +.m5x2 { + margin-left: 7em; + margin-right: 2em; + text-indent: -2em; +} + +.m5x3 { + margin-left: 8em; + margin-right: 2em; + text-indent: -3em; +} + +.m6x1 { + margin-left: 7em; + margin-right: 2em; + text-indent: -1em; +} + +.m6x2 { + margin-left: 8em; + margin-right: 2em; + text-indent: -2em; +} + +.m6x3 { + margin-left: 9em; + margin-right: 2em; + text-indent: -3em; +} + +.m7x1 { + margin-left: 8em; + margin-right: 2em; + text-indent: -1em; +} + +.m7x2 { + margin-left: 9em; + margin-right: 2em; + text-indent: -2em; +} + +.m7x3 { + margin-left: 10em; + margin-right: 2em; + text-indent: -3em; +} + +.m8x1 { + margin-left: 9em; + margin-right: 2em; + text-indent: -1em; +} + +.m8x2 { + margin-left: 10em; + margin-right: 2em; + text-indent: -2em; +} + +.m8x3 { + margin-left: 11em; + margin-right: 2em; + text-indent: -3em; +} + +.m9x1 { + margin-left: 10em; + margin-right: 2em; + text-indent: -1em; +} + +.m9x2 { + margin-left: 11em; + margin-right: 2em; + text-indent: -2em; +} + +.m9x3 { + margin-left: 12em; + margin-right: 2em; + text-indent: -3em; +} + +.m10x1 { + margin-left: 11em; + margin-right: 2em; + text-indent: -1em; +} + +.m10x2 { + margin-left: 12em; + margin-right: 2em; + text-indent: -2em; +} + +.m10x3 { + margin-left: 13em; + margin-right: 2em; + text-indent: -3em; +} + +.m11x1 { + margin-left: 12em; + margin-right: 2em; + text-indent: -1em; +} + +.m11x2 { + margin-left: 13em; + margin-right: 2em; + text-indent: -2em; +} + +.m11x3 { + margin-left: 14em; + margin-right: 2em; + text-indent: -3em; +} + +.m12x1 { + margin-left: 13em; + margin-right: 2em; + text-indent: -1em; +} + +.m12x2 { + margin-left: 14em; + margin-right: 2em; + text-indent: -2em; +} + +.m12x3 { + margin-left: 15em; + margin-right: 2em; + text-indent: -3em; +} + +.m13x1 { + margin-left: 14em; + margin-right: 2em; + text-indent: -1em; +} + +.m13x2 { + margin-left: 15em; + margin-right: 2em; + text-indent: -2em; +} + +.m13x3 { + margin-left: 16em; + margin-right: 2em; + text-indent: -3em; +} + +.m14x1 { + margin-left: 15em; + margin-right: 2em; + text-indent: -1em; +} + +.m14x2 { + margin-left: 16em; + margin-right: 2em; + text-indent: -2em; +} + +.m14x3 { + margin-left: 17em; + margin-right: 2em; + text-indent: -3em; +} + +.m15x1 { + margin-left: 16em; + margin-right: 2em; + text-indent: -1em; +} + +.m15x2 { + margin-left: 17em; + margin-right: 2em; + text-indent: -2em; +} + +.m15x3 { + margin-left: 18em; + margin-right: 2em; + text-indent: -3em; +} + +.linenum0 { + font-size: 70%; + font-family: Verdana, Ariel, Helvetica, sans-serif; +} + +.linenum { + position: absolute; + top: auto; + margin-left: -5em; + margin-bottom: 0em; + margin-top: .1em; + height: 0em; + width: 3em; + font-size: .70rem; + font-family: Verdana, Ariel, Helvetica, sans-serif; + text-align: right; +} + +.verse1 { + margin-top: 0em; + margin-bottom: 0em; + margin-left: 2em; + text-indent: -2em; +} + +.verse2 { + margin-top: 0em; + margin-bottom: 0em; + margin-left: 4em; + text-indent: -2em; +} + +.verse3 { + margin-top: 0em; + margin-bottom: 0em; + margin-left: 6em; + text-indent: -2em; +} + +.verse4 { + margin-top: 0em; + margin-bottom: 0em; + margin-left: 8em; + text-indent: -2em; +} + +.verse5 { + margin-top: 0em; + margin-bottom: 0em; + margin-left: 10em; + text-indent: -2em; +} + +.verse6 { + margin-top: 0em; + margin-bottom: 0em; + margin-left: 12em; + text-indent: -2em; +} + +.verse7 { + margin-top: 0em; + margin-bottom: 0em; + margin-left: 14em; + text-indent: -2em; +} + +.verse8 { + margin-top: 0em; + margin-bottom: 0em; + margin-left: 16em; + text-indent: -2em; +} + +.verse9 { + margin-top: 0em; + margin-bottom: 0em; + margin-left: 18em; + text-indent: -2em; +} + +.verse10 { + margin-top: 0em; + margin-bottom: 0em; + margin-left: 20em; + text-indent: -2em; +} + +.verse11 { + margin-top: 0em; + margin-bottom: 0em; + margin-left: 22em; + text-indent: -2em; +} + +.verse12 { + margin-top: 0em; + margin-bottom: 0em; + margin-left: 24em; + text-indent: -2em; +} + +.bland { + color: #000066 ! important; +} + + .mynote .bland { + color: #000066 ! important; + } + +.bland I { + color: #000066 ! important; +} + +.bland A I { + color: #ff0000 ! important; +} + +.blank { + border-bottom: 1px solid; + white-space:pre; +} + +.blank1 { + width: 20px; + height: 15px; + border-bottom: 1px solid; + white-space:pre; +} + +.blank2 { + width: 50px; + height: 15px; + border-bottom: 1px solid; + white-space:pre; +} + +.empty { + white-space:pre; +} + +.caps { + text-transform: uppercase; +} + +.lowcaps { + font-size: 85%; + text-transform: uppercase; +} + .prose .lowcaps { + word-spacing: 5px; + } + +.lowercase { + text-transform: lowercase; +} + +.no_transform { + text-transform: none; +} + +.telegram { + font-family: Verdana, sans-serif; + font-size: 80%; + line-height: 1.875; /* normal line-height (1.5) divided by font-size 80%: this keeps the line spacing even */ + text-transform: uppercase; +} + .telegram .outquote { + text-transform: none; + } + +.constrained { + line-height: 100%; +} + +.constrained110 { + line-height: 110%; +} + +.constrained90 { + line-height: 90%; +} + +.constrained80 { + line-height: 80%; +} + +.bold { + font-weight: bold; +} + +.italic { + font-style: italic; +} + + .italic I { + font-style: normal; + font-size: 90%; + } + +.normal { + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-size: 100%; + font-style: normal; + font-weight: normal; + text-transform: none; + font-variant: normal; +} + +.thin { + font-weight: normal; +} + +.usual { + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; +} + +.exergue { + margin-top: 6em; + margin-bottom: 3em; + margin-left: 200px; + font-size: 85%; + text-align: justify; +} + +.exergue_left { + margin-top: 6em; + margin-bottom: 3em; + margin-right: 300px; + font-size: 85%; + text-align: justify; +} + +.synopsis { + margin-top: -1.5em; + margin-bottom: 3em; + font-size: 85%; + font-style: italic; + text-align: justify; +} + +/* After the signature block, insert

: See +E/Gazetteer/People/Holden_Evans/Fight_for_a_Better_Navy/2/8*.html#signature_block_example + */ +.signature_block { + float: right; +/* + margin-right: 0px; + */ +} + +.no_float { + clear: both; +} + +.signature_nonce { /* used on only 2 pages */ + position: absolute; + width: 20em; + right: +7em; +} + +/*the "pagenum" styles are linked to the style "poppy"*/ +.pagenum { + position: absolute; +/* +It is positioned relative to the ancestor block, so for style "verse/exquotemark" it requires "PAGENUM WORKAROUND", below. +*/ + top: auto; + right: +1.5em; + width: 70px; + text-align: right; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-style: normal; + font-weight: normal; + text-transform: none; + font-variant: normal; + letter-spacing: normal; + font-size: small; + color: #ff3300 ! important; +} + + .pagenum .Latin { + color: #990000 ! important; + } + + +/* +"pagenum_right" is identical with "pagenum"; Cullum's "pagenum" defaults to LEFT +*/ +.pagenum_right { + position: absolute; + top: auto; + right: +1.5em; + text-align: right; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-style: normal; + font-weight: normal; + text-transform: none; + font-variant: normal; + font-size: small; + color: #ff3300 ! important; +} + +.pagenum_left { + position: absolute; + top: auto; + left: +4.5em; + text-align: left; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-style: normal; + font-weight: normal; + text-transform: none; + font-variant: normal; + font-size: small; + color: #ff3300 ! important; +} + +.i1 .pagenum_left { + left: +3.5em; +} + +.pagenum1 { + position: absolute; + top: auto; + right: +1.5em; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-style: italic; + font-weight: normal; + text-transform: none; + font-variant: normal; + font-size: small; + color: #ff3300 ! important; +} + +.pagenumPassed { + position: absolute; + top: auto; + right: +1.5em; + width: 70px; + text-align: right; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-style: normal; + font-weight: normal; + text-transform: none; + font-variant: normal; + font-size: .75rem; + color: #ff3300 ! important; +} + +/*the color of "poppy" style should be the same as that of the main "pagenum" styles*/ +.poppy { + color: #ff3300 ! important; +} + +.pagenum_doc { + position: absolute; + top: auto; + left: +1.5em; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-style: italic; + font-weight: normal; + text-transform: none; + font-variant: normal; + font-size: .81rem; + color: #ff6666 ! important; +} + +.blankpage { + position: absolute; + top: auto; + right: +1.5em; + width: 120px; + text-align: right; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-size: 60%; + font-style: normal; + font-weight: normal; + text-transform: none; + font-variant: normal; + letter-spacing: normal; + font-size: small; + color: #ff3300 ! important; +} + +.versenum { + position: absolute; + top: auto; + right: 25%; + text-align: right; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-style: normal; + font-variant: normal; + font-size: .70rem; + text-transform: none; + font-weight: normal; + letter-spacing: normal; + color: #bf0000 ! important; +} + +.sourceverse { + line-height: 1.5; + margin-left: 2em; + margin-right: 2em; +} + +.sourceverse P { + margin-top: 0em; + margin-bottom: 0em; + margin-left: 3em; + margin-right: 3em; + text-indent: -3em; +} + +.sourceverse P.i1 { + margin-left: 4em; +} + +.question { + margin-top: 2em; + text-align: justify; + font-style: italic; +} + +.answer { + text-align: justify; + margin-left: 3em; +} + +.searchand { + color: #006600 ! important; + font-weight: bold; +} + +.searchandGreek { + font-family: "Lucida Grande", "Palatino Linotype", "Arial Unicode Ms", "Titus Cyberbit Basic", "Lucida Sans Unicode", sans-serif ! important; + color: #996600 ! important; + font-weight: bold; +} + +.searchandLatin { + color: #990000 ! important; + font-weight: bold; +} + +.citation { + font-family: Verdana, sans-serif; + font-size: 75%; + font-variant: normal; +} + +.editor { + color: #000066 ! important; + font-family: Arial, sans-serif; + font-style: normal; + font-weight: bold; + font-size: 75%; + font-variant: small-caps; +} + +.editor_comment { + color: #000066 ! important; + font-family: Arial, sans-serif; + font-style: italic; +} + +.error { + color: #ff0000 ! important; + font-weight: bold; +} + +.entry { + font-weight: bold; + font-variant: small-caps; +} + +P.excerptor { + margin-top:-1.3em; + margin-bottom:2em; + text-align: right; + font-size: 75%; +} + +/* keep LVHA order: */ +/* A:link, A:visited, A:hover, A:active */ +A.fort:link { + color: #5555cc !important; + border-bottom: dotted #ffff99; +} + +A.fort:visited { + color: #CC4400 !important; + border-bottom: dotted #edddcc; +} + .mynote A.fort:visited { + color: #990000 ! important; + border-bottom: dotted #990000; + } + .mynoteWide A.fort:visited { + color: #990000 ! important; + border-bottom: dotted #990000; + } + +A.fort:hover { + color: #edddcc !important; + border-bottom: dotted #edddcc; +} + .mynote A.fort:hover { + color: #edddcc ! important; + border-bottom: dotted #edddcc; + } + .mynoteWide A.fort:hover { + color: #edddcc ! important; + border-bottom: dotted #edddcc; + } + +A.fort:active { + color: #edddcc !important; + border-bottom: dotted #edddcc; +} + .mynote A.fort:active { + color: #edddcc ! important; + border-bottom: dotted #edddcc; + } + .mynoteWide A.fort:active { + color: #edddcc ! important; + border-bottom: dotted #edddcc; + } + +.Greek_entry { + font-family: "Avdira", "Titus Cyberbit Basic", serif ! important; + font-weight: bold; +} + +.entry0 { +/* used only in NEW */ + text-align: justify; + font-size: 120%; + font-weight: bold; +} + + .entry0 .start { +/* THIS DOESN'T WORK. "start" only works because the style is defined elsewhere, as I can see if I rename it. Renaming "entry0" to something without the terminal number doesn't help. The CSS checked out at W3C. + + THIS IS WHY I HAVE THE STYLE "entry00", which does work. +*/ + color: #339900 ! important; + margin-top: 3em; + } + +.entry00 { +/* used only in NEW */ + text-align: justify; + font-size: 120%; + font-weight: bold; + color: #339900 ! important; + margin-top: 3em; +} + .entry00 A { + color: #00FF00 ! important; /* THIS DOESN'T WORK. */ + } + +.entry1 { + color: #cc6633 ! important; + font-weight: bold; + font-family: Verdana, Ariel, Helvetica, sans-serif; +} + +.goof { + color: #ff0000 ! important; + font-weight: bold; +} + +.nocaps { + font-variant: normal; +} + +.railroad_symbol { + color: #990000 ! important; + font-family: Arial, sans-serif; + font-style: normal; + font-weight: bold; +} + +.smallcaps { + font-variant: small-caps; +} + +.larger .smallcaps { + font-variant: normal; + text-transform: uppercase; +} + +.prose .smallcaps { + font-family: Fontin_Sans_SC, sans-serif; + letter-spacing: .06em; +/* FOR DEBUG, TOGGLE THE NEXT LINE ON/OFF: */ + +/* color: #ff6600 ! important; */ +} + +/* used rather little so far: see for example +E/Gazetteer/Places/Europe/Italy/Umbria/Terni/Acquasparta/Acquasparta/home.html*/ +.gazetteer_link { + font-variant: small-caps; +} + +.WebRef { + font-family: Verdana, sans-serif; + font-size: 90%; + color: #ff6600 ! important; +} + +/* keep LVHA order: */ +/* A:link, A:visited, A:hover, A:active */ +A:link { + color: #0000ff ! important; +} +/* + A:link I { + color: #0000ff ! important; + } + */ + + A:link IMG { + border-width: 1px; + } + +A:visited { + color: #cc0000 ! important; +} + +A:hover { + color: #ff00ff ! important; +} + +A:active { + color: #ff00ff ! important; +} + +A:link IMG.alias0 { + border-width: 1px; + border-style: dotted; + width: 279px; + height: 186px; + margin: 5px; +} + +A:link IMG.alias1 { + border-width: 1px; + border-style: solid; + width: 279px; + height: 186px; + margin: 5px; +} + +A:link IMG.alias2 { + border-width: 2px; + border-style: solid; + width: 279px; + height: 186px; + margin: 4px; +} + +A:link IMG.alias4 { + border-width: 4px; + border-style: solid; + width: 279px; + height: 186px; + margin: 2px; +} + +A:link IMG.icon0 { + border-width: 1px; + border-style: dotted; + width: 132px; + height: 88px; + margin-top: 10px; + margin-bottom: 5px; + margin-left: 5px; + margin-right: 5px; +} + +A:link IMG.icon1 { + border-width: 1px; + border-style: solid; + width: 132px; + height: 88px; + margin-top: 10px; + margin-bottom: 5px; + margin-left: 5px; + margin-right: 5px; +} + +A:link IMG.icon2 { + border-width: 2px; + border-style: solid; + width: 132px; + height: 88px; + margin-top: 11px; + margin-bottom: 4px; + margin-left: 4px; + margin-right: 4px; +} + +A:link IMG.icon4 { + border-width: 4px; + border-style: solid; + width: 132px; + height: 88px; + margin-top: 13px; + margin-bottom: 2px; + margin-left: 2px; + margin-right: 2px; +} + +A:link IMG.rubric0 { + border-width: 1px; + border-style: dotted; + width: 132px; + height: 88px; + margin-left: 15px; + margin-right: 15px; +} + +A:link IMG.rubric1 { + border-width: 1px; + border-style: solid; + width: 132px; + height: 88px; + margin-left: 15px; + margin-right: 15px; +} + +A:link IMG.rubric2 { + border-width: 2px; + border-style: solid; + width: 132px; + height: 88px; + margin-left: 14px; + margin-right: 14px; +} + +A:link IMG.rubric4 { + border-width: 4px; + border-style: solid; + width: 132px; + height: 88px; + margin-left: 12px; + margin-right: 12px; +} + +A:link IMG.minirubric1 { + border-width: 1px; + border-style: solid; + width: 60px; + height: 40px; + margin-left: 87px; + margin-right: 15px; +} + +A:link IMG.minirubric2 { + border-width: 2px; + border-style: solid; + width: 60px; + height: 40px; + margin-left: 86px; + margin-right: 14px; +} + +A:link IMG.minirubric4 { + border-width: 4px; + border-style: solid; + width: 60px; + height: 40px; + margin-left: 84px; + margin-right: 12px; +} + +A:link IMG.thumb0 { + border-width: 1px; + border-style: dotted; + width: 60px; + height: 40px; + margin-top: 5px; + margin-bottom: 5px; +} + +A:link IMG.thumb1 { + border-width: 1px; + border-style: solid; + width: 60px; + height: 40px; + margin-top: 5px; + margin-bottom: 5px; +} + +A:link IMG.thumb2 { + border-width: 2px; + border-style: solid; + width: 60px; + height: 40px; + margin-top: 4px; + margin-bottom: 4px; +} + +A:link IMG.thumb4 { + border-width: 4px; + border-style: solid; + width: 60px; + height: 40px; + margin-top: 2px; + margin-bottom: 2px; +} + +A.help:hover { + text-decoration: none; + color: #0000ff ! important; + cursor: help; +} + +.added_link { + font-size: 80%; + font-weight: bold; + text-decoration: none; + font-style: italic; + color: #666666 ! important; +} + + .added_link A:link { + color: #5555ff ! important; + } + +A.added_link { + color: #ff6666 ! important; +} + +A.added_link:link { + color: #5555ff ! important; +} + + A .manuscript { + color: #0000ff ! important; +} + + A:hover .manuscript { + color: #ff00ff ! important; +} + +BODY.default A.Cullum { + color: #998500 ! important; + background-color: transparent ! important; /*must match BODY*/ +} + +A.Cullum { + color: #ffdd00 ! important; + background-color: transparent ! important; /*must match BODY*/ + -webkit-hyphens: none; + -ms-hyphens: none; + hyphens: none; /* their names are not to be hyphenated */ +} + + A.Cullum .normal { + color: #0000ff ! important; +} + A.Cullum .emend { + color: #fff199 ! important; +} + A.Cullum .keep { + display: inline; + white-space: nowrap; +} + +A.discreet { + color: #5555cc ! important; +} + + A.discreet:visited { + text-decoration: none; + color: #cc5555 ! important; + } + + A.discreet:hover { + text-decoration: none; + color: #cc55cc ! important; + } + +A:link SPAN.discreet { + color: #7777cc ! important; +} + +A:visited SPAN.discreet { + text-decoration: none; + color: #cc7777 ! important; +} + +A:hover SPAN.discreet { + text-decoration: none; + color: #cc77cc ! important; +} + +A.quiet { + color: inherit ! important; +} + +A.quiet:hover { + text-decoration: none; + color: #0077cc ! important; + background-color: #ffff00 ! important; +} + +.offsite_link { + text-decoration: none; + font-style: italic; + color: #0000ff ! important; +} + +A.offsite_link { + font-weight: bold; + text-decoration: none; + font-style: italic; + color: #0000ff ! important; +} + +A.offsite_link:link { + color: #0000ff ! important; +} + +A.sec { + font-family: "Palatino Linotype", Palatino, "Arial Unicode Ms", "Titus Cyberbit Basic", "Lucida Sans Unicode", serif ! important; + font-size: 70%; + text-transform: none; + font-weight: normal; + color: #bf0000 ! important; + vertical-align: 10%; +} + +A.sec_for_proofing { + font-family: "Palatino Linotype", Palatino, "Arial Unicode Ms", "Titus Cyberbit Basic", "Lucida Sans Unicode", serif ! important; + font-size: 200%; + text-transform: none; + font-weight: normal; + color: #00aa00 ! important; + vertical-align: 10%; +} + +A/* keep the space that follows*/ .Latin { + color: #0066cc ! important; +} + +A:hover/* keep the space that follows*/ .Latin { + color: #ff00ff ! important; +} + +A/* keep the space that follows*/ .Greek { + color: #0066cc ! important; +} + +A:hover/* keep the space that follows*/ .Greek { + color: #ff00ff ! important; +} + +A.chapter { + font-size: 1.3em; + color: #bf0000 ! important; + text-decoration: none; + font-style: normal; + line-height: .5; +} + +A.GridRef:link { + font-family: Verdana, sans-serif; + color: #ff6600 ! important; +} + +A.GridRef:visited { + font-family: Verdana, sans-serif; + color: #cc0000 ! important; +} + +A.GridRef:hover { + font-family: Verdana, sans-serif; + color: #ff00ff ! important; +} + +A.GridRef:active { + font-family: Verdana, sans-serif; + color: #ff00ff ! important; +} + +A.Britannica_signature { + cursor: crosshair; + font-weight: normal; + color: #0000ff ! important; + vertical-align: top; +} + + A.Britannica_signature:link { + text-decoration: none; + color: #0000ff ! important; + } + +A.comment { + cursor: crosshair; + font-family: Verdana, sans-serif; + font-size: 53%; + font-style: normal; + font-weight: normal; + color: #0000ff ! important; + vertical-align: top; +} + + A.comment:link { + text-decoration: none; + color: #0000ff ! important; + } + + A.comment .center { + margin-top: 0em; + margin-bottom: 0em; + } + + A.comment SPAN.source { + font-weight: bold; + color: #006600! important; + } + +SPAN.promptsource { + font-weight: bold; + color: #009900 ! important; +} + +.correction { + cursor: crosshair; + font-family: Verdana, sans-serif; + font-size: 53%; + font-style: normal; + font-weight: normal; + color: #ff0000 ! important; + vertical-align: top; +} + + A.correction:link { + text-decoration: none; + color: #ff0000 ! important; + } + +SPAN.conversion { + color: #0099ff ! important; +} + +.white A.conversion { + color: #00ccff ! important; + vertical-align: super; + line-height: .3; +} + +.white .outquote { + color: #8533ad ! important; +} + +A.conversion { + cursor: crosshair; + font-family: Verdana, sans-serif; + font-size: 100%; + font-weight: normal; + color: #0099ff ! important; + vertical-align: super; + line-height: .3; +} + + A.conversion:link { + text-decoration: none; + color: #0099ff ! important; + } + +A.glossary { + cursor: crosshair; + font-family: Verdana, sans-serif; + font-size: 100%; + font-weight: normal; + color: #ff3366 ! important; + vertical-align: super; + line-height: .3; +} + +A.glossary:link { + text-decoration: none; + color: #ff3366 ! important; +} + +A.offpage { + font-size: 100%; + font-weight: normal; + color: #009900 ! important; + vertical-align: super; + line-height: .3; +} + +A.offpage:link { + text-decoration: none; + color: #009900 ! important; +} + +A.note { + font-family: Verdana, sans-serif; + font-style: normal; + font-size: 58%; + font-weight: bold; + text-transform: none; + color: #0000ff ! important; + vertical-align: super; +} +A.note:link { + text-decoration: none; + color: #0077cc ! important; +} +A.note:visited { + text-decoration: none; + color: #ff0000 ! important; +} +A.note:hover { + font-size: 81%; + text-decoration: none; + color: #ff0000 ! important; + background-color: #ffff00 ! important; +} + + A.note .Greek { + font-family: "Avdira", "Titus Cyberbit Basic", serif ! important; + color: #ff0000 ! important; + } + +A.guest_note { + font-family: "Avdira", "Titus Cyberbit Basic", serif ! important; + font-style: normal; + font-size: 58%; + font-weight: bold; + text-transform: none; + color: #0000ff ! important; + vertical-align: super; +} +A.guest_note:link { + text-decoration: none; + color: #0077cc ! important; +} +A.guest_note:visited { + text-decoration: none; + color: #ff0000 ! important; +} +A.guest_note:hover { + font-size: 81%; + text-decoration: none; + color: #ff0000 ! important; + background-color: #ffff00 ! important; +} + +A.note_for_proofing { + font-family: Verdana, sans-serif; + font-style: normal; + font-size: 200%; + font-weight: bold; + text-transform: none; + color: #0000ff ! important; + vertical-align: super; +} + +A.note_for_proofing:hover { + font-family: Verdana, sans-serif; + font-style: normal; + font-size: 200%; + font-weight: bold; + text-transform: none; + color: #ff0000 ! important; + background-color: #ffff00 ! important; + vertical-align: super; +} + +A.note_for_proofing:visited { + text-decoration: none; + color: #ff0000 ! important; +} + +.paragraph_summary { + position: absolute; + top: auto; + text-align: right; + left: +10px; + width: 70px; + font-family: "Palatino Linotype", Palatino, "Arial Unicode Ms", "Titus Cyberbit Basic", "Lucida Sans Unicode", serif ! important; + font-size: .60rem; + text-transform: none; + font-weight: normal; + color: #660000 ! important; +} + +A.ref { + font-family: Verdana, sans-serif; + font-style: normal; + font-size: 58%; + font-weight: bold; + font-variant: normal; + padding: .2em; + text-transform: none; + color: #0000ff ! important; + vertical-align: super; +} +A.ref:link { + text-decoration: none; + color: #0077cc ! important; +} +A.ref:visited { + text-decoration: none; + color: #ff0000 ! important; +} +A.ref:hover { + text-decoration: none; + color: #ff0000 ! important; + background-color: #ffff00 ! important; +} + + A.ref .Greek { + font-family: "Avdira", "Titus Cyberbit Basic", serif ! important; + color: #ff0000 ! important; + } + +H1 H2 H3 A.ref { + font-size: 75%; +} + +H3.apparatus { + margin-top: 2em; + margin-bottom: 1em; + font-weight: normal; + font-style: italic; + /* font-size: 70%; DOESN'T SEEM TO WORK? */ +} + +A.ref_for_proofing { + font-family: Verdana, sans-serif; + font-style: normal; + font-size: 200%; + font-weight: bold; + text-transform: none; + color: #0000ff ! important; + vertical-align: super; +} + +A.ref_for_proofing:hover { + font-family: Verdana, sans-serif; + font-style: normal; + font-size: 200%; + font-weight: bold; + text-transform: none; + color: #ff0000 ! important; + background-color: #ffff00 ! important; + vertical-align: super; +} +A.ref_for_proofing:visited { + text-decoration: none; + color: #ff0000 ! important; +} + +A.ref1 { + font-family: Verdana, sans-serif; + font-style: normal; + font-size: 58%; + font-weight: bold; + text-transform: none; + color: #0099ff ! important; + vertical-align: super; +} + +A.ref_in_text { + font-family: Verdana, sans-serif; + font-style: italic; + font-size: 62%; + font-weight: bold; + text-transform: none; + color: #5555ff ! important; +} + +A.ref_in_text:link { + text-decoration: none; + color: #5555ff ! important; +} + +A.ref_in_text:visited { + text-decoration: none; + color: #ff0000 ! important; +} + +A.ref_in_text:hover { + text-decoration: none; + color: #0077cc ! important; + background-color: #ffff00 ! important; +} + +A.guest_ref { + font-family: "Avdira", "Titus Cyberbit Basic", serif ! important; + font-style: normal; + font-size: 58%; + font-weight: bold; + font-variant: normal; + padding: .2em; + text-transform: none; + color: #0000ff ! important; + vertical-align: super; +} +A.guest_ref:link { + text-decoration: none; + color: #0077cc ! important; +} +A.guest_ref:visited { + text-decoration: none; + color: #ff0000 ! important; +} +A.guest_ref:hover { + text-decoration: none; + color: #ff0000 ! important; + background-color: #ffff00 ! important; +} + +.inline_note { + font-style: italic; + color: #cc0000 ! important; + font-family: Verdana, sans-serif; + font-size: 90%; +} + +INS.slip { + cursor: crosshair; + text-decoration: none; + border-bottom: dotted green; + border-bottom-width: thin; +} +/* +INS.slip1 { + cursor: URL(https://penelope.uchicago.edu/Thayer/Images/Utility/Cursors/arrowleft3.png), auto; + text-decoration: none; + border-bottom: dotted green; + border-bottom-width: thin; +} + */ + +INS.divergence { + cursor: crosshair; + text-decoration: none; + border-bottom: dotted red; + border-bottom-width: medium; +} + +.TextHas { + color: #009900 ! important; + font-weight: bold; +} + +SPAN.ref { + font-family: Verdana, sans-serif; + text-transform: none; + color: #000066 ! important; + font-weight: bold; + font-size: 58%; + vertical-align: super; +} + +SPAN.ref_for_proofing { + font-family: Verdana, sans-serif; + text-transform: none; + font-weight: bold; + font-size: 200%; + vertical-align: super; +} + +/* +The purpose of the following styles (quotemark, exquotemark) is to put the initial quotation mark outside the centered quote (verse). The CSS standards explicitly state that the following box is calculated as though the preceding box were not offset + (https://www.w3.org/TR/REC-CSS2/visuren.html#propdef-position) +thus requiring the "exquotemark" workaround. + +PAGENUM WORKAROUND: +To get pagenums to insert correctly at a line in the middle of a poem, follow this format: +

 p585  +

+ +To get pagenums to insert correctly at the beginning of a poem that starts a page, follow the same format (but if "start" is needed, "start" goes in BOTH

declarations), as for example: +

 p383  +

+ +Sometimes this latter workaround doesn't seem to work, either, as in p156 and p158 of +▸ E/Gazetteer/Places/America/United_States/Navy/_Texts/MERLIF/30*.html#Lament +where I substitute another method, not altogether satisfactorily. + +*/ +.quotemark { + position: relative; + left: -.1em; + text-transform: none; + font-weight: normal; +} + +P.exquotemark { + position: relative; + left:.2em; + text-transform: none; + font-weight: normal; +} + +.verse .quoted P { + position: relative; + left: .2em; + text-transform: none; + font-weight: normal; +} + +.verse .quoted P.first { + position: relative; + left: 0em; + text-transform: none; + font-weight: normal; +} + + +/* +.verse A.sec { + position: absolute; + top: auto; + left: +12.5em; + text-align: left; +} + */ + +A.subsec { + font-size: 70%; + font-weight: normal; + font-style: normal; + text-transform: uppercase; + color: #bf0000 ! important; + vertical-align: 20%; +} + +/*The following 2 are completely synonymous, for convenience:*/ +.underscore { + text-decoration: underline; +} +.underline { + text-decoration: underline; +} + +A.Tsec { + position: absolute; + top: auto; + left: +2em; + text-align: right; + font-family: Courier, serif ! important; + font-size: .70rem; + text-transform: uppercase; + font-style: normal; + font-weight: normal; + font-variant: normal; + color: #006600 ! important; +} + +TABLE.verse A.Tsec { + position: absolute; + top: auto; + left: +3.8em; /* basic margin + 1.8 */ + text-align: right; + font-family: Courier, serif ! important; + font-size: .70rem; + text-transform: uppercase; + font-style: normal; + font-weight: normal; + font-variant: normal; + color: #006600 ! important; +} + +A.Tsubsec { + position: absolute; + top: auto; + left: +3.85em; + font-family: Courier, serif ! important; + font-size: .70rem; + text-transform: uppercase; + font-style: normal; + font-weight: normal; + font-variant: normal; + color: #006600 ! important; +} + +A.Tsubsec_correction { + position: absolute; + top: auto; + left: +5.8em; + font-family: Verdana, sans-serif; + font-size: .53rem; + font-weight: normal; + font-style: normal; + color: #ff0000 ! important; + vertical-align: top; +} + + A.correction:link { + text-decoration: none; + color: #ff0000 ! important; + } + +/* used at first only in E/Roman/Texts/secondary/journals/TAPA/43/The_Ferentinum_of_Horace*.html +It must be used OUTSIDE any */ +.citation_left { + position: absolute; + top: auto; + left: +7.5em; + font-size: .70rem; + font-weight: normal; + font-style: normal; + color: #000066 ! important; +} + +TABLE.verse A.Tsubsec { + left: +8.85em; /* basic margin +5.0 */ +} + +P.stars { + margin-top: 1.5em; + font-size: 140%; + letter-spacing: 1.0em; + text-align: center; +} + +P.topstars { + text-align: center; + margin-top: 1.5em; + margin-bottom: 0em; +} + +P.bottomstars { + text-align: center; + margin-top: -1em; +} + +P.verse A.Tsubsec { + left: +7.4em; /* basic margin +3.3 */ +} + +P.verse1 A.Tsubsec { + left: +3.85em; /* basic margin +3.3 -2+2+ adjustment 3.9 */ +} + +P.verse2 A.Tsubsec { + left: +1.65em; /* basic margin +3.3 -4+2 */ +} + +P.verse3 A.Tsubsec { + left: -0.7em; /* basic margin +3.3 -6+2 */ +} + +P.verse4 A.Tsubsec { + left: -2.95em; /* basic margin +3.3 -8+2 */ +} + +P.verse5 A.Tsubsec { + left: -5.2em; /* basic margin +3.3 -10+2 */ +} + +P.verse6 A.Tsubsec { + left: -7.5em; /* basic margin +3.3 -12+2 */ +} + +P.verse7 A.Tsubsec { + left: -9.75em; /* basic margin +3.3 -14+2 */ +} + +P.verse8 A.Tsubsec { + left: -12em; /* basic margin +3.3 -14+2 */ +} + +A.Latin { + color: #cc6633 ! important; +} + +A.entry1 { + color: #3366ff ! important; + font-variant: normal; + font-weight: bold; + font-size: 90%; + font-family: Verdana, Ariel, Helvetica, sans-serif; +} + +DIV.further { + position: absolute; + top: auto; + font-size: .50rem; /* necessary to produce correct right margin*/ + right: +4em; +} + +DIV.default { + color: #000066 ! important; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; +} + +DIV.default1 { /* has now been replaced thruout by DIV.spacious */ + margin-left: 5em; + margin-right: 5em; + color: #000066 ! important; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; +} + +DIV.alert { /* mynote with background-color and color changed */ + background-color: #ffff66 ! important; + text-align: justify; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-size: 85%; + color: #ff0000 ! important; + margin-top: 1.6em; + margin-left: 100px; + margin-right: 100px; + padding-top: 0.4em; + padding-bottom: 0.4em; + padding-left: 1.3em; + padding-right: 1.3em; + border-style: double +} + +DIV.alert400 { /* mynoteNarrow with background-color and color changed */ + background-color: #ffff66 ! important; + text-align: justify; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-size: 85%; + color: #ff0000 ! important; + margin-top: 1.6em; + margin-bottom: 1.6em; + width: 400px; + margin-left: auto; + margin-right: auto; + padding-top: 0.4em; + padding-bottom: 0.4em; + padding-left: 1.3em; + padding-right: 1.3em; + border-style: double +} + +DIV.alert600 { +/* +mynote with background-color and color changed, +WIDTH matches TABLE.headerbox +*/ + background-color: #ffff66 ! important; + text-align: justify; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-size: 85%; + color: #ff0000 ! important; + font-style: italic; + margin-top: 10em; + margin-bottom: 1.6em; + width: 600px; + margin-left: auto; + margin-right: auto; + padding-top: 0.4em; + padding-bottom: 0.4em; + padding-left: 1.3em; + padding-right: 1.3em; + border-style: double +} + +DIV.slimBox { + background-color: #ccffff ! important; + text-align: justify; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-size: 85%; + color: #000066 ! important; +/* + margin-top: 1.6em; + */ + margin-left: 100px; + margin-right: 100px; +/* + padding-top: 0.4em; + padding-bottom: 0.4em; + */ + padding-left: 1.3em; + padding-right: 1.3em; + border-style: double +} + + .slimBox A:link { + color: #0000ff ! important; + } + .slimBox A:visited { + color: #ff0000 ! important; + } + .slimBox A:hover { + color: #ff00ff ! important; + } + .slimBox A:active { + color: #ff00ff ! important; + } + .slimBox P { + margin-bottom: 0em; + margin-top: 0em; + } + +DIV.mynote { + background-color: #ccffff ! important; + text-align: justify; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-size: 85%; + color: #000066 ! important; + margin-top: 1.6em; + margin-left: 100px; + margin-right: 100px; + padding-top: 0.4em; + padding-bottom: 0.4em; + padding-left: 1.3em; + padding-right: 1.3em; + border-style: double +} + + .mynote A:link { + font-weight: bold; + color: #0000ff ! important; + } + .mynote A:visited { + font-weight: bold; + color: #ff0000 ! important; + } + .mynote A:hover { + font-weight: bold; + color: #ff00ff ! important; + } + .mynote A:active { + font-weight: bold; + color: #ff00ff ! important; + } + .mynoteWide A:link { + font-weight: bold; + color: #0000ff ! important; + } + .mynoteWide A:visited { + font-weight: bold; + color: #ff0000 ! important; + } + .mynoteWide A:hover { + font-weight: bold; + color: #ff00ff ! important; + } + .mynoteWide A:active { + font-weight: bold; + color: #ff00ff ! important; + } + .mynoteNarrow A:link { + font-weight: bold; + color: #0000ff ! important; + } + .mynoteNarrow A:visited { + font-weight: bold; + color: #ff0000 ! important; + } + .mynoteNarrow A:hover { + font-weight: bold; + color: #ff00ff ! important; + } + .mynoteNarrow A:active { + font-weight: bold; + color: #ff00ff ! important; + } + .mynoteNarrowest A:link { + font-weight: bold; + color: #0000ff ! important; + } + .mynoteNarrowest A:visited { + font-weight: bold; + color: #ff0000 ! important; + } + .mynoteNarrowest A:hover { + font-weight: bold; + color: #ff00ff ! important; + } + .mynoteNarrowest A:active { + font-weight: bold; + color: #ff00ff ! important; + } + + DIV.mynote .Latin { + color: #990000 ! important; + } + + .mynote .source { + color: #00AA00 ! important; + } + + .mynote .outquote { + color: #7700b3 ! important; + } + + +DIV.mynote0 { + background-color: #ccffff ! important; + text-align: justify; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-size: 85%; + color: #000066 ! important; + margin-top: 0em; + margin-left: 100px; + margin-right: 100px; + padding-top: 0.4em; + padding-bottom: 0.4em; + padding-left: 1.3em; + padding-right: 1.3em; + border-style: double +} + .mynote0 .outquote { + color: #7700b3 ! important; + } + + +.mynote A.Cullum { + color: #907d45 ! important; + background-color: #ccffff ! important; +} +.mynoteWide A.Cullum { + color: #907d45 ! important; + background-color: #ccffff ! important; +} + +DIV.mynoteNarrow { + background-color: #ccffff ! important; + text-align: justify; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-size: 85%; + color: #000066 ! important; + margin-top: 1.6em; + margin-bottom: 1.6em; + width: 50%; + margin-left: auto; + margin-right: auto; + padding-top: 0.4em; + padding-bottom: 0.4em; + padding-left: 1.3em; + padding-right: 1.3em; + border-style: double +} + .mynoteNarrow .outquote { + color: #7700b3 ! important; + } + +DIV.mynoteNarrowest { + background-color: #ccffff ! important; + text-align: justify; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-size: 85%; + color: #000066 ! important; + margin-top: 1.6em; + margin-bottom: 1.6em; + width: 30%; + margin-left: auto; + margin-right: auto; + padding-top: 0.4em; + padding-bottom: 0.4em; + padding-left: 1.3em; + padding-right: 1.3em; + border-style: double +} + .mynoteNarrowest .outquote { + color: #7700b3 ! important; + } + +DIV.mynoteWide { + background-color: #ccffff ! important; + text-align: justify; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-size: 85%; + color: #000066 ! important; + margin-top: 1.6em; + margin-bottom: 1.6em; + width: 85%; + margin-left: auto; + margin-right: auto; + padding-top: 0.4em; + padding-bottom: 0.4em; + padding-left: 1.3em; + padding-right: 1.3em; + border-style: double +} + DIV.mynoteWide .Latin { + color: #990000 ! important; + } + + +DIV.mynoteBasicH { + background-color: #ccffff ! important; + text-align: justify; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-size: 85%; + color: #000066 ! important; + margin-top: 1.6em; + margin-bottom: 1.6em; + width: 574px; + margin-left: auto; + margin-right: auto; + padding-top: 0.4em; + padding-bottom: 0.4em; + padding-left: 1.3em; + padding-right: 1.3em; + border-style: double +} + +DIV.mynoteBasicH1 { + background-color: #ccffff ! important; + text-align: justify; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-size: 85%; + color: #000066 ! important; + margin-top: 1.6em; + margin-bottom: 1.6em; + width: 574px; + margin-left: auto; + margin-right: auto; + padding-top: 0.4em; + padding-bottom: 0.4em; + border-style: double +} + +DIV.specialBox { +/* Omit + background-color: #ccffff ! important; + color: #000066 ! important; +so that the font+background combination can be further specified (colors stylesheet) +*/ + text-align: justify; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-size: 85%; + margin-top: 1.6em; + margin-left: 100px; + margin-right: 100px; + padding-top: 0.4em; + padding-bottom: 0.4em; + padding-left: 1.3em; + padding-right: 1.3em; + border-style: double +} + +DIV.caption-centered { + margin: .35em; + font-size: 85%; + text-align: center; +} + +DIV.margin2 { + margin-left: 65px; + margin-right: 65px; + font-size: 90%; +} + +DIV.padall { + margin: 10px; +} + +.padall { + margin: 10px; +} + +DIV.reference { + color: #660066 ! important; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-size: 75%; + font-weight: bold; + text-align: center; +} + +DIV.diary_summary { + margin-left: .6em; + margin-right: 1.2em; + text-align: justify; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-size: 85%; +} + +DIV.diary_summary_date { + margin-right: 0.4em; + text-align: right; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-size: 85%; +} + +DIV.no_diary { + margin-left: .6em; + margin-right: 1.2em; + text-align: justify; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-size: 85%; + color: #666666 ! important; +} + +DIV.no_diary_date { + margin-right: 0.4em; + text-align: right; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-size: 85%; + color: #666666 ! important; +} + +.noScript { + text-align: center; + font-family: Verdana, sans-serif; + font-size: 112%; + font-weight: bold; + color: #ff0000 ! important; +} + +.PlaceDescriptor { /* used in GoogleMaps.js*/ + margin-top: 1.5em; + text-align: justify; +} + +DIV.MapBubble { /* used in GoogleMaps.js*/ + width: 200px; /* I'd like it smaller, but Google doesn't allow it, setting a purported minimum width of 204, but in fact it's about 250. */ + margin-top: 0; + margin-left: 0; + margin-right: 0; + font-family: Verdana, sans-serif; + font-style: normal; + text-transform: none; + font-variant: normal; + text-align: justify; + font-size: 50%; + font-weight: normal; +} + +DIV.MapBubbleHeading { /* used in GoogleMaps.js*/ + width: 200px; /* I'd like it smaller, but Google doesn't allow it, setting a purported minimum width of 204, but in fact it's about 250. */ + margin-left: 0; + margin-right: 0; + font-family: Verdana, sans-serif; + font-style: normal; + text-transform: none; + font-variant: normal; + text-align: left; + font-size: 60%; + font-weight: bold; +} + +.map_blue { + color: #7eb3ff ! important; +} + +.map_green { + color: #8cff77 ! important; +} + +.map_orange { + color: #ffa82c ! important; +} + +.map_pink { + color: #ffb4b1 ! important; +} + +.map_purple { + color: #df87ff ! important; +} + +.map_red { + color: #ff7a78 ! important; +} + +.map_yellow { + color: #fdff78 ! important; +} + +.emphasis { + color: #003399 ! important; +} + +.emend { + color: #0066cc ! important; +} + + A:hover .emend { + color: #ff00ff ! important; + } + + .emend .Greek { + color: #dd8833 ! important; + } + + .emend .Latin { + color: #cc3399 ! important; + } + .emend:lang(la) { + color: #cc3399 ! important; + } + +.transcription .emend { + color: #ff6699 ! important; +} + +/* used to render digammas better: */ +.Geneva { + font-family: Geneva; +} + +.Courier { + font-family: Courier, monospace; +} + +I I { /* i.e., within */ + font-style: normal; + font-size: 90%; +} + +SPAN.star { + font-family: Verdana, Ariel, Helvetica, sans-serif; + font-size: 90%; + color: #8800cc ! important; + font-style: italic; +} + + A SPAN.star { + color: #3366ff ! important; + } + + A:hover SPAN.star { + color: #ff00ff ! important; + } + +.fondbleu { + border-top: 0px !important; + border-bottom: 0px !important; + border-left: 0px !important; + border-right: 0px !important; + background-color: #ccffff ! important; + color: #555555 ! important; + border-radius: 8px; + padding-top: 2px !important; + padding-left: 5px !important; + padding-right: 5px !important; + display: inline; + overflow: hidden; + white-space: nowrap; +} + +.fondrose { + border-top: 0px !important; + border-bottom: 0px !important; + border-left: 0px !important; + border-right: 0px !important; + background-color: #ffcccc ! important; + color: #555555 ! important; + border-radius: 8px; + padding-top: 2px !important; + padding-left: 5px !important; + padding-right: 5px !important; + display: inline; + overflow: hidden; + white-space: nowrap; +} + +.fondviolet { + border-top: 0px !important; + border-bottom: 0px !important; + border-left: 0px !important; + border-right: 0px !important; + background-color: #d9e6ff ! important; + color: #555555 ! important; + border-radius: 8px; + padding-top: 2px !important; + padding-left: 5px !important; + padding-right: 5px !important; + display: inline; + overflow: hidden; + white-space: nowrap; +} + +.fondjaune { + border-top: 0px !important; + border-bottom: 0px !important; + border-left: 0px !important; + border-right: 0px !important; + background-color: #ffffcc ! important; + color: #555555 ! important; + border-radius: 8px; + padding-top: 2px !important; + padding-left: 5px !important; + padding-right: 5px !important; + display: inline; + overflow: hidden; + white-space: nowrap; +} + +SPAN.proofread { + color: #28cccc ! important; +} + +SPAN.unproofread { + color: #ff6666 ! important; +} + +SPAN.proof { + color: #009933 ! important; + font-weight: bold; +} + +SPAN.GridRef { + font-family: Verdana, sans-serif; + color: #ff6600 ! important; +} + +.overline { + text-decoration: overline; +} + +.Fraktur { + font-family: TypographerFraktur, "Lucida Blackletter", serif; +} + +.sanserif { + font-family: Verdana, Ariel, Helvetica, sans-serif; +} + +.double { + font-size: 200%; +} + +.large { + font-size: 120%; +} + +.larger { + font-size: 140%; +} + +.largest { + font-size: 160%; +} + +.small { + font-size: 85%; +} + + .small .smaller { + font-size: 88%; + } + +.smaller { + font-size: 75%; +} + +.smallest { + font-size: 60%; +} + +.minuscule { + font-size: 50%; +} + +.sourcecode { + font-family: Courier, monospace; + color: #006600 ! important; + font-size: 85%; +} + +.primary_source { + color: #339900 ! important; +} + +.up215 { + margin-top: -2.15em; +} + +SPAN.subscript { + font-family: Verdana, Ariel, Helvetica, sans-serif; + font-size: 65%; + vertical-align: bottom; +} + +SPAN.superscript { + font-family: Verdana, Ariel, Helvetica, sans-serif; + font-size: 60%; + vertical-align: top; +} + +SPAN.ordinal { + font-family: Verdana, Ariel, Helvetica, sans-serif; + font-size: 60%; + vertical-align: top; + font-variant: none; +} + +SPAN.raised { + vertical-align: 10%; + line-height: 100%; +} + +SPAN.manuscript .superscript { + font-family: Verdana, Ariel, Helvetica, sans-serif; + font-size: 60%; + vertical-align: 70%; +} + +.midalign { + vertical-align: middle; +} + +.ten { + font-size: 62%; +} + +.eleven { + font-size: 69%; +} + +.twelve { + font-size: 75%; +} + +.teensy { + font-size: 37%; +} + +H1 { + font-size: 150%; + text-align: center; + hyphens: none; +} + +H2 { + font-size: 120%; + text-align: center; + hyphens: none; +} + +H3 { + margin-top: 3.5em; + margin-bottom: 2em; + font-size: 100%; + text-align: left; + hyphens: none; +} + +H4 { + font-size: 85%; + hyphens: none; +} + +H5 { + font-size: 60%; + hyphens: none; +} + +H6 { + hyphens: none; +} + +H1, H2, H4.default { + margin-top: 3.5em; + margin-bottom: 2em; +} + +H1.small { + font-size: 120%; + text-align: center; +} + +H1.small_default { + font-size: 120%; + text-align: center; + margin-top: 3.5em; + margin-bottom: 2em; +} + +H2.large_default { + font-size: 150%; + text-align: center; + margin-top: 3.5em; + margin-bottom: 2em; +} + +H2.left { + margin-left: -50px; + font-size: 120%; + text-align: left; +} + +H2.diary { + margin-left: -50px; + margin-top: 6em; + margin-bottom: 2em; + font-size: 120%; + text-align: left; +} + +H3.boxed { + margin-top: 1em; + margin-bottom: 1.5em; + text-align: center; +} + +H3.center { +/* + font-size: 100%; + */ + text-align: center; +} + +H3.start { + margin-top: 3.5em; + margin-bottom: 2em; +} + +H3.start2 { + margin-top: 7.5em; + margin-bottom: 2em; +} + +H3.center-start { + text-align: center; + margin-top: 3.5em; + margin-bottom: 2em; +} + +H4.lowcaps { + font-size: 72%; + text-transform: uppercase; +} + +H4.halfstart { + margin-top: 2.7em; + margin-bottom: 2em; +} + +H4.start { + margin-top: 3.5em; + margin-bottom: 2em; +} + +H5.start { + margin-top: 3.5em; + margin-bottom: 2em; +} + +H6.start { + margin-top: 3.5em; + margin-bottom: 2em; +} + +H4.center-start { + text-align: center; + margin-top: 3.5em; + margin-bottom: 2em; +} + +H3.document { + font-size: 90%; + text-align: center; + font-weight: 300; + font-style: italic; +} + +H4.center { + font-size: 85%; + text-align: center; +} + +H4.interTitle { + margin-top:0; + font-size: 85%; + text-align: center; +} + +H5.center { + font-size: 60%; + text-align: center; +} + +HR { + text-align: center; +} + +HR.endnotes { + text-align: center; + width: 60%; + margin-top:4em; + margin-bottom:2.5em; +} + +HR.default { + text-align: center; + width: 60%; + margin-top:2.5em; + margin-bottom:2.5em; +} + +HR.small { + text-align: center; + width: 15%; + margin-top:2.5em; + margin-bottom:2.5em; +} + +HR.blip { + text-align: center; + width: 50px; + margin-top:.5em; + margin-bottom:.5em; +} + +HR.left { + text-align: left; + margin-top: 0.5em; + margin-bottom: 0.5em; +} + +IMG { + border-width: 0; +/* The hyphenation and alignment specs are for the ALTs, to prevent hyphenation and justify them: */ + text-align: justify; + -webkit-hyphens: none; + -ms-hyphens: none; + hyphens: none; +} + +IMG.setPageWidth { + width: 608px; + height: 20px; +} + +IMG.hedera { + width: 15px; + height: 13px; + margin-top: 1.3em; + margin-bottom: 0.3em; +} + +IMG.rue { + width: 24px; + height: 24px; + margin-top: 1.3em; + margin-bottom: 0.3em; +} + +IMG.WP_grad { + width: 15px; + height: 13px; + border-width: 0; + vertical-align: top; +} + +/* the following is required to make "TR.topBorder" (etc.) work: */ +TABLE.noBorders { + border-collapse: collapse; + border-left: 0px; + border-right: 0px; +} + +TABLE TR.topBorder{ + border-collapse: collapse; + border-top: 1px solid; +} + +TABLE TR.bottomBorder{ + border-collapse: collapse; + border-bottom: 1px solid; +} + +TABLE TR.topandbottomBorder{ + border-collapse: collapse; + border-top: 1px solid; + border-bottom: 1px solid; +} + +TABLE TR.topBorderBold{ + border-collapse: collapse; + border-top: 2px solid; +} + +.leftBorder{ + border-collapse: collapse; + border-left: 1px solid; +} + +.rightBorder{ + border-collapse: collapse; + border-right: 1px solid; +} + +TABLE TR.discreetly_separated{ + border: 3px; + border-style: solid none none; +} + +TABLE.TOC TR.discreetly_separated{ + border-color: #ffffff; +} + +TABLE TR.bottomBorderBold{ + border-collapse: collapse; + border-bottom: 2px solid; +} + +TABLE.columnBorders { + border-collapse: collapse; + border-left: 1px solid; + border-right: 1px solid; +} + + TABLE.columnBorders TR TD { + border-left: 1px solid; + border-right: 1px solid; + } + +TABLE.basicH { + width: 567px; +} + +IMG.basicH { + width: 567px; + height: 378px; +} + +TABLE.iPhoneLargeH { + width: 800px; +} + +IMG.iPhoneLargeH { + width: 800px; + height: 600px; +} + +TABLE.iPhoneH { + width: 567px; +} + +IMG.iPhoneH { + width: 567px; + height: 425px; +} + +TABLE.basicV { + width: 252px; +} + +IMG.basicV { + width: 252px; + height: 378px; +} + +IMG.largeV { + width: 378px; + height: 567px; +} + +IMG.largeS { + width: 567px; + height: 567px; +} + +IMG.H320 { + width: 567px; + height: 320px; +} + +TABLE.V270 { + width: 270px; +} + +IMG.V270 { + width: 270px; + height: 378px; +} + +TABLE.V280 { + width: 280px; +} + +IMG.V280 { + width: 280px; + height: 378px; +} + +TABLE.V300 { + width: 300px; +} + +IMG.V300 { + width: 300px; + height: 378px; +} + +IMG.GoogleLogo { + width: 64px; + height: 26px; +} + +TABLE.leadoff { + border-style: outset; + border-color: #cccccc; + border-width: 12px; + margin-top: 5em; + margin-left: auto; + margin-right: auto; + font-size: 80%; +} + +TABLE.leadoff P{ + margin-left: 15px; + margin-right: 15px; +} + +P.photocredit { + text-align: right; + font-size: 69%; +} + +TABLE.photocreditX { +/* for odd widths; the table width should be set at the photo width + 23 */ + border: 0; + margin: auto; + text-align: right; + font-size: 69%; +} + +TABLE.photocreditH { + width: 590px; /* 567 + 23 */ + border: 0; + margin: auto; + text-align: right; + font-size: 69%; +} + +TABLE.photocreditV { + width: 275px; /* 252 + 23 */ + border: 0; + margin: auto; + text-align: right; + font-size: 69%; +} + +TABLE.photocreditS { + width: 401px; /* 378 + 23 */ + border: 0; + margin: auto; + text-align: right; + font-size: 69%; +} + +/* THIS IS JUST A TEMP PATCH TO PREVENT THE OPERATION OF "contents" INSIDE "leadoff" WHILE I REMOVE THE HUNDREDS OF INSTANCES: */ +TABLE.leadoff .contents{ + font-size: 100%; +} + +IMG.aliasS { + width: 279px; + height: 279px; +} + +TABLE.aliasS { + width: 279px; +} + +IMG.smallS { + width: 252px; + height: 252px; +} + +TABLE.smallS { + width: 252px; +} + +IMG.basicS { + width: 378px; + height: 378px; +} + +TABLE.basicS { + width: 378px; +} + +IMG.b1 { + margin-top: 0; + border-width: 1px; + border-style: solid; +} + +IMG.b2 { + border-width: 2px; + border-style: solid; +} + +IMG.b4 { + border-width: 4px; + border-style: solid; +} + +IMG.flag { + border-width: 1px; + border-style: solid; + width: 30px; + height: 20px; + margin-top: 2px; + margin-bottom: 2px; +} + +TABLE.verse A.flag { + float: left; + margin-left: -4em; +} + +.verse A.sec { + position: relative; + float: left; + left: -2.5em; + vertical-align: 10%; +} + +IMG.map_marker { + width: .6em; + height: .9em; +} + +IMG.miniflag { + border-width: 1px; + border-style: solid; + width: 12px; + height: 8px; +} + +IMG.small_flag { + border-width: 1px; + border-style: solid; + width: 18px; + height: 12px; +} + +IMG.small_flag_in_margin { + border-width: 0; + width: 18px; + height: 20px; +} + +IMG.inline { + margin-right: 2px; +} + +/* Jun 2017: not yet used */ +IMG.behind { + position: absolute; + z-index: -1; +} + +.caduceus { + text-align: center; + font-size: 187%; +} + +.ivy { + text-align: center; + font-size: 137%; + font-style: normal; + color: #008400 ! important; +} + +.ivy1 { + text-align: center; + font-size: 137%; + font-style: normal; + color: #008400 ! important; + margin-top: 2em; +} + +IMG.badge { + width: 16px; + height: 16px; + vertical-align: -2px; +} + +IMG.image0 { + border-width: 1px; + border-style: dotted; +} + +IMG.image1 { + border-width: 1px; + border-style: solid; +} + +IMG.image2 { + border-width: 2px; + border-style: solid; +} + +IMG.image4 { + border-width: 4px; + border-style: solid; +} + +IMG.alias0 { + border-width: 1px; + border-style: dotted; + width: 279px; + height: 186px; + margin: 5px; +} + +IMG.alias1 { + border-width: 1px; + border-style: solid; + width: 279px; + height: 186px; + margin: 5px; +} + +IMG.alias2 { + border-width: 2px; + border-style: solid; + width: 279px; + height: 186px; + margin: 4px; +} + +IMG.alias4 { + border-width: 4px; + border-style: solid; + width: 279px; + height: 186px; + margin: 2px; +} + +IMG.icon { + border-width: 0; + width: 132px; + height: 88px; +} + +IMG.icon0 { + border-width: 1px; + border-style: dotted; + width: 132px; + height: 88px; + margin-top: 10px; + margin-bottom: 5px; + margin-left: 5px; + margin-right: 5px; +} + +IMG.icon1 { + border-width: 1px; + border-style: solid; + width: 132px; + height: 88px; + margin-top: 10px; + margin-bottom: 5px; + margin-left: 5px; + margin-right: 5px; +} + +IMG.icon2 { + border-width: 2px; + border-style: solid; + width: 132px; + height: 88px; + margin-top: 11px; + margin-bottom: 4px; + margin-left: 4px; + margin-right: 4px; +} + +IMG.icon4 { + border-width: 4px; + border-style: solid; + width: 132px; + height: 88px; + margin-top: 13px; + margin-bottom: 2px; + margin-left: 2px; + margin-right: 2px; +} + +IMG.rubric0 { + border-width: 1px; + border-style: dotted; + width: 132px; + height: 88px; + margin-left: 15px; + margin-right: 15px; +} + +IMG.rubric1 { + border-width: 1px; + border-style: solid; + width: 132px; + height: 88px; + margin-left: 15px; + margin-right: 15px; +} + +IMG.rubric2 { + border-width: 2px; + border-style: solid; + width: 132px; + height: 88px; + margin-left: 14px; + margin-right: 14px; +} + +IMG.rubric4 { + border-width: 4px; + border-style: solid; + width: 132px; + height: 88px; + margin-left: 12px; + margin-right: 12px; +} + +IMG.minirubric1 { + border-width: 1px; + border-style: solid; + width: 60px; + height: 40px; + margin-left: 87px; + margin-right: 15px; +} + +IMG.minirubric2 { + border-width: 2px; + border-style: solid; + width: 60px; + height: 40px; + margin-left: 86px; + margin-right: 14px; +} + +IMG.minirubric4 { + border-width: 4px; + border-style: solid; + width: 60px; + height: 40px; + margin-left: 84px; + margin-right: 12px; +} + +IMG.start { + margin-top: 1.5em; +} + +IMG.thumb { + border-width:0; + width: 60px; + height: 40px; + margin-top: 6px; + margin-bottom: 6px; +} + +IMG.thumb0 { + border-width: 1px; + border-style: dotted; + width: 60px; + height: 40px; + margin-top: 5px; + margin-bottom: 5px; +} + +IMG.thumb1 { + border-width: 1px; + border-style: solid; + width: 60px; + height: 40px; + margin-top: 5px; + margin-bottom: 5px; +} + +IMG.thumb2 { + border-width: 2px; + border-style: solid; + width: 60px; + height: 40px; + margin-top: 4px; + margin-bottom: 4px; +} + +IMG.thumb4 { + border-width: 4px; + border-style: solid; + width: 60px; + height: 40px; + margin-top: 2px; + margin-bottom: 2px; +} + +IMG.W3C { + border-width: 0; + width: 88px; + height: 31px; +} + +P.W3C { + margin-top: 36em; + margin-right: 1em; + text-align: right; +} + +P.UCFooter { + margin-top: 3em; + margin-bottom: 0em; + background-color: #403f3f; + color: #d6d6cf; + font-family: Verdana, Arial, Helvetica, sans-serif; + font-size: 70%; + text-align: center; +} + .UCFooter A:link { + border-style: dotted; + border-top-width: 0px; + border-bottom-width: 1px; + border-left-width: 0px; + border-right-width: 0px; + color: #d6d6cf ! important; + } + .UCFooter A:visited { + color: #d6d6cf ! important; + } + .UCFooter A:hover { + color: #d6d6cf ! important; + } + .UCFooter A:active { + color: #d6d6cf ! important; + } + +LI.default { + margin-top: 1em; + margin-bottom: 1em; + text-align: justify; +} + +SPAN.default { + color: #000066 ! important; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; +} + +P.photo_credits { + text-align: right; + font-size: 75%; + margin-top: 0em; +} + +P.photo_credits_center { + text-align: center; + font-size: 75%; + margin-top: 0em; +} + +P.further { + text-align: center; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-style: normal; + font-weight: normal; + text-transform: none; + font-variant: normal; + font-size: 50%; + color: #cc00ff ! important; +} + +P.signature { + position: relative; + top: auto; + right: -6em; + text-align: right; + font-size: 85%; + color: #000066 ! important; +} + +P.default { + color: #000066 ! important; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; +} + +P.closing50 { + text-align: left; + margin-left: 50%; + margin-top: 0em; + margin-bottom: 0em; +} + +P.closing60 { + text-align: left; + margin-left: 60%; + margin-top: 0em; + margin-bottom: 0em; +} + +P.closing-b0-a0 { + text-align: right; + margin-right: 8em; + margin-top: 0em; + margin-bottom: 0em; +} + +P.closing-b1-a0 { + text-align: right; + margin-right: 8em; + margin-top: 3em; + margin-bottom: 0em; +} + +P.closing-b0-a1 { + text-align: right; + margin-right: 8em; + margin-top: 0em; + margin-bottom: 3em; +} + +P.closing-b1-a1 { + text-align: right; + margin-right: 8em; + margin-top: 3em; + margin-bottom: 3em; +} + +P.biblio1 { + margin-top: 0em; + margin-bottom: .5em; + text-align: right; + font-family: Verdana, sans-serif; + font-size: 69%; +} + +P.biblio { + margin-top: 0em; + margin-bottom: 3em; + text-align: right; + font-family: Verdana, sans-serif; + font-size: 69%; +} + +P.biblioA { + margin-top: 0em; + margin-bottom: 0em; + text-align: right; + font-family: Verdana, sans-serif; + font-size: 69%; +} + +P.biblio_intro { + margin-top: 0em; + margin-bottom: 0em; + text-align: right; + font-size: 69%; +} + +P.default { + color: #000066 ! important; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; +} + +P.summary { + font-size: 85%; + margin-top: 3em; + margin-left: 2em; + margin-right: 1em; + text-indent: -1em; + text-align: justify; +} + +P.postsummary { + font-size: 85%; + margin-top: .5em; + margin-left: 2em; + margin-right: 1em; + text-indent: -1em; + text-align: justify; +} + +P.summary_item { + font-size: 85%; + margin-top: 0em; + margin-bottom: 0em; + margin-left: 2em; + margin-right: 1em; + text-indent: -1em; + text-align: justify; +} + +.x1-b0-a0 { + text-align: justify; + margin-left: 30px; + text-indent: -30px; + margin-top: 0em; + margin-bottom: 0em; +} +.x2-b0-a0 { + text-align: justify; + margin-left: 60px; + text-indent: -60px; + margin-top: 0em; + margin-bottom: 0em; +} + +P.justify_indent { + text-align: justify; + margin-top: 0em; + margin-bottom: 0em; + text-indent: 1em; +} + +P.omitted_article { + text-align: justify; + font-weight: bold; + text-transform: uppercase; + color: #999999 ! important; +} + P.omitted_article .Greek { + text-align: justify; + font-weight: bold; + text-transform: none; + color: #999999 ! important; + } + +P.riassunto { + text-align: right; + font-family: Verdana, sans-serif; + font-size: 85%; + color: #ff9900 ! important; + margin-bottom: 40px; + font-weight: bold; +} + +P.riassunto0 { + text-align: right; + font-family: Verdana, sans-serif; + font-size: 85%; + color: #ff9900 ! important; + margin-bottom: 0em; +} + +P.temporarily_omitted { + margin-top: 3em; + text-align: center; + font-size: 160%; + font-weight: bold; + color: #009900 ! important; +} + +TABLE { + margin-bottom: 1em; +} + +TABLE.bodyheight { + line-height: 1.5; +} + +TABLE.GoogleMap { + color: #000099 ! important; + background-color: #ffffff ! important; + font-size: 80%; + margin-bottom: 2em; +} + + TABLE.GoogleMap P { + margin-top: 1em; + margin-bottom: 0em; + margin-left: 10px; + margin-right: 10px; + } + +TABLE.standard { + background-color: #ffffff ! important; + color: #000066 ! important; + font-size: 80%; +} + + TABLE.standard .outquote { + color: #8533ad ! important; + } + + TABLE.standard .bland { + color: #000066 ! important; + } + + TABLE.standard TR.neutral { + background-color: #b2ffff ! important; + } + + TABLE.standard TR TD.neutral { + background-color: #b2ffff ! important; + } + + TABLE.standard P { + margin-top: 0em; + margin-bottom: 0em; + margin-left: 20px; + margin-right: 10px; + text-indent: -10px; + } + + TABLE.standard P.nodent { + text-indent: 0px; + } + + TABLE.standard P.indent { + text-indent: 20px; + } + + TABLE.standard P.start { + margin-top: 1em; + } + + TABLE.standard P.halfstart { + margin-top: .5em; + } + + TABLE.standard A:link { + color: #0000ff ! important; + } + TABLE.standard A:visited { + color: #cc0000 ! important; + } + TABLE.standard A:hover { + color: #ff00ff ! important; + } + TABLE.standard A:active { + color: #ff00ff ! important; + } + + TABLE.standard .Latin { + color: #990000 ! important; + } + TABLE.standard .Latin .emend { + color: #ee6633 ! important; + } + + TABLE.standard .Greek { +/* + color: #994d00 ! important; + */ + color: #8d5c00 ! important; + } + +TR TD.grisaille { + background-color: #eeeeee ! important; + } +TR.odd TD.grisaille { + background-color: #c2f2f2 ! important; + } +TR.even TD.grisaille { + background-color: #92f2f2 ! important; + } + + +/*TABLE.rowspadded: separates the rows as well*/ +TABLE.rowspadded TD { + padding-top: 6px; + padding-bottom: 6px; + padding-left: 12px; + padding-right: 12px; +} + +TABLE.stats { + border-collapse: collapse; +} + + TABLE.stats TD.left { + border-left: 1px; + } + + TABLE.stats TD.right { + border-right: 1px; + } + +TD.b1 { + margin-top: 0; + border-width: 1px; + border-style: solid; +} + +TABLE.b1 { + border-width: 1px; + border-style: solid; +} + +TABLE.b2 { + border-collapse: separate; + border-spacing: 1px; + border: 4px ridge #f6f6f6; +} + + TABLE.b2 TD { + border: 1px solid gray; + } + + TABLE.b2 TD TD { + border: 0; + } + +TABLE.header { + margin: auto; + border-collapse: separate; + border-spacing: 2px; + width: 500px; + border: 0; +} + + TABLE.header TR { + vertical-align: bottom; + } + +/* If the width of headerbox is changed, change also the width of DIV.alert600: */ +TABLE.headerbox { + margin: auto; + border-collapse: separate; + border-spacing: 2px; + width: 600px; + border: 4px ridge #eeeeee; + background-color: #ffffff ! important; + line-height: 1.5; + -webkit-hyphens: none; + -ms-hyphens: none; + hyphens: none; +} + + TABLE.headerbox TD { + border: 1px solid gray; + } + + TABLE.headerbox TD TD { + border: 0; + } + + TABLE.headerbox A:link { + color: #0000ff ! important; + } + TABLE.headerbox A:visited { + color: #cc0000 ! important; + } + TABLE.headerbox A:hover { + color: #ff00ff ! important; + } + TABLE.headerbox A:active { + color: #ff00ff ! important; + } + +/*keep superchapter immediately after headerbox:*/ +H3.superchapter { + width: 588px; /*headerbox minus 12*/ + margin-top: 8em; + margin-left: auto; + margin-right: auto; + font-size: 85%; + text-transform: uppercase; + text-align: center; + font-weight: bold; + letter-spacing: .5em; + border-style: solid; + border-top-width: 1px; + border-bottom-width: 1px; + border-left-width: 0px; + border-right-width: 0px; +} + +TABLE.start { + margin-top: 2.5em; +} + +TABLE.footer { + margin: auto; + margin-top: 5em; + width: 576px; + table-layout: fixed ! important; + column-width: 78px ! important; + padding: 0; + border: 0em; + border-spacing: 0; + empty-cells: show; + background-color: #ffffcc ! important; + -webkit-hyphens: none; + -ms-hyphens: none; + hyphens: none; +} + +TABLE.transparent_image { + margin-left: auto; + margin-right: auto; + margin-top: 1em; + background-color: transparent ! important; +} + +TD.transparent { + background-color: transparent ! important; +} + + + +/* 4/14/11: Used only on homepages for MassaMartana, Monteleone di Spoleto, Trevi, Cannaiola */ +/* NOTE: Their own .js states that modification and hosting are allowed, in case I want to have a stab at my own better formatting */ +TABLE.TweetFeed { + margin: auto; + margin-top: 4em; + margin-bottom: -5em; + width: 576px; + padding: 0; + border: 0em; + border-spacing: 0; + background-color: transparent ! important; +} + +TABLE.twitter { + margin: auto; + margin-top: 5em; + margin-bottom: -5em; + width: 576px; + padding: 0; + border: 0em; + border-spacing: 0; + background-color: transparent ! important; +} + +TABLE.photo { + margin-top: 40px; +} + +TABLE.vertical_pair { + width: 567px; + margin-left: auto; + margin-right: auto; + border-collapse: separate; + border-spacing: 2px; +} + + TABLE.vertical_pair TR { + text-align: justify; + } + + TABLE.vertical_pair TD { + padding: 15px; + } + +TABLE.odd_vertical_pair { + margin-left: auto; + margin-right: auto; + border-collapse: separate; + border-spacing: 2px; +} + + TABLE.odd_vertical_pair TR { + text-align: justify; + } + + TABLE.odd_vertical_pair TD { + vertical-align: middle; + padding: 15px; + } + +TABLE.text_and_vertical { + margin: auto; + border-collapse: separate; + border-spacing: 2px; + width: 581px; +} + + TABLE.text_and_vertical TR { + text-align: justify; + } + + TABLE.text_and_vertical TD { + vertical-align: middle; + padding: 15px; + } + + TABLE.text_and_vertical TD.squeeze { + vertical-align: middle; + padding: 3px; + } + +TABLE.text_and_vertical0 { + margin: auto; + border-collapse: separate; + border-spacing: 0; + width: 573px; +} + + TABLE.text_and_vertical0 TR { + text-align: justify; + } + + TABLE.text_and_vertical0 TD { + vertical-align: middle; + } + + TABLE.text_and_vertical0 TD.squeeze { + vertical-align: middle; + padding: 3px; + } + +TABLE.center { + width: auto; + margin-left: auto; + margin-right: auto; +} + +TABLE.imageF { + border-collapse: separate; + border-spacing: 1px; + border: 4px ridge #f6f6f6; + margin-left: auto; + margin-right: auto; + margin-top: 1em; +} + + TABLE.imageF TD { + border: 1px solid gray; + margin-left: 10px; + margin-right: 10px; + text-align: justify; + font-size: 80%; + } + + TABLE.imageF TD TD { + border: 0; + } + +TABLE.image { + border: 1px solid; + margin-left: auto; + margin-right: auto; + margin-top: 1em; +} + +TABLE.image0 { + border: 1px solid; + margin-top: .30em; + margin-left: auto; + margin-right: auto; +} + +TABLE.startimage { + border: 1px solid; + margin-left: auto; + margin-right: auto; + margin-top: 3em; +} + +TABLE.logo { + border: 0; + margin-left: auto; + margin-right: auto; + width: 132px; +} + +TABLE.embed_left { + border: 1px solid; + float: left; + margin-top: 8px; + margin-right: 8px; +} + +.prose TABLE.embed_left { + border: 1px solid; + float: left; + margin-top: 8px; + margin-right: 16px; +} + +TABLE.embed_left_noborder { + border: 0; + float: left; + margin-top: 8px; + margin-right: 8px; +} + +.prose TABLE.embed_left_noborder { + border: 0; + float: left; + margin-top: 8px; + margin-right: 16px; +} + +TABLE.embed_right { + border: 1px solid; + float: right; + margin-top: 8px; + margin-left: 8px; +} + +.prose TABLE.embed_right { + border: 1px solid; + float: left; + margin-top: 8px; + margin-left: 16px; +} + +TABLE.embed_right_noborder { + border: 0; + float: right; + margin-top: 8px; + margin-left: 8px; +} + +.prose TABLE.embed_right_noborder { + border: 0; + float: left; + margin-top: 8px; + margin-left: 16px; +} + +/* THE FOLLOWING ALIGNMENTS DON'T WORK IN SAFARI OR EXPLORER: */ + +/* TD.decimal { */ +/* text-align: "."; */ +/* } */ + +/* TD.middot { */ +/* text-align: "°§"; */ +/* } */ + +TD.sidepadded { + padding: 0 1em; +} + +.sidebar { + margin-left: 2em; + margin-right: 2em; + font-size: 85%; + font-style: italic; + padding: 0 .5em; + border-style: solid; + border-top-width: 1px; + border-bottom-width: 1px; + border-left-width: 0; + border-right-width: 0; +} + +.arithmetic { + font-family: Courier, monospace; + padding: 0 .5em; + text-align: right; + margin-top: 0em; + margin-bottom: 0em; +} + +.arithmetic .underscore { + color: #ff0000 ! important; + border-style: solid; + border-bottom-width: 1px; +} + +TD.lineunder { + font-family: Courier, monospace; + padding: 0 .5em; + text-align: right; + border-style: solid; + border-top-width: 0px; + border-bottom-width: 1px; + border-left-width: 0px; + border-right-width: 0px; + margin-top: 0em; + margin-bottom: 0em; +} + +.total { + font-family: Courier, monospace; + padding: 0 .5em; + text-align: right; + border-style: solid; + border-top-width: 1px; + border-bottom-width: 0px; + border-left-width: 0px; + border-right-width: 0px; + margin-top: 0em; + margin-bottom: 0em; +} + +.totalwithleftBorder { + font-family: Courier, monospace; + padding: 0 .5em; + text-align: right; + border-style: solid; + border-top-width: 1px; + border-bottom-width: 0px; + border-left-width: 1px; + border-right-width: 0px; + margin-top: 0em; + margin-bottom: 0em; +} + +.totalwithrightBorder { + font-family: Courier, monospace; + padding: 0 .5em; + text-align: right; + border-style: solid; + border-top-width: 1px; + border-bottom-width: 0px; + border-left-width: 0px; + border-right-width: 1px; + margin-top: 0em; + margin-bottom: 0em; +} + +/* +double underscores, see: +E/Gazetteer/Places/Europe/Italy/_Texts/HODIHI/2d_edition/6/NoteF*.html + */ +.double_underscored_total { + font-family: Courier, monospace; + padding: 0 .5em; + text-align: right; + border-style: double; + border-top-width: 0px; + border-bottom-width: 4px; + border-left-width: 0px; + border-right-width: 0px; + margin-top: 0em; + margin-bottom: 0em; +} + +.doubleunder { + border-bottom-style: double; + border-bottom-width: 3px; +} + +.top_border { + border-style: solid; + border-top-width: 1px; +} + +.top_and_bottom_border { + border-style: solid; + border-top-width: 1px; + border-bottom-width: 1px; + border-left-width: 0px; + border-right-width: 0px; +} + +TD.alias { + width: 292px; + text-align: center; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-weight: bold; +} + +TD.quietalias { + width: 292px; + font-size: 80%; +} + +TD.right { + text-align: right; +} + +TD.cell { + text-align: center; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-size: 50%; +/* font-size was originally 9.1px */ +} + +TD.midcell { + vertical-align: middle; + text-align: center; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-size: 50%; +} + +TD.upcell1 { + width: 78px; + vertical-align: middle; + text-align: center; + font-family: Verdana, sans-serif; + font-size: 55%; + font-weight: bold; + color: #0000ff ! important; + background-color: #ffffcc ! important; +} + +TD.upcell { + width: 78px; + text-align: center; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-size: 50%; + background-color: #ffffcc ! important; + color: #cccccc ! important; /* grey only if no link; otherwise, overridden*/ +} + +/* The following is used for upcells, etc. that are just a text anchor, in order to line them up right. See examples in AOG Reunions. */ +.no_image { + vertical-align: middle; + margin-top: 24px; + margin-bottom: 24px; +} + +TD.alsocell1 { + vertical-align: middle; + text-align: center; + font-family: Verdana, sans-serif; + font-size: 55%; + font-weight: bold; + color: #0000ff ! important; + background-color: #ffff99 ! important; +} + +TD.alsocell { + width: 78px; + text-align: center; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-size: 50%; + background-color: #ffff99 ! important; + color: #cccccc ! important; /* grey only if no link; otherwise, overridden*/ +} + +TD.alsocell2 { + width: 156px; + text-align: center; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-size: 50%; + background-color: #ffff99 ! important; +} + +TD.offcell1 { + vertical-align: middle; + text-align: center; + font-family: Verdana, sans-serif; + font-size: 55%; + font-weight: bold; + color: #0000ff ! important; + background-color: #ffff66 ! important; +} + +TD.offcell { + width: 78px; + text-align: center; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-size: 50%; + color: #0000ff ! important; + background-color: #ffff66 ! important; +} + +TD.previouscell { + width: 100px; + vertical-align: middle; + text-align: center; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-size: 50%; +} + +TD.nextcell { + width: 100px; + vertical-align: middle; + text-align: center; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-size: 50%; +} + +TD.pinkcell { + width: 78px; + text-align: center; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-size: 50%; + background-color: #ffcccc ! important; +} + +TD.toughcell { + width: 78px; + text-align: center; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-size: 50%; + background-color: #ffff33 ! important; +} + +TD.churchcell { + width: 78px; + text-align: center; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-size: 50%; + background-color: #ecdaff ! important; +} + +TD.churchcell1 { + vertical-align: middle; + text-align: center; + font-family: Verdana, sans-serif; + font-size: 55%; + font-weight: bold; + color: #0000ff ! important; + background-color: #ecdaff ! important; +} + +TD.diarycell { + width: 78px; + text-align: center; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-size: 50%; + background-color: #99ffcc ! important; +} + +TD.diarycell1 { + vertical-align: middle; + text-align: center; + font-family: Verdana, sans-serif; + font-size: 55%; + font-weight: bold; + color: #0000ff ! important; + background-color: #99ffcc ! important; +} + +.transcription { + font-family: Verdana, sans-serif; + font-size: 90%; + color: #990000 ! important; + background-color: #ffffff ! important; +} + +.expansion { + font-family: Verdana, sans-serif; + font-size: 90%; + color: #990000 ! important; + background-color: #ffffcc ! important; +} + +.interpretation { + font-family: Verdana, sans-serif; + font-size: 90%; + color: #000033 ! important; + background-color: #ffcccc ! important; +} + +/* + the widths of "flag" and "mail" work together to add to 100%: + [1* the width of "mailN"] + [(N-1) * the width of "flagN"] add to 100% + + where "100%" is the width of TABLE.header or TABLE.headerbox +*/ + +TD.USMA_flag { + text-align: right; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-size: 50%; +} + +TD.flag { + text-align: center; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-size: 80%; +} + +TD.flagcell { + vertical-align: bottom; + text-align: center; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; +} + +TD.flagcell .Greek { + font-size: 95%; + line-height: 1.15; /* Greek fonts have more line-height built‑in, force smaller */ +} + +TD.flagcell .Ukrainian { + line-height: 1.00; /* Ukrainian fonts have more line-height built‑in, force smaller */ + color: #000066; /* to prevent Ukrainian-language color */ +} + +TD.mailcell { + vertical-align: bottom; + text-align: center; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; +} + +TR.header2 { + font-size: 80%; +} + TR.header2 .mailcell { + width: 75%; + } + TR.header2 .flagcell { + width: 25%; + } + +TR.header3 { + font-size: 80%; +} + TR.header3 .mailcell { + width: 40%; + } + TR.header3 .flagcell { + width: 30%; + } + +TR.header4 { + font-size: 80%; +} + TR.header4 .mailcell { + width: 28%; + } + TR.header4 .flagcell { + width: 24%; + } + +TR.header5 { + font-size: 80%; +} + TR.header5 .mailcell { + width: 28%; + } + TR.header5 .flagcell { + width: 18%; + } + +TR.header6 { + font-size: 75%; +} + TR.header6 .mailcell { + width: 20%; + } + + TR.header6 .flagcell { + width: 16%; + } + +TR.header7 { + font-size: 70%; +} + TR.header7 .mailcell { + width: 16%; + } + TR.header7 .flagcell { + width: 14%; + } + +TR.header7 { + font-size: 70%; +} + TR.header8 .mailcell { + font-size: 70%; + width: 16%; + } + TR.header8 .flagcell { + font-size: 70%; + width: 12%; + } + +TD.flag4 { + text-align: center; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-size: 80%; + width: 24%; +} + +TD.flag5 { + text-align: center; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-size: 80%; + width: 18%; +} + +TD.flag6 { + text-align: center; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-size: 75%; + width: 16%; +} + +TD.flag7 { + text-align: center; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-size: 70%; + width: 14%; +} + +TD.flag8 { + text-align: center; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-size: 70%; + width: 12%; +} + +TD.incipit { + text-align: center; + font-family: "Times New Roman", serif; + font-size: 85%; +} + +TD.mail { + width: 100px; + vertical-align: bottom; + text-align: center; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-size: 80%; +} + +TD.mail4 { + vertical-align: bottom; + text-align: center; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-size: 80%; + width: 28%; +} + +TD.mail5 { + vertical-align: bottom; + text-align: center; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-size: 80%; + width: 28%; +} + +TD.mail6 { + vertical-align: bottom; + text-align: center; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-size: 75%; + width: 20%; +} + +TD.mail7 { + vertical-align: bottom; + text-align: center; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-size: 70%; + width: 16%; +} + +TD.mail8 { + vertical-align: bottom; + text-align: center; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-size: 70%; + width: 16%; +} + +TD.icon { + width: 146px; + text-align: center; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-size: 69%; +} + TD.icon IMG.icon0 { + margin-top: 16px; + } + TD.icon IMG.icon1 { + margin-top: 16px; + } + TD.icon IMG.icon2 { + margin-top: 15px; + } + +/* PHASE OUT "TD.rubric": From now on, use TABLE.rubric (which specifies the 85% font); and each time, immediately delete all TD class attributes "CLASS="rubric" — leaving, however, any "TD CLASS="rubricB". When all "rubric" tables have been switched over, delete this style: it isn't needed at all. The model page is the main Umbertide page. */ +TD.rubric { + text-align: justify; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + margin-left: 10px; + margin-right: 10px; + font-size: 85%; +} + +TD.rubricTEMP { + text-align: justify; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + margin-left: 10px; + margin-right: 10px; +} + +TD.rubricB { + text-align: justify; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + margin-left: 10px; + margin-right: 10px; + vertical-align: bottom; +} + +TD.rubricT { + text-align: justify; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + margin-left: 10px; + margin-right: 10px; + vertical-align: top; +} + +TD.banner { + background-color: #ccffff ! important; + text-align: center; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-size: 100%; + color: #cc0066 ! important; + font-weight: bold; +} + +TD.update { + text-align: center; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + color: #cc0066 ! important; +} + +TR { + vertical-align: top; +} + +TR.down { + vertical-align: bottom; +} + +TR.middle { + vertical-align: middle; +} + +TR.up { + background-color: #ffffcc ! important; + empty-cells: show; + vertical-align: top; +} + +TR.also { + background-color: #ffff99 ! important; + empty-cells: show; + vertical-align: top; +} + +TR.church { + background-color: #ecdaff ! important; + empty-cells: show; + vertical-align: top; +} + +TR.diary { + background-color: #99ffcc ! important; + empty-cells: show; + vertical-align: top; +} + +TR.off { + background-color: #ffff66 ! important; + empty-cells: show; + vertical-align: top; +} + +TR.lapidary { + font-family: Verdana, sans-serif; + font-size: 90%; + color: #990000 ! important; + background-color: #ffffff ! important; +} + +.translation { + font-family: Verdana, sans-serif; + font-size: 90%; + color: #000066 ! important; + background-color: #ffff99 ! important; +} + +.sandstone .translation { + color: #000066 ! important; + background-color: #f0d9c7 ! important; +} + +TR.interpretation { + font-family: Verdana, sans-serif; + font-size: 90%; + color: #000033 ! important; + background-color: #ffcccc ! important; +} + +TABLE P.x1 { + margin-top: 0em; + margin-bottom: 0em; + margin-left: 20px; + margin-right: 10px; + text-indent: -10px; + } + +TABLE P.x2 { + margin-top: 0em; + margin-bottom: 0em; + margin-left: 30px; + margin-right: 30px; + text-indent: -30px; + } + +DIV.TOCbox { + width: 527px ! important; /* TOC minus 49 */ + background-color: #ccffff ! important; + text-align: justify; + font-size: 85%; + color: #000066 ! important; + margin: auto; + padding-top: 0.4em; + padding-bottom: 0.4em; + padding-left: 1.3em; + padding-right: 1.3em; + border-style: ridge +} + + .TOCbox H3 { + margin-top: 1.5em; /* same as halfstart */ + } + +TABLE.TOC { + background-color: #ffffff ! important; + color: #000066 ! important; + border-width: 5px; + border-collapse: collapse; + border-style: double; + font-size: 80%; +} + +TABLE.with_dividers { + border-collapse: collapse; +} + +TABLE.with_dividers TR.discreetly_separated{ + border-color: #ffffff; +} + + .TOC A { + color: #0000ff ! important; + } + .TOC A:link { + color: #0077cc ! important; + } + .TOC A:visited { + color: #ff0000 ! important; + } + .TOC A:hover { + color: #ff00ff ! important; + } + .TOC TD { + vertical-align: middle; + } + + .TOC P { + margin-top: 0em; + margin-bottom: 0em; + margin-left: 20px; + margin-right: 10px; + text-indent: -10px; + } + + .TOC P.center { + text-align: center; + margin-top: 0em; + margin-bottom: 0em; + margin-left: 0em; + margin-right: 0em; + text-indent: 0; + } + + .TOC P.white { + color: #000066; + } + + .TOC P.m1 { + margin-top: 0em; + margin-bottom: 0em; + margin-left: 30px; + margin-right: 20px; + text-indent: 0; + } + + .TOC P.m1x1 { + margin-top: 0em; + margin-bottom: 0em; + margin-left: 2em; + margin-right: 1em; + text-indent: -1em; + } + + .TOC P.m1x2 { + margin-top: 0em; + margin-bottom: 0em; + margin-left: 3em; + margin-right: 1em; + text-indent: -2em; + } + + .TOC P.m2 { + margin-top: 0em; + margin-bottom: 0em; + margin-left: 2em; + margin-right: 2em; + text-indent: 0; + } + + .TOC P.m2x1 { + margin-top: 0em; + margin-bottom: 0em; + margin-left: 3em; + margin-right: 2em; + text-indent: -1em; + } + + .TOC P.m2x2 { + margin-top: 0em; + margin-bottom: 0em; + margin-left: 4em; + margin-right: 2em; + text-indent: -2em; + } + + .TOC P.m3 { + margin-top: 0em; + margin-bottom: 0em; + margin-left: 3em; + margin-right: 3em; + text-indent: 0; + } + + .TOC P.m3x1 { + margin-top: 0em; + margin-bottom: 0em; + margin-left: 4em; + margin-right: 2em; + text-indent: -1em; + } + + .TOC P.m3x2 { + margin-top: 0em; + margin-bottom: 0em; + margin-left: 5em; + margin-right: 2em; + text-indent: -2em; + } + + .TOC P.m4 { + margin-top: 0em; + margin-bottom: 0em; + margin-left: 4em; + margin-right: 4em; + text-indent: 0; + } + + .TOC P.x2 { + margin-left: 50px; + text-indent: -40px; + } + +TABLE.TOC1 { + background-color: #ffffff ! important; + border-width: 5px; + border-style: double; + font-size: 80%; +} + + .TOC1 TD { + vertical-align: middle; + } + + .TOC1 P { + margin-top: 0.24em; + margin-bottom: 0.24em; + margin-left: 20px; + margin-right: 10px; + text-indent: -10px; + } + + .TOC1 .m1 { + margin-left: 30px; + margin-right: 30px; +} + +TABLE.newpages { + margin-top: 5em; + font-size: 85%; +} + + TABLE.newpages .m2x1 { + margin-left: 4em; + margin-right: 2em; + text-indent: -1em; + } + + TABLE.newpages .m3x1 { + margin-left: 5em; + margin-right: 3em; + text-indent: -1em; + } + + TABLE.newpages B { + color: #444444 ! important; + } + TABLE.newpages .bold { + color: #444444 ! important; + } + TABLE.newpages A.bold { + color: #0000ff ! important; + } + TABLE.newpages A:link { + color: #0000ff ! important; + } + TABLE.newpages A:visited { + color: #cc0000 ! important; + } + TABLE.newpages A:hover { + color: #ff00ff ! important; + } + TABLE.newpages A:active { + color: #ff00ff ! important; + } + +TABLE.dotpoints { + width: 90%; + margin: auto; + line-height: 1.5; + text-align: justify; +} + + TABLE.dotpoints TD { + padding-left: 10px; + padding-right: 10px; + } + +.TOCitem { + text-align: justify; + font-size: 80%; + margin-left: 2em; + margin-right: 1em; + text-indent: -1em; +} + +.TOCpagenum { + vertical-align: middle; + font-family: Courier, monospace; + text-align: right; + padding-right: 10px; + margin-left: 10px; +} + +.TOCchapnum { + vertical-align: middle; + text-align: center; + font-weight: bold; + font-size: 190%; +} + +TD.leadoff_summary { + background-color: #ccffff ! important; + font-family: Verdana, Arial, Helvetica, sans-serif; + font-size: 53%; + color: #000066 ! important; + text-align: center; + border-style: solid; + border-color: #990000; + border-width: 1px; +} + +TD.Roman_summary { + background-color: #ff99ff ! important; + font-family: Verdana, Arial, Helvetica, sans-serif; + font-size: 53%; + text-align: center; +} + +.big_caption { + text-align: center; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-weight: bold; +} + +.caption { + text-align: center; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-size: 80%; +} + + .caption .photo_credits { + margin-top: .5em; + margin-right: 0; +} + +.low_caption { + text-align: center; + font-size: 85%; + text-transform: uppercase; + margin-bottom: 0; +} + +.image_title { + text-align: center; + margin-top: 0.5em; + hyphens: none; +} + +TD.contents { + margin-left: 10px; + margin-right: 10px; + font-size: 80%; +} + +.contents { + margin-left: 10px; + margin-right: 10px; + font-size: 80%; +} + + .contents .inscription { + font-family: Verdana, sans-serif; + font-size: 80%; + line-height: 1.2; /* line-height of ".inscription" (1.5) multiplied by font-size of ".contents" */ +} + + .contents .small_inscription { + font-family: Verdana, sans-serif; + font-size: 80%; +} + + .contents .Ukrainian { + font-size: 80%; + line-height: 1.08; +} + + .contents .lapis { + font-family: Verdana, sans-serif; + font-size: 80%; + line-height: 1.2; +} + + .contents .nummus { + color: #990000 ! important; + font-family: Verdana, sans-serif; + font-size: 80%; + text-transform: uppercase; + line-height: 1.2; +} + + .contents P { + margin-left: 10px; + margin-right: 10px; +} + +.ecru1 { + background-color: #ffffcc ! important; +} + +.ecru2 { + background-color: #ffff99 ! important; +} + +.ecru3 { + background-color: #ffff66 ! important; +} + +.ex { + text-align: justify; + margin-left: 30px; + text-indent: -30px; +} + +.exdent { + text-align: justify; + margin-left: 30px; + text-indent: -30px; + font-family: Verdana, sans-serif; + font-size: 75%; + line-height: 120%; +} + +.exdent_quote { + text-align: justify; + margin-top: 0em; + margin-bottom: 0em; + margin-left: 30px; + text-indent: -30px; + font-family: Verdana, sans-serif; + font-size: 85%; + color: #990000 ! important; + line-height: 100%; +} + +.index { + text-align: justify; + margin-left: 30px; + text-indent: -30px; + font-size: 75%; +} + +.index-start { + margin-top: 3em; + text-align: justify; + margin-left: 30px; + text-indent: -30px; + font-size: 75%; +} + +.margin { + margin-left: 40px; + margin-right: 40px; +} + +.nomargin { + margin-left: -40px; + margin-right: -40px; +} + +.not_online1 { + background-color: #e0e0e0 ! important; + font-size: 90%; + color: #666666 ! important; +} + +.not_online2 { + background-color: #d0d0d0 ! important; + font-size: 90%; + color: #555555 ! important; +} + +.offsite1 { + background-color: #ccffe5 ! important; +} + +.offsite2 { + background-color: #99ffcc ! important; +} + +.pad { + margin-left: 10px; + margin-right: 10px; +} + +TABLE.padsides TD { + padding-left: 10px; + padding-right: 10px; + font-size: 90%; +} + +.proofread0 { + background-color: #b2ffff ! important; +} + +.proofread1 { /* 90% white */ + background-color: #ccffff ! important; +} + TR.proofread1 TD.not_online { + background-color: #e0e0e0 ! important; + font-size: 90%; + color: #555555 ! important; + } + + .proofread1 .comment { + font-weight: bold; + color: #990099! important; + } + + .proofread1 .emend { + color: #339933 ! important; + } + + .proofread1 .primary_source { + color: #2AA22A ! important; + } + + .proofread1 .source { + font-weight: bold; + color: #006600! important; + } + + TR.proofread1 TD A { + color: #0000ff! important; + } + TR.proofread1 TD A:link { + color: #0000ff ! important; + } + TR.proofread1 TD A:visited { + color: #ff0000 ! important; + } + TR.proofread1 TD A:hover { + color: #ff00ff ! important; + } + TR.proofread1 TD A:active { + color: #ff00ff ! important; + } + +.proofread2 { /* 80% white */ + background-color: #99ffff ! important; +} + TR.proofread2 TD.not_online { + background-color: #d0d0d0 ! important; + font-size: 90%; + color: #555555 ! important; + } + + .proofread2 .comment { + font-weight: bold; + color: #990099! important; + } + + .proofread2 .emend { + color: #339933 ! important; + } + + .proofread2 .source { + font-weight: bold; + color: #006600! important; + } + + TR.proofread2 TD A { + color: #0000ff! important; + } + + TR.proofread2 TD A:link { + color: #0000ff ! important; + } + TR.proofread2 TD A:visited { + color: #ff0000 ! important; + } + TR.proofread2 TD A:hover { + color: #ff00ff ! important; + } + TR.proofread2 TD A:active { + color: #ff00ff ! important; + } + +.needs_images0 { + background-color: #c6d9ff ! important; +} + +.needs_images1 { /* 90% white, and closer to proofread1 than to unproofread1 */ + background-color: #ccddff ! important; +} + TR.needs_images1 TD A { + color: #0000ff! important; + } + + TR.needs_images1 TD A:link { + color: #0000ff ! important; + } + TR.needs_images1 TD A:visited { + color: #ff0000 ! important; + } + TR.needs_images1 TD A:hover { + color: #ff00ff ! important; + } + TR.needs_images1 TD A:active { + color: #ff00ff ! important; + } + +.needs_images2 { /* 85% white, and closer to proofread2 than to unproofread2 */ + background-color: #b2ccff ! important; +} + TR.needs_images2 TD A { + color: #0000ff! important; + } + + TR.needs_images2 TD A:link { + color: #0000ff ! important; + } + TR.needs_images2 TD A:visited { + color: #ff0000 ! important; + } + TR.needs_images2 TD A:hover { + color: #ff00ff ! important; + } + TR.needs_images2 TD A:active { + color: #ff00ff ! important; + } + + +.gloss { + font-family: Verdana, sans-serif; + font-size: 90%; + color: #660099 ! important; + } + +/* An imperfect workaround used for pulling text up one line in order to superimpose two lines: the second line is the one that gets the style. */ +/* +Used in +E/Gazetteer/People/Robert_Edward_Coontz/From_the_Mississippi_to_the_Sea/Appendices/C*.html + */ +.up1line { + margin-top: -2.5em; +} + +.unindented_prose { + font-family: "Myriad Web Pro", Helvetica, Geneva, "Lucida Grande", sans-serif; + line-height: 1.5; + font-size: 85%; + text-align: justify; +} + +.allcaps { + text-transform: uppercase; + letter-spacing: .05em; +} + +.prose { + font-family: "Myriad Web Pro", Helvetica, Geneva, "Lucida Grande", sans-serif; + line-height: 1.5; + font-size: 85%; + margin-left: 2em; + margin-right: 2em; + text-align: justify; +} + + .prose .normal { + font-family: Verdana, sans-serif; + font-size: 90%; + color: #660099 ! important; + } + + .prose .citation { + font-weight: bold; + font-size: 85%; + font-variant: normal; + } + + .prose .manuscript { + font-size: 90%; + } + + .prose .Greek { + color: #996600 ! important; + font-family: "Lucida Grande", "Palatino Linotype", "Arial Unicode Ms", "Titus Cyberbit Basic", "Lucida Sans Unicode", sans-serif ! important; + font-size: 95%; + } + + .prose TABLE { + font-family: "Myriad Web Pro", Helvetica, Geneva, "Lucida Grande", sans-serif; + margin-left: -.2em; + margin-right: -.2em; + line-height: 1.5; + font-size: 100%; + text-align: justify; + } + +.outquote { + color: #7700b3 ! important; +} + +.quote { + font-family: Verdana, sans-serif; + font-size: 85%; +} + +.quote1 { + font-family: Verdana, sans-serif; + font-size: 85%; + margin-left: 2em; + margin-right: 2em; +} + + .quote1 P { + margin-top: 0em; + margin-bottom: 0em; + text-indent: 1em; + text-align: justify; + } + + .quote1 P.right { + margin-top: 0em; + margin-bottom: 0em; + text-align: right; + } + + .quote1 P.center { + margin-top: 0em; + margin-bottom: 0em; + text-align: center; + } + + .quote1 P.in{ + margin-top: 0em; + margin-bottom: 0em; + text-indent: 0em; + text-align: justify; + } + +.verseTEST { + font-family: Verdana, sans-serif; + font-size: 85%; + position: relative; + margin: auto; + height: 50%; + top: 25%; +} + +.verseTEST P { + margin: auto; + margin-top: 0em; + margin-bottom: 0em; + margin-left: 3em; + text-indent: -3em; +} + +/*Greek TEST (settled)*/ +.verse { + font-family: "Myriad Web Pro", Helvetica, Geneva, "Lucida Grande", sans-serif; + line-height: 1.5; + font-size: 85%; + letter-spacing: .06em; + margin-left: 2em; + margin-right: 2em; +} + + .mynote .verse { + color: #000066 ! important; + } + + .mynoteWide .verse { + color: #000066 ! important; + } + + +.verse .right { + font-family: "Myriad Web Pro", Helvetica, Geneva, "Lucida Grande", sans-serif; + font-size: 85%; + margin-left: 2em; + margin-right: 2em; +} + +.verse P { + margin-top: 0em; + margin-bottom: 0em; + margin-left: 3em; + margin-right: 3em; + text-indent: -3em; +} + +.verse P.nopad { + margin-top: 0em; + margin-bottom: 0em; + margin-left: 0em; + margin-right: 0em; + color: #ff6600 ! important;} + +/* +TABLE.verse P.center { + margin-top: 0em; + margin-bottom: 0em; + margin-left: 3em; + margin-right: 3em; +} +*/ + +.verse P.start { + margin-top: 1em; + margin-bottom: 0em; +} + +.verse P.start2 { + margin-top: 5em; + margin-bottom: 0em; +} + +.verse .verse { + font-size: 100%; + text-indent: -2em; +} + +.verse .verse1 { + text-indent: 0em; +} + +.verse .verse2 { + text-indent: 2em; +} + +.verse .verse3 { + text-indent: 4em; +} + +.verse .verse4 { + text-indent:6em; +} + +.verse .verse5 { + text-indent: 8em; +} + +.verse .verse6 { + text-indent: 10em; +} + +.verse .verse7 { + text-indent: 12em; +} + +.verse .verse8 { + text-indent: 14em; +} + +.verse .verse9 { + text-indent: 16em; +} + +.verse .verse10 { + text-indent: 18em; +} + +.verse .verse11 { + text-indent: 20em; +} + +.verse .verse12 { + text-indent: 22em; +} + +.unproofread0 { + background-color: #ffb2b2 ! important; +} + +.unproofread1 { /* 90% white */ + background-color: #ffcccc ! important; +} + TR.unproofread1 TD.not_online { + background-color: #e0e0e0 ! important; + font-size: 90%; + color: #555555 ! important; + } + + TR.unproofread1 TD A { + color: #0000ff! important; + } + + TR.unproofread1 TD A:link { + color: #0000ff ! important; + } + TR.unproofread1 TD A:visited { + color: #ff0000 ! important; + } + TR.unproofread1 TD A:hover { + color: #ff00ff ! important; + } + TR.unproofread1 TD A:active { + color: #ff00ff ! important; + } + +.unproofread2 { /* 80% white */ + background-color: #ff9999 ! important; +} + TR.unproofread2 TD.not_online { + background-color: #d0d0d0 ! important; + font-size: 90%; + color: #555555 ! important; + } + + TR.unproofread2 TD A { + color: #0000ff! important; + } + + TR.unproofread2 TD A:link { + color: #0000ff ! important; + } + TR.unproofread2 TD A:visited { + color: #ff0000 ! important; + } + TR.unproofread2 TD A:hover { + color: #ff00ff ! important; + } + TR.unproofread2 TD A:active { + color: #ff00ff ! important; + } + + +.unproofread3 { + background-color: #ff6666 ! important; +} + +.unproofread4 { + background-color: #ff3333 ! important; +} + +TR.thanks { + background-color: #ccffff ! important; +} + +.thanks { + margin-left: 10em; + font-size: 85%; + background-color: #ccffff ! important; + vertical-align: middle; + text-align: center; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + color: #cc3300 ! important; +} + +.thanks A:visited { + color: #00ff00 ! important; /* THIS DOESN'T WORK. */ +} + +.thanks A { + font-weight: bold; + font-size: 120%; + color: #0000ff ! important; +} + +P.thanks { + margin: 1em; +} + +/* COMPOUND SCHEMES: */ + +.callout1 { + font-family: sans-serif; + color: #8800cc ! important; +} + +.sans { + font-family: sans-serif; +} + +.callout-red { + font-family: sans-serif; + color: #cc0033 ! important; +} + +.callout-orange { + font-family: sans-serif; + color: #cc9900 ! important; +} + +.epitome { + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + color: #660066 ! important; +} + +.Tzetzes { + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + color: #003333 ! important; +} + +.nummus { + color: #990000 ! important; + font-family: Verdana, sans-serif ! important; + font-size: 80% ! important; + text-transform: uppercase ! important; +} + + .nummus .emend { + color: #ee6633 ! important; + } + + .nummus .superscript { + font-size: 50%; + vertical-align: top; + } + +.Tiny { + font-family: Tiny, sans-serif; + font-size: 62%; +} + +/* THIS SEEMS NOT TO BE USED. I COMMENTED IT OUT BECAUSE IT CONFLICTS WITH TR.up, CAUSING A MINOR BUT UNAESTHETIC GLITCH IN FOOTERS. IF IT NEEDS TO BE RESTORED, RENAME IT. +.up { + position: relative; + top: -4px; +} + */ + +.Verdana { + font-family: Verdana, sans-serif; + font-size: 85%; +} + +/* COLOR SCHEMES:*/ + /* for table columns and rows:*/ + +.green1 { + background-color: #ccffcc ! important; +} + +.green2 { + background-color: #99ff99 ! important; +} + +.beige1 { + background-color: #fff7f2 ! important; +} + +.beige2 { + background-color: #ffe7d9 ! important; +} + +.blue1 { + background-color: #ccffff ! important; +} + +.blue2 { + background-color: #99ffff ! important; +} + +.purple1 { + background-color: #ffddff ! important; +} + +.purple2 { + background-color: #ffaaff ! important; +} + +.red1 { + background-color: #ffbbbb ! important; +} + +.red2 { + background-color: #ff8888 ! important; +} + +.orange1 { + background-color: #ffddbb ! important; +} + +.orange2 { + background-color: #ffbb88 ! important; +} + +.yellow1 { + background-color: #ffffaa ! important; +} + +.yellow2 { + background-color: #ffff55 ! important; +} + +.grey0 { + background-color: #f6f6f6 ! important; +} + +.grey1 { + background-color: #e9e9e9 ! important; +} + +.grey2 { + background-color: #e3e3e3 ! important; +} + +.road1 { + background-color: #ffffcc ! important; +} + +.road2 { + background-color: #ffff99 ! important; +} + +.land1 { + background-color: #ccffcc ! important; +} + +.land2 { + background-color: #99ff99 ! important; +} + +.sandstone1 { + background-color: #ffeedd ! important; +} + +.sandstone2 { + background-color: #eeddcc ! important; +} + +.sea1 { + background-color: #ccffff ! important; +} + +.sea2 { + background-color: #99ffff ! important; +} + +.row1cell1 { + background-color: #ffffcc ! important; +} + +.row1cell2 { + background-color: #ccffff ! important; +} + +.row2cell1 { + background-color: #ffff99 ! important; +} + +.row2cell2 { + background-color: #99ffff ! important; +} + +.addendum { + color: #003399 ! important; +} + +.callout { + color: #8800cc ! important; +} + + +DIV.boxlinksprompt { + background-color: #E8E8E8 !important; + text-align: center; + font-size: 65%; + color: #061CBE !important; + width: 42em; + margin-left: auto; + margin-right: auto; + margin-top: 3em; + padding-top: 0.4em; + padding-bottom: 0.4em; + padding-left: 0.6em; + padding-right: 0.6em; + border: .25em ridge #ffffff !important; +} + +.GazetteerPrompt { + background-color: #ebebff ! important; + color: #0066ff ! important; +} + + .GazetteerPrompt .title { + margin-bottom: 0em; + text-align: center; + color: #0000ff ! important; +} + + .GazetteerPrompt P { + margin-top: 0em; +} + +.HistoryPrompt { + background-color: #ffebeb ! important; + color: #993333 ! important; +} + + .HistoryPrompt .title { + margin-bottom: 0em; + text-align: center; + color: #ff0000 ! important; +} + + .HistoryPrompt P { + margin-top: 0em; +} + +.MixedPrompt { + background-color: #ffe5ff ! important; + color: #663399 ! important; +} + + .MixedPrompt .title { + margin-bottom: 0em; + text-align: center; + color: #cc00ff ! important; +} + + .MixedPrompt P { + margin-top: 0em; +} + +.recommended { + background-color: #ccffcc ! important; +} + +.not_recommended { + background-color: #ffeedd ! important; +} + +/* +TABLE COLORS: use country name nouns, reserving adjectives for font styles +*/ +.France { + color: #001099 ! important; + border: 1px solid #cc0000 ! important; +} + +.Italy { + color: #309900 ! important; + border: 1px solid #cc0000 ! important; +} + +.Symbola{ + font-family: Symbola; +} diff --git a/sources/book_1_files/up.gif b/sources/book_1_files/up.gif new file mode 100644 index 0000000..526a178 Binary files /dev/null and b/sources/book_1_files/up.gif differ diff --git a/sources/book_2.html b/sources/book_2.html new file mode 100644 index 0000000..fdbe071 --- /dev/null +++ b/sources/book_2.html @@ -0,0 +1,3705 @@ + + + + + + + + + + + +LacusCurtius • Ad Herennium — Book II + + + + + + + + + + + + + + + +

+ + + + +
+
+ 
+[image ALT: Much of my site will be useless to you if you've got the images turned off!]
+
+ + + + + + + + + + + + + + + + + +
+mail: +
+Bill Thayer + +
+ + 
+[image ALT: Cliccare qui per una pagina di aiuto in Italiano.]
+
+Italiano +
+
+ + 
+[Link to a series of help pages]
+
+Help +
+
+ + [Link to the next level up]
+Up +
+
+ + [Link to my homepage]
+Home +
+
+ + + + + +
+ previous: +
+ 
+[image ALT: link to previous section]
+
+Book I +
+
+

+This webpage reproduces part of +
+a complete English translation of the +
+ +Rhetorica ad Herennium + +
+published in the +Loeb Classical Library, +
+1954 +

+The text is in the public domain. + +

+This page has been carefully proofread +
+and I believe it to be free of errors. +
+If you find a mistake though, +
+ +please let me know! + +

+ next: +
+ 
+[image ALT: link to next section]
+
+Book III +
+
+
+ + +

+ +Rhetorica ad Herennium + +

+ +

+  p59  +Book II +

+ + +

+ 1 +1 In the preceding Book, Herennius, I briefly set forth the causes with which the speaker must deal,​1 + and also the functions of his art to which he may well devote his +pains, and the means by which he can most easily fulfil these +functions.​2 + But since it was impossible to treat all the topics at once, and +I had primarily to discuss the most important of them in order that + the rest might prove easier for you to understand, I therefore +decided to write first upon those that are the most difficult. + +

+There are three kinds of causes: Epideictic, Deliberative, and Judicial. + By far the most difficult is the judicial; that is why, I have +disposed of this kind first of all. Of the five tasks of the speaker +Invention is the most important​3 + and the most difficult. That topic too I shall virtually have +disposed of in the present Book; small details will be postponed to +Book III.4 + +

+2 I first undertook to discuss the + six parts of a discourse. In the preceding Book I spoke about the +Introduction, the Statement of Facts, and the Division,​5 + at no greater length than was necessary nor with less clarity than +I judged you desired. I had next to discuss Proof and +Refutation, conjointly. Hence I expounded the different Types of +Issue and their subdivisions,​6 and this at the same time showed + + + p61 how the Type + of Issue and its subdivision are to be found in a given cause. Then +I explained how the Point to Adjudicate is properly sought; this +found, we must see that the complete economy of the entire speech is +directed to it.​7 After that I remarked that there are not a few causes​8 to which several Types of Issue or their subdivisions are applicable. + +

+ 2 +It remained for me, as it seemed, to show by what method we can adapt +the means of invention to each type of issue or its subdivision,​9 and likewise what sort of technical arguments (which the Greeks call epicheiremata)​10 one ought to seek​11 or avoid;​12 + both of these departments belong to Proof and Refutation. Then finally +I have explained what kind of Conclusions to speeches one ought to +employ;​13 the Conclusion was the last of the six parts of a discourse. + +

+First, then, I shall investigate how we should handle causes +representing each Type of Issue, and of course shall give primary +consideration to that type which is the most important and most +difficult. + +

+3 In a Conjectural cause the +prosecutor's Statement of Facts should contain, intermingled and +interspersed in it, material inciting suspicion of the defendant, so +that no act, no word, no coming or going, in short nothing that he has +done may be thought to lack a motive. The Statement of Facts of the +defendant's counsel should contain a simple and clear statement, and +should also weaken suspicion. + +

 p63  +The scheme of the Conjectural Issue includes six divisions: Probability, + Comparison, Sign, Presumptive Proof, Subsequent Behaviour, and +Confirmatory Proof. I shall explain the meaning of each of these +terms. + +

+Through Probability​14 + one proves that the crime was profitable to the defendant, and that he +has never abstained from this kind of foul practice. The subheads under +Probability are Motive and Manner of Life.15 + +

+The Motive​16 is what led the defendant to commit the crime, through the hope it gave him of winning advantages or avoiding disadvantages.​17 + The question is: Did he seek some benefit from the crime — honour, +money, or power? Did he wish to satisfy some passion — love or a like over­powering desire? Or did he seek to avoid some disadvantage — enmities, ill repute, pain, or punishment? 3 4 Here + the prosecutor, if the hope of gaining an advantage is in question, +will disclose his opponent's passion; if the avoidance of a disadvantage + is in question, he will enlarge upon his opponent's fear. The +defendant's counsel, on the other hand, will, if possible, deny that +there was a motive, or will at least vigorously belittle its importance; + then he will say that it is unfair to bring under suspicion of +wrongdoing every one to whom some profit has come from an act. + +

 p65  + +5 Next the defendant's Manner of Life +will be examined in the light of his previous conduct. First the +prosecutor will consider whether the accused has ever committed a +similar offence.​18 + If he does not find any, he will seek to learn whether the accused has +ever incurred the suspicion of any similar guilt; and it will devolve +upon him to make every effort to relate the defendant's manner of life +to the motive which he has just exposed. For example, if the prosecutor +contends that the motive for the crime was money, let him show that the +defendant has always been covetous; if the motive was public honour, +ambitious; he will thus be able to link the flaw in the defendant's +character with the motive for the crime. If he cannot find a flaw +consistent with the motive, let him find one that is not. If he cannot +show that the defendant is covetous,​19 + let him show that he is a treacherous seducer; in short, if he possibly + can, let him brand the defendant with the stigma of some one fault, or +indeed, of as many faults as possible.​20 + Then, he will say, it is no wonder that the man who in that other +instance acted so basely should have acted so criminally in this +instance too.​21 + If the adversary enjoys a high reputation for purity and integrity, the + prosecutor will say that deeds, not reputation, ought to be considered; + that the defendant has previously concealed his misdeeds,​22 + and he will make it plain that the defendant is not guiltless of +misbehaviour. The defendant's counsel will first show his client's +upright life,​23 + if he can; if he cannot, he will have recourse to thoughtlessness, +folly, youth, force, or undue influence. On these matters +. . . censure ought not to be imposed for conduct extraneous +to the present charge. If the speaker is seriously + + + p67 handicapped +by the man's baseness and notoriety, he will first take care to say that + false rumours have been spread about an innocent man, and will use the +commonplace that rumour ought not to be believed. If none of these pleas + is practicable, let him use the last resource of defence; let him say +that he is not discussing the man's morals before censors, but the +charges of his opponents before jurors.24 + +

+ 4 + +6 Comparison​25 + is used when the prosecutor shows that the act charged by him against +his adversary has benefited no one but the defendant; or that no one but + his adversary could have committed it; or that the adversary could not +have committed it, or at least not so easily, by other means; or that, +blinded by passion, his adversary failed to see any easier means. To +meet this point the defendant's counsel ought to show that the crime +benefited others as well, or that others as well could have done what is + imputed to his client. + +

+By Signs one shows that the accused sought an opportunity favourable to success. Sign​26 + has six divisions: the Place, the Point of Time, the Duration of Time, +the Occasion, the Hope of Success, the Hope of Escaping Detection. + +

+7 The Place is examined as follows: Was + it frequented or deserted, always a lonely place, or deserted then at +the moment of the crime? A sacred place or profane, public or +private? What sort of places are adjacent? Could the victim have been +seen or heard? I should willingly describe in detail + + + p69 which of +these points is serviceable to the defence, and which to the +prosecution, were it not that any one would in a given cause find this +easy to determine. For of Invention it is only the first principles +which ought to originate in theory; all the rest will readily be +supplied by practice. + +

+The Point of Time is examined as follows: In what season of the year, in + what part of the day — whether at night or in the daytime — at what +hour of the day​27 or night, is the act alleged to have been committed, and why at such a time? + +

+The Duration of Time will be considered in the following fashion: Was it + long enough to carry this act through, and did the defendant know that +there would be enough time to accomplish it? For it is only of slight +importance that he had enough time to carry out the crime if he could +not in advance have known or have forecast that that would be so. + +

+The Occasion is examined as follows: Was it favourable for the +undertaking, or was there a better occasion which was either let pass or + not awaited? + +

+Whether there was any Hope of Success will be investigated as follows: Do the above-mentioned + signs coincide? Especially, do power, money, good judgement, +foreknowledge, and preparedness appear on one side, and is it proved +that on the other there were weakness, need, stupidity, lack of +foresight, and unpreparedness? Hereby one will know whether the +defendant should have had confidence in his success or not. + +

+What Hope there was of Escaping Detection we seek to learn from confidants, eye-witnesses, or accomplices, freemen or slaves or both.28 + +

 p71  + + 5 +8 Through Presumptive Proof guilt is +demonstrated by means of indications that increase certainty and +strengthen suspicion. It falls into three periods: preceding the crime, +contemporaneous with the crime, following the crime.29 + +

+In respect to the period preceding the crime, one ought to consider +where the defendant was, where he was seen, whether he made some +preparation, met any one, said anything, or showed any sign of having +confidants, accomplices, or means of assistance; whether he was in a +place, or there at a time, at variance with his custom. In respect to +the period contemporaneous with the crime, we shall seek to learn +whether he was seen in the act; whether some noise, outcry, or crash was + heard; or, in short, whether anything was perceived by one of the +senses — sight, hearing, touch, smell, or taste. In respect to the +period following the crime, one will seek to discover whether after the +act was completed there was left behind anything indicating that a crime + was committed, or by whom it was committed. Indicating + that it was committed: for example, if the body of the deceased is +swollen and black and blue it signifies that the man was killed by +poison. Indicating by whom it was committed: for example, if a weapon, +or clothing, or something of the kind was left behind, or a footprint of + the accused was discovered; + + + p73 if there was + blood on his clothes; or if, after the deed was done, he was caught or +seen in the spot where the crime is alleged to have been perpetrated. + +

+For Subsequent Behaviour we investigate the signs which usually attend guilt or innocence.​30 + The prosecutor will, if possible, say that his adversary, when come +upon, blushed, paled, faltered, spoke uncertainly, collapsed, or made +some offer — signs of a guilty conscience. If the accused has done none +of these things, the prosecutor will say his adversary had even so far +in advance calculated what would actually happen to him that he stood +his ground and replied with the greatest self-assurance — signs of audacity, and not of innocence. The defendant's counsel, if his client has shown fear, will say that he was moved,​31 + not by a guilty conscience, but by the magnitude of his peril; if his +client has not shown fear, counsel will say that he was unmoved because +he relied on his innocence. + +

+ 6 +9 Confirmatory Proof​32 is what we employ finally, when suspicion has been established. It has special and common topics.​33 + The special topics are those which only the prosecution, or those which + only the defence, can use. The common topics are those which are used +now by the defence, and now by the prosecution, depending on the case. +In a conjectural + + + p75 cause the +prosecutor uses a special topic when he says that wicked men ought not +to be pitied, and expatiates upon the atrocity of the crime. The +defendant's counsel uses a special topic when he tries to win pity, and +charges the prosecutor with slander. These topics are common to both +prosecution and defence: to speak for​34 + or against witnesses, for or against the testimony given under torture, + for or against presumptive proof, and for or against rumours.35 + +

+In favour of witnesses​36 + we shall speak under the heads: (a) authority and manner of life +of the witnesses, and (b) the consistency of their evidence. +Against witnesses, under the heads: (a) their base manner of +living; (b) the contradictory character of their testimony; +(c) if we contend that what they allege to have happened either +could not have happened or did not happen, or that they could not have +known it, or that it is partiality which inspires their words and +inferences. These topics will appertain both to the discrediting and to +the examination of witnesses. + +

+ 7 +10 We shall speak in favour of the testimony given under torture​37 + when we show that it was in order to discover the truth that our +ancestors wished investigations to make use of torture and the rack, and + that men are compelled by violent pain to tell all they know. Moreover, + such reasoning will have + + + p77 the greater +force if we give the confessions elicited under torture an appearance of + plausibility by the same argumentative procedure as is used in treating + any question of fact. And this, too, we shall have to do with the +evidence of witnesses. Against the testimony given under torture we +shall speak as follows: In the first place, our ancestors wished +inquisitions to be introduced only in connection with unambiguous +matters, when the true statement in the inquisition could be recognized +and the false reply refuted; for example, if they sought to learn in +what place some object was put, or if there was in question something +like that which could be seen, or be verified by means of footprints, or + be perceived by some like sign. We then shall say that pain ought not +to be relied upon, because one person is less exhausted by pain, or more + resource­ful in fabrication, than another, +and also because it is often possible to know or divine what the +presiding justice wishes to hear, and the witness knows that when he has + said this his pain will be at an end. Such reasoning will find favour, +if, by a plausible argument, we refute the statements made in the +testimony given under torture; and to accomplish this we should use the +divisions under the Conjectural Issue which I have set forth above.38 + +

+11 In favour of presumptive proof, +signs, and the other means of increasing suspicion it is advantageous to + speak as follows: When there is a concurrence of many circumstantial +indications and signs that agree with one another, the result ought to +appear as clear fact, not surmise. Again, signs and presumptive proof +deserve more credence than witnesses, for these first are presented +precisely as they occurred in + + + p79 reality, whereas witnesses can be corrupted by bribery, or partiality, or intimation, or animosity.​39 + Against presumptive proof, signs, and the other provocatives of +suspicion we shall speak in the following fashion: we shall show that +nothing is safe from attack by suspicion, and then we shall weaken each +and every reason for suspicion and try to show that it applies to us no +more than to any one else; it is a shameful outrage to consider +suspicion and conjecture, in the absence of witnesses, as sufficiently +corroborative. + +

+ 8 +12 We shall speak in favour of rumour +by saying that a report is not wont to be created recklessly and without + some foundation, and that there was no reason for anybody wholly to +invent and fabricate one; and, moreover, if other rumours usually are +lies, we shall prove by argument that this one is true. We shall speak +against rumours if we first show that many rumours are false, and cite +examples of false report; if we say that the rumours were the invention +of our enemies or of other men malicious and slanderous by nature; and +if we either present some story invented against our adversaries which +we declare to be in every mouth, or produce a true report carrying some +disgrace to them, and say we yet have no faith in it for the reason that + any person at all can produce and spread any disgraceful rumour or +fiction about any other person. If, nevertheless, a rumour seems highly +plausible, we can destroy its authority by logical argument. + +

 p81  +Because the Conjectural Issue is the hardest to treat and in actual causes​40 + needs to be treated most often, I have the more carefully examined + all its divisions, in order that we may not be hindered by even the +slightest hesitation or blunder, if only we have applied these precepts +of theory in assiduous practice. Now let me turn to the subtypes of +Legal Issue. + +

+ 9 +13 When the intention of the framer appears at variance with the letter of a text, speaking in support of the letter​41 + we shall employ the following topics: first, after the Statement of +Facts, a eulogy of the framer and then the reading aloud of the text; +next the questioning of our adversaries: Are they duly aware that this +text was in a law, will, contract, or any other document involved in the + cause?; then a comparison of the text with the admitted act of our +adversaries: Which should the judge follow — a document carefully +draughted, or an interpretation cunningly invented? After that the +interpretation devised and given to the text by our adversaries will be +disparaged and weakened. Then the question will be raised: What risk +would the writer have run by adding an entry of that kind had he really +intended it, or was it impossible to write it out in full? Then we shall + ascertain the writer's situation and present the reason why he had in +mind what he wrote, and show that that text is clear, concise, apt, +complete, and planned with precision. Thereupon we shall cite examples +of judgements rendered in favour of the text, although adversaries +raised the issue of spirit and intention. Finally, we shall show the +danger of departing from the letter of the text. The commonplace here is + that against one who, though confessing + + + p83 that he has violated the mandates of a statute or the directions of a will, yet seeks to defend his act. + +

+ 10 +14 In favour of the intention we shall + speak as follows: first we shall praise the framer for deft conciseness + in having written only what was necessary; he did not think it +necessary to write what could be understood without a text. Next we +shall say that to follow the words literally and to neglect the +intention is the method of a pettifogger.​42 + Then, we shall contend, the letter either cannot be carried out, or at +least not without violation of Statute Law, Legal Custom, the Law of +Nature, or Equity​43 + — all these, as no one will deny, the writer wished to be most strictly + observed; but on the contrary, what we have done is absolutely just. +Further, the interpretation of our adversaries is either no +interpretation, or is unreasonable, unjust, impracticable, or +inconsistent with past or subsequent interpretations, or is in +disagreement with the common law​44 + or with other generally binding rules of law or with previous +decisions. Next we shall cite instances of decisions rendered in favour +of the intention and contrary to the letter, and then + + + p85 read and +explain laws or contracts which had been written down in concise form +and yet in which the intention of the framer is understood. The +commonplace here is that against one who reads a text and does not +interpret the writer's intention. + +

+15 When two laws conflict, we must +first see whether they have been superseded or restricted, and then +whether their disagreement is such that one commands and the other +prohibits, or one compels and the other allows. It will be a weak +defence indeed for a person to say that he failed to do what one law +ordained, because another law made it optional; for obligation is more +binding than mere permission. So also it is a meagre defence for a +person to show that he has observed the obligation of a law which has +been superseded or restricted, without heeding the obligation of the +later law. After these considerations we shall at once pass to the +exposition, reading, and warm recommendation of the law favourable to +us. Then we shall elucidate the intention of the opposing law and +appropriate it for the advantage of our cause. Finally, we shall take +over the theory of Law from the Absolute Juridical Issue, and examine +with which side the departments of Law hold; this subtype of a Juridical + Issue I shall discuss later.45 + +

+ 11 +16 If a text is regarded as ambiguous, + because it can be interpreted in two or more meanings, the treatment is + as follows: first we must examine whether it is indeed ambiguous; then +we must show how it would have been written if the writer had wished it +to have the meaning which our adversaries give to it; next, that our +interpretation is practicable, and practicable in conformity with the +Honourable and the Right, with Statute Law, Legal Custom, + + + p87 the Law of Nature, or Equity;​46 + of our adversaries' interpretation the opposite is true; and the text +is not ambiguous since one well understands which is the true sense. +There are some who think that for the development of this kind of cause a + knowledge of amphibolies as taught by the dialecticians is highly +useful. I, however, believe that this knowledge is of no help at +all, and is, I may even say, a most serious hindrance. In fact +these writers are on the lookout for all amphibolies, even for such as +yield no sense at all in one of the two interpretations. Accordingly, +when some one else speaks, they are his annoying hecklers, and when he +writes, they are his boring and also misty interpreters. And when they +themselves speak, wishing to do so cautiously and deftly, they prove to +be utterly inarticulate. Thus, in their fear to utter some ambiguity +while speaking, they cannot even pronounce their own names. Indeed +I shall refute the childish opinions of these writers by the most +straightforward proofs whenever you wish. For the present it has not +been out of place to make this protest, in order to express my contempt +for the wordy learning of this school of inarticulateness.47 + +

+ 12 +17 When we deal with the Issue of +Definition, we shall first briefly define the term in question, as +follows: "He impairs the sovereign majesty of the state who destroys the + elements constituting its dignity. What are these, Quintus Caepio? The + + + p89 suffrage of +the people and the counsel of the magistracy. No doubt, then, in +demolishing the bridges of the Comitium, you have deprived the people of + their suffrage and the magistracy of their counselling."​48 + Likewise, in reply: "He impairs the sovereign majesty of the state who +inflicts damage upon its dignity. I have not inflicted, but rather +prevented, damage, for I have saved the Treasury, resisted the +licence of wicked men, and kept the majesty of the state from perishing +utterly." Thus the meaning of the term is first explained briefly, and +adapted to the advantage of our cause; then we shall connect our conduct + with the explanation of the term; finally, the principle underlying the + contrary definition will be refuted, as being false, inexpedient, +disgraceful, or harmful — and here we shall borrow our means from the +departments of Law treated under the Absolute Juridical Issue, which +I shall soon discuss.49 + +

+18 In causes based on Transference we first examine whether one has the right to institute an action, claim, or prosecution​50 + in this matter, or whether it should not rather be instituted at +another time, or under another law, or before another examiner. The +pertinent means will be provided by Statute Law, Legal Custom, and +Equity, which I shall discuss in connection with the Absolute +Juridical Issue.51 + +

+In a cause based on Analogy​52 + we shall first seek to know whether there exists any like text or +decision on matters of greater, less, or like importance; next + + + p91 whether that + matter is in fact like or unlike the matter in question; then whether +the absence of a text concerning the matter here involved was +intentional, because the framer was unwilling to make any provision, or +because he thought that there was provision enough thanks to the similar + provisions in the other legal texts. + +

+On the subdivisions of the Legal Issue I have said enough; now I shall turn back to the Juridical.53 + +

+ 13 +19 We shall be dealing with an +Absolute Juridical Issue when, without any recourse to a defence +extraneous to the cause, we contend that the act itself which we confess + having committed was lawful. Herein it is proper to examine whether the + act was in accord with the Law. We can discuss this question, once a +cause is given, when we know the departments of which the Law is +constituted. The constituent departments, then, are the following: +Nature, Statute, Custom, Previous Judgements, Equity, and Agreement.54 + +

 p93  +To the Law of Nature​55 + belong the duties observed because of kinship or family loyalty. In +accordance with this kind of Law parents are cherished by their +children, and children by their parents. + +

+Statute Law​56 + is that kind of Law which is sanctioned by the will of the people; for +example, you are to appear before the court when summoned to do so.57 + +

+Legal Custom​58 + is that which, in the absence of any statute, is by usage endowed with +the force of statute law; for example, the money you have deposited with + a banker you may rightly seek from his partner.59 + +

+It is a Previous Judgement​60 + what on the same question a sentence has been passed or a decree +interposed. These are often contradictory, according as one judge, +praetor, consul, or tribune of the plebs has determined differently from + another; and it often happens that on the very same matter one has +decree or decided differently from another. For example, Marcus Drusus, +city praetor, granted an action on breach of contract against an heir, +whereas Sextus Julius refused to do so.​61 Again, Gaius + + + p95 Caelius, sitting in judgement, acquitted​62 of the charge of injury​63 the man who had by name attacked the poet Lucilius on the stage, while Publius Mucius condemned​64 the man who had specifically named the poet Lucius Accius. 20 Therefore, + because different past judgements can be offered for a like case, we +shall, when this comes to pass, compare the judges, the circumstances, +and the number of decisions. + +

+The Law rests on Equity​65 + when it seems to agree with truth and the general welfare; for example, + a man who is more than sixty years old, and pleads illness, shall +substitute an attorney for himself.​66 Thus according to circumstances and a person's status virtually a new kind of Law may well be established. + +

+It is Law founded on Agreement​67 + if the parties have made some contract between themselves — if there is + some covenant between parties. There are agreements which must be +observed according to statutes, as for example: "When parties have +contract on the matter, party shall plead; if they do not have contract, + party shall state outline of cause in the Comitium or the Forum before +midday."​68 There are also agreements which, independently of statutes, + + + p97 are binding by virtue of the covenant itself; these are said to obtain at Law. + +

+These, then, are the divisions of Law by means of which one should +demonstrate the injustice or establish the justice of an act — which we +see to be the end sought in an Absolute Juridical cause. + +

+ 14 +21 When Comparison​69 + is used to examine whether it was better to do that which the defendant + says he did, or that which the prosecutor says should have been done, +it will be proper first to ascertain from the conflict which was the +more advantageous, that is, more honourable, practicable, and +profitable.​70 + Next we ought to discover whether the defendant himself should have +decided which was the more advantageous, or whether the right to +determine this belonged to others. Then the prosecutor, in accordance +with the procedure in a conjectural cause, will interpose a suspicion +leading to the belief that the defendant had not by his act intended to +prefer the better to the worse, but had carried out the business with +wilful fraud on some plausible ground. Let the defendant's counsel, on +his side, refute the conjectural argument referred to above. Then the +question will be whether this development could have been prevented from + reaching such a pass. 22 These points + thus treated, the prosecutor will use the commonplace against one who +has preferred the disadvantageous to the advantageous when he lacked the + right of decision. The defendant's counsel, on his +part, will use a commonplace in the form of complaint against those who +deem it equitable to prefer the ruinous to the advantageous; and at the +same time let him ask the accusers, and the jurors themselves, what they + would have done had they been in the defendant's place, + + + p99 and he will set before their eyes the time, the place, the circumstances, and the defendant's deliberations. + +

+ 15 +Shifting the Question of Guilt takes place when the defendant refers the reason for his act to the crime committed by others.​71 First + we must examine whether the Law permits the shifting of the issue of +guilt to another; next we must see whether the offence which is being +imputed to another is as serious as that with which the defendant is +charged; then whether the defendant ought to have transgressed in the +same way as another had previously; next, whether a judicial decision +ought not to have been rendered before he committed his act; then, in +the absence of a judicial decision on the offence which is being imputed + to another, whether a decision ought now to be rendered on a matter +which has never become to trial.​72 Here the prosecutor's commonplace is against one who believes that violence ought to prevail over judicial decisions.​73 Furthermore, + he will ask his adversaries what would happen if everyone else should +do the same as they, and should inflict punishment upon persons who have + not been convicted, contending that the adversaries have set the +example. What if the accuser himself had wished to do likewise? The + defendant's counsel will set forth the atrocity of the crime committed +by those to whom he is shifting the issue of guilt; he will present +before the eyes of the hearers the circumstances, the place, and the +time so that they may think that it was either impossible or inexpedient + for the matter to come to trial.74 + +

+ 16 +23 Through the Acknowledgement​75 we plead for pardon. The Acknowledgement includes the Exculpation and the Plea for Mercy. + +

 p101  +The Exculpation is our denial that we acted with intent. Subheads under +Plea of Exculpation are Necessity, Accident, and Ignorance. These are to + be explained first, and then, as it seems, it will be best to return to + the Plea for Mercy. One must first consider whether it was the +defendant's fault that he was brought to this necessity.​76 + After that we must inquire what means he had to avoid or lighten this +superior force. Next, did he who offers necessity as an excuse try to +do, or to contrive, what he could against it? Then, cannot some grounds +for suspicion be drawn from the procedure in a conjectural issue, which +would signify that the deed attributed to necessity was premeditated? +Finally, if there was some extreme necessity, is it proper to deem this a + sufficient excuse? + +

+24 If the defendant says that he erred through ignorance,​77 + the first question will be: Could he or could he not have been +uninformed? Next, did he or did he not make an effort to inform himself? + Then, is his ignorance attributable to accident or to his own fault? +For a person who declares that his reason fled because of wine or love +or anger, will appear to have lacked comprehension through fault of +character rather than ignorance;​78 he will therefore not justify himself on the ground of ignorance, but will taint himself with guilt.​79 + Finally, by means of the procedure in a conjectural issue, we shall +seek to discover whether he was or was not informed, and consider +whether ignorance should be sufficient justification when it is +established that the deed was committed. + +

 p103  +When the cause of the crime is attributed to accident,​80 + and counsel for the defence maintains that his client should be +pardoned on that ground, it appears that all the points to be considered + are precisely those prescribed above for necessity; for all these three + divisions of Exculpation are so closely interrelated that virtually the + same rules can be applied to them all. + +

+Commonplaces​81 in these causes are the following: that of the prosecutor against one who confesses a crime, yet holds the jurors up by prolix speech-making; for the defence, on humanity and pity,​82 that it is the intention which should always be considered, and that unintentional acts ought not to be regarded as crimes. + +

+ 17 +25 We shall use the Plea for Mercy​83 + when we confess the crime without attributing it to ignorance, chance, +or necessity, and yet beg for pardon. Here the ground for pardoning is +sought in the following topics: if it seems evident that the good deeds +of the suppliant have been more numerous or more weighty than the bad; +if he is endowed with some virtue, or with good birth; if there is any +hope that he will be of service in the event that he departs unpunished; + if the suppliant himself is shown to have been gentle and +compassionate​84 + in power; if in committing his mistakes he was moved not by hatred or +cruelty, but by a sense of duty and right endeavour; if on a similar +ground others also have been pardoned; if, in the event that we acquit +him, no peril from him appears likely to be our lot in + + + p105 the future; if as a result of that acquittal no censure will accrue either from our fellow-citizens or from some other state. 26 Commonplaces: + on humanity, fortune, pity, and the mutability of things. All these +commonplaces, reversed, will be used by the adversary, what will also +amplify and recount the defendant's transgressions. Such a cause is not +admissible in the courts, as I showed in Book I,​85 but because it is admissible either before the Senate or a council, I have decided that I should not pass it over. + +

+When we wish to Reject the Responsibility, we shall throw the blame for +our crime either upon some circumstance or upon another person.​86 + If upon a person, we must first examine whether the person to whom the +responsibility is transferred had as much influence as the defendant +will represent; next, whether the defendant could somehow have resisted +this influence honourably or safely;​87 + and, even if the conditions are in fullest measure such as the +defendant represents them to be, whether it is nevertheless proper to +make allowances to him just because he acted on another's persuasion. +Then we shall turn the controversy into one of fact and examine in +detail whether there was premeditation. If the responsibility is +transferred to some circumstance, virtually these same precepts and all +those that I have set forth on Necessity​88 are to be observed. + +

+ 18 +27 Since I believe that +I have fully shown what arguments are advantageous used in each +type of judicial cause, it seems to follow that I should + + + p107 explain how to develop​89 + these arguments elegantly and completely. To be sure, it is in general +not hard to devise matter which should serve to support a cause, but to +polish what has been devised and to give it a ready delivery is very +hard. Indeed it is this faculty which keeps us from dwelling longer than + necessary on the same topics, from returning again and again to the +same place, abandoning a chain of argument before it has been completed, + and making an inappropriate transition to the next argument. By the +following method, therefore, we can ourselves remember what we have said + in each place, and the hearer can perceive and remember the +distribution of the parts in the whole cause and also in each particular + argument. + +

+28 The most complete and perfect +argument, then, is that which is comprised of five parts: the +Proposition, the Reason, the Proof of the Reason, the Embellishment, and + the Résumé.​90 Through the + + + p109 Proposition​91 + we set forth summarily what we intend to prove. The Reason, by means of + a brief explanation subjoined, sets forth the causal basis for the +Proposition, establishing the truth of what we are urging. The Proof of +the Reason corroborates, by means of additional arguments, the briefly +presented Reason. Embellishment we use in order to adorn and enrich the +argument, after the Proof has been established. The Résumé is a brief +conclusion, drawing together the parts of the argument. + +

+Hence, to make the most complete use of these five parts, we shall develop an argument as follows:92 + +

+ 19 +"We shall show that Ulysses had a motive in killing Ajax."​93 +

+"Indeed he wished to rid himself of his bitterest enemy, from whom, with good cause, he feared extreme danger to himself.​94 +

+"He saw that, with Ajax alive, his own life would be unsafe; he hoped by + the death of Ajax to secure his own safety; it was his habit to plan an + enemy's destruction by whatsoever wrongful means, when he could not by +rightful, as the undeserved death of Palamedes bears witness.​95 Thus the fear of danger + + + p111 encouraged him to slay the man from whom he dreaded vengeance, and, in addition, the habit of wrong-doing robbed him of his scruples at undertaking the evil deed.​96 +

+29 "Now not only do all men have a +motive even in their least peccadillos, but certainly they are attracted + by some sure reward when they enter upon crimes which are by far the +most heinous. If the hope of gaining money has led many a man to +wrongdoing, if from greed for power not a few have tainted +themselves with crime, if numerous men have trafficked for a paltry +profit with arrant deceit, who will find it strange that Ulysses, when +under stress of acute terror, did not refrain from crime? A hero +most brave, most upright, most implacable against his foes, harassed by a + wrong, roused to anger — him the frightened, malevolent, guilt-conscious, guile­ +ful man wished to destroy; the treacherous man did not wish his bitter +enemy to stay alive. To whom, pray, will this seem strange? For when we +see wild beasts rush eagerly and resolutely to attack one another, we +must not think it incredible that this creature, too — a wild, +cruel, inhuman spirit — set out passionately to destroy his enemy; +especially since in beasts we see no reasoning, good or bad, while he, +we know, always had designs, ever so many, and ever so base."​97 +

+30 "If, then, I have promised to +give the motive which impelled Ulysses to enter upon the crime, and if +I have shown that the reckoning of a bitter enmity and the fear of +danger were the factors, it must + + + p113 unquestionably be acknowledged that he had a motive for his crime."98 + +

+An argument comprised of the five parts is, then, the most complete, but + its use is not always necessary. There is a time when the Résumé should + be dispensed with — if the matter is brief enough to be readily +embraced by the memory. There is a situation, too, in which the +Embellishment should be omitted — if the matter proves to be too meagre +for amplification and adornment. And if the argument is brief and the +matter also slight or insignificant, then both the Embellishment and the + Résumé should be left out. This rule which I have just set forth +is to be observed for the last two parts in every argument.​99 + The fullest argument, therefore, is fivefold, the briefest threefold, +and the mean fourfold, lacking either the Embellishment or the Résumé. + +

+ 20 +31 Defective arguments​100 are of two kinds: one can be refuted​101 + by the adversary, and so belongs to the cause proper; the other, +although likewise invalid, does not need to be refuted. If I do not + add examples, you will be unable clearly to distinguish those arguments + which it is proper to refute in rebuttal, and those which it is proper +to ignore in disdain­ful silence and to +abstain from refuting. This knowledge of defective arguments will confer + a double advantage. It will warn us to avoid a fault in arguing, and +teach us skilfully to reprehend a fault not avoided by others. + +

+Since, then, I have shown that a perfect and full argument consists of five parts,​102 let us consider the + + + p115 faults to +be avoided in each single part of the argument, so that we may ourselves + be able to shun these faults, and by the following rules test the +argument of our adversaries in all its parts and undermine it in some +one of these. + +

+32 The Proposition is defective when +an assertion based on some one part or on a majority of individuals, but + not necessarily applicable to all, is referred to all, as if one should + argue as follows: "All the poor would rather do wrong and acquire +riches than do right and remain poor." If a speaker has presented this +sort of Proposition in an argument, without caring to ask of what nature + the Reason or the Proof of the Reason is to be, we shall easily refute +his Proposition by showing that what is true of one dishonest poor man +is being falsely and unjustly applied to all the poor.103 + +

+33 Again, the Proposition is defective + when a rare occurrence is declared to be absolutely impossible, as +follows: "No one can fall in love at a single glance, or as he is +passing by."​104 + For inasmuch as some have fallen in love at first sight, and yet the +speaker has said "no one," it is of no significance whatsoever that + the experience occurs but rarely, provided we understand that it +sometimes does occur, or even only that it can occur. + +

+ 21 +Again, the Proposition is defective when we submit that we have made a +complete enumeration of the possibilities and pass by some pertinent +one,​105 + as follows: "Since, then, it is established that the man was killed, he + must have been killed by robbers, or by enemies, or by you, whom in his + will he made + + + p117 part-heir. + In that place robbers have never been seen. He had no enemy. If he was +not killed by robbers, of whom there were none, nor by enemies, of whom +he had none, it remains that he was slain by you." We shall refute a +Proposition of this type by showing that others besides those whom the +speaker has enumerated could have undertaken the crime.​106 + Here, for example, when he has said that the murder must have been +committed by robbers, or by enemies, or by us, we shall say that it +could have been committed by the man's slaves or by our co‑heirs. When +we have in this way upset the enumeration made by our accusers, we have +left ourselves wider room for defence. This then is another mistake +always to be avoided in the Proposition — the omission of some pertinent + item when we think that we have included all. + +

+34 Again, the Proposition is defective + if it is based on a false enumeration and we present fewer +possibilities than there are in reality, as follows: "There are two +things, men of the jury, which ever impel men to crime: luxury and +greed."​107 "But what about love?," some one will say, "ambition,​108 superstition, the fear of death,​109 the passion for power, and, in short, + + + p119 the great +multitude of other motives?" Again the enumeration is false when the +possibilities are fewer than we present, as follows: "There are three +emotions that agitate all men: fear, desire, and worry." Indeed it had +been enough to say fear and desire, since worry is necessarily conjoined + with both. + +

+ 22 +Again, the Proposition is defective if it traces things too far back, as + follows: "Stupidity is the mother and matter of all evils. She gives +birth to boundless desires. Furthermore, boundless desires have neither +end nor limit. They breed avarice. Avarice, further, drives men to any +crime you will. Thus it is avarice which has led our adversaries to take + this crime upon themselves."​110 + Here what was said last was enough for a Proposition, lest we copy +Ennius and the other poets, who are licensed to speak as follows: +"O that in Pelion's woods the firwood timbers had not fallen to the + ground, cut down by axes, and that therefrom had not commenced the +undertaking to begin the ship which now is named with the name of Argo, +because in it sailed the picked Argive heroes who were seeking the +golden fleece of the ram from the Colchians, with guile, at King Pelias' + command. For then never would my mistress, misled, have set foot away +from home."​111 Indeed here + + + p121 it were +adequate, if poets had a care for mere adequacy, to say: "Would that my +misled mistress had not set foot away from home." In the Proposition, +then, we must also carefully guard against this tra­cing of things back +to their remotest origin; for the Proposition does not, like many +others, need to be refuted, but is on its own account defective.112 + +

+ 23 +35 The Reason is defective if it is +inappropriate to the Proposition because either weak or groundless. It +is weak when it does not conclusively demonstrate the correctness of the + Proposition, as in Plautus: "To reprove a friend for a fault that +deserves reproof is a thankless task, but in season useful and +profitable." That is the Proposition. Let us see what Reason is +presented: "For​113 + today I shall severely reprove my friend for a fault that much +deserves reproof." His reckoning of what is useful is based on what he +himself is about to do, and not on what it is proper to do. +A Reason is groundless when it rests on a false supposition, as +follows: "One must not flee from love, for it engenders the truest +friendship."​114 Or as follows: "One must spurn philosophy, for it + + + p123 produces inactivity and sloth."​115 If all these Reasons were not false, we should also be obliged to admit the truth of their Propositions. + +

+36 Again, a Reason is weak if the +causal basis which it submits for the Proposition is not a compelling +one. For example, Pacuvius: "The goddess Fortune is mad, blind, and +stupid, some philosophers maintain. They declare that she stands upon a +revolving globe of stone;​116 + whither Chance impels the stone, thither, they say, does Fortune fall. +She is blind, they repeat, for that she fails wholly to perceive whereto + she attaches herself. Moreover they declare that she is mad because she + is cruel, uncertain, and inconstant; stupid because she knows not how +to tell worthy from unworthy. But there are other philosophers who, on +the contrary, deny that in our wretched life there any such thing as +Fortune; there is, they say, Blind Accident. That this is more like the +truth, is proved by the actual experience of life; even as Orestes now +was king, and now became a beggar. Surely by the shipwreck of his +property was this brought to pass, and did not befall by Chance or +Fortune."​117 + Pacuvius here uses a weak Reason when they say that it is truer to +ascribe the guidance of events to Accident rather than to Fortune, for +whichever of these philosophical theories + + + p125 you hold, it could have happened that one who had been a king became a beggar. + +

+ 24 +37 Again, a Reason is weak when it +appears to be presented as the Reason, but says precisely the same as +was said in the Proposition,​118 + as follows: "A great evil to mankind is greed, for the reason that + men wrestle with great and many ills on account of the boundless +passion for money." Here the reason merely repeats in other words what +has been said in the Proposition. + +

+Again, a Reason is weak if the causal basis which it submits for the Proposition is inadequate to the demands of the subject,​119 + as follows: "Wisdom is useful because the wise have been in the habit +of cultivating a sense of duty." Or, "It is useful to have true friends, + for thus you may have persons with whom you can jest." In Reasons of +this kind the Proposition is supported not by a universal or absolute +reason, but by a feeble one. + +

+Again, the Reason is weak if it can at choice be applied to another Proposition,​120 as in the case of Pacuvius, who presents the same reason for calling Fortune blind as for calling her stupid.121 + +

+38 In the Proof of the Reason, there +are many faults to be avoided in our discourse and also to be watched +for in that of our adversaries. These must be considered the more +carefully because an accurate Proof of the Reason supplies the most +cogent support of the whole argument. + +

 p127  +Students in the rhetorical schools, therefore, in Proving the Reason, use a Dilemma,​122 + as follows: "You treat me, father, with undeserved wrong. For if you +think Cresphontes wicked, why did you give me to him for wife? But if he + is honourable, why do you force me to leave such a one against his will + and mine?" Such a Dilemma will either be reversed against the user, or +be rebutted in a single term.​123 + Reversed, as follows: "My daughter, I do not treat you with any +undeserved wrong. If he is honourable, I have given him you in +marriage; but if he is wicked, I shall by divorce free you from +your ills." It will be a rebuttal in a single term if one or the other +alternative is confuted, as follows: "You say: 'For if you think +Cresphontes wicked, why did you give me to him for wife?' I thought + him honourable. I erred. Too late I came to know him, and +knowing him, I fly from him."​124 25 39 Thus the rebuttal of a dilemma of this type is twofold: the first fuller, the second easier to invent. + +

 p129  +Again, the Proof of the Reason is faulty when we +misapply a sign designating a variety of things in such a way as to +indicate specifically a single thing,​125 + as follows: "Since he is pale, he must have been sick," or: "She must +have become a mother, since she is holding a baby boy in her arms."​126 These + indications do not of themselves offer definite proof, but if there is +concurrence of other like indications, such signs increase probability +not a little. + +

+Again, there is a fault when that which is directed against the adversary can as well fit some one else or the speaker himself,​127 as follows: "Wretched are they who marry wives." "Yet you have married a second."128 + +

+Again, that is faulty which presents a banal defence, as follows: "He was led into crime by anger — or youth — or love."​129 For if excuses of this sort are admitted, the greatest crimes will escape unpunished. + +

+Again it is a fault to assume as certain, on the ground that "it is +universally agreed upon," a thing which is still in dispute, as follows: + "Ho! Look you, the gods who guide the movements of the beings that +dwell above and below keep peace among themselves + + + p131 and join in concord."​130 Thus + Thesprotus, as Ennius has presented him, uses this example on his own +authority, as though he had already demonstrated the fact by reasons +sufficiently conclusive. + +

+40 Again, that is faulty which appears to be pronounced too late, as it were, and after the matter has been concluded,​131 as follows: "If it had entered my mind, fellow-citizens, + I should not have been guilty of allowing the matter to come to +such a pass, for I should have done this or that; but at the time +this thought escaped me." + +

+Again, there is a fault when that which stands as a manifest transgression is yet cloaked by some defence,​132 + as follows: "When all men were seeking you out and you had a most +prosperous kingdom, I forsook you; now that all have deserted you, +I, alone, in greatest peril, prepare to restore you."133 + +

+ 26 +Again, that is faulty which can be taken in another sense than the speaker intended;​134 + for example, if some influential demagogue should in a speech before +the Assembly say: "It is better to submit to kings than to bad laws." In + fact, these words, though they may be uttered by way of amplification +without sinister intent, are nevertheless because of the speaker's +influence sure to breed a terrible suspicion. + +

+41 Again, it is a fault to use false or general definitions;​135 false, as if one should say that there is no + + + p133 injury except in the form of battery or of insulting language;​136 + general, like that which can be equally well applied to something else, + as if one should say: "An informer, in short, is worthy of death; for +he is a wicked and dangerous citizen." The speaker has offered a +definition no more appropriate to an informer than to a thief, assassin, + or traitor. + +

+Again, it is a fault to advance proof what has been put in question,​137 as if one should charge another with theft, and accordingly declare that he is a wicked, greedy, and deceit­ful man — and the evidence for this is that he has stolen from the speaker.138 + +

+Again, it is a fault to refute one disputed point by another disputed point,​139 + as follows: "You should not be satisfied, Censors, when this defendant +says that he was unable to be present as he had sworn he would be. +I ask, would he have given this same excuse to the tribe of the +soldiers if he had failed to appear for military duty?" This is faulty +because a matter not clearly settled or adjudged, but entangled with +difficulties and based on a like point of dispute is cited as an +example. + +

+42 Again, a fault is present when a +matter about which there is the sharpest controversy is not clearly +settled and is allowed to pass as though it were agreed upon, as +follows: "Plainly speaks the oracle's response if you would understand. +He commands that the arms be given to a warrior such as was he who bore +them, should we be zealous to take Pergamum. This warrior I profess + to be. It is but fair + + + p135 that +I have the use of my cousin's arms and that they be awarded me, +either because I am his kin or, if you will, because I rival +him in valour."140 + +

+Again, it is a fault to be inconsistent with oneself in one's own +discourse and to contradict what one has said before, as follows: "On +what ground shall I impeach him?", and then to develop this thought + by the following reflection: "For if he has a conscience, why should +you impeach an honourable man? But if he has a shameless character, to +what avail then would you impeach one who, when he has heard the charge, + deems it of little account?" 27 He + seems to have provided himself with a sound enough reason for not +making the accusation. What does he say next? "Now at last I will +finish you off from the very first thread."141 + +

+43 Again, that is faulty which is said against the convictions of the judge or the audience​142 + — if the party to which they are devoted, or men whom they hold dear, +should be attacked, or the sentiments of the hearer outraged by some +fault of this kind. + +

+Again, it is a fault not to prove everything which in the Proposition you have promised to prove.143 + +

+Again, one must beware of talking on a different subject from the one in dispute​144 + — and in regard to this kind of fault one must take care not to add +anything to, or omit anything from, the subject, and not to change the +question at issue and turn to quite + + + p137 another; +like the case of Zethus and Amphion in Pacuvius — their controversy, +begun on the subject of music, ends in a disputation on the theory of +wisdom and the utility of virtue.145 + +

+Again, care must be taken that the prosecutor's charge shall not bear on + one point, and the Exculpation of the defence on another. Many speakers + on the side of the defence are often intentionally guilty of this +irrelevance when pressed by the difficulties of their cause; for +example, if a man accused of having sought a magistracy by bribery +should say that in the army he had often received military gifts from +generals. If we carefully watch for this fault in the speech of our +adversaries we shall often detect that they have nothing to say to the +point. + +

+44 Again, it is a fault to disparage an art or science or any occupation because of the faults of those engaged in it,​146 as in the case of those who blame rhetoric because of the blameworthy life of some orator.147 + +

+Again, it is a fault, when you establish that a crime was committed, to +believe you are thereby proving that it was committed by a specific +person, as follows: "It is established that the corpse was disfigured, +swollen, and discoloured; therefore the man was killed by poison." Then, + if the speaker concentrates, + + + p139 as many +do, on proving that poison was administered, he will be harassed by a +not insignificant fault. The question is not whether the crime was +committed, but who committed it. + +

+ 28 +45 Again, it is a fault in making a +comparison to bring out one term and either suppress mention of the +other, or treat it rather cursorily;​148 + for example, if in deciding by a comparison whether it is better for +the populace to receive, or not to receive, wheat, the speaker should on + the one hand really take care to enumerate the benefits, but on the +other should pass over the disadvantages and whatever he wishes to +suppress, or should mention only those disadvantages which are least +serious.149 + +

+Again, it is a fault in making a comparison to think it necessary to disparage one thing when you praise the other;​150 + for example, if the question should arise, who are to be held in +greater honour for services to the Roman republic, the Albensians or the + Pinnensian Vestini,​151 + and the speaker should attack one or the other. Indeed it is not +necessary, if you prefer one, to disparage the other; for you can +manage, when you have given greater praise to one, to allot some portion + of praise to the other, so that you may not be thought to have combated + the truth under influence of partiality. + +

 p141  +Again, it is a fault to build upon a name or appellation a dispute which usage can best decide.​152 For example, Sulpicius​153 + had opposed his veto to the recall of the exiles who had not been +permitted to plead their cause; later he changed his mind, and proposing + the same law, said he was offering a different proposal, because he had + changed the name. For, he said, he was recalling not "exiles," but +"those ejected by violence" — as though the dispute concerned the name +by which to call those people, or as though all to whom water and fire +have been formally forbidden are not called exiles. True, we perhaps +excuse Sulpicius if he had a reason for doing this.​154 Yet let us understand that it is a fault to raise a controversy on account of a change in names. + +

+ 29 +46 Since Embellishment consists of +similes, examples, amplifications, previous judgements, and the other +means which serve to expand and enrich the argument, let us consider the + faults which attach to these. + +

 p143  + +A Simile is defective if it is inexact in any aspect, and lacks a +proper ground for the comparison, or is prejudicial to him who presents +it.155 + +

+An Example is defective if it is either false, and hence refutable, or +base, and hence not to be imitated, or if it implies more or less than +the matter demands.156 + +

+The citing of a Previous Judgement will be faulty​157 + if the judgement applies to an unlike matter, or one not in dispute, or + if it is discreditable, or is of such a kind that previous decisions +either in greater number or of greater appropriateness can be offered by + our adversaries. + +

+Again, it is a fault, when our adversaries admit a fact, to devote an argument to establishing it as a fact;​158 for it should rather be amplified. + +

+Again, it is a fault to amplify what one should prove;​159 + for example, if a man should charge another with homicide, and before +he has presented conclusive arguments, should amplify the crime, avowing + that there is nothing more shameful than homicide. The question is, in +fact, not whether the deed is or is not shameful, but whether it was +committed. + +

+The Résumé is defective if it does not include every point in the exact +order in which it has been presented; if it does not come to a +conclusion briefly;​160 and if the summary does not leave something precise and stable, so as to make clear what the Proposition + + + p145 was, then what has been established by the Reason, by the Proof of the Reason, and by the argument as a whole. + +

+ 30 +47 Conclusions, among the Greeks called epilogoi,​161 + are tripartite, consisting of the Summing Up, Amplification, and Appeal + to Pity. We can in four places use a Conclusion: in the Direct Opening, + after the Statement of Facts, after the strongest argument, and in the +Conclusion of the speech. + +

+The Summing Up​162 + gathers together and recalls the points we have made — briefly, that +the speech may not be repeated in entirety, but that the memory of it +may be refreshed; and we shall reproduce all the points in the order in +which they have been presented, so that the hearer, if he has committed +them to memory, is brought back to what he remembers. Again, we must +take care that the Summary should not be carried back to the +Introduction or the Statement of Facts. Otherwise the speech will appear + to + + + p147 have been fabricated​163 + and devised with elaborate pains so as to demonstrate the speaker's +skill, advertise his wit, and display his memory. Therefore the Summary +must take its beginning from the Division. Then we must in order and +briefly set forth the points treated in the Proof and Refutation. + +

+Amplification is the principle of using Commonplaces to stir​164 the hearers. To amplify an accusation it will be most advantageous to draw commonplaces from ten formulae. + +

+48 (1) The first commonplace​165a + is taken from authority, when we call to mind of what great concern the + matter under discussion has been to the immortal gods, or to our +ancestors, or kings, states, barbarous nations, sages, the Senate; and +again, especially how sanction has been provided in these matters by +laws. + +

+(2) The second commonplace​165b + is used when we consider who are affected by these acts on which our +charge rest; whether all men, which is a most shocking thing; or our +superiors, such as are those + + + p149 from whom +the commonplace of authority is taken; or our peers, those in the same +situation as we with respect to qualities of character, physical +attributes, and external circumstances;​166 or our inferiors, whom in all these respects we excel. + +

+(3) By means of the third commonplace​167 + we ask what would happen if the same indulgence should be granted to +all culprits, and show what perils and disadvantages would ensue from +indifference to this crime. + +

+(4) By means of the fourth commonplace​168 + we show that if we indulge this man, many others will be the more +emboldened to commit crimes — something which the anticipation of a +judicial sentence has hitherto checked. + +

+(5) By the fifth commonplace​169a + we show that if once judgement is pronounced otherwise than as we urge, + there will be nothing which can remedy the harm or correct the jurors' +error. Here it will be in point for us to make a comparison with other +mistakes, so as to show that other mistakes can either be moderated by +time or corrected designedly, but that so far as the present mistake is +concerned, nothing will serve either to alleviate or to amend it. + +

+49 (6) By means of the sixth commonplace​169b + we show that the act was done with premeditation, and declare that for +an intentional crime there is no excuse, although a rightful plea of +mercy is provided for an unpremeditated act. + +

+(7) By means of the seventh commonplace​169c + we show it is a foul crime, cruel, sacrilegious, and tyrannical; such a + crime as the outraging of women, or one of those crimes that incite +wars and life-and‑death struggles with enemies of the state. + +

 p151  + +(8) By means of the eighth commonplace​170 we show that it is not a common but a unique crime, base, nefarious, and unheard‑of, and therefore must be the more promptly and drastically avenged. + +

+(9) The ninth commonplace consists of comparison​171 + of wrongs, as when we shall say it is a more heinous crime to debauch a + free-born person than to steal a sacred object, because the one is done + from unbridled licentiousness and the other from need. + +

+(10) By the tenth commonplace we shall examine sharply, +incriminatingly, and precisely, everything that took place in the actual + execution of the deed and all the circumstances that usually attend +such an act, so that by the enumeration of the attendant circumstances +the crime may seem to be taking place and the action to unfold before +our eyes.172 + +

+ 31 +50 We shall stir Pity​173 + in our hearers by recalling the vicissitudes of fortune; by comparing +the prosperity we once enjoyed with our present adversity;​174 by enumerating and explaining the results that will follow for us if we lose the case;​175 + by entreating those whose pity we seek to win, and by submitting +ourselves to their mercy; by revealing what will befall our parents, +children, and other kinsmen through our disgrace,​176 and at the same time + + + p153 showing +that we grieve not because of our own straits but because of their +anxiety and misery; by disclosing the kindness, humanity, and sympathy +we have dispensed to others; by showing that we have ever, or for a long + time, been in adverse circumstances; by deploring our fate or bad +fortune; by showing that our heart will be brave and patient of +adversities. The Appeal to Pity must be brief, for nothing dries more +quickly than a tear.177 + +

+In the present Book I have treated virtually the most obscure +topics in the whole art of rhetoric; therefore this Book must end here. +The remaining rules, so far as seems best, I shall carry over to +Book III. If you study the material that I have presented, +both with and without me, with care equal to the pains I have taken + in assembling it, I, on my part, shall reap the fruit of my labour + in your sharing the knowledge with me, and you, on yours, will praise +my diligence and rejoice in the learning you have acquired. You will +have greater understanding of the precepts of rhetoric, and I shall + be more eager to discharge the rest of my task. But that this will be +so I know quite well, for I know you well. Let me turn at once + to the other rules, so that I may gratify your very proper wish — +and this it gives me the greatest pleasure to do. + + + +


+

+The Loeb Editor's Notes: +

+ +

+ 1 + +1.ii.2. + + +

+ + +

+ 2 + +1.ii.3. + + +

+ + +

+ 3 +Cicero, + +De Inv. 1.vii.9: princeps omnium partium. + + +

+ + +

+ 4 + +3.i.1‑viii.15. + + +

+ + +

+ 5 + +1.iii.4‑x.18. + + +

+ + +

+ 6 + +1.x.18‑xv.25. + + +

+ + +

+ 7 + +1.xvi.25‑xvii.27. + + +

+ + +

+ 8 +Implied in + +1.xvii.27. + + +

+ + +

+ 9 +The scheme of organization under Proof and Refutation is as follows: (a) The Types of Issue + +(1.x.18 to end of Bk. 1); (b) Invention applied to the Types of Issue + +(2.ii.3‑xvii.26); + + +(c) the tractatio of the arguments devised by Invention + +(2.xviii.27‑xxix.46). + + +

+ + +

+ 10 +ἐπιχειρήματα. + + +

+ + +

+ 11 + +2.xviii.27‑xix.30. + + +

+ + +

+ 12 + +2.xx.31‑xxix.46. + + +

+ + +

+ 13 + +2.xxx.47‑xxxi.50. + + +

+ + +

+ 14 +εἰκός. + + +

+ + +

+ 15 +αἰτία and ἀγωγή (see Anon. Seg. 182, in Spengel-Hammer 1[2].384). The Rhet. ad Alex., ch. 7 (1428AB), divides the Probable into natural feelings (φύσις), habit (ἔθος), and love of gain (κέρδος). Cicero, + +De Inv. 2.v.16 ff., derives all conjecture from consideration of the motive, the person, and the + + +act, distinguishing in motive passion (impulsio) and premeditation (ratiocinatio). + +Quintilian, 7.2.7 ff., treats conjecture from the point of view of the act and the author (his identity, his intention [animus]). + + +

+ + +

+ 16 +Cf. Cicero, De Inv. 2.v.17‑viii.28. + + +

+ + +

+ 17 +Cf. in Aristotle, Rhet. 2.23 (1399b30 ff.), the topos of Inducements and Deterrents; and see + +note on 2.xxi.34 + +below. + + +

+ + +

+ 18 +Cf. Cicero, De Inv. 2.x.32. + + +

+ + +

+ 19 +Cf. Cicero, De Inv. 2.x.33. + + +

+ + +

+ 20 + +Quintilian, 7.2.34, discusses charges based on the past life of the defendant. + + +

+ + +

+ 21 +Cf. Cicero, De Inv. 2.x.33 + +and + +2.xvi.50. + + +

+ + +

+ 22 +Cf. Cicero, De Inv. 2.x.34. + + +

+ + +

+ 23 +Cf. Cicero, De Inv. 2.xi.35. + + +

+ + +

+ 24 +Cf. Cicero, De Inv. 2.xi.37. In + +Gellius, 14.2.8, a man against whom the claim of a sum of money was +made pleads that the case concerns a claim before a private judge, and +not a question of morals before the censors. + + +

+ + +

+ 25 +Cf. Cicero, De Inv. 2.vii.24. + + +

+ + +

+ 26 +σημεῖον. Different from the usual signum of the rhetoricians; see Rhet. ad Alex., chaps. 7 (1428A), 12 (1430B‑1431A), and 14 (1431AB), Aristotle, Rhet. 1.2 (1357AB); + +Cicero, De Inv. 1.xxx.48, and + +Quintilian, 5.9.1 ff.; also Kroll, Philologus 89 (1934), 334‑341. Cf. Cicero, Pro Caelio 22.53: "I might + + +in my speech search every lurking-place + of suspicion. No motive, no place, no opportunity, no accomplice, no +hope of succeeding in the crime, no hope of escaping detection, no means + at all, no trace of heinous guilt will be found." + + +

+ + +

+ 27 +For the genitive form die, see W. M. Lindsay, The Latin Language, Oxford, 1894, pp382‑3; Neue-Wagener, Formenlehre der latein. Sprache (3rd ed., Leipzig, 1902), 1.573‑4; Kühner-Holzweissig, Ausführliche Grammatik der latein. Sprache (2nd ed., Hannover, 1912), 1.405‑6. + + +

+ + +

+ 28 +Cf. Aristotle, Rhet. 2.5 (1383A): "We feel confidence if . . . there are means of aid — either numerous means or great, or both numerous and great." + + +

+ + +

+ 29 +Cf. Cicero, De Inv. 2.xiii.43. Argumentum is virtually equivalent to the σημεῖον (fallible sign) of the Rhet. ad Alex. (ch. 12, 1430B). The tradition thus antedates Aristotle and persisted against his theory of σημεῖον, which joined with εἰκός (the probable proposition) in forming the material of the enthymeme (E. M. Cope, An Introd. to Aristotle's Rhetoric, London and Cambridge, 1867, pp160 ff.). The communes loci dealing with the περιστάσεις are akin to the Aristotelian kind of topoi, but are not specifically Aristotelian. They belong in the Hermagorean system of Issues, but the specific division of σημεῖα into three periods goes back to pre-Aristotelian rhetorical theory (Rhet. ad Alex.l.c.). Neocles (first or second Christian century) in Anon. Seg. 153 (Spengel-Hammer 1[2].379) divides probabilities, signs, and examples + + +into three types according to the same chronological scheme, "as cloud indicating storm, smoke fire, and blood murder." Σημεῖα and εἰκότα were used by the Attic orators as early as Antiphon, and by Thucydides; see Friedrich Solmsen, Die Entwicklung der aristotelischen Logik und Rhetorik (Neue Philol. Untersuch. 4), Berlin, 1929, pp26‑7, and Antiphon-studien (Neue Philol. Untersuch. 8), Berlin, 1931, pp50 ff. + + +

+ + +

+ 30 +Cf. Galen, De symptom. different. (ed. Kühn, 7.43), "the symptom (σύμπτωμα) which some physicians call ἐπιγέννημα (after-symptom); Chrysippus, fragm. 125, ed. Alfred Gercke, Jahrbücher für Class. Philol., Suppl. 14 (1885), 738: κατ’ ἐπακολούθημά τι καὶ σύμπτωμα. + + +

+ + +

+ 31 +Defensor is here used as if it meant reus. Cf. also the last sentence under Comparison in + +2.iv.6, and in + +2.xiv.22; + +2.xv.22, end; Cicero, De Inv. 2.xxviii.83 + +and 86, and + +2.xxix.88; and Wenger, Institutes of the Roman Law of Procedure, p91, note 44. + + +

+ + +

+ 32 +βεβαίωσις in Rhet. ad Alex., ch. 36 (1442B). + + +

+ + +

+ 33 +The treatment of commonplaces goes back to Protagoras and Gorgias (Cicero, Brutus 12.46‑7, + +Quintilian, 3.1.12). On the topoi of Aristotle see Cope, An Introd. to Aristotle's Rhetoric, pp124‑131. Cf. Cicero, De Inv. 2.xv.48, who makes a twofold classification of the matters amplified: doubtful and certain; + +Quintilian, 5.12.15‑16; and + +note on 2.xxx.47 + +below. + + +

+ + +

+ 34 +For a, ab meaning on the side of cf. 2.xxvii.43 + +(ab reo), and see Schmalz-Hoffmann, p523. + + +

+ + +

+ 35 +The non-technical means of persuasion (πίστεις ἄτεχνοι), those that are not inherent in the art, that are not supplied by our own efforts. See Aristotle, Rhet. 1.2 (1355B) and 1.15 (1375A), who lists five: laws, witnesses, contracts, evidence given under torture, and the oath. The theory is pre-Aristotelian; cf. Rhet. ad Alex., chaps. 7 (1428A) and 14 (1431B) ff., on the supplementary proofs (ἐπίθετοι πίστεις): the speaker's own opinion, witnesses, admissions under torture, and oaths. The employment of these proofs long antedated + + +argumentation in the law-courts; when argumentation +came into being its first function was to interpret these "already +existing" proofs. + + +

+ + +

+ 36 +μάρτυρες. + + +

+ + +

+ 37 +βάσανοι. To be distinguished from iudicii quaestio + +(1.xvi.26). Torture was administered under the direction of the +court, but not in the presence of the jury. The torture of free men was +not legal. + + +

+ + +

+ 38 + +2.ii.3‑v.8. + + +

+ + +

+ 39 +For the same sentiment cf. Anon. Seg. 189, in Spengel-Hammer 1(2).386; Hermogenes, De Stat. 3 (ed. Rabe, pp45‑6); also Aristotle, Rhet. 1.15 (1376A): The speaker who + + +lacks witnesses on his side will argue "that +probabilities cannot be bribed to mislead the court, and are never +convicted of false witness." + + +

+ + +

+ 40 +ἀληθινὰ πράγματα (Longinus, in Spengel-Hammer 1[2].195.18), as distinguished from school exercises; cf. 4.xliv.58. + + +

+ + +

+ 41 +Cf. Cicero, De Inv. 2.xliii.125. + + +

+ + +

+ 42 +ἀκριωοδίκαιος. Cf. Cicero, Pro Caecina 23.65: + [People who feel that they have equity on their side say that] +"a pettifogger follows the letter; a good juror defends the +will and intention of the framer." + + +

+ + +

+ 43 +The departments of Law, considered in + +2.xiii.19‑20 + +below. + + +

+ + +

+ 44 +κοινὸν δίκαιον, the "unwritten statutes of heaven that stand fast for ever" (ἄγραπτα κἀσφαλῆ θεῶν νόμιμα) of Sophocles, Antig. 454‑5. (Sophocles apparently echoes an argument used by Pericles in an actual case; see Lysias, Adv. Andoc. 10). Cf. Aristotle, Rhet. 1.10 (1368B): "By universal law I mean all the unwritten principles that are supposed to be acknowledged by all mankind"; 1.13 (1373B): "For indeed there is, as all men to some extent divine, a natural and universal + + +notion of right and wrong, binding on them even if they have no mutual intercourse or covenant"; 1.15 (1375A): + "It is clear that if the written law is adverse to our case, he [the +speaker] must appeal to the universal law, and to the principles of +equity as representing a higher order of justice. [He must say] that +[the judge's obligation to decide] 'according to my best judgement' +means that the judge will not be guided simply and solely by the letter +of the statute" (tr. Lane Cooper); Cope, An Introd. to Aristotle's Rhetoric, pp239‑44. Cf. also the Stoic Chrysippus in + +Diogenes Laertius 7.88: "The common law, the right reason pervading all things;" and + +Cicero, De Offic. 3.17.69. + + +

+ + +

+ 45 +See + +2.xiii.19‑20. + + +

+ + +

+ 46 +Honesta res and rectum are defined in + +3.ii.3 + +below, the departments of Law in + +2.xiii.19‑20 + +below. + + +

+ + +

+ 47 +Isocrates, Panath. 26‑28, on the so‑called + eristic discussions "which our young men take greater pleasure in than +they ought," holds them unsuitable for grown men. In Cicero, + +De Oratore 2.26.111, Antonius blames the rhetoricians for not knowing ambiguities as well as the dialecticians understood them (see also + +Orator 32.115), whereas Dionysius Halic., De Composit. Verb., + ch. 4, says that treatises such as those of Chrysippus dealing, +among others, with ambiguous propositions offer no benefit to civil +oratory, at least with respect to charm and beauty of style. The +contempt for + + +dialectic is Epicurean; cf. Diogenes Laertius 10.31: "Dialectic the Epicureans reject as superfluous"; Cicero, + +De Fin. 1.7.22, on Epicurus: "He does not show how to detect ambiguities"; + +ibid., 2.6.18. Chrysippus maintained that every word is by nature ambiguous, while Diodorus Cronus asserted that no word is ambiguous + +(Gellius 11.12). + + +

+ + +

+ 48 +Our author here resumes the controversy between Saturninus and Caepio treated in + +1.xii.21 + +above. + + +

+ + +

+ 49 + +2.xiii.19‑20 + +below. + + +

+ + +

+ 50 +For the meaning of these terms see Moriz Wlassak, Sav. Zeitschr. 42 (1921), 408 ff., and Sitzungsber. Akad. der Wissensch. in Wien (Philos.-hist. Kl.) 202, 3 (1924), 168, note 37; Wenger, Institutes of the Roman Law of Civil Procedure, p259, note 10, and p416. All enforceable rights are exhausted by the triad: actio refers to the legis actio, petitio comprehends obligations without regard to the form of the legal procedure, and persecutio refers probably to the rights in general embraced under prosecution, including such praetorian remedies outside + + +an ordinary lawsuit as interdicta (see Greenidge, The Legal Procedure of Cicero's Time, pp75‑8, Wenger, pp245 ff.) and in integrum restitutiones (see Wenger, pp244‑5). + + +

+ + +

+ 51 + +2.xiii.19‑20 + +below. + + +

+ + +

+ 52 +Arising from a gap in the law, which is filled by a process of deduction. + + +

+ + +

+ 53 +See + +1.xiv.24 + +above. + + +

+ + +

+ 54 +Cf. Cicero, De Inv. 2.liii.160 ff. + +Johannes Stroux ("Summum ius summa iniuria," in Festschr. Speiser-Sarasin, Leipzig, 1926, and "Griechische Einflüsse auf die Entwickl. der röm. Rechtswissensch. gegen Ende der republikan. Zeit," in Atti del Congr. Internaz. di diritto Rom. (Roma), Pavia, 1934, 1.111‑132; now both printed as Röm. Rechtswissensch. und Rhetorik, + Potsdam, 1949) argues that rhetorical theory had a substantial +influence on Roman jurisprudence (the sequence being from Greek +philosophy to Greek rhetoric, thence to Roman rhetoric, finally to Roman + juristic theory and practice), but many students of Roman Law believe +that, though useful for pleading, it was not of real significance for +directing judicial decisions. Thus the status + system as a whole seems to have had no influence upon the jurists, with + the possible exception of the doctrines of Letter and Spirit and of +Definition (1.xi.19, + +2.ix.13‑x.14; + +1.xii.21, +2.xii.17); cf., for example, + +Quintilian, 7.6.1. The rhetorician's method of interpretation is +rationalistic and schematic, the jurist's is casuistic. See +A. A. Schiller, Virginia Law Rev. 17 (1941), 733‑768, esp. 750 ff.; Fritz Schulz, Principles of Roman Law, Oxford, 1936, pp129 ff., and History of Roman Legal Science, Oxford, 1946, pp53 ff., 71 ff.; J. Himmelschein, "Studien zu der antiken Hermeneutica iuris, in Symbolae Friburgens. in honorem Ottonis Lenel, Leipzig, 1935, pp373‑424; Artur Steinwenter, "Rhetorik und römischer Zivilprozess," Sav. Zeitschr. 67 (1947), 69‑120; H. F. Jolowicz, Historical Introduction to the Study of Roman Law, 2nd ed., Cambridge, 1952, pp576 f. Note, too, that such sources of Law as the Edict and the responsa prudentium + are missing from our author's list; see Jolowicz, ch. 5. On the +philosophical (Stoic) background of our author's theory of Law see also +Kroll, Philologus 90 (1935), 211‑215. + + +

+ + +

+ 55 +φύσις. In the Roman conception ius civile is the Law which each people forms for itself and is peculiar to its state; the ius gentium + (not the modern law of nations), on the other hand, is the Law common +to all peoples. The latter became identified with Natural Law, which was + originally a Greek concept. See + +Gaius, Inst. 1.1, and Elemér Balogh, in Studi in onore di Pietro Bonfante (Milan, 1930), 4.677‑9. Alfred Pernice, Sav. Zeitschr. 22 (1901), 62‑3, denying the juristic value of these "sources of Law," points out that Nature cannot be a source of positive Law. Cf. Cicero, De Inv. 2.xxii.67. + + +

+ + +

+ 56 +νόμος. The definition, as against the others in this section, is Roman; cf. Gaius, Inst. 1.3: + "A statute is a command and ordinance of the people." But our +author's definition seems too inclusive; for example, not every action +of a Popular Assembly made Law. On sanctio (consecration) see Mommsen, p882, and p901, note 5. + + +

+ + +

+ 57 + +Twelve Tables 1.1. + + +

+ + +

+ 58 +συνήθεια. Students of Roman jurisprudence deny that the concept of customary law held by the rhetoricians (to + + +whom it was useful, for tradition is a valid source for + argumentation) was as such employed by the jurists of this period. See +Pernice, Sav. Zeitschr. 22 (1901), 59 ff.; Artur Steinwenter, in Studi in onore di Pietro Bonfante, 2.421‑40; A. A. Schiller, Virginia Law Rev. 24 (1938), 268‑82; Fritz Schulz, History of Roman Legal Science, p74; C. W. Westrup, Introd. to Early Roman Law III, (Copenhagen and London, 1939), 127 ff. + + +

+ + +

+ 59 +One of only a few situations in Roman private law described as of customary origin; see Schiller, Virg. Law Rev. 24.275. + + +

+ + +

+ 60 +κεκριμένον. + + +

+ + +

+ 61 +M. Livius Drusus was praetor urbanus c. 115 B.C., Sextus Julius Caesar in 123 B.C. + + +

+ + +

+ 62 +C. Caelius (Caldus? See P. F. Girard, Mélanges de droit romain [Paris, 1923] 2.398, note 2), before 103 B.C. The mimi specialised in broad and coarse humour (iocus illiberalis). Lucilius used licence in attacking other men (e.g., the poets Accius and Pacuvius), but resented attacks upon himself. + + +

+ + +

+ 63 +See R. E. Smith, "The Law of Libel at Rome," Class. Quart. 44 (1951), 171‑2. + + +

+ + +

+ 64 +Publius Mucius Scaevola, probably in 136 B.C. See + +1.xiv.24 + +above. + + +

+ + +

+ 65 +Corresponds to καλὸν καὶ δίκαιον, ἐπιεικές, ἴσον, yet the Roman term emphasizes the social point of view, implying more than "fairness." The bonum is connected with bona fides. See Fritz Pringsheim, "Bonum et Aequum," Sav. Zeitschr. 52 (1932), 78‑155; Westrup, op. cit., III, 1.21 ff. + The definition is philosophical, and Greek in origin, but the +illustration is from Roman law. According to Stroux, "Summum ius summa +iniuria," the Aristotelian doctrine of equity came to the Roman Forum +through the Peripatetic and Academic writers, and thence to the interpretatio iuris, but most students deny such an influence upon the Roman + + +jurists, or minimize it. See Ernst Levy, Sav. Zeitschr. 48 (1928), 668‑78; Schiller, Virg. Law Rev. 27.753 ff.; Schulz, History of Roman Legal Science, pp74 f. + + +

+ + +

+ 66 +This is the earliest text expressly mentioning substitution in Roman procedure. On procedural representation see Wenger, Institutes of the Roman Law of Civil Procedure, pp88 ff. + + +

+ + +

+ 67 +συνάλλαγμα. + + +

+ + +

+ 68 + +Twelve Tables 1.6‑9. The Comitium adjoined the Forum on +the northwest; although the two areas were not separated by a natural +line, each kept its separate identity until the middle of the second +century B.C. + + +

+ + +

+ 69 +Our author now turns to the Assumptive Juridical Issue. Cf. 1.xiv.24 and 1.xv.25 + +above, and Cicero's fuller, and generally clearer, treatment in + +De Inv. 2.xxiv.72 ff.; also the figure Comparison (similitudo), + +4.xlv.59 + +below. + + +

+ + +

+ 70 +Cf. the definition of Advantage, + +3.ii.3 + +below. + + +

+ + +

+ 71 +Cf. 1.xv.25 + +above, and + +Cicero, De Inv. 2.xxvi.78 ff. + +(relatio criminis). + + +

+ + +

+ 72 +Cf. Cicero, De Inv. 2.xxvii.80 f. + + +

+ + +

+ 73 +The problem is that exploited in tragedy, concerning the right to take justice into one's own hands. + + +

+ + +

+ 74 +Cf. Cicero, De Inv. 2.xxviii.84 f. + + +

+ + +

+ 75 +Cf. Cicero, De Inv. 2.xxxi.94. + + +

+ + +

+ 76 +Cf. Cicero, De Inv. 2.xxii.98 ff. + + +

+ + +

+ 77 +Cf. Cicero, De Inv. 2.xxxi.95, and Rhet. ad Alex., ch. 4 (1427A). + + +

+ + +

+ 78 +Cf. Aristotle, Eth. Nic. 3.3 (1111 A24): "For it is perhaps a mistake to say that acts committed through anger or desire are involuntary." + + +

+ + +

+ 79 +The Rhet. ad Alex., ch. 7 (1429A), admits such a defence as a last resort. + + +

+ + +

+ 80 +Cf. Cicero, De Inv. 2.xxxi.96. + + +

+ + +

+ 81 +Cf. Cicero, De Inv. 2.xxxiii.101 f. + + +

+ + +

+ 82 +For the commonplaces on pity see also + +2.xvii.26 + +and especially + +2.xxxi.50 + +below. + + +

+ + +

+ 83 +Cf. Cicero, De Inv. 2.xxxv.106, and + +Pro Ligario. + + +

+ + +

+ 84 +For mansuetus et misericors cf. Sallust, Cat. 54.2 + +(on Caesar), + +52.11 + +and + +52.27 + +(Cato), and + +34.1 + +(Q. Marcius); Cicero, + +Pro Murena 41.90, + +Pro Sulla 33.93. + + +

+ + +

+ 85 + +1.xiv.24. Cf. Cicero, De Inv. 2.xxxiv.105. + + +

+ + +

+ 86 +Cicero, + +De Inv. 2.xxix.86‑xxx.94, considers also the situation (remotio rei) in which the defendant denies that the act he is charged with concerned him or his duty. Cf. also the Exculpation, + +2.xvi.23 + +above. + + +

+ + +

+ 87 +See the definition of Advantage, + +3.ii.3 + +below. + + +

+ + +

+ 88 + +2.xvi.23 + +above. + + +

+ + +

+ 89 +Tractatio and inventio supplement each other; Cicero, + +De Oratore 2.41.176: "We now see that it is by no means enough to find what to say, unless you are able to handle it (id inventum tractare) skilfully once found;" cf. also ibid., + +2.27.120. The tradition is Isocratean; Paneg. 9: "For the deeds of the past are a heritage common to us all, but the ability to make full use (= χρῆσις) + of them at the proper time, in each instance to form the right +conceptions about them, and to set these forth in a finished style, is +the special gift of them that know." Cf. 1.ii.2, + +2.ii.2, + +3.iv.7, + +3.vi.11. + + +

+ + +

+ 90 +Cicero, + +De Inv. 1.xxxvii.67, divides the deductive argument (argumentatio per ratiocinationem) into propositio, propositionis approbatio, assumptio, assumptionis approbatio, and complexio. +

+While Aristotle in forming arguments constructs the enthymeme in close analogy with the logical syllogism (e.g., Rhet. 1.2, 1356B), + our author, with the practical speaker in mind in this meagre +treatment, shows little interest in the syllogistic form. The +epicheireme is more complicated than + + +the enthymeme (of which it is a later name). Aristotle's enthymeme (and, later, also Quintilian's [epicheireme]; see + +5.14.6) comprised two premises and conclusion; the epicheireme +normally comprised four premises. Aristotle took the premises for +granted; the later rhetoricians thought it necessary to prove each. The +epicheireme may have developed under Stoic influence. Cicero, + +De Inv. 1.xxxv.61, makes it clear that the +quinquepartite epicheireme grew out of Aristotle's syllogism; +Theophrastus, following observations of Isocrates, may have been the +first to introduce it into rhetoric. Cicero's syllogistic form (ratiocinatio) is logical; he treats it on a par with Socratic induction. See + +Cicero, De Inv. 1.xxxiv.57 ff.; Quintilian, + +5.10.1 ff. + +and + +5.14.5 ff.; Wilhelm Kroll, Das Epicheirema, in Sitzungsber. Akad. der Wissensch. in Wien (Philos-hist. Kl.), 216.2 (1936); Friedrich Solmsen, Amer. Journ. Philol. 62 (1941), 39 ff., 169 ff. It is doubtful whether the epicheireme as here described was very widely used in actual oratory. + + +

+ + +

+ 91 +πρότασις, λῆμμα, hereafter in Book 2 called expositio by our author. + + +

+ + +

+ 92 +Cf. Cicero, De Inv. 1.xxxviii.68. + + +

+ + +

+ 93 +The Proposition. Here begins a progymnasma (σύγκρισις of persons). The theme was first taken up in + +1.xi.18 + +above. Thiele, Hermagoras, pp159‑163, conjectures that the source of both theme (originally a ὅπλων κρίσις or an Αἴας of tragedy) and treatment by five-fold epicheireme is Hermagoras. Cf. Quintilian, 4.2.13; + Ulysses replies that he did not do the deed, and had no quarrel with +Ajax, and that their conflict was concerned only with renown. + + +

+ + +

+ 94 +The Reason. + + +

+ + +

+ 95 +Ulysses hated Palamedes because he had exposed Ulysses' deceit in feigning madness so as to avoid joining the + + +Greek expedition to Troy, and because Ulysses envied +his fame for wisdom. According to another tradition this hatred arose +from the severe reproof Palamedes dealt out to Ulysses for returning empty-handed + from a foraging expedition. The stories of the vengeance also differ. +Ulysses and Diomedes induced him to descend into a well in order to find + alleged treasure, and then stoned him; or they drowned him while he was + fishing; or with Agamemnon they bribed a servant of Palamedes to +conceal under Palamedes' bed a forged letter from Priam offering a bribe + of gold, accused Palamedes of treachery, and when the letter (or gold) +was discovered, caused him to be stoned by the Greeks. + + +

+ + +

+ 96 +The Proof of the Reason. + + +

+ + +

+ 97 +The Embellishment. + +Quintilian, 5.14.6, knows of the exornatio as a part of the epicheireme. + + +

+ + +

+ 98 +The Résumé. + + +

+ + +

+ 99 +Arrangement accommodated to circumstance, as in + +3.ix.17 + +below. Cf. Cicero, De Inv. 1.xxxix.70 ff. + + +

+ + +

+ 100 +Our author omitted to use a transition here. Cicero, + De Inv. 1.xlii.78 ff., rightly considers the defective arguments under Refutation (reprehensio). + + +

+ + +

+ 101 +Reprehensioλύσις. + + +

+ + +

+ 102 +Cf. Cicero, De Inv. 1.xlii.79. + + +

+ + +

+ 103 +The fallacy of False Generalization. Cf. Cicero, De Inv. 1.xliii.80. + + +

+ + +

+ 104 +In + +Cicero, De Inv. 1.xliii.80, this observation is assigned + to the speech delivered by C. Scribonius Curio (first of the three + orators of that name, praetor in 121 B.C.) in defence of Servius Fulvius in a prosecution for incest. According to Cicero, + +Brutus 32.122, the speech was once esteemed a masterpiece. + + +

+ + +

+ 105 +The fallacy of Incomplete Disjunction. Cf. Cicero, De Inv. 1.xlv.84. + + +

+ + +

+ 106 +Cf. Cicero, De Inv. 1.xlv.85. + + +

+ + +

+ 107 +Cf. Cato in + +Livy, 34.4.1 ff.: "Often have you heard me complain +. . . that the state is suffering from the two opposing vices, + luxury and greed, which have been the curse and destruction of every +great empire;" + +Cicero, Pro S. Rosc. Am. 27.75: "The city creates +luxury; from luxury greed inevitably springs, and from greed bursts +forth audacity, the source of every crime and wrong;" + +Longinus, De Sublim. 44.6:º "For the love of money . . . and the love of pleasure enslave us;" Isocrates, Antid. 217: "Well then, I say that every man does everything he does for the sake of pleasure or gain or glory;" Aristotle, Rhet. 1.10 (1369A): + + +"Thus every act of men is necessarily done from one or + other of seven causes: chance, nature, compulsion, habit, calculation, +passion, or desire." + + +

+ + +

+ 108 +Aristotle, Polit. 2.9 (1271A), declares greed and ambition to be the commonest motives of crime; cf. also Timon the Misanthrope in Stobaeus, 3.10.53: "The components of evil are greed and the love of glory"; and + +Hor. Serm. 1.4.25‑6: "Take anyone at all from amid a crowd — he is suffering from either greed or some wretched ambition." + + +

+ + +

+ 109 +The sentiment is Epicurean; cf., for example, Lucretius 1.80 ff., + +3.59 ff. + + +

+ + +

+ 110 +In Theon 5 (Spengel 2.99 and 105) and in Stobaeus, 3.10.37, Bion of Borysthenes (first half 3rd century B.C.) is quoted as saying that avarice is mother city (μητρόπολις) of all evil; in + +Diogenes Laertius, 6.50, the saying is attributed to Diogenes the Cynic (fourth century B.C.). This sentiment was popular in the rhetorical schools and philosophical diatribes. Cf. Sallust, Cat. 10: "These [the lust for money and the lust for power] were, I might say, the source (materies) of all evils"; Calpurnius Flaccus 8: "A man long happy is substance (materia) for all disasters," and see also Otto, s.v. "avaritia" 5, p51. + + +

+ + +

+ 111 +Medea's nurse in the Prologue of Ennius' Medea Exul, which was a reproduction of Euripides' Medea. Ennius here observed the sequence of causes more carefully than Euripides had done; see Schol. in Eurip., Med. 1.1 ff., ed. Ed. Schwartz, 2.140 ff. Cf. Cicero, De Inv. 1.xlix.91; + +Quintilian, 5.10.83; Ribbeck, 1.49‑50. + + +

+ + +

+ 112 +Its faultiness is self-evident. Cf. Plato, Sophist 252C: + "They do not need others to refute them, but, as the saying goes, they +have an enemy and adversary who dwells in the same house with them." + + +

+ + +

+ 113 + +Trinummus 23‑6. A proper translation would be: "For instance, today." Nam, + here appearing in colloquial speech, introduces a particular instance +of a general statement; it is transitional rather than confirmatory, and + so the charge that Megaronides uses a false syllogism is unjust. +Cicero, + +De Inv. 1.l.95, is guilty of the same misunderstanding. See W. M. Lindsay, Syntax of Plautus, Oxford, 1907, p100. + + +

+ + +

+ 114 +Cf. Aristotle, Rhet. 2.24 (1401B), illustrating, among the sham enthymemes, the topos + from a sign (a single instance used to prove the rule): "For +example, one might say that lovers are of service to their countries, +for it was the love of Harmodius and Aristogeiton which brought about +the downfall of the tyrant Hipparchus." + + +

+ + +

+ 115 +Cf. R. W. Emerson in "The American Scholar": +"Inaction is cowardice, but there can be no scholar without the heroic +mind." For other echoes of the opposition to philosophy and art see + +2.xxvii.43 + +and + +4.xxxii.43. + + +

+ + +

+ 116 +Cf. the like portrayal of Fortune in Cebetis Tabula (probably first Christian century), ch. 7 (ed. Praechter, p6), and + +Shakespeare, Henry V, 3.6.26 ff.; also Otto, s.v. "fortuna" 1, p142. + + +

+ + +

+ 117 +We do not know to which play this fragment (from a prologue, perhaps) is to be assigned. Ribbeck, 1.145, conjectures Chryses; Marx, and Warmington, 2.319, Dulorestes; L. A. Post, Hermiona. For the genitive form re (last verse) see + p68, note a. + + +

+ + +

+ 118 +Cf. Cicero, De Inv. 1.l.95. + + +

+ + +

+ 119 +Very like the type of fallacy in + +2.xxiii.36 + +above. + + +

+ + +

+ 120 +An Introduction similarly defective is called banal in + +1.vii.11 + +above. + + +

+ + +

+ 121 + +2.xxiii.36 + +above. + + +

+ + +

+ 122 +δίλημμα, διλήμματον. Complexio in + +Cicero, De Inv. 1.xxix.45, and in + +Servius on Virgil, Aen. 2.675. Cf. in Aristotle, Rhet. 2.23 (1399A), No. 14 of the 28 lines of argument from which to draw enthymemes, the topos of criss-cross consequences; Hermogenes, De Inv. 4.6 (ed. Rabe, pp192‑4); and also the figure Division, + +4.xl.52 + +below. + + +

+ + +

+ 123 +Cf. Cicero, De Inv. 1.xlv.83; he uses an example which our author gives in + +2.xxvi.42 + +to illustrate the vice of inconsistency. + + +

+ + +

+ 124 +The verses in this section have been referred either to a Greek school of rhetoric where exercises were set on the Cresphontes of Euripides or to Ennius' Cresphontes; see Marx, Proleg., p132, and Ribbeck, 1.33, but also Johannes Tolkiehn, Berl. philol. Wochenschr. + 37 (1917), 828‑89, who believes that the first four verses belong +to the Ennian play. Our author seems here to have forgotten what +precisely constitutes Proof of the Reason; cf. his definition in + +2.xviii.28 + +above, and the illustration in + +2.xix.29. +

+In the event that the conditions here mirrored are Roman, the daughter must have remained in the potestas of + her father if he divorced her from her husband without her consent. +This, then, would be an early reference to marriage without manus. + + +

+ + +

+ 125 +Cf. Cicero, De Inv. 1.xliii.81. + + +

+ + +

+ 126 +Cf. Aristotle's examples of the infallible kind of sign in Rhet. 1.2 (1357B): "He is sick, for he has a fever," and "She has had a child, for she has milk"; also Anal. Pr. 2.27 (70A). + + +

+ + +

+ 127 +This is the "common" argument; cf. Cicero, De Inv. 1.xlviii.90, and + +Quintilian, 5.13.29. Faults such as those treated from here on are described briefly by Quintilian in + +5.13.34 f. + + +

+ + +

+ 128 +From a comedy (?) by an unknown author; yet Ribbeck, 1.300‑1, +suspects that the verse may belong to a dispute between Jason and Medea +in Ennius' Medea. + + +

+ + +

+ 129 +Cf. 2.xvi.24 + +above. + + +

+ + +

+ 130 +Probably from the Thyestes of Ennius; see Vahlen, pp. ccx +and 183. Thesprotus is perhaps interceding to reconcile the +estranged brothers Atreus and Thyestes. But if the reading Chrespontem (E threspontem) is correct, the verses are from the Cresphontes of Ennius; see Ribbeck, 1.34. Cf. Cicero, De Inv. 1.xlix.91. + + +

+ + +

+ 131 +Cf. Cicero, De Inv. 1.xlviii.90. + + +

+ + +

+ 132 +Cf. Cicero, De Inv. 1.xlviii.90. + + +

+ + +

+ 133 +Assigned to the Medus of Pacuvius; Medea is speaking to Aeetes. + + +

+ + +

+ 134 +Cicero, + +De Inv. 1.xlvii.88, gives a different treatment of ambiguity. + + +

+ + +

+ 135 +Cf. Cicero, De Inv. 1.lxix.91. The "general definition" represents the same kind of fault as the last type of weak Reason in + +2.xxiv.37 + +above. + + +

+ + +

+ 136 +See the definition of iniuria in + +4.xxv.35 + +below. + + +

+ + +

+ 137 +The fallacy of Begging the Question. + + +

+ + +

+ 138 +Cf. Aristotle, Rhet. 2.24 (1401B), illustrating, among the sham enthymemes, the topos from a "sign": "Suppose that + + +some one calls Dionysius a thief 'because he is a +rogue.' There is, of course, no logical argument here; not every rogue +is a thief, though every thief is a rogue." + + +

+ + +

+ 139 +Cf. the last fault considered in 2.xxv.39 + +above. + + +

+ + +

+ 140 +Perhaps from the Armorum Iudium of Accius (Warmington, 2.362) rather than from the play of the same name by Pacuvius (Marx, Proleg., p132); see Tolkiehn, Berl. Philol. Wochenschr. 37 (1917), 827‑8. Ajax speaks for the arms of Achilles which Agamemnon, on Athena's advice, later awarded to Ulysses. + + +

+ + +

+ 141 +The fragment is from a tragedy by an unknown author. The example was a favourite of the rhetoricians. Cf. Cicero, De Inv. + +1.xlv.83, + +1.l.93; Victorinus, in Halm, p253: C. Julius Victor, ch. 12, in Halm, p414. + + +

+ + +

+ 142 +Cf. Cicero, + +De Inv. 1.xlix.92, and + +De Oratore 2.75.304‑5. + + +

+ + +

+ 143 +Cf. Cicero, De Inv. 1.l.94. + + +

+ + +

+ 144 +The fallacy of Shifting Ground. Cf. Cicero, De Inv. 1.l.94. + + +

+ + +

+ 145 +The twins in the Antiopa (as in the Antiope of Euripides) +engage in a famous debate: the practical Zethus, hostile to culture, +finds fault with Amphion's love of music, and urges the virile active +life of farming, cattle breeding, and war; the cultivated Amphion +praises music and the life of contemplation. Amphion yields "to his +brother's mood" so far as to still his lyre; see + +Hor. Epist. 1.18.43‑4. Cf. Cicero, De Inv. 1.l.94, + +De Oratore 2.37.155, + +De Re Publ. 1.18, and Callicles in Plato, Gorgias 485E ff. The separation of musical from philosophical studies represents a Roman point of view. + + +

+ + +

+ 146 +The argument is not ad rem but ad hominem; the fallacy of Ignoring the Question. Cf. Cicero, De Inv. 1.l.94. + + +

+ + +

+ 147 +Cf. Quintilian, 12.1.32: + "Let us banish from our hearts the notion that eloquence, the fairest +of all things, can combine with vicious character"; Philodemus, Rhet. 2.270, + ed. Sudhaus: "But it is clear to all that many orators are very +able, yet in character thoroughly depraved;" Plato, Gorgias 457A, and Ludwig Radermacher, Artium Scriptores, Sitzungsber. Österreich. Akad. (philos.-hist. Klasse) 227, 3 (Vienna, 1951), 45. + + +

+ + +

+ 148 +Cf. Cicero, De Inv. 1.l.94. Yet this procedure is not faulty when followed in the Statement of Facts; see + +De Inv. 1.xxi.30. + + +

+ + +

+ 149 +A deliberative problem; our author has in the first two books been emphasizing the judicial kind. + + +

+ + +

+ 150 +Cf. Cicero, De Inv. 1.l.94. + + +

+ + +

+ 151 +Most probably for her faithfulness to Rome in the Marsic War, in which +she gallantly withstood a siege, Alba Fucens, a city of the Aequi on the + borders of the Marsi in Central Italy, was rewarded with the status of municipium; + Pinna (or Penna), at the foot of the Apennines, a chief city of the +Vestini, was also faithful to Rome (although the other Vestini were in +revolt) and endured a hard siege. + + +

+ + +

+ 152 +Cf. Horace, Ars Poet. 72: "Usage (ususconsuetudoσυνήθεια), in whose hands lie the decision (arbitrium), rights (ius), and standard (norma) of speaking"; Demetrius, De Elocut. 2.86: "Usage, which is our teacher always," and 2.87, in which he makes usage his "standard" (κανώνnorma). + + +

+ + +

+ 153 +In 90 B.C., after the outbreak of +the Marsic War, the tribune L. Varius Hybrida introduced a law on +treason directed against the senatorial leaders; it inquired into the +actions of those who helped or advised the allies to take up arms +against Rome. Sulpicius' law in 88 restored the exiles who had been + condemned without a hearing either by the Varian Commission or by the +court established under the Lex + + +Plautia Iudiciaria of 90/89, but was +itself later in the year repealed by Sulla. Why Sulpicius had earlier +voted against a proposal to recall the exiles is not clear, for many of +these belonged to his own party. The grounds for the veto were probably +constitutional, and the new form of the proposal may have been intended +to avoid constitutional objections that the decisions of the courts were + being nullified; or perhaps popular opinion pressed him to change his +mind. It was through the interdiction of fire and water, the symbol of +the community, that the capital sentence was carried into effect. See +Ernst Levy, Die röm. Kapitalstrafe, Sitzungsber. Heidelberg. Akad. (philos.-hist. Klasse) 21, 5 (1930‑31), 14 ff. + + +

+ + +

+ 154 +The author here seems to betray bias in favour of the Popular party; but see the Introduction to the present volume, + +pp. xxiii f. + + +

+ + +

+ 155 +Cf. Cicero, De Inv. 1.lxiv.82. + + +

+ + +

+ 156 +Aristotle, Rhet. 2.25 (1403A). + +Quintilian, 5.13.24, Anon. Seg. 187 (Spengel-Hammer 1[2].385), and Apsines, Ars Rhet. 9 (Spengel-Hammer 1[2].283‑5) treat the invalidation of examples (λύσεις παραδειγμάτων). + + +

+ + +

+ 157 +Cf. Cicero, De Inv. 1.xliv.82. + + +

+ + +

+ 158 +Cf. Cicero, De Inv. 1.xlix.92. + + +

+ + +

+ 159 +Two functions are differentiated, the logical and emotional; see + +2.xxx.47 ff. + +below. Cf. Cicero, De Inv. 1.xlix.92; in Aristotle, Rhet. 2.24 (1401B), the topos (among the sham enthymemes) of indignation (δείνωσις) — the speaker amplifies the deed without having proved his case. + + +

+ + +

+ 160 +Cf. Cicero, De Inv. 1.xxxvii.67. + + +

+ + +

+ 161 +ἐπίλογοι. The Isocratic theory of +the Conclusion was also tripartite; to Theodectes (whose rhetorical +system was based on the parts of the discourse) its functions are to +stir the emotions, especially anger and pity, to praise or blame, and to + recall what has been said. See Hugo Rabe, Proleg. Syll., Leipzig, 1931, pp32 and 216; Anon. Seg. 208‑9, in Spengel-Hammer 1(2).389; Friedrich Solmsen in Hermes 67 (1932). The Rhet. ad Alex., ch. 36 (1444B‑1445A), + discusses the part played in Conclusions by the Summary and +Conciliation of the Audience (including the Appeal to Pity), together +with Discrediting the Opponent. To Aristotle, Rhet. 3.19 (1419B), + the Conclusion has four functions: to conciliate the audience and +discredit the opponent, to modify and depreciate, to excite the emotions + required by the case, and to review what has been said. Cicero, + +De Inv. 1.lii.98, divides conclusio into Summing Up, Invective (indignatio, δείνωσις), and Appeal to Pity (conquestio); in + +Part. Orat. 15.52 ff. + +the peroratio is restricted +(doubtless because the work is in the form of an isagogic dialogue) to +two divisions, Amplification and Summing Up, Invective and Appeal to +Pity being subordinate to Amplification. Anon. Seg. 203 (Spengel-Hammer 1[2].454) considers the Conclusion as dealing with either facts (τὸ πρακτικόν) + + +or emotions (τὸ παθητικόν), pla­cing the Summary in the former class; so also + +Quintilian, 6.1.1. + + +

+ + +

+ 162 +ἀνάμνησις, ἀνακεφαλαίωσις. In Rhet. ad Alex., ch. 20 (1433B), παλιλλογία. Cf. Rhet. ad Alex., l.c.: + "When Summing Up we shall recapitulate either in the form of a division + or a recommendation of policy or of a question or of an enumeration;" + +Cicero, Part. Orat. 17.59: "there are two occasions for +the Summing Up — if you mistrust the memory of those before whom you are + pleading whether on account of the length of time elapsed [since the +events you have been discussing took place] or on account of the length +of your speech, or if, by repeatedly presenting arguments that +strengthen your speech and setting these forth briefly, your case will +have more force; + +Quintilian, 6.1.1: "The Summing Up . . . both refreshes the memory of the iudex and at the same time places the whole case before his eyes." Cf. the enumeratio of + +1.x.17 + +above, and complexio, the Résumé of an argument + +2.xviii.28 + +above. + + +

+ + +

+ 163 +See + +note on 4.vii.10 + +below. + + +

+ + +

+ 164 +The purpose of Amplification is δείνωσις (indignatio in + +4.xv.22 + +and + +4.xxxix.51, +iracundia in + +3.xiii.24). Note that the loci communes (see note on 2.vi.9 + +above) are here attached to Amplification (αὔξησις), + which, in turn, is a subhead under the Conclusion. The theory of +Amplification was first formed for epideictic; Gorgias, Tisias (Plato, Phaedrus 267A), and Isocrates gave it prominence. Cf. Cicero, Part. Orat. 15.52: + "The right place for Amplification is in the Peroration; but also in +the course of the speech there are opportunities to digress for the sake + of amplification, when some point has been proved or refuted. +Amplification is, then, a more impressive affirmation, so to speak, +which by moving the mind wins belief in speaking;" + +8.27: "Although Amplification has its own proper place, often in the opening of a + + +speech, and almost always at the end, yet it is to be +used also in other parts of the discourse, especially when a point has +been proved or refuted." Cicero, + +De Inv. 1.liii.100‑liv.105, gives five additional loci + for invective; his No. 12 is like our author's No. 8. There +are correspondences between our author's commonplaces and those listed +in Aristotle, Rhet. 1.14 (1374B‑1375A); cf.e.g., μόνος ἢ πρῶτος (our author's No. 8), τὸ θηριωδέστερον ἀδίκημα (No. 7), ἐκ προνοίας (No. 6), ἴασις (No. 5); on correspondences with those in the Rhet. ad Alex. see Claus Peters, pp100‑101. Peters, and Octave Navarre, Essai sur la Rhétorique Grecque avant Aristote, Paris, 1900, pp304 ff., illustrate the use made of several of these commonplaces by Greek orators. See Walter Plöbst, Die Auxesis, diss. Munich, 1911. + + +

+ + +

+ 165a + 165b +Cf. Cicero, De Inv. 1.liii.101. + + +

+ + +

+ 166 +Cf. 3.vi.10 + +below. + + +

+ + +

+ 167 +Cf. Cicero, De Inv. + +1.liii.101 + +and + +2.xxxii.100; the locus qui efficitur ex causis in + +Top. 18.67. + + +

+ + +

+ 168 +Cf. Cicero, De Inv. 1.liii.102; Rhet. ad Alex., ch. 4 (1427A). + + +

+ + +

+ 169a + 169b + 169c +Cf. Cicero, De Inv. 1.liii.102. + + +

+ + +

+ 170 +Cf. Cicero, De Inv. 1.liv.103. + + +

+ + +

+ 171 +ἄντιπαραβολή. See the example of the grand style, + +4.viii.12 + +below, for a use of this commonplace. Cf. Quintilian, 6.2.21: + "For some things are heinous in themselves, such as parricide, murder, +poisoning, but other things have to be made to seem heinous;" and + +Cicero, De Inv. 1.liv.104. + + +

+ + +

+ 172 +ἐκτύπωσις. Cf. the figures descriptio, + +4.xxxix.51, and demonstratio, + +4.lv.68 + +below; + +Cicero, De Inv. 1.liv.104. + + +

+ + +

+ 173 +ἔλεος, οἶκτος. Cicero's treatment in + +De Inv. 1.lv.106‑lvi.109 + +is fuller, listing sixteen loci of conquestio. Karl Aulitzky, Wiener Studien 39 (1917), 26‑49, believes that Cicero and our author here use a common Roman source which may derive from Apollonius ὁ μαλακός. That the + + +Appeal to Pity belongs in the Conclusion of a forensic speech is a concept of pre-Aristotelian rhetoric; cf. Rhet. ad Alex., ch. 36 (1445A). + + +

+ + +

+ 174 +Cf. Cicero, Part. Orat. 17.57: "For nothing is so pitiable as a man who has become pitiable after having been happy." Aristotle, Poetics, ch. 13 (1452B‑1453). + + +

+ + +

+ 175 +So also Rhet. ad Alex., ch. 36 (1445A), and + +Quintilian, 6.1.19. + + +

+ + +

+ 176 +Quintilian, + +6.1.18, offers similar advice to the accuser who is exciting pity for the man he is seeking to avenge. + + +

+ + +

+ 177 +The proverb is attributed by Cicero, in + +De Inv. 1.lvi.109, to Apollonius the rhetorician, who is perhaps to be identified with Apollonius ὁ μαλακός (born c. 160 B.C.) rather than with Apollonius Molon, Cicero's teacher. Both ὁ μαλακός and Molon (later) taught at Rhodes. For a study of the proverb see G. D. Kellogg, Amer. Journ. Philol. 28 (1907), 301‑10. + + + +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+ 
+[image ALT: Valid HTML 4.01.]
+	+

+Page updated: +5 Mar 18 +

+ + \ No newline at end of file diff --git a/sources/book_2_files/401.png b/sources/book_2_files/401.png new file mode 100644 index 0000000..c010842 Binary files /dev/null and b/sources/book_2_files/401.png differ diff --git a/sources/book_2_files/Ebox.js b/sources/book_2_files/Ebox.js new file mode 100644 index 0000000..0c57824 --- /dev/null +++ b/sources/book_2_files/Ebox.js @@ -0,0 +1,2921 @@ +//\//////////////////////////////// +//\ overLIB 3.33 -- This notice must remain untouched at all times. +//\ Copyright Erik Bosrup 1998-2001. All rights reserved. +//\ +//\ By Erik Bosrup (erik@bosrup.com). Last modified 2001-01-26. +//\ Portions by Dan Steinman (dansteinman.com). Additions by other people are +//\ listed on the overLIB homepage. +//\ +//\ Get the latest version at http://www.bosrup.com/web/overlib/ +//\ +//\ This script is published under an open source license. Please read the license +//\ agreement online at: http://www.bosrup.com/web/overlib/license.html +//\ If you have questions regarding the license please contact erik@bosrup.com. +//\ +//\ This script library was originally created for personal use. By request it has +//\ later been made public. This is free software. Do not sell this as your own +//\ work, or remove this copyright notice. For full details on copying or changing +//\ this script please read the license agreement at the link above. +//\ +//\ Please give credit on sites that use overLIB and submit changes of the script +//\ so other people can use them as well. This script is free to use, don't abuse. +//\//////////////////////////////// +//\mini + +//\//////////////////////////////// +//\ ▸ the URLs above, at "bosrup.com", are dead: the entire site went belly-up. +//\//////////////////////////////// + + +//\//////////////////////////////// +//\ Thayer flavor: +//\ I've renamed "overlib" to "Ebox", "Fbox", etc. +//\ to save 3 characters on each call +//\ while specifying the language (English, French, etc.) +//\//////////////////////////////// + + +//////////////////////////////////// +// CONSTANTS +// Don't touch these. :) +//////////////////////////////////// +var INARRAY = 1; +var CAPARRAY = 2; +var STICKY = 3; +var BACKGROUND = 4; +var NOCLOSE = 5; +var CAPTION = 6; +var LEFT = 7; +var RIGHT = 8; +var CENTER = 9; +var OFFSETX = 10; +var OFFSETY = 11; +var FGCOLOR = 12; +var BGCOLOR = 13; +var TEXTCOLOR = 14; +var CAPCOLOR = 15; +var CLOSECOLOR = 16; +var WIDTH = 17; +var BORDER = 18; +var STATUS = 19; +var AUTOSTATUS = 20; +var AUTOSTATUSCAP = 21; +var HEIGHT = 22; +var CLOSETEXT = 23; +var SNAPX = 24; +var SNAPY = 25; +var FIXX = 26; +var FIXY = 27; +var FGBACKGROUND = 28; +var BGBACKGROUND = 29; +var PADX = 30; +var PADY = 31; +var PADX2 = 32; +var PADY2 = 33; +var FULLHTML = 34; +var ABOVE = 35; +var BELOW = 36; +var CAPICON = 37; +var TEXTFONT = 38; +var CAPTIONFONT = 39; +var CLOSEFONT = 40; +var TEXTSIZE = 41; +var CAPTIONSIZE = 42; +var CLOSESIZE = 43; +var FRAME = 44; +var TIMEOUT = 45; +var FUNCTION = 46; +var DELAY = 47; +var HAUTO = 48; +var VAUTO = 49; + + +//////////////////////////////////// +// DEFAULT CONFIGURATION +// You don't have to change anything here if you don't want to. All of this can be +// changed on your html page or through an overLIB call. +//////////////////////////////////// + +// Main background color (the large area) +// Usually a bright color (white, yellow etc) +if (typeof ol_fgcolor == 'undefined') { var ol_fgcolor = "#FFFFDD";} + +// Border color and color of caption +// Usually a dark color (black, brown etc) +if (typeof ol_bgcolor == 'undefined') { var ol_bgcolor = "#333399";} + +// Text color +// Usually a dark color +if (typeof ol_textcolor == 'undefined') { var ol_textcolor = "#000066";} + +// Color of the caption text +// Usually a bright color +if (typeof ol_capcolor == 'undefined') { var ol_capcolor = "#FFFFFF";} + +// Color of "Close" when using Sticky +// Usually a semi-bright color +if (typeof ol_closecolor == 'undefined') { var ol_closecolor = "#9999FF";} + +// Font face for the main text +if (typeof ol_textfont == 'undefined') { var ol_textfont = "Courier, Courier New, serif";} + +// Font face for the caption +if (typeof ol_captionfont == 'undefined') { var ol_captionfont = "Courier, Courier New";} + +// Font face for the close text +if (typeof ol_closefont == 'undefined') { var ol_closefont = "Courier, Courier New";} + +// Font size for the main text +if (typeof ol_textsize == 'undefined') { var ol_textsize = "1";} + +// Font size for the caption +if (typeof ol_captionsize == 'undefined') { var ol_captionsize = "1";} + +// Font size for the close text +if (typeof ol_closesize == 'undefined') { var ol_closesize = "1";} + +// Width of the popups in pixels +// 100-300 pixels is typical +if (typeof ol_width == 'undefined') { var ol_width = "225";} + +// How thick the ol_border should be in pixels +// 1-3 pixels is typical +if (typeof ol_border == 'undefined') { var ol_border = "2";} + +// How many pixels to the right/left of the cursor to show the popup +// Values between 3 and 12 are best +if (typeof ol_offsetx == 'undefined') { var ol_offsetx = 10;} + +// How many pixels below the cursor to show the popup +// Values between 3 and 12 are best +if (typeof ol_offsety == 'undefined') { var ol_offsety = 10;} + +// Default text for popups +// Should you forget to pass something to overLIB this will be displayed. +if (typeof ol_text == 'undefined (but the link is good !)') { var ol_text = "Default Text"; } + +// Default caption +// You should leave this blank or you will have problems making non caps popups. +if (typeof ol_cap == 'undefined') { var ol_cap = ""; } + +// Decides if sticky popups are default. +// 0 for non, 1 for stickies. +if (typeof ol_sticky == 'undefined') { var ol_sticky = 0; } + +// Default background image. Better left empty unless you always want one. +if (typeof ol_background == 'undefined') { var ol_background = ""; } + +// Text for the closing sticky popups. +// Normal is "Close". +if (typeof ol_close == 'undefined') { var ol_close = "Close"; } + +// Default vertical alignment for popups. +// It's best to leave RIGHT here. Other options are LEFT and CENTER. +if (typeof ol_hpos == 'undefined') { var ol_hpos = RIGHT; } +// TO CHANGE THIS WITHIN A PAGE: see syntax on +// E/Gazetteer/Places/Asia/Russia/_Topics/history/_Texts/SMANPS/Appendices/C*.html +// (search for "ol_hpos") + +// Default status bar text when a popup is invoked. +if (typeof ol_status == 'undefined') { var ol_status = ""; } + +// If the status bar automatically should load either text or caption. +// 0=nothing, 1=text, 2=caption +if (typeof ol_autostatus == 'undefined') { var ol_autostatus = 0; } + +// Default height for popup. Often best left alone. +if (typeof ol_height == 'undefined') { var ol_height = -1; } + +// Horizontal grid spacing that popups will snap to. +// 0 makes no grid, anything else will cause a snap to that grid spacing. +if (typeof ol_snapx == 'undefined') { var ol_snapx = 0; } + +// Vertical grid spacing that popups will snap to. +// 0 makes no grid, anything else will cause a snap to that grid spacing. +if (typeof ol_snapy == 'undefined') { var ol_snapy = 0; } + +// Sets the popups horizontal position to a fixed column. +// Anything above -1 will cause fixed position. +if (typeof ol_fixx == 'undefined') { var ol_fixx = -1; } + +// Sets the popups vertical position to a fixed row. +// Anything above -1 will cause fixed position. +if (typeof ol_fixy == 'undefined') { var ol_fixy = -1; } + +// Background image for the popups inside. +if (typeof ol_fgbackground == 'undefined') { var ol_fgbackground = ""; } + +// Background image for the popups frame. +if (typeof ol_bgbackground == 'undefined') { var ol_bgbackground = ""; } + +// How much horizontal left padding text should get by default when BACKGROUND is used. +if (typeof ol_padxl == 'undefined') { var ol_padxl = 1; } + +// How much horizontal right padding text should get by default when BACKGROUND is used. +if (typeof ol_padxr == 'undefined') { var ol_padxr = 1; } + +// How much vertical top padding text should get by default when BACKGROUND is used. +if (typeof ol_padyt == 'undefined') { var ol_padyt = 1; } + +// How much vertical bottom padding text should get by default when BACKGROUND is used. +if (typeof ol_padyb == 'undefined') { var ol_padyb = 1; } + +// If the user by default must supply all html for complete popup control. +// Set to 1 to activate, 0 otherwise. +if (typeof ol_fullhtml == 'undefined') { var ol_fullhtml = 0; } + +// Default vertical position of the popup. Default should normally be BELOW. +// ABOVE only works when HEIGHT is defined. +if (typeof ol_vpos == 'undefined') { var ol_vpos = BELOW; } + +// Default height of popup to use when placing the popup above the cursor. +if (typeof ol_aboveheight == 'undefined') { var ol_aboveheight = 50; } + +// Default icon to place next to the popups caption. +if (typeof ol_caption == 'undefined') { var ol_capicon = ""; } + +// Default frame. We default to current frame if there is no frame defined. +if (typeof ol_frame == 'undefined') { var ol_frame = self; } + +// Default timeout. By default there is no timeout. +if (typeof ol_timeout == 'undefined') { var ol_timeout = 0; } + +// Default javascript function. By default there is none. +if (typeof ol_function == 'undefined') { var ol_function = Function(); } + +// Default timeout. By default there is no timeout. +if (typeof ol_delay == 'undefined') { var ol_delay = 0; } + +// If overLIB should decide the horizontal placement. +if (typeof ol_hauto == 'undefined') { var ol_hauto = 0; } + +// If overLIB should decide the vertical placement. +if (typeof ol_vauto == 'undefined') { var ol_vauto = 0; } + + +//////////////////////////////////// +// ARRAY CONFIGURATION +// You don't have to change anything here if you don't want to. The following +// arrays can be filled with text and html if you don't wish to pass it from +// your html page. +//////////////////////////////////// + +// THAYER'S BOILERPLATES: +var CClickHere = "

Feu clic aquí per
"; +var EClickHere = "

Click here for
"; +var FClickHere = "

Faire clic ici pour
"; +var IClickHere = "

Cliccare qui per
"; +var NClickHere = "

Klik hier voor
"; +var PClickHere = "

Clique aqui para
"; +var SClickHere = "

Haga clic aquí para
"; +var CZero = "

La pàgina s\'obre en
AQUESTA finestra
"; +var EZero = "

Page opens
in THIS window
"; +var FZero = "

S\'ouvre dans
CETTE fenêtre
"; +var IZero = "

Si apre in
QUESTO pannello
"; +var PZero = "

A página abre
NESTA janela
"; +var SZero = "

La página abre
en ESTA ventana
"; +var CThisWindow = "
La pàgina s\'obre
en AQUESTA finestra
"; +var EThisWindow = "
Page opens
in THIS window
"; +var FThisWindow = "
S\'ouvre dans
CETTE fenêtre
"; +var IThisWindow = "
Si apre in
QUESTO pannello
"; + +// THAYER'S ARRAYS: +// Array with texts. FOR SIMPLICITY, KEEP THIS AT LINE 280 (Number is then linenum minus 285) +// LANGUAGE ORDER: E:0 - F:10 - I:20 - L:30 - S:40 - P:90 (…0-4: EFILS) +// AFTER THE COMMA AT THE END OF EACH LINE: THERE MUST BE A SPACE! +// EXCEPT THE LAST LINE HAS NO COMMA, NO SPACE: FOR SIMPLICITY, KEEP IT AS A BLANK LINE. +var ol_texts = new Array( +EZero, +"

(Page opens in another window)", +"

Link is offsite:
page opens in
another window.
", +"

(This photo or a related one, opens in another window)", +"

(The photo will open in another window)", +"

(Elsewhere on this page)", +EClickHere+"the author\'s note at the bottom of this page.", +EClickHere+"my note at the bottom of this page.", +"

Click here
to go back
to the reference
in the text.", +"

If you don\'t know what this is about,
the explanation is only a click away.
(Opens in another window)", +FZero, +"

(La page s\'ouvre dans une autre fenêtre)", +"

Le lien est hors site :
la page s\'ouvre
dans une autre fenêtre
", +"

(Cette photo ou une photo apparentée, s\'ouvre dans une autre fenêtre)", +"

(Cette photo s\'ouvre dans une autre fenêtre)", +"

(Ailleurs sur cette page)", +FClickHere+"la note de l\'auteur au bas de la page.", +FClickHere+"ma note au bas de la page.", +FClickHere+"retourner au renvoi dans le texte.", +"

Si vous ne savez pas ce de quoi il s\'agit, il n\'y a qu\'à faire clic pour l\'explication.
(S'ouvre dans une autre fenêtre)", +"

(Die Seite öffnet sich in DIESEM Fenster)", +"

(Die Seite öffnet sich in einem anderen Fenster)", +"

(Auf externe Site: die Seite öffnet sich in einem anderen Fenster)", +"

(Dieses Foto oder ein Ähnliches Foto öffnet sich in einem anderen Fenster)", +"

(Die Foto öffnet sich in einem anderen Fenster)", +" ", +" ", +" ", +" ", +" ", +IZero, +"

(La pagina si apre in un altro pannello)", +"

Il link è fuori sito:
la pagina si apre
in un altro pannello
", +"

(Questa foto o una foto connessa, si apre in un altro pannello)", +"

(La foto si apre in un altro pannello)", +"

(Altrove su questa pagina)", +IClickHere+"la nota
dell\' autore a piè di pagina.", +IClickHere+"la mia nota a piè di pagina.", +IClickHere+"tornare al riferimento nel testo.", +"

Se questo non vi dice nulla, basta cliccare per la spiegazione.
(La pagina si apre in un altro pannello)", +"

(HAC in fenestra aperietur pagina)", +"

(Altera in fenestra aperietur pagina)", +"

(In alio situ: altera in fenestra aperietur pagina)", +"

(Altera in fenestra aperietur haec seu conexa photo)", +"

(Altera in fenestra aperietur photo)", +"

(Alibi in hac pagina)", +"

Cliccare hic
ad auctoris sive editoris
adnotationem legendam
in ima pagina", +"

Cliccare hic
ad adnotationem meam
in ima pagina legendam", +"

Cliccare hic
ad revertendum in textum", +" ", +SZero, +"

(La página abre en una otra ventana)", +"

(Fuera del sitio: la página abre en una otra ventana)", +"

(Esta foto o una foto relacionada, abre en una otra ventana)", +"

(La foto abre en una otra ventana)", +"

(Otra parte en esta página)", +SClickHere+"la nota del autor en bajo de la página.", +SClickHere+"mi nota en bajo de la página.", +SClickHere+"volver a la referencia en el texto.", +" ", +EClickHere+"the article in Smith\'s Dictionary."+EThisWindow, +FClickHere+"l\' article de Smith\'s Dictionary."+FThisWindow, +IClickHere+"
l\' articolo
di Smith\'s Dictionary."+IThisWindow, +" ", +SClickHere+"el artículo de Smith\'s Dictionary.
(Abre en ESTA ventana)", +EClickHere+"the article in Smith\'s Dictionary.
(Page opens in another window)", +FClickHere+"l\' article de Smith\'s Dictionary.
(S'ouvre dans une autre fenêtre)", +IClickHere+"l\' articolo di Smith\'s Dictionary.
(Si apre in un altro pannello)", +" ", +SClickHere+"el artículo de Smith\'s Dictionary.
(Abre en una otra ventana)", +"

If you don\'t know what this is about,
the explanation is only a click away."+EThisWindow, +"

Si vous ne savez pas ce de quoi il s\'agit,
il n\'y a qu\'à faire clic pour l\'explication."+FThisWindow, +"

Se non sapete che cosa è,
basta cliccare qui per la spiegazione."+IThisWindow, +" ", +" ", +"

If you don\'t know what this is about,
the explanation is only a click away.
(Offsite: opens in another window)", +"

Si vous ne savez pas ce de quoi il s\'agit,
il n\'y a qu\'à faire clic pour l\'explication.
(Hors site: s\'ouvre dans une autre fenêtre)", +"

Se non sapete che cosa è,
basta cliccare qui per la spiegazione.
(Fuori sito: si apre in un altro pannello)", +" ", +" ", +EClickHere+"the relevant section
of an article
in Smith\'s Dictionary."+EThisWindow, +FClickHere+"le passage ou le chapitre de l\' article
de Smith\'s Dictionary."+FThisWindow, +IClickHere+"la parte corrispettiva di un articolo
di Smith\'s Dictionary."+IThisWindow, +" ", +SClickHere+"la parte relativa del artículo de Smith\'s Dictionary.
(Abre en ESTA ventana)", +EClickHere+"the relevant section
of an article
in Smith\'s Dictionary.
(Page opens
in another window)
", +FClickHere+"le passage ou le chapitre de l\' article
de Smith\'s Dictionary.
(S'ouvre dans une autre fenêtre)", +IClickHere+"la parte corrispettiva di un articolo
di Smith\'s Dictionary.
(Si apre in un altro pannello)", +" ", +SClickHere+"la parte relativa del artículo de Smith\'s Dictionary.
(Abre en una otra ventana)", +PZero, +"

(A página abre em uma outra janela)", +"

(Offsite: a página abre em uma outra janela)", +"

(Esta foto ou uma foto relacionada, abre em uma outra janela)", +"

(A foto abre em uma outra janela)", +"

(Em outro lugar desta página)", +PClickHere+"a anotação do autor no fim da página.", +PClickHere+"a minha anotação no fim da página.", +PClickHere+"voltar para a referência no texto.", +" ", +EClickHere+"the main index page of Smith\'s Dictionary.
(Opens in a separate index window)", +FClickHere+"la page principale de Smith\'s Dictionary.
(S\'ouvre dans une autre fenêtre-index)", +IClickHere+"la pagina principale di Smith\'s Dictionary.
(Si apre in un altro pannello-indice)", +" ", +SClickHere+"la página principal de Smith\'s Dictionary.
(Abre en una otra ventana-indice)", +" ", +"

Click here
for the text discussion.
(Elsewhere on this page)", +EClickHere+"the main index page of Smith\'s Dictionary."+EThisWindow, +EClickHere+"the main index page of Daremberg & Saglio\'s Dictionary.
(Opens in a separate index window)", +EClickHere+"the main index page of Daremberg & Saglio\'s Dictionary."+EThisWindow, +EClickHere+"the article in Platner\'s Topographical Dictionary of Ancient Rome.
(Page opens in THIS window)", +FClickHere+"l\'article dans le Topographical Dictionary of Ancient Rome de Platner.
(La page s\'ouvre dans CETTE fenêtre)", +IClickHere+"l\' articolo nel Topographical Dictionary of Ancient Rome del Platner."+IThisWindow, +"

Cliccare hic ad articulum legendum
in Platneri Topographical Dictionary of Ancient Rome.
(Anglice, HANC in fenestram aperietur pagina)", +SClickHere+"el artículo en el Topographical Dictionary of Ancient Rome de Platner.
(Abre en ESTA ventana)", +EClickHere+"the article in Platner\'s Topographical Dictionary of Ancient Rome.
(Page opens in another window)", +FClickHere+"l\'article dans le Topographical Dictionary of Ancient Rome de Platner.
(La page s\'ouvre dans une autre fenêtre)", +IClickHere+"l\' articolo nel Topographical Dictionary of Ancient Rome del Platner.
(Si apre in un altro pannello)", +"

Cliccare hic ad articulum legendum
in Platneri Topographical Dictionary of Ancient Rome.
(Anglice, altera in fenestra aperietur pagina)", +SClickHere+"el artículo en el Topographical Dictionary of Ancient Rome de Platner.
(Abre en una otra ventana)", +EClickHere+"the article in Platner\'s Topographical Dictionary of Ancient Rome, with one or more photos.
(Page opens in THIS window)", +FClickHere+"l\'article dans le Topographical Dictionary of Ancient Rome de Platner, avec une ou plusieurs photos.
(La page s\'ouvre dans CETTE fenêtre)", +IClickHere+"l\' articolo nel Topographical Dictionary of Ancient Rome del Platner, con una o parecchie foto."+IThisWindow, +"

Cliccare hic ad articulum legendum
in Platneri Topographical Dictionary of Ancient Rome,
una pluribusve cum photographiis.
(Anglice, HANC in fenestram aperietur pagina)", +" ", +EClickHere+"the article in Platner\'s Topographical Dictionary of Ancient Rome, with one or more photos.
(Page opens in another window)", +FClickHere+"l\'article dans le Topographical Dictionary of Ancient Rome de Platner, avec une ou plusieurs photos.
(La page s\'ouvre dans une autre fenêtre)", +IClickHere+"l\' articolo nel Topographical Dictionary of Ancient Rome del Platner, con una o parecchie foto.
(Si apre in un altro pannello)", +"

Cliccare hic ad articulum legendum
in Platneri Topographical Dictionary of Ancient Rome,
una plurisve photographiis.
(Anglice, altera in fenestra aperietur pagina)", +" ", +EClickHere+"the relevant section of an article in Platner\'s Topographical Dictionary of Ancient Rome.
(Page opens in THIS window)", +FClickHere+"la partie relative à ce sujet dans l\'article du Topographical Dictionary of Ancient Rome de Platner.
(La page s\'ouvre dans CETTE fenêtre)", +IClickHere+"la parte pertinente di un articolo nel Topographical Dictionary of Ancient Rome del Platner."+IThisWindow, +" ", +SClickHere+"la parte pertinente de un artículo en el Topographical Dictionary of Ancient Rome de Platner.
(Abre en ESTA ventana)", +EClickHere+"the relevant section of an article in Platner\'s Topographical Dictionary of Ancient Rome.
(Page opens in another window)", +FClickHere+"la partie relative à ce sujet dans l\'article du Topographical Dictionary of Ancient Rome de Platner.
(La page s\'ouvre dans une autre fenêtre)", +IClickHere+"la parte pertinente di un articolo nel Topographical Dictionary of Ancient Rome del Platner.
(Si apre in un altro pannello)", +" ", +SClickHere+"la parte pertinente de un artículo en el Topographical Dictionary of Ancient Rome de Platner.
(Abre en una otra ventana)", +EClickHere+"the complete work(s), onsite.
(Page opens in THIS window)", +" ", +" ", +" ", +" ", +EClickHere+"the complete work(s), onsite.
(Page opens in another window)", +" ", +" ", +" ", +" ", +EClickHere+"Armellini\'s
Chiese di Roma,
to this passage.
(In Italian;
page opens in THIS window)
", +FClickHere+"Chiese di Roma de Mariano Armellini, à ce passage.
(en italien; la page s\'ouvre dans CETTE fenêtre)", +IClickHere+"le Chiese di Roma dell\' Armellini, a questo passo."+IThisWindow, +" ", +" ", +EClickHere+"Armellini\'s
Chiese di Roma,
to this passage.
(In Italian;
page opens
in another window)
", +FClickHere+"Chiese di Roma de Mariano Armellini, à ce passage.
(en italien; la page s\'ouvre dans une autre fenêtre)", +IClickHere+"le Chiese di Roma dell\' Armellini, a questo passo.
(Si apre in un altro pannello)", +" ", +" ", +EClickHere+"Christian Hülsen\'s
Chiese di Roma nel Medio Evo,
to this passage or section.
(In Italian;
page opens in THIS window)", +FClickHere+"Chiese di Roma nel Medio Evo de Christian Hülsen, à ce passage.
(en italien; la page s\'ouvre dans CETTE fenêtre)", +IClickHere+"le Chiese di Roma nel Medio Evo di Christian Hülsen, a questo passo."+IThisWindow, +" ", +" ", +EClickHere+"Christian Hülsen\'s
Chiese di Roma nel Medio Evo,
to this passage or section.
(In Italian;
page opens in another window)
", +FClickHere+"Chiese di Roma nel Medio Evo de Christian Hülsen, à ce passage.
(en italien; la page s\'ouvre dans une autre fenêtre)", +IClickHere+"le Chiese di Roma nel Medio Evo di Christian Hülsen, a questo passo.
(Si apre in un altro pannello)", +" ", +" ", +EClickHere+"my homepage for this church,
with the texts of Armellini, Hülsen, and Titi,
plus photos and offsite links.
(Page opens in THIS window)", +FClickHere+"mon site sur cette église,
avec les textes d\'Armellini, de Hülsen, et de Titi,
ainsi que des photos et des liens hors site."+FThisWindow, +IClickHere+"il mio sito sulla chiesa,
con i testi dell\' Armellini, del Hülsen, e/o del Titi;
e con fotografie e links fuori sito."+IThisWindow, +" ", +SClickHere+"mi sitio sobre esta iglesia, con los textos de Armellini, de Hülsen, y de Titi; y con fotos y enlaces externos.
(Abre en ESTA ventana)", +EClickHere+"my homepage for this church, with the texts of Armellini, Hülsen, and Titi, plus photos and offsite links.
(Page opens in another window)", +FClickHere+"mon site sur cette église, avec les textes d\'Armellini, de Hülsen, et de Titi, ainsi que des photos et des liens hors site.
(S\'ouvre dans une autre fenêtre)", +IClickHere+"il mio sito sulla chiesa, con i testi dell\' Armellini, del Hülsen, e/o del Titi; e con fotografie e links fuori sito.
(Si apre in un altro pannello)", +" ", +SClickHere+"mi sitio sobre esta iglesia, con los textos de Armellini, de Hülsen, y de Titi; y con fotos y enlaces externos.
(Abre en una otra ventana)", +EClickHere+"the article in Daremberg & Saglio\'s Dictionary.
(Page opens in THIS window)", +FClickHere+"l\' article du Dictionnaire de Daremberg & Saglio."+FThisWindow, +IClickHere+"l\' articolo del Dizionario di Daremberg e Saglio."+IThisWindow, +" ", +SClickHere+"el artículo del Diccionario de Daremberg y Saglio.
(Abre en ESTA ventana)", +EClickHere+"the article in Daremberg & Saglio\'s Dictionary.
(Page opens in another window)", +FClickHere+"l\' article du Dictionnaire de Daremberg & Saglio.
(S'ouvre dans une autre fenêtre)", +IClickHere+"l\' articolo del Dizionario di Daremberg e Saglio.
(Si apre in un altro pannello)", +" ", +SClickHere+"el artículo del Diccionario de Daremberg y Saglio.
(Abre en una otra ventana)", +EClickHere+"my page."+EThisWindow, +FClickHere+"ma page."+FThisWindow, +IClickHere+"la mia pagina."+IThisWindow, +" ", +SClickHere+"mi página.
(Abre en ESTA ventana)", +EClickHere+"my page.
(Opens in another window)", +FClickHere+"ma page.
(S'ouvre dans une autre fenêtre)", +IClickHere+"la mia pagina.
(Si apre in un altro pannello)", +" ", +SClickHere+"mi página.
(Abre en una otra ventana)", +EClickHere+"my pages.
(Orientation page opens in THIS window)", +FClickHere+"mes pages.
(La page d\'orientation s\'ouvre dans CETTE fenêtre)", +IClickHere+"le mie pagine.
(La pagina di orientazione si apre in QUESTO pannello)", +" ", +SClickHere+"mis páginas.
(La página de orientación abre en ESTA ventana)", +EClickHere+"my pages.
(Orientation page opens in another window)", +FClickHere+"mes pages.
(La page d\'orientation s\'ouvre dans une autre fenêtre)", +IClickHere+"le mie pagine.
(La pagina di orientazione si apre in un altro pannello)", +" ", +SClickHere+"mis páginas.
(La página de orientación abre en una otra ventana)", +EClickHere+"my page on this church, with photos."+EThisWindow, +FClickHere+"ma page sur cette église, avec photos."+FThisWindow, +IClickHere+"la mia pagina su questa chiesa, con delle foto."+IThisWindow, +" ", +SClickHere+"mi página sobre esta iglesia, con fotos.
(Abre en ESTA ventana)", +EClickHere+"my page on this church, with photos.
(Opens in another window)", +FClickHere+"ma page sur cette église, avec photos.
(S'ouvre dans une autre fenêtre)", +IClickHere+"la mia pagina su questa chiesa, con delle foto.
(Si apre in un altro pannello)", +" ", +SClickHere+"mi página sobre esta iglesia, con fotos.
(Abre en una otra ventana)", +EClickHere+"my pages on this church, with photos.
(Orientation page
opens in THIS window)
", +FClickHere+"mes pages sur cette église, avec photos.
(La page d\'orientation s\'ouvre dans CETTE fenêtre)", +IClickHere+"le mie pagine su questa chiesa, con delle foto.
(La pagina di orientazione si apre in QUESTO pannello)", +" ", +SClickHere+"mis páginas sobre esta iglesia, con fotos.
(La página de orientación abre en ESTA ventana)", +EClickHere+"my pages on this church, with photos.
(Orientation page
opens in another window)
", +FClickHere+"mes pages sur cette église, avec photos.
(La page d\'orientation s\'ouvre dans une autre fenêtre)", +IClickHere+"le mie pagine su questa chiesa, con delle foto.
(La pagina di orientazione si apre in un altro pannello)", +" ", +SClickHere+"mis páginas sobre esta iglesia, con fotos.
(La página de orientación abre en una otra ventana)", +EClickHere+"my site on this town,
with photos and links.
(Orientation page opens in THIS window)", +FClickHere+"mes pages sur cette ville,
avec photos et liens.
(La page d\'orientation s\'ouvre dans CETTE fenêtre)", +IClickHere+"le mie pagine su questa città,
con fotografie e un elenco di link.
(La pagina di orientazione si apre in QUESTO pannello)", +" ", +SClickHere+"mis páginas sobre esta ciudad,
con fotos y enlaces.
(La página de orientación abre en ESTA ventana)", +EClickHere+"my site on this town,
with photos and links.
(Orientation page opens in another window)", +FClickHere+"mes pages sur cette ville,
avec photos et liens.
(La page d\'orientation s\'ouvre dans une autre fenêtre)", +IClickHere+"le mie pagine su questa città,
con fotografie e un elenco di link.
(La pagina di orientazione si apre in un altro pannello)", +" ", +SClickHere+"mis páginas sobre esta ciudad,
con fotos y enlaces.
(La página de orientación abre en una otra ventana)", +EClickHere+"the passage
in an English translation
linked to the original Latin.
(Opens in another window)

", //"THIS IS WHAT REALLY BELONGS IN 520:
Click here for the passage
in the Latin text of Suetonius,
linked to an English translation.
(Opens in another window)", +FClickHere+"le passage
en traduction anglaise
lié au texte latin.
(S'ouvre dans une autre fenêtre)", +IClickHere+"il passo
in una traduzione inglese
collegato al testo latino.
(Si apre in un altro pannello)
", //"THIS IS WHAT REALLY BELONGS IN 522:
Cliccare qui per il passo
nel testo latino di Svetonio,
collegato a traduzioni in inglese e francese.
(Si apre in un altro pannello)", +"

Cliccare hic ad legendum
in anglica versione
ad Latinum textum conexum.
(Altera in fenestra aperietur pagina)", +SClickHere+"este pasaje
en una traducción inglesa
con enlace al texto latino.
(Abre en una otra ventana)", +EClickHere+"the passage
in an English translation
linked to the original Latin.
(Offsite, opens in another window)

", //"THIS IS WHAT REALLY BELONGS IN 525:
Click here for the passage
in the Latin text of Suetonius,
linked to an English translation.
(Opens in another window)", +FClickHere+"le passage
en traduction anglaise
lié au texte latin.
(Hors site, s\'ouvre dans une autre fenêtre)", +IClickHere+"il passo
in una traduzione inglese
collegato al testo latino.
(Fuori sito, si apre in un altro pannello)
", //"THIS IS WHAT REALLY BELONGS IN 507:
Cliccare qui per il passo
nel testo latino di Svetonio,
collegato a traduzioni in inglese e francese.
(Si apre in un altro pannello)", +"

Cliccare hic ad legendum
in anglica versione
ad Latinum textum conexum.
(Apud alios, altera in fenestra aperietur pagina)", +SClickHere+"este pasaje
en una traducción inglesa
con enlace al texto latino.
(Fuera del sitio, abre en una otra ventana)", +EClickHere+"the passage
in the original Latin
linked to an English translation.
(Opens in another window)

", //"THIS IS WHAT REALLY BELONGS IN 510:
Click here for the passage
in the Latin text of Suetonius,
linked to an English translation.
(Opens in another window)", +FClickHere+"le passage
dans le texte latin
lié à une traduction anglaise.
(S'ouvre dans une autre fenêtre)", +IClickHere+"il passo
nel testo latino
collegato ad una traduzione inglese.
(Si apre in un altro pannello)
", //"THIS IS WHAT REALLY BELONGS IN 512:
Cliccare qui per il passo
nel testo latino di Svetonio,
collegato a traduzioni in inglese e francese.
(Si apre in un altro pannello)", +"

Cliccare hic ad legendum
Latinum textum
ad anglicam versionem conexum.
(Altera in fenestra aperietur pagina)", +SClickHere+"este pasaje
en el texto latino
con enlace a una traducción inglesa.
(Abre en una otra ventana)", +EClickHere+"the passage
in the original Latin
linked to an English translation.
(Offsite, opens in another window)

", //"THIS IS WHAT REALLY BELONGS IN 515:
Click here for the passage
in the Latin text of Suetonius,
linked to an English translation.
(Opens in another window)", +FClickHere+"le passage
dans le texte latin
lié à une traduction anglaise.
(Hors site, s\'ouvre dans une autre fenêtre)", +IClickHere+"il passo
nel testo latino
collegato ad una traduzione inglese.
(Fuori sito, si apre in un altro pannello)
", //"THIS IS WHAT REALLY BELONGS IN 517:
Cliccare qui per il passo
nel testo latino di Svetonio,
collegato a traduzioni in inglese e francese.
(Si apre in un altro pannello)", +"

Cliccare hic ad legendum
Latinum textum
ad anglicam versionem conexum.
(Apud alios, altera in fenestra aperietur pagina)", +SClickHere+"este pasaje
en el texto latino
con enlace a una traducción inglesa.
(Fuera del sitio, abre en una otra ventana)", +EClickHere+"the passage
in Pliny the Elder\'s Natural History.
(Latin, opens in another window)", +FClickHere+"le passage
dans l\'Histoire Naturelle de Pline l\'ancien.
(En latin; s\'ouvre dans une autre fenêtre)", +IClickHere+"il passo
nella Storia Naturale di Plinio il Vecchio.
(In latino; si apre in un altro pannello)", +" ", +SClickHere+"el pasaje
en la Historia Natural de Plinio el Viejo.
(En latín; abre en una otra ventana)", +EClickHere+"the passage
in Ptolemy\'s Geography.
(English, opens in another window)", +FClickHere+"le passage
dans la Géographie de Ptolémé.
(En anglais; s\'ouvre dans une autre fenêtre)", +IClickHere+"il passo
nella Geografia di Tolomeo.
(In inglese; si apre in un altro pannello)", +"

Cliccare hic ad textum legendum
in Geographia Ptolemaei.
(Anglice, altera in fenestra aperietur pagina)", +" ", +EClickHere+"the passage
in Ammian
in an English translation
linked to the original Latin.
(Opens in another window)", +FClickHere+"le passage
dans Ammien
en traduction anglaise
liée au texte latin.(S'ouvre dans une autre fenêtre)", +"

Cliccare qui per il passo
in Ammiano
in una traduzione inglese
collegato al testo latino.
(Si apre in un altro pannello)", +" ", +" ", +EClickHere+"the passage
in Appian.
(English, opens in another window)", +FClickHere+"le passage
dans Appien.
(En anglais; s\'ouvre dans une autre fenêtre)", +IClickHere+"il passo
in Appiano.
(In inglese; si apre in un altro pannello)", +" ", +" ", +EClickHere+"the passage
in Cassius Dio\'s History.
(English, opens in another window)", +FClickHere+"le passage
dans l\'Histoire de Dion Cassius.
(En anglais; s\'ouvre dans une autre fenêtre)", +IClickHere+"il passo
nella Storia di Cassio Dione.
(In inglese; si apre in un altro pannello)", +" ", +SClickHere+"el pasaje
en Dion Cásio.
(en inglés, abre en una otra ventana)", +EClickHere+"the passage
in Plutarch.
(English, opens in another window)", +FClickHere+"le passage
dans Plutarque.
(En anglais; s\'ouvre dans une autre fenêtre)", +IClickHere+"il passo
in Plutarco.
(In inglese; si apre in un altro pannello)", +" ", +SClickHere+"el pasaje
en Plutarco.
(en inglés, abre en una otra ventana)", +EClickHere+"the passage
in Polybius\' Histories.
(English, opens in another window)", +FClickHere+"le passage
dans les Histoires de Polybe.
(En anglais; s\'ouvre dans une autre fenêtre)", +IClickHere+"il passo
nelle Storie di Polibio.
(In inglese; si apre in un altro pannello)", +"

Cliccare hic ad textum legendum
in Historiis Polybii.
(Anglice, altera in fenestra aperietur pagina)", +" ", +EClickHere+"the passage
in Strabo\'s Geography.
(English, opens in another window)", +FClickHere+"le passage
dans la Géographie de Strabon.
(En anglais; s\'ouvre dans une autre fenêtre)", +IClickHere+"il passo
nella Geografia di Strabone.
(In inglese; si apre in un altro pannello)", +"

Cliccare hic ad textum legendum
in Geographia Strabonis.
(Anglice, altera in fenestra aperietur pagina)", +" ", +IClickHere+"la scheda di questa chiesa.
(Rimane in questo pannello)", +IClickHere+"la scheda di questa chiesa.
(Un\' altra pagina si apre in QUESTO pannello)", +IClickHere+"la scheda di quest\' artista nell\' indice."+IThisWindow, +IClickHere+"la scheda di quest\' artista nell\' indice.
(Si apre in un altro pannello)", +IClickHere+"il catalogo,
al passo preciso.
(Si aprirà nel pannello dei cataloghi)", +IClickHere+"questo quadro della pianta.
(Si aprirà nel pannello delle piante)", +IClickHere+"QUESTO QUADRO ADIACENTE.
(Rimane in questo pannello)", +IClickHere+"questa chiesa.
(Si apre nel pannello principale del testo)", +EClickHere+"this artist\'s entry in the index.
(Open in THIS window)", +EClickHere+"this artist\'s entry in the index.
(Open in another window)", +EClickHere+"my site or page."+EThisWindow, +FClickHere+"mon site ou ma page."+FThisWindow, +IClickHere+"il mio sito o la mia pagina."+IThisWindow, +" ", +SClickHere+"mi sitio o página.
(Abre en ESTA ventana)", +EClickHere+"my site or page.
(Opens in another window)", +FClickHere+"mon site ou ma page.
(S'ouvre dans une autre fenêtre)", +IClickHere+"il mio sito o la mia pagina.
(Si apre in un altro pannello)", +" ", +SClickHere+"mi sitio o página.
(Abre en una otra ventana)", +EClickHere+"my subsite,
with several pages, photos, etc."+EThisWindow, +FClickHere+"mon sous-site,
qui comporte plusieurs pages, photos, etc."+FThisWindow, +IClickHere+"il mio sotto-sito,
con parecchie pagine e immagini, ecc."+IThisWindow, +" ", +SClickHere+"mi sub-sitio,
con varias páginas, imágenes, etc.
(Abre en ESTA ventana)", +EClickHere+"my subsite,
with several pages, photos, etc.
(Opens in another window)", +FClickHere+"mon sous-site,
qui comporte plusieurs pages, photos, etc.
(S'ouvre dans une autre fenêtre)", +IClickHere+"il mio sotto-sito,
con parecchie pagine e immagini, ecc.
(Si apre in un altro pannello)", +" ", +SClickHere+"mi sub-sitio,
con varias páginas, imágenes, etc.
(Abre en una otra ventana)", +EClickHere+"my subsite,
with many pages, photos, links."+EThisWindow, +FClickHere+"mon sous-site,
qui comporte de nombreux pages, photos, et liens."+FThisWindow, +IClickHere+"il mio sotto-sito,
con molti pagine, immagini, link."+IThisWindow, +" ", +SClickHere+"mi sub-sitio,
con muchas páginas, imágenes, y enlaces.
(Abre en ESTA ventana)", +EClickHere+"my subsite,
with many pages, photos, links.
(Opens in another window)", +FClickHere+"mon sous-site,
qui comporte de nombreuses pages et photos, et de nombreux liens.
(S'ouvre dans une autre fenêtre)", +IClickHere+"il mio sotto-sito,
con molte pagine e immagini, e molti link.
(Si apre in un altro pannello)", +" ", +SClickHere+"mi sub-sitio,
con muchas páginas y imagenes, y muchos enlaces.
(Abre en una otra ventana)", +"

The entire book is onsite.
(Orientation page opens in THIS window)", +"

Le livre entier se trouve sur le site.
(La page d\'orientation s\'ouvre dans CETTE fenêtre)", +"

Il libro intero si trova sul sito.
(La pagina di orientazione si apre in QUESTO pannello)", +" ", +"

El libro entero es reproducido en este sitio.
(La página de orientación abre en ESTA ventana)", +"

The entire book is onsite.
(Orientation page opens in another window)", +"

Le livre entier se trouve sur le site.
(La page d\'orientation s\'ouvre dans une autre fenêtre)", +"

Il libro intero si trova sul sito.
(La pagina di orientazione si apre in un altro pannello)", +" ", +"

El libro entero es reproducido en este sitio.
(La página de orientación abre en una otra ventana)", +EClickHere+"their website or page.
(Offsite, so it opens in another window)", +FClickHere+"leur site ou page.
(Hors site, s\'ouvrira donc dans une autre fenêtre)", +IClickHere+"loro sito o pagina.
(Fuori sito, si apre quindi in un altro pannello)", +" ", +SClickHere+"su sitio o página.
(Sitio externo: abre en una otra ventana)", +" ", +" ", +" ", +" ", +" ", +EClickHere+"the original Latin.
(Opens in another window)", +FClickHere+"le latin original.
(S'ouvre dans une autre fenêtre)", +IClickHere+"il latino originale.
(Si apre in un altro pannello)", +" ", +SClickHere+"el latino originale.
(Abre en una otra ventana)", +" ", +" ", +" ", +" ", +" ", +EClickHere+"the passage
in the Latin text.
(Opens in another window)", +FClickHere+"le passage du texte latin.
(S'ouvre dans une autre fenêtre)", +IClickHere+"il passo dell\' autore latino.
(Si apre in un altro pannello)", +" ", +SClickHere+"el pasaje del autor latino.
(Abre en una otra ventana)", +EClickHere+"the passage
in a Latin translation.
(Opens in another window)", +FClickHere+"le passage dans une traduction latine.
(S'ouvre dans une autre fenêtre)", +IClickHere+"il passo del testo tradotto in latino.
(Si apre in un altro pannello)", +" ", +SClickHere+"el pasaje del autor latino.
(Abre en una otra ventana)", +EClickHere+"the passage
in the Latin text.
(Offsite: opens in another window)", +FClickHere+"le passage du texte latin.
(Hors site: s\'ouvre dans une autre fenêtre)", +IClickHere+"il passo del testo latino.
(Fuori sito: si apre in un altro pannello)", +" ", +SClickHere+"el pasaje del texto latino.
(Fuera del sitio: abre en una otra ventana)", +EClickHere+"the passage
in the Latin text,
linked to a translation
(Offsite: opens in another window)", +FClickHere+"le passage du texte latin.
liée à une traduction(Hors site: s\'ouvre dans une autre fenêtre)", +IClickHere+"il passo del testo latino.
collegato ad una traduzione
(Fuori sito: si apre in un altro pannello)", +" ", +SClickHere+"el pasaje del texto latino.
con enlace a una traducción(Fuera del sitio: abre en una otra ventana)", +EClickHere+"the passage
in the Latin text,
linked to one or more translations.
(Opens in another window)", +FClickHere+"le passage du texte latin,
lié à une ou plusieurs traductions.
(S'ouvre dans une autre fenêtre)", +IClickHere+"il passo dell\' autore latino,
collegato ad una o più traduzioni.
(Si apre in un altro pannello)", +" ", +SClickHere+"el pasaje del autor latino,
con enlace a una o mas traducciones.
(Abre en una otra ventana)", +EClickHere+"the passage in the Latin text,
linked to one or more translations.
(Offsite: opens in another window)", +FClickHere+"le passage du texte latin,
lié à une ou plusieurs traductions.
(Hors site: s\'ouvre dans une autre fenêtre)", +IClickHere+"il passo dell\' autore latino,
collegato ad una o più traduzioni.
(Fuori sito: si apre in un altro pannello)", +" ", +SClickHere+"el pasaje del autor latino,
con enlace a una o mas traducciones.
(Fuera del sitio: abre en una otra ventana)", +EClickHere+"the text of this passage
in the original language.
(Opens in another window)", +FClickHere+"le texte de ce passage
dans la langue originale.
(S'ouvre dans une autre fenêtre)", +IClickHere+"il testo di questo passo
nella lingua originaria.
(Si apre in un altro pannello)", +"

Cliccare hic ad legendum textum
in lingua originali.
(Altera in fenestra aperietur pagina)", +SClickHere+"el texto de este pasaje
en la lingua original.
(Abre en una otra ventana)", +EClickHere+"the text of this passage
in the original language.
(Offsite: opens in another window)", +FClickHere+"le texte de ce passage
dans la langue originale.
(Hors site: s\'ouvre dans une autre fenêtre)", +IClickHere+"il testo di questo passo
nella lingua originaria.
(Fuori sito: si apre in un altro pannello)", +"

Cliccare hic ad legendum textum
in lingua originali.
(In situ externo: altera in fenestra aperietur pagina)", +SClickHere+"el texto de este pasaje
en la lingua original.
(Fuera del sitio: abre en una otra ventana)", +EClickHere+"an English translation
of this passage.
(Opens in another window)", +FClickHere+"une traduction en français de ce passage.
(S'ouvre dans une autre fenêtre)", +IClickHere+"una traduzione italiana di questo passo.
(Si apre in un altro pannello)", +" ", +SClickHere+"una traducción en castellano de este parágrafo.
(Abre en una otra ventana)", +EClickHere+"an English translation.
(Offsite: opens in another window)", +FClickHere+"une traduction en français.
(Hors site: s\'ouvre dans une autre fenêtre)", +IClickHere+"una traduzione italiana.
(Fuori sito: si apre in un altro pannello)", +" ", +SClickHere+"una traducción en castellano.
(Fuera del sitio: abre en una otra ventana)", +CZero, +"

(La pàgina s\'obre en una altra finestra)", +"

(Fora d\'aquest lloc: la pàgina s\'obre en una altra finestra)", +"

(Aquesta foto o una foto relacionada, s\'obre en una altra finestra)", +"

(La foto s\'obre en una altra finestra)", +"

(En una altra part d\'aquesta pàgina)", +CClickHere+"la nota de l'autor a peu de la pàgina.", +CClickHere+"la meva nota a peu de la pàgina.", +CClickHere+"torna a la referència en el text.", +" ", +"

(Offsite page
opens in another window)

Warning: PDF file.", +" ", +"

(La pagina, fuori sito,
si apre in un altro pannello)

Attenzione: documento PDF.", +" ", +" ", +"

(Page opens in another window)
JSTOR (limited access)", +" ", +" ", +" ", +" ", +"

(Page opens in another window)
Warning: The page contains coding errors and may not be visible in all browsers.", +" ", +"

(Si apre in un altro pannello)
Avvertimento: La pagina contiene errori di codaggio e può darsi che non sia visibile in tutti i navigatori.", +" ", +" ", +"

(Page opens in another window)
Warning: loud soundfile; you may want to turn down your volume level before going there.", +" ", +" ", +" ", +" ", +EClickHere+"the solution!
(Opens in another window)", +FClickHere+"la solution!
(S'ouvre dans une autre fenêtre)", +IClickHere+"la soluzione!
(Si apre in un altro pannello)", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +EClickHere+"the passage
in Diodorus\' Library of History.
(English, opens in another window)", +FClickHere+"le passage
dans l\'Histoire de Diodore.
(En anglais; s\'ouvre dans une autre fenêtre)", +IClickHere+"il passo
nella Storia di Diodoro.
(In inglese; si apre in un altro pannello)", +"

Cliccare hic ad textum legendum
in Historia Diodori.
(Anglice, altera in fenestra aperietur pagina)", +" ", +EClickHere+"the passage of Herodotus
(English, linked to the Greek original: opens in another window)", +FClickHere+"le passage d\'Hérodote
(En anglais, lié à l'original grec : s\'ouvre dans une autre fenêtre)", +IClickHere+"il passo di Erodoto
(In inglese, collegato all' originale greco; si apre in un altro pannello)", +" ", +" ", +EClickHere+"the passage of Pausanias
(Offsite: opens in another window)", +FClickHere+"le passage de Pausanias
(Hors site: s\'ouvre dans une autre fenêtre)", +IClickHere+"il passo di Pausania
(Fuori sito: si apre in un altro pannello)", +" ", +" ", +EClickHere+"the passage of Thucydides
(Offsite: opens in another window)", +FClickHere+"le passage de Thucydide
(Hors site: s\'ouvre dans une autre fenêtre)", +IClickHere+"il passo di Tucidide
(Fuori sito: si apre in un altro pannello)", +" ", +" ", +EClickHere+"the passage
in the Latin text of Frontinus,
linked to an English translation.
(Opens in another window)", +FClickHere+"le passage
dans le texte latin de Frontin,
lié à une traduction anglaise.
(S'ouvre dans une autre fenêtre)", +IClickHere+"il passo
nel testo latino di Frontino,
collegato ad una traduzione in inglese.
(Si apre in un altro pannello)", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +EClickHere+"the passage
in an English translation of Frontinus,
linked to the Latin text.
(Opens in another window)", +FClickHere+"le passage
dans une traduction anglaise de Frontin,
lié au texte latin.
(S'ouvre dans une autre fenêtre)", +" ", +" ", +" ", +EClickHere+"the passage
in Dionysius in English translation
(Opens in another window)", +" ", +IClickHere+"il passo
di Dionisio in traduzione inglese
(Si apre in un altro pannello)", +" ", +" ", +"

If you don\'t know what this is about,
the explanation is only a click away."+EThisWindow, +"

Si vous ne savez pas ce de quoi il s\'agit,
il n\'y a qu\'à faire clic pour l\'explication."+FThisWindow, +"

Se questo non vi dice nulla,
basta cliccare per la spiegazione.
(La pagina si apre in QUESTO pannello)", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +EClickHere+"the Latin original
of this passage.
(Opens in another window)", +FClickHere+"l\'original latin
de ce passage.
(S'ouvre dans une autre fenêtre)", +IClickHere+"l\' originale latino
di questo passo.
(Si apre in un altro pannello)", +" ", +" ", +EClickHere+"the Greek original
of this passage.
(Opens in another window)", +FClickHere+"l\'original grec
de ce passage.
(S'ouvre dans une autre fenêtre)", +IClickHere+"l\' originale greco
di questo passo.
(Si apre in un altro pannello)", +" ", +" ", +"

This site comprises roughly 15,000 pages of text and photos, mostly about American history, ancient Rome, classical Antiquity, and central Italy.
CLICK ON THE LINK FOR THE HOMEPAGE.
(Opens in THIS window.)", +"

Ce site comporte environ 15.000 pages de texte et de photos, surtout sur Rome antique et médiévale et l\'Italie centrale.
FAIRE CLIC SUR LE LIEN POUR LA PAGE D\'ACCUEIL.
(S\'ouvre dans CETTE fenêtre.)", +"

Questo sito contiene circa 15.000 pagine di testo e di foto, innanzitutto sulla Roma antica e medioevale e l\'Italia centrale.
CLICCARE SUL LINK PER LA PAGINA HOME.
(Si apre in QUESTO pannello.)", +"

Hic situs milia paginarum
textus photographiarumque
continet, plerumque
de historia Americana,
Roma antiqua et medievali,
antiquitate classica, et Italia centrali.
CLICCARE SUPER VINCULAM
AD PAGINAM PRINCIPALEM
VIDENDAM.

(HAC in fenestra
aperietur pagina.)
", +"

Deze site omvat ongeveer 15.000 pagina's tekst en foto's, meestal over de Amerikaanse geschiedenis, het oude Rome, de klassieke oudheid, en Midden-Italië.
KLIK OP DE LINK VOOR DE HOMEPAGE.
(Opent in DIT venster.)", +"

Este site contém cerca de 15.000 páginas de texto e fotos, especialmente sobre a história das Américas, a Roma antiga e medieval, e o centro da Itália.
CLIQUE NO LINK PARA A PÁGINA DE ACOLHIMENTO.
(A página abre NESTA janela.)", +"

Este sitio contiene aproximadamente 15.000 páginas de texto e fotos, sobre todo sobre la história de las Américas, Roma antigua y medieval, y el centro de Italia.
CLIC EN EL ENLACE PARA LA PÁGINA PRINCIPAL.
(La página abre en ESTA ventana.)", +" ", +" ", +" ", +"

This site comprises roughly 15,000 pages of text and photos, mostly about American history, ancient Rome, classical Antiquity, and central Italy.
CLICK HERE FOR THE HOMEPAGE.
(Opens in another window.)", +"

Ce site comporte environ 15.000 pages de texte et de photos, surtout sur Rome antique et médiévale et l\'Italie centrale.
FAIRE CLIC ICI POUR LA PAGE D\'ACCUEIL.
(S\'ouvre dans une autre fenêtre.)", +"

Questo sito contiene circa 15.000 pagine di testo e di foto, innanzitutto sulla Roma antica e medioevale e l\'Italia centrale.
CLICCARE QUI PER LA PAGINA HOME.
(Si apre in un altro pannello.)", +"

Hic situs milia paginarum
textus photographiarumque
continet, plerumque
de historia Americana,
Roma antiqua et medievali,
antiquitate classica, et Italia centrali.
CLICCARE HIC
AD PAGINAM PRINCIPALEM
VIDENDAM.

(In altera fenestra
aperietur pagina.)", +"

Deze site omvat ongeveer 15.000 pagina's tekst en foto's, meestal over de Amerikaanse geschiedenis, het oude Rome, de klassieke oudheid, en Midden-Italië.
KLIK OP DE LINK VOOR DE HOMEPAGE.
(Opent in DIT venster.)", +"

Este site contém cerca de 15.000 páginas de texto e fotos, especialmente sobre a Roma antiga e medieval, a história das Américas, e o centro da Itália.
CLIQUE NO LINK PARA A PÁGINA DE ACOLHIMENTO.
(A página abre em outra janela.)", +"

Este sitio contiene aproximadamente 15.000 páginas de texto e fotos, sobre todo sobre la história de las Américas, Roma antigua y medieval, y el centro de Italia.
HAGA CLIC AQUÍ PARA LA PÁGINA PRINCIPAL.
(La página abre en una otra ventana.)", +" ", +" ", +" ", +"

Click here to send me an e-mail; you\'ll first get a FAQ covering some of the commoner questions.
(Opens in another window)", +FClickHere+"m\'envoyer une e-mail; vous verrez d\'abord un FAQ traitant de quelques questions couramment posées.
(S'ouvre dans une autre fenêtre)", +IClickHere+"mandarmi un\' e-mail; vedrete prima un FAQ trattando di alcune frequenti questioni.
(Si apre in un altro pannello)", +"

Click here to send me an e-mail; you\'ll first get a FAQ covering some of the commoner things people write me about.
(Altera in fenestra aperietur)", +" ", +" ", +" ", +" ", +" ", +" ", +EClickHere+"the appropriate section of this page.
LET THE PAGE LOAD COMPLETELY BEFORE CLICKING.", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +EClickHere+"the author\'s note at the bottom of this page.", +" ", +IClickHere+"la nota
dell\' autore a piè di pagina.", +" ", +" ", +EClickHere+"the editor\'s note at the bottom of this page.", +FClickHere+"la note de l\'éditeur au bas de cette page.", +IClickHere+"la nota
dell\' editore a piè di pagina.", +"

Cliccare hic ad editoris notam legendam in ima pagina.", +" ", +EClickHere+"a textual note at the bottom of this page.", +" ", +IClickHere+"una nota testuale
a piè di pagina.", +" ", +" ", +EClickHere+"the Italian original
of this passage.
(Opens in another window)", +" ", +" ", +" ", +" ", +"

Click here to go one level up:
Opens in THIS window.", +"

Faire clic ici
pour remonter d\'un niveau
(S\'ouvre dans CETTE fenêtre.)", +"

Fare clic qui per risalire un livello
(Si apre in QUESTO pannello.)", +"

Cliccare hic ad paginam superiorem ingrediendam
(HAC in fenestra aperietur.)", +SClickHere+"ir al nivel superior
(Abre en ESTA ventana)", +" ", +" ", +" ", +" ", +" ", +"

Click here to go one level up
(Opens in another window.)", +FClickHere+"remonter d\'un niveau
(S\'ouvre dans une autre fenêtre.)", +"

Fare clic qui per risalire un livello
(Si apre in un altro pannello.)", +"

Cliccare hic ad paginam superiorem ingrediendam
(Altera in fenestra aperietur.)", +PClickHere+"subir um nivel
(Abre em uma outra janela)", +SClickHere+"ir al nivel superior
(Abre en una otra ventana)", +" ", +" ", +" ", +" ", +EClickHere+"the passage
in an English translation of Sallust,
linked to the Latin text.
(Opens in another window)", +FClickHere+"le passage
dans une traduction anglaise de Salluste,
lié au texte latin.
(S'ouvre dans une autre fenêtre)", +IClickHere+"il passo
in una traduzione inglese di Sallustio,
collegato al testo latino.
(Si apre in un altro pannello)", +" ", +" ", +EClickHere+"the passage
in the Latin text of Sallust,
linked to an English translation.
(Opens in another window)", +FClickHere+"le passage
dans le texte latin de Salluste,
lié à une traduction anglaise.
(S'ouvre dans une autre fenêtre)", +IClickHere+"il passo
nel testo latino di Sallustio,
collegato ad una traduzione in inglese.
(Si apre in un altro pannello)", +" ", +" ", +EClickHere+"the passage
in an English translation of Tacitus.
(Opens in another window)", +FClickHere+"le passage
dans une traduction anglaise de Tacite.
(S'ouvre dans une autre fenêtre)", +IClickHere+"il passo
in una traduzione inglese di Tacito.
(Si apre in un altro pannello)", +" ", +"

Haga clic aquí por el pasaje
en una traducción inglesa de Tacito.
(Abre en una otra ventana)", +EClickHere+"the passage
in the Latin text of Tacitus,
linked to an English translation.
(Opens in another window)", +FClickHere+"le passage
dans le texte latin de Tacite,
lié à une traduction anglaise.
(S'ouvre dans une autre fenêtre)", +IClickHere+"il passo
nel testo latino di Tacito,
collegato ad una traduzione in inglese.
(Si apre in un altro pannello)", +" ", +"

Haga clic aquí por el pasaje
en el texto latino de Tacito.
(Abre en una otra ventana)", +EClickHere+"the Bible verse
in Greek, Latin, English facing columns.
(Offsite, opens in another window)", +" ", +" ", +" ", +PClickHere+"o versículo da Bíblia
em colunas enfrentadas: grego, latim, inglês.
(Offsite: a página abre em uma outra janela)", +"

CULLUM NUMBER
(If you don\'t know what this is,
click here for an explanation
on the Cullum\'s Register homepage:
opens in another window.)
", +"

CLASS RANK
From 1818 to 1977, within each Class graduates are listed in order of their general merit: academic and military standing combined.", +" ", +" ", +" ", +"

(De pagina opent in DIT venster)", +"

(De pagina opent in een ander venster)", +"

(Offsite: de pagina opent in een ander venster)", +"

(Deze foto of een verwante foto, opent in een ander venster)", +"

(De foto wordt geopend in een ander venster)", +"

(Elders op deze pagina)", +NClickHere+"de nota van de auteur aan de onderkant van deze pagina.", +NClickHere+"mijn nota aan de onderkant van deze pagina.", +"

Klik hier om terug te gaan
de verwijzing in de tekst.", +"

Als je niet weet waar dit over gaat,
je alleen maar een klik verwijderd van de uitleg.
(Opent in een ander venster)", +"

Klik hier om een niveau omhoog gaan.
(Opent in DIT venster)
", +"

Klik hier om een niveau omhoog gaan.
(Opent in een ander venster)
", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +EClickHere+"the passage
in a Latin translation of Aelian.
(Opens in another window)", +FClickHere+"le passage
dans une traduction latine d\'Elien.
(S'ouvre dans une autre fenêtre)", +IClickHere+"il passo
in una traduzione latina di Eliano.
(Si apre in un altro pannello)", +" ", +SClickHere+"el pasaje
en una traducción latina de Eliano.
(Abre en una otra ventana)", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +EClickHere+"the passage
in the Greek text.
(Opens in another window)", +FClickHere+"le passage du texte grec.
(S'ouvre dans une autre fenêtre)", +IClickHere+"il passo dell\' autore greco.
(Si apre in un altro pannello)", +" ", +SClickHere+"el pasaje del autor griego.
(Abre en una otra ventana)", +EClickHere+"the passage
in the Greek text,
linked to a translation
(Opens in another window)", +FClickHere+"le passage du texte grec.
liée à une traduction(S'ouvre dans une autre fenêtre)", +IClickHere+"il passo dell\' autore greco.
collegato ad una traduzione
(Si apre in un altro pannello)", +" ", +SClickHere+"el pasaje del autor griego.
con enlace a una traducción(Abre en una otra ventana)", +EClickHere+"the passage
in the Greek text.
(Offsite: opens in another window)", +FClickHere+"le passage du texte grec.
(Hors site: s\'ouvre dans une autre fenêtre)", +IClickHere+"il passo dell\' autore greco.
(Fuori sito: si apre in un altro pannello)", +" ", +SClickHere+"el pasaje del autor griego.
(Fuera del sitio: abre en una otra ventana)", +EClickHere+"the passage
in the Greek text,
linked to a translation
(Offsite: opens in another window)", +FClickHere+"le passage du texte grec.
liée à une traduction(Hors site: s\'ouvre dans une autre fenêtre)", +IClickHere+"il passo dell\' autore greco.
collegato ad una traduzione
(Fuori sito: si apre in un altro pannello)", +" ", +SClickHere+"el pasaje del autor griego.
con enlace a una traducción(Fuera del sitio: abre en una otra ventana)", +EClickHere+"the passage
in an English translation
linked to the original Greek.
(Opens in another window)

", +FClickHere+"le passage
en traduction anglaise
lié au texte grec.
(S'ouvre dans une autre fenêtre)", +IClickHere+"il passo
in una traduzione inglese
collegato al testo greco.
(Si apre in un altro pannello)
", +"

Cliccare hic ad legendum
in anglica versione
ad Graecum textum conexum.
(Altera in fenestra aperietur pagina)", +SClickHere+"este pasaje
en una traducción inglesa
con enlace al texto greco.
(Abre en una otra ventana)", +EClickHere+"the passage
in an English translation
linked to the original Greek.
(Offsite, opens in another window)

", +FClickHere+"le passage
en traduction anglaise
lié au texte grec.
(Hors site, s\'ouvre dans une autre fenêtre)", +IClickHere+"il passo
in una traduzione inglese
collegato al testo greco.
(Fuori sito, si apre in un altro pannello)
", +"

Cliccare hic ad legendum
in anglica versione
ad Graecum textum conexum.
(Apud alios, altera in fenestra aperietur pagina)", +SClickHere+"este pasaje
en una traducción inglesa
con enlace al texto greco.
(Fuera del sitio, abre en una otra ventana)", +EClickHere+"the passage
in the original Greek
linked to an English translation.
(Opens in another window)

", +FClickHere+"le passage
dans le texte grec
lié à une traduction anglaise.
(S'ouvre dans une autre fenêtre)", +IClickHere+"il passo
nel testo greco
collegato ad una traduzione inglese.
(Si apre in un altro pannello)
", +"

Cliccare hic ad legendum
Graecum textum
ad anglicam versionem conexum.
(Altera in fenestra aperietur pagina)", +SClickHere+"este pasaje
en el texto greco
con enlace a una traducción inglesa.
(Abre en una otra ventana)", +EClickHere+"the passage
in the original Greek
linked to an English translation.
(Offsite, opens in another window)", +FClickHere+"le passage
dans le texte grec
lié à une traduction anglaise.
(Hors site, s\'ouvre dans une autre fenêtre)", +IClickHere+"il passo
nel testo greco
collegato ad una traduzione inglese.
(Fuori sito, si apre in un altro pannello)", +"

Cliccare hic ad legendum
Graecum textum
ad anglicam versionem conexum.
(Apud alios, altera in fenestra aperietur pagina)", +SClickHere+"este pasaje
en el texto greco
con enlace a una traducción inglesa.
(Fuera del sitio, abre en una otra ventana)", +EClickHere+"the passage in Plutarch
in an English translation
linked to the original Greek
(Opens in another window)", +FClickHere+"le passage dans Plutarque
en traduction anglaise
lié au texte grec(S\'ouvre dans une autre fenêtre)", +IClickHere+"il passo in Plutarco

in una traduzione inglese
collegato al testo greco.
(Si apre in un altro pannello)", +" ", +SClickHere+"el pasaje en Plutarco
en una traducción inglesa
con enlace al texto greco.
(en inglés, abre en una otra ventana)", +EClickHere+"the passage in the Res Gestae
— parallel texts:
Latin, Greek, English
(Opens in another window)", +" ", +" ", +" ", +" ", +"

Link is to the Livius.Org website:
page opens in
another window.
", +EClickHere+"Jona Lendering\'s note at the bottom of this page.", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +EClickHere+"the passage
in the original Latin
linked to a French translation.
(Opens in another window)", //"THIS IS WHAT REALLY BELONGS IN 510:

Click here for the passage
in the Latin text of Suetonius,
linked to an English translation.
(Opens in another window)", +FClickHere+"le passage
dans le texte latin
lié à une traduction française.
(S'ouvre dans une autre fenêtre)", +IClickHere+"il passo
nel testo latino
collegato ad una traduzione francese.
(Si apre in un altro pannello)
", //"THIS IS WHAT REALLY BELONGS IN 512:
Cliccare qui per il passo
nel testo latino di Svetonio,
collegato a traduzioni in inglese e francese.
(Si apre in un altro pannello)", +"

Cliccare hic ad legendum
Latinum textum
ad anglicam versionem conexum.
(Altera in fenestra aperietur pagina)", +SClickHere+"este pasaje
en el texto latino
con enlace a una traducción francesa.
(Abre en una otra ventana)", +EClickHere+"the passage
in the original Latin
linked to a French translation.
(Offsite, opens in another window)

", //"THIS IS WHAT REALLY BELONGS IN 515:
Click here for the passage
in the Latin text of Suetonius,
linked to an English translation.
(Opens in another window)", +FClickHere+"le passage
dans le texte latin
lié à une traduction française.
(Hors site, s\'ouvre dans une autre fenêtre)", +IClickHere+"il passo
nel testo latino
collegato ad una traduzione francese.
(Fuori sito, si apre in un altro pannello)
", //"THIS IS WHAT REALLY BELONGS IN 517:
Cliccare qui per il passo
nel testo latino di Svetonio,
collegato a traduzioni in inglese e francese.
(Si apre in un altro pannello)", +"

Cliccare hic ad legendum
Latinum textum
ad Francogallicam versionem conexum.
(Apud alios, altera in fenestra aperietur pagina)", +SClickHere+"este pasaje
en el texto latino
con enlace a una traducción francesa.
(Fuera del sitio, abre en una otra ventana)", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +"

THIS IS THE PAGE YOU\'RE ON.", +"

C\'EST LA PAGE QUE VOUS AVEZ DEVANT LES YEUX.", +"

QUESTA È LA PAGINA CHE AVETE DAVANTI AGLI OCCHI.", +" ", +" ", +"

ACTIVE AREAS:
WHEREVER THIS PROMPT
IS REPLACED BY ANOTHER", +"

ZONES ACTIVES :
PARTOUT OU CE MESSAGE EST REMPLACE PAR UN AUTRE", +"

AREE ATTIVE:
OVUNQUE QUESTO MESSAGGIO VIENE SOSTITUITO DA UN\' ALTRO", +"

Click here for the homepage of the
U. S. MILITARY ACADEMY.
(Offsite: opens in another window.)", +"

Click here for the homepage of the
U. S. NAVAL ACADEMY.
(Offsite: opens in another window.)", +"

Click here for the homepage of the
U. S. COAST GUARD ACADEMY.
(Offsite: opens in another window.)", + +" " //THIS LAST LINE MUST NOT END WITH A COMMA +); + +// Array with captions. +var ol_caps = new Array("Array Caption 0", "Array Caption 1"); + + +//\//////////////////////////////// +//\ Thayer CONSTANTS: +//\//////////////////////////////// + +var CarelessLoeb50 = "

The Loeb edition —
thru 50 years of reprintings! —
has "; +var CarelessLoeb60 = "
The Loeb edition —
thru 60 years of reprintings! —
has "; +var CarelessLoeb70 = "
The Loeb edition —
thru 70 years of reprintings! —
has "; +var CarelessLoeb80 = "
The Loeb edition —
thru 80 years of reprintings! —
has "; +var CarelessLoeb90 = "
The Loeb edition —
thru 90 years of reprintings! —
has "; +var CarelessLoebX = "
The Loeb edition —
thru many years of reprintings! —
has "; +var Cullum0 = ":
This is a link
to another entry
in Cullum\'s Register.
(Opens in THIS window)
"; +var Cullum1 = "
USMA, Class of "; +var Cullum2 = ":
This is a link to the biographical summary
in Cullum\'s Register.
(Opens in another window)
"; +var CullumR1 = "

CLASS RANK
— of "; +var CullumR2 = " in the Class"; + + +// ENGLISH: +var Eng2 = "
(English, opens in another window)"; +var EngSearch = "
then search for
"; + + +// FRENCH: +// var Fr0 = "

(La page s\'ouvre dans CETTE fenêtre)"; +// var Fr1 = "

(La page s\'ouvre dans une autre fenêtre)"; +// var Fr2 = "

Le lien est hors site :
la page s\'ouvre
dans une autre fenêtre
"; +// var Fr5 = "

(Ailleurs sur cette page)"; +var FrCullum0 = " :
Ceci est un lien à la notice biographique
dans Cullum\'s Register.
(S\'ouvre dans CETTE fenêtre)

"; +var FrCullum1 = "
USMA, Promotion de "; +var FrCullum2 = " :
Ceci est un lien à la notice biographique
dans Cullum\'s Register.
(S\'ouvre dans une autre fenêtre)
"; +var FrCullumR1 = "

CLASS RANK
— sur "; +var FrCullumR2 = " dans la Promotion"; +var FrGk2 = "
(Grec s\'ouvre dans une autre fenêtre)"; +var FrGkSearch = "
puis chercher
"; +var FrLat2 = "
(Latin, s\'ouvre dans une autre fenêtre)"; +var FrLatSearch = "
puis chercher
"; + + +// GREEK: +var Gk2 = "
(Greek, opens in another window)"; +var GkSearch = "
then search for
"; + + +// ITALIAN: +var It5 = "

(Altrove su questa pagina)"; +var ItGk2 = "
(in Greco, apre in un altro pannello)"; +var ItGkSearch = "
poi cercare
"; +var ItLat2 = "
(in Latino, apre in un altro pannello)"; +var ItLatSearch = "
poi cercare
"; + + +// LATIN: +var Lat2 = "
(Latin, opens in another window)"; +var LatSearch = "
then search for
"; +var RedSearch = "
then search for the word or passage in red"; + + +// SPANISH: +var SpGk2 = "
(Griego, abre en una otra ventana)"; +var SpGkSearch = "
pues buscar
"; +var SpLat2 = "
(Latín, abre en una otra ventana)"; +var SpLatSearch = "
pues buscar
"; + +//////////////////////////////////// +// END CONFIGURATION +//////////////////////////////////// + + + +//////////////////////////////////// +// INIT +//////////////////////////////////// + + +// Runtime variables init. Used for runtime only, don't change, not for config! +var o3_text = ""; +var o3_cap = ""; +var o3_sticky = 0; +var o3_background = ""; +var o3_close = "Close"; +var o3_hpos = RIGHT; +var o3_offsetx = 2; +var o3_offsety = -3; +var o3_fgcolor = ""; +var o3_bgcolor = ""; +var o3_textcolor = ""; +var o3_capcolor = ""; +var o3_closecolor = ""; +var o3_width = 100; +var o3_border = 1; +var o3_status = ""; +var o3_autostatus = 0; +var o3_height = -1; +var o3_snapx = 0; +var o3_snapy = 0; +var o3_fixx = -1; +var o3_fixy = -1; +var o3_fgbackground = ""; +var o3_bgbackground = ""; +var o3_padxl = 0; +var o3_padxr = 0; +var o3_padyt = 0; +var o3_padyb = 0; +var o3_fullhtml = 0; +var o3_vpos = ABOVE; +var o3_aboveheight = 3; +var o3_capicon = ""; +var o3_textfont = "Verdana,Arial,Helvetica"; +var o3_captionfont = "Verdana,Arial,Helvetica"; +var o3_closefont = "Verdana,Arial,Helvetica"; +var o3_textsize = "1"; +var o3_captionsize = "1"; +var o3_closesize = "1"; +var o3_frame = self; +var o3_timeout = 0; +var o3_timerid = 0; +var o3_allowmove = 0; +var o3_function = Function(); +var o3_delay = 0; +var o3_delayid = 0; +var o3_hauto = 0; +var o3_vauto = 0; + +// OTHER THAYER VARIABLES +var BadF = "
"; +var GreekF = "
"; +var LatinF = "
"; +var SearchF = "
"; + + + +var SourceErr = "

The printed text has
"; +var SourceOm = "

The printed text omits
"; +var SourceOmL = "

The printed text omits
"; +var SourceOmG = "

The printed text omits
"; +var SourceOm0 = "

The printed text
omits this."; +var SourceOm1 = "

The printed text
omits this word."; +var SourceOm2 = "

The printed text
omits these words."; + + + +var FrSourceErr = "

Le texte imprimé porte
"; +var FrSourceOm = "

Le texte imprimé omet
"; +var FrSourceOmL = "

Le texte imprimé omet
"; +var FrSourceOmG = "

Le texte imprimé omet
"; + +var FrSourceOm1 = "

Le texte imprimé omet ce mot."; +var FrSourceOm2 = "

Le texte imprimé omet ces mots."; + + + +var ItSourceErr = "

Il testo stampato reca
"; +var ItSourceOm = "

Il testo stampato omette
"; +var ItSourceOmL = "

Il testo stampato omette
"; +var ItSourceOmG = "

Il testo stampato omette
"; +var ItSourceOm0 = "

Il testo stampato
omette questo."; +var ItSourceOm1 = "

Il testo stampato
omette questa parola."; +var ItSourceOm2 = "

Il testo stampato
omette queste parole."; + + + +var NeSourceErr = "

In de gedrukte tekst leest
"; +var NeSourceOm = "

De gedrukte tekst weglaat
"; + + + + + + + + +var PgSourceOm0 = "

O texto impresso omite isso."; +var PgSourceErr = "

No texto impresso lê‑se
"; +var PgSourceOm = "

O texto impresso omite
"; +var PgSourceOmL = "

O texto impresso omite
"; +var PgSourceOmG = "

O texto impresso omite
"; + + + + + +var SpSourceErr = "

En el texto imprimido
se lee
"; +var SpSourceOm = "

El texto imprimido omite
"; +var SpSourceOmL = "

El texto imprimido omite
"; +var SpSourceOmG = "

El texto imprimido omite
"; + +var MyDiaryErr = "

In my diary, I wrote
"; + + + + +var SourceErrMe = "

I actually wrote
"; +var SourceOmMe = "

I omitted
"; + +var DivergenceFromLatin = "

The Latin text onsite is not the one on which this translation is based. It reads
"; +var DivergenceFromGreek = "

The Latin text onsite is not the one on which this translation is based. It reads
"; +var DivergenceInEnglish = "

The English translation onsite is not based on this text. It reads
"; + +var CloseF = ""; +var USMAPromptWidth = 205; +var USNAPromptWidth = 205; +var USCGAPromptWidth = 205; +var PDFPromptWidth = 216; +var DiaryErr = "

The diary actually reads
"; +var DiaryOm = "

The diary omits
"; + +var Ru2 = "

Ссылка выключен сайт:
страница открывается в другом окне
"; + + + +// THAYER'S ARRAY. (add 285 for the linenum of the corresponding text) +var ThisPhoto = 3; +var Photo = 4; +var OnPage = 5; +var Note = 6; +var MyNote = 7; +var BackRef = 8; +var Glossary = 9; + +var Ca0 = 420; var CaWidth0 = 210; +var Ca1 = 421; var CaWidth1 = 210; +var Ca2 = 422; var CaWidth2 = 140; +var CaThisPhoto = 423; var CaThisPhotoWidth = 180; +var CaPhoto = 424; +var CaOnPage = 425; var CaOnPageWidth = 150; +var CaNote = 426; +var CaMyNote = 427; +var CaBackRef = 428; +var CaGlossary = 429; + +var Fr0 = 10; var FrWidth0 = 180; +var Fr1 = 11; var FrWidth1 = 210; +var Fr2 = 12; +var FrThisPhoto = 13; +var FrPhoto = 14; +var FrOnPage = 15; +var FrNote = 16; +var FrMyNote = 17; +var FrBackRef = 18; +var FrGlossary = 19; + +var Ge0 = 20; +var Ge1 = 21; +var Ge2 = 22; +var GeThisPhoto = 23; +var GePhoto = 24; +var GeOnPage = 25; +var GeNote = 26; +var GeMyNote = 27; +var GeBackRef = 28; +var GeGlossary = 29; + +var It0 = 30; var ItWidth0 = 210; +var It1 = 31; var ItWidth1 = 210; +var It2 = 32; var ItWidth2 = 210; +var ItThisPhoto = 33; var ItThisPhotoWidth = 180; +var ItPhoto = 34; +var ItOnPage = 35; var ItOnPageWidth = 150; +var ItNote = 36; +var ItMyNote = 37; +var ItBackRef = 38; +var ItGlossary = 39; + +var La0 = 40; +var La1 = 41; +var La2 = 42; +var LaThisPhoto = 43; +var LaPhoto = 44; +var LaOnPage = 45; +var LaNote = 46; +var LaMyNote = 47; +var LaGlossary = 49; + +var Sp0 = 50; var SpWidth0 = 210; +var Sp1 = 51; var SpWidth1 = 210; +var Sp2 = 52; var SpWidth2 = 140; +var SpThisPhoto = 53; var SpThisPhotoWidth = 180; +var SpPhoto = 54; +var SpOnPage = 55; var SpOnPageWidth = 150; +var SpNote = 56; +var SpMyNote = 57; +var SpBackRef = 58; +var SpGlossary = 59; + +var Pt0 = 90; var PtWidth0 = 210; +var Pt1 = 91; var PtWidth1 = 210; +var Pt2 = 92; var PtWidth2 = 140; +var PtThisPhoto = 93; var PtThisPhotoWidth = 180; +var PtPhoto = 94; +var PtOnPage = 95; var PtOnPageWidth = 190; +var PtNote = 96; +var PtMyNote = 97; +var PtBackRef = 98; +var PtGlossary = 99; + +var Smith0 = 60; var SmithWidth0 = 200; +var FrSmith0 = 61; +var ItSmith0 = 62; +var SpSmith0 = 64; +var Smith1 = 65; var SmithWidth1 = 200; +var FrSmith1 = 66; +var ItSmith1 = 67; +var SpSmith1 = 69; + +var Glossary0 = 70; +var FrGlossary0 = 71; +var ItGlossary0 = 72; + +var Glossary2 = 75; +var FrGlossary2 = 76; +var ItGlossary2 = 77; + +var SmithSub0 = 80; +var FrSmithSub0 = 81; +var ItSmithSub0 = 82; +var SpSmithSub0 = 84; + +var SmithSub1 = 85; var SmithSubWidth1 = 190; +var FrSmithSub1 = 86; +var ItSmithSub1 = 87; +var SpSmithSub1 = 89; + +var XMarksTheSpot = 790; +var FrXMarksTheSpot = 791; +var ItXMarksTheSpot = 792; + +var ActiveAreas = 795; +var FrActiveAreas = 796; +var ItActiveAreas = 797; + +var USMA = 798; +var USNA = 799; +var USCGA = 800; + +var SmithHome = 100; +var FrSmithHome = 101; +var ItSmithHome = 102; +var SpSmithHome = 104; +var TextOnPage = 106; +var SmithHome0 = 107; +var DarembergHome = 108; +var DarembergHome0 = 109; + +var Platner0 = 110; +var FrPlatner0 = 111; +var ItPlatner0 = 112; +var LaPlatner0 = 113; +var SpPlatner0 = 114; +var Platner1 = 115; +var FrPlatner1 = 116; +var ItPlatner1 = 117; +var LaPlatner1 = 118; +var SpPlatner1 = 119; + +var PlatnerPhoto0 = 120; +var FrPlatnerPhoto0 = 121; +var ItPlatnerPhoto0 = 122; +var LaPlatnerPhoto0 = 123; +var SpPlatnerPhoto0 = 124; +var PlatnerPhoto1 = 125; +var FrPlatnerPhoto1 = 126; +var ItPlatnerPhoto1 = 127; +var LaPlatnerPhoto1 = 128; +var SpPlatnerPhoto1 = 129; + +var PlatnerSub0 = 130; +var FrPlatnerSub0 = 131; +var ItPlatnerSub0 = 132; +var SpPlatnerSub0 = 134; +var PlatnerSub1 = 135; +var FrPlatnerSub1 = 136; +var ItPlatnerSub1 = 137; +var SpPlatnerSub1 = 139; + +var CompleteWork0 = 140; +var FrCompleteWork0 = 141; +var ItCompleteWork0 = 142; +var SpCompleteWork0 = 144; +var CompleteWork1 = 145; +var FrCompleteWork1 = 146; +var ItCompleteWork1 = 147; +var SpCompleteWork1 = 149; + +var Armellini0 = 150; +var FrArmellini0 = 151; +var ItArmellini0 = 152; +var SpArmellini0 = 154; +var Armellini1 = 155; +var FrArmellini1 = 156; +var ItArmellini1 = 157; +var SpArmellini1 = 159; + +var Huelsen0 = 160; +var FrHuelsen0 = 161; +var ItHuelsen0 = 162; +var SpHuelsen0 = 164; +var Huelsen1 = 165; +var FrHuelsen1 = 166; +var ItHuelsen1 = 167; +var SpHuelsen1 = 169; + +var RomeChurch0 = 170; +var FrRomeChurch0 = 171; +var ItRomeChurch0 = 172; +var SpRomeChurch0 = 174; +var RomeChurch1 = 175; +var FrRomeChurch1 = 176; +var ItRomeChurch1 = 177; +var SpRomeChurch1 = 179; + +var Daremberg0 = 180; +var FrDaremberg0 = 181; +var ItDaremberg0 = 182; +var SpDaremberg0 = 184; +var Daremberg1 = 185; +var FrDaremberg1 = 186; +var ItDaremberg1 = 187; +var SpDaremberg1 = 189; + +var Page0 = 190; +var FrPage0 = 191; +var ItPage0 = 192; +var LaPage0 = 193; +var SpPage0 = 194; +var Page1 = 195; +var FrPage1 = 196; +var ItPage1 = 197; +var LaPage1 = 198; +var SpPage1 = 199; + +var Pages0 = 200; +var FrPages0 = 201; +var ItPages0 = 202; +var LaPages0 = 203; +var SpPages0 = 204; +var Pages1 = 205; +var FrPages1 = 206; +var ItPages1 = 207; +var LaPages1 = 208; +var SpPages1 = 209; + +var ChurchPage0 = 210; +var FrChurchPage0 = 211; +var ItChurchPage0 = 212; +var LaChurchPage0 = 213; +var SpChurchPage0 = 214; +var ChurchPage1 = 215; +var FrChurchPage1 = 216; +var ItChurchPage1 = 217; +var LaChurchPage1 = 218; +var SpChurchPage1 = 219; + +var ChurchPages0 = 220; +var FrChurchPages0 = 221; +var ItChurchPages0 = 222; +var LaChurchPages0 = 223; +var SpChurchPages0 = 224; +var ChurchPages1 = 225; +var FrChurchPages1 = 226; +var ItChurchPages1 = 227; +var LaChurchPages1 = 228; +var SpChurchPages1 = 229; + +var Town0 = 230; +var FrTown0 = 231; +var ItTown0 = 232; +var LaTown0 = 233; +var SpTown0 = 234; +var Town1 = 235; +var FrTown1 = 236; +var ItTown1 = 237; +var LaTown1 = 238; +var SpTown1 = 239; + +var EPlusL = 240; +var FrEPlusL = 241; +var ItEPlusL = 242; +var SpEPlusL = 244; +var EPlusL2 = 245; +var FrEPlusL2 = 246; +var ItEPlusL2 = 247; +var LaEPlusL2 = 248; +var SpEPlusL2 = 249; + +var LPlusE = 250; +var FrLPlusE = 251; +var ItLPlusE = 252; +var SpLPlusE = 254; +var LPlusE2 = 255; +var FrLPlusE2 = 256; +var ItLPlusE2 = 257; +var SpLPlusE2 = 259; + +var Pliny = 260; +var FrPliny = 261; +var ItPliny = 262; +var SpPliny = 264; + +var Ptolemy = 265; +var FrPtolemy = 266; +var ItPtolemy = 267; +var LaPtolemy = 268; + +var Ammian = 270; +var FrAmmian = 271; +var ItAmmian = 272; + +var Appian = 275; +var FrAppian = 276; +var ItAppian = 277; + +var Dio = 280; +var FrDio = 281; +var ItDio = 282; +var SpDio = 284; + +var Plutarch = 285; var PlutarchWidth = 230; +var FrPlutarch = 286; +var ItPlutarch = 287; +var SpPlutarch = 289; + +var Polybius = 290; +var FrPolybius = 291; +var ItPolybius = 292; +var LaPolybius = 293; + +var Strabo = 295; +var FrStrabo = 296; +var ItStrabo = 297; +var LaStrabo = 298; + +var Chiesa0 = 300; +var Chiesa1 = 301; +var Artista0 = 302; +var Artista = 303; +var Catalogo = 304; +var Pianta = 305; +var QuadroPianta = 306; +var ChiesaNelTesto = 307; +var ETitiArtista0 = 308; +var ETitiArtista = 309; + +var MySite0 = 310; +var FrMySite0 = 311; +var ItMySite0 = 312; +var SpMySite0 = 314; +var MySite1 = 315; +var FrMySite1 = 316; +var ItMySite1 = 317; +var SpMySite1 = 319; + +var MyMidSite0 = 320; +var FrMyMidSite0 = 321; +var ItMyMidSite0 = 322; +var SpMyMidSite0 = 324; +var MyMidSite1 = 325; +var FrMyMidSite1 = 326; +var ItMyMidSite1 = 327; +var SpMyMidSite1 = 329; + +var MyBigSite0 = 330; +var FrMyBigSite0 = 331; +var ItMyBigSite0 = 332; +var SpMyBigSite0 = 334; +var MyBigSite1 = 335; +var FrMyBigSite1 = 336; +var ItMyBigSite1 = 337; +var SpMyBigSite1 = 339; + +var MyBook0 = 340; +var FrMyBook0 = 341; +var ItMyBook0 = 342; +var LaMyBook0 = 343; +var SpMyBook0 = 344; +var MyBook1 = 345; +var FrMyBook1 = 346; +var ItMyBook1 = 347; +var LaMyBook1 = 348; +var SpMyBook1 = 349; + +var TheirSite = 350; +var FrTheirSite = 351; +var ItTheirSite = 352; +var SpTheirSite = 357; + +var LatinText = 360; +var FrLatinText = 361; +var ItLatinText = 362; +var SpLatinText = 367; + +var LatinRef1 = 370; +var FrLatinRef1 = 371; +var ItLatinRef1 = 372; +var SpLatinRef1 = 374; +var LatinTrans1 = 375; +var FrLatinTrans1 = 376; +var ItLatinTrans1 = 377; +var SpLatinTrans1 = 379; + +var LatinRef2 = 380; +var FrLatinRef2 = 381; +var ItLatinRef2 = 382; +var SpLatinRef2 = 384; +var LatinRef2PlusTranslation = 385; //KEEP. Use for texts with translations into languages other than English +var FrLatinRef2PlusTranslation = 386; +var ItLatinRef2PlusTranslation = 387; +var SpLatinRef2PlusTranslation = 389; + +var LatinPlus1 = 390; +var FrLatinPlus1 = 391; +var ItLatinPlus1 = 392; +var SpLatinPlus1 = 394; +var LatinPlus2 = 395; +var FrLatinPlus2 = 396; +var ItLatinPlus2 = 397; +var SpLatinPlus2 = 399; + +var Original1 = 400; +var FrOriginal1 = 401; +var ItOriginal1 = 402; +var LaOriginal1 = 403; +var SpOriginal1 = 404; +var Original2 = 405; +var FrOriginal2 = 406; +var ItOriginal2 = 407; +var LaOriginal2 = 408; +var SpOriginal2 = 409; + +var Translation1 = 410; +var FrTranslation1 = 411; +var ItTranslation1 = 412; +var SpTranslation1 = 414; +var Translation2 = 415; +var FrTranslation2 = 416; +var ItTranslation2 = 417; +var SpTranslation2 = 419; + +var PDF = 430; +var FrPDF = 431; +var ItPDF = 432; +var SpPDF = 434; + +var JSTOR = 435; +var FrJSTOR = 436; +var ItJSTOR = 437; +var SpJSTOR = 438; + +var BadCoding = 440; +var FrBadCoding = 441; +var ItBadCoding = 442; +var SpBadCoding = 444; +var Loud = 445; +var FrLoud = 446; +var ItLoud = 447; +var SpLoud = 448; + +var Solution = 450; +var FrSolution = 451; +var ItSolution = 452; +var SpSolution = 454; + +var Diodorus = 460; +var FrDiodorus = 461; +var ItDiodorus = 462; +var SpDiodorus = 464; + +var Herodotus = 465; +var FrHerodotus = 466; +var ItHerodotus = 467; +var SpHerodotus = 469; + +var Pausanias = 470; +var FrPausanias = 471; +var ItPausanias = 472; +var SpPausanias = 474; + +var Thucydides = 475; +var FrThucydides = 476; +var ItThucydides = 477; +var SpThucydides = 479; + +var FrontinusL = 480; +var FrFrontinusL = 481; +var ItFrontinusL = 482; +var SpFrontinusL = 484; + +var FrontinusE = 490; +var FrFrontinusF = 491; + +var Dionysius = 495; +var FrDionysius = 496; +var ItDionysius = 497; +var LaDionysius = 498; +var SpDionysius = 499; + +var Glossary0 = 500; +var FrGlossary0 = 501; +var ItGlossary0 = 502; +var SpGlossary0 = 507; + +var LatinOriginal = 510; +var FrLatinOriginal = 511; +var ItLatinOriginal = 512; +var SpLatinOriginal = 513; + +var GreekOriginal = 515; +var FrGreekOriginal = 516; +var ItGreekOriginal = 517; +var SpGreekOriginal = 518; + +var Home = 520; +var FrHome = 521; +var ItHome = 522; +var LaHome = 524; +var SpHome = 527; +var Home1 = 530; +var FrHome1 = 531; +var ItHome1 = 532; +var LaHome1 = 533; +var NeHome1 = 534; +var PtHome1 = 535; +var SpHome1 = 536; + +var Mail = 540; +var FrMail = 541; +var ItMail = 542; +var LaMail = 543; +var SpMail = 544; + +var LetLoad = 550; +var FrLetLoad = 551; +var ItLetLoad = 552; +var LaLetLoad = 553; +var SpLetLoad = 554; + +var AuNote = 560; +var ItAuNote = 562; + +var EdNote = 565; +var FrEdNote = 566; +var ItEdNote = 567; var ItEdNoteWidth = 230; + +var CritNote = 570; +var ItCritNote = 572; + +var ItalianOriginal = 575; +var FrItalianOriginal = 576; +var ItItalianOriginal = 577; +var SpItalianOriginal = 578; + +var Up = 580; +var FrUp = 581; +var ItUp = 582; +var LaUp = 583; +var SpUp = 584; +var Up1 = 590; +var FrUp1 = 591; +var ItUp1 = 592; +var LaUp1 = 593; +var PtUp1 = 594; +var SpUp1 = 595; + +var SallustE = 600; +var FrSallustE = 601; +var ItSallustE = 602; + +var SallustL = 605; +var FrSallustL = 606; +var ItSallustL = 607; + +var Tacitus = 610; +var FrTacitusE = 611; +var ItTacitusE = 612; +var SpTacitusE = 614; + +var TacitusL = 615; +var FrTacitusL = 616; +var ItTacitusL = 617; +var SpTacitusL = 619; + +var Bible = 620; +var FrBible = 621; +var ItBible = 622; +var PtBible = 624; +// var SpBible = 624; + +var CullumNo = 625; +var CullumRank = 626; + +var Ne0 = 630; var NeWidth0 = 190; +var Ne1 = 631; var NeWidth1 = 210; +var Ne2 = 632; var NeWidth2 = 140; +var NeThisPhoto = 633; var NeThisPhotoWidth = 180; +var NePhoto = 634; +var NeOnPage = 635; var NeOnPageWidth = 150; +var NeNote = 636; +var NeMyNote = 637; +var NeBackRef = 638; +var NeGlossary = 639; +var NeUp = 640; +var NeUp1 = 641; var NeUpWidth1 = 210; +var NeHome = 525; var NeHomeWidth = 240; + +var Aelian = 650; +var FrAelian = 651; +var ItAelian = 652; +var SpAelian = 654; + +var GreekRef1 = 670; +var FrGreekRef1 = 671; +var ItGreekRef1 = 672; +var SpGreekRef1 = 674; +var GreekTrans1 = 675; var GreekTransWidth1 = 240; +var FrGreekTrans1 = 676; +var ItGreekTrans1 = 677; +var SpGreekTrans1 = 679; + +var GreekRef2 = 680; +var FrGreekRef2 = 681; +var ItGreekRef2 = 682; +var SpGreekRef2 = 684; +var GreekRef2PlusTranslation = 685; //KEEP. Use for texts with translations into languages other than English +var FrGreekRef2PlusTranslation = 686; +var ItGreekRef2PlusTranslation = 687; +var SpGreekRef2PlusTranslation = 689; + +var EPlusG = 690; var EPlusGWidth = 240; +var FrEPlusG = 691; +var ItEPlusG = 692; +var LaEPlusG = 693; +var SpEPlusG = 694; +var EPlusG2 = 695; +var FrEPlusG2 = 696; +var ItEPlusG2 = 697; +var LaEPlusG2 = 698; +var SpEPlusG2 = 699; + +var GPlusE = 700; +var FrGPlusE = 701; +var ItGPlusE = 702; +var LaGPlusE = 703; +var SpGPlusE = 704; +var GPlusE2 = 705; +var FrGPlusE2 = 706; +var ItGPlusE2 = 707; +var LaGPlusE2 = 708; +var SpGPlusE2 = 709; + +var PlutarchPlusG = 710; /* var PlutarchWidth = 230; */ +var FrPlutarchPlusG = 286; +var ItPlutarchPlusG = 287; +var SpPlutarchPlusG = 289; + +var ResGestae = 715; + +var toLivius = 720; +var LenderingNote = 721; + +var EnLPlusF = 730; +var LPlusF = 731; +var ItLPlusF = 732; +var LaLPlusF = 733; +var SpLPlusF = 734; +var LPlusF2 = 735; +var FrLPlusF2 = 736; +var ItLPlusF2 = 737; +var LaLPlusF2 = 738; +var SpLPlusF2 = 739; + + +// Ссылка выключен сайт, страница открывается в другом окне. + + +// Display state variables +var o3_x = 0; +var o3_y = 0; +var o3_allow = 0; +var o3_showingsticky = 0; +var o3_removecounter = 0; + +// Our layer +var over = null; + + +// Decide browser version +var ns4 = (document.layers)? true:false; +var ns6 = (document.getElementById)? true:false; +var ie4 = (document.all)? true:false; +var ie5 = false; + +// Microsoft Stupidity Check(tm). +if (ie4) { + if (navigator.userAgent.indexOf('MSIE 5')>0) { + ie5 = true; + } + if (ns6) { + ns6 = false; + } +} + + +// Capture events, alt. diffuses the overlib function. +if ( (ns4) || (ie4) || (ns6)) { + document.onmousemove = mouseMove + if (ns4) document.captureEvents(Event.MOUSEMOVE) +} else { + Ebox = no_box; + nd = no_box; + ver3fix = true; +} + + +// Fake function for 3.0 users. +function no_box() { + return ver3fix; +} + + + +//////////////////////////////////// +// PUBLIC FUNCTIONS +//////////////////////////////////// + + +// Ebox(arg0, ..., argN) +// Loads parameters into global runtime variables. +function Ebox() { + + // Load defaults to runtime. + o3_text = ol_text; + o3_cap = ol_cap; + o3_sticky = ol_sticky; + o3_background = ol_background; + o3_close = ol_close; + o3_hpos = ol_hpos; + o3_offsetx = ol_offsetx; + o3_offsety = ol_offsety; + o3_fgcolor = ol_fgcolor; + o3_bgcolor = ol_bgcolor; + o3_textcolor = ol_textcolor; + o3_capcolor = ol_capcolor; + o3_closecolor = ol_closecolor; + o3_width = ol_width; + o3_border = ol_border; + o3_status = ol_status; + o3_autostatus = ol_autostatus; + o3_height = ol_height; + o3_snapx = ol_snapx; + o3_snapy = ol_snapy; + o3_fixx = ol_fixx; + o3_fixy = ol_fixy; + o3_fgbackground = ol_fgbackground; + o3_bgbackground = ol_bgbackground; + o3_padxl = ol_padxl; + o3_padxr = ol_padxr; + o3_padyt = ol_padyt; + o3_padyb = ol_padyb; + o3_fullhtml = ol_fullhtml; + o3_vpos = ol_vpos; + o3_aboveheight = ol_aboveheight; + o3_capicon = ol_capicon; + o3_textfont = ol_textfont; + o3_captionfont = ol_captionfont; + o3_closefont = ol_closefont; + o3_textsize = ol_textsize; + o3_captionsize = ol_captionsize; + o3_closesize = ol_closesize; + o3_timeout = ol_timeout; + o3_function = ol_function; + o3_delay = ol_delay; + o3_hauto = ol_hauto; + o3_vauto = ol_vauto; + + + + // Special for frame support, over must be reset... + if ( (ns4) || (ie4) || (ns6) ) { + o3_frame = ol_frame; + if (ns4) over = o3_frame.document.overDiv + if (ie4) over = o3_frame.overDiv.style + if (ns6) over = o3_frame.document.getElementById("overDiv"); + } + + + // What the next argument is expected to be. + var parsemode = -1; + + var ar = arguments; + + for (i = 0; i < ar.length; i++) { + + if (parsemode == 0) { + // Arg is command + if (ar[i] == INARRAY) { parsemode = INARRAY; } + if (ar[i] == CAPARRAY) { parsemode = CAPARRAY; } + if (ar[i] == STICKY) { parsemode = opt_STICKY(ar[i]); } + if (ar[i] == BACKGROUND) { parsemode = BACKGROUND; } + if (ar[i] == NOCLOSE) { parsemode = opt_NOCLOSE(ar[i]); } + if (ar[i] == CAPTION) { parsemode = CAPTION; } + if (ar[i] == LEFT) { parsemode = opt_HPOS(ar[i]); } + if (ar[i] == RIGHT) { parsemode = opt_HPOS(ar[i]); } + if (ar[i] == CENTER) { parsemode = opt_HPOS(ar[i]); } + if (ar[i] == OFFSETX) { parsemode = OFFSETX; } + if (ar[i] == OFFSETY) { parsemode = OFFSETY; } + if (ar[i] == FGCOLOR) { parsemode = FGCOLOR; } + if (ar[i] == BGCOLOR) { parsemode = BGCOLOR; } + if (ar[i] == TEXTCOLOR) { parsemode = TEXTCOLOR; } + if (ar[i] == CAPCOLOR) { parsemode = CAPCOLOR; } + if (ar[i] == CLOSECOLOR) { parsemode = CLOSECOLOR; } + if (ar[i] == WIDTH) { parsemode = WIDTH; } + if (ar[i] == BORDER) { parsemode = BORDER; } + if (ar[i] == STATUS) { parsemode = STATUS; } + if (ar[i] == AUTOSTATUS) { parsemode = opt_AUTOSTATUS(ar[i]); } + if (ar[i] == AUTOSTATUSCAP) { parsemode = opt_AUTOSTATUSCAP(ar[i]); } + if (ar[i] == HEIGHT) { parsemode = HEIGHT; } + if (ar[i] == CLOSETEXT) { parsemode = CLOSETEXT; } + if (ar[i] == SNAPX) { parsemode = SNAPX; } + if (ar[i] == SNAPY) { parsemode = SNAPY; } + if (ar[i] == FIXX) { parsemode = FIXX; } + if (ar[i] == FIXY) { parsemode = FIXY; } + if (ar[i] == FGBACKGROUND) { parsemode = FGBACKGROUND; } + if (ar[i] == BGBACKGROUND) { parsemode = BGBACKGROUND; } + if (ar[i] == PADX) { parsemode = PADX; } + if (ar[i] == PADY) { parsemode = PADY; } + if (ar[i] == FULLHTML) { parsemode = opt_FULLHTML(ar[i]); } + if (ar[i] == ABOVE) { parsemode = opt_VPOS(ar[i]); } + if (ar[i] == BELOW) { parsemode = opt_VPOS(ar[i]); } + if (ar[i] == CAPICON) { parsemode = CAPICON; } + if (ar[i] == TEXTFONT) { parsemode = TEXTFONT; } + if (ar[i] == CAPTIONFONT) { parsemode = CAPTIONFONT; } + if (ar[i] == CLOSEFONT) { parsemode = CLOSEFONT; } + if (ar[i] == TEXTSIZE) { parsemode = TEXTSIZE; } + if (ar[i] == CAPTIONSIZE) { parsemode = CAPTIONSIZE; } + if (ar[i] == CLOSESIZE) { parsemode = CLOSESIZE; } + if (ar[i] == FRAME) { parsemode = FRAME; } + if (ar[i] == TIMEOUT) { parsemode = TIMEOUT; } + if (ar[i] == FUNCTION) { parsemode = FUNCTION; } + if (ar[i] == DELAY) { parsemode = DELAY; } + if (ar[i] == HAUTO) { parsemode = opt_HAUTO(ar[i]); } + if (ar[i] == VAUTO) { parsemode = opt_VAUTO(ar[i]); } + + + } else { + if (parsemode < 0) { + // Arg is maintext, unless INARRAY + if (ar[i] == INARRAY) { + parsemode = INARRAY; + } else { + o3_text = ar[i]; + parsemode = 0; + } + } else { + // Arg is option for command + if (parsemode == INARRAY) { parsemode = opt_INARRAY(ar[i]); } + if (parsemode == CAPARRAY) { parsemode = opt_CAPARRAY(ar[i]); } + if (parsemode == BACKGROUND) { parsemode = opt_BACKGROUND(ar[i]); } + if (parsemode == CAPTION) { parsemode = opt_CAPTION(ar[i]); } + if (parsemode == OFFSETX) { parsemode = opt_OFFSETX(ar[i]); } + if (parsemode == OFFSETY) { parsemode = opt_OFFSETY(ar[i]); } + if (parsemode == FGCOLOR) { parsemode = opt_FGCOLOR(ar[i]); } + if (parsemode == BGCOLOR) { parsemode = opt_BGCOLOR(ar[i]); } + if (parsemode == TEXTCOLOR) { parsemode = opt_TEXTCOLOR(ar[i]); } + if (parsemode == CAPCOLOR) { parsemode = opt_CAPCOLOR(ar[i]); } + if (parsemode == CLOSECOLOR) { parsemode = opt_CLOSECOLOR(ar[i]); } + if (parsemode == WIDTH) { parsemode = opt_WIDTH(ar[i]); } + if (parsemode == BORDER) { parsemode = opt_BORDER(ar[i]); } + if (parsemode == STATUS) { parsemode = opt_STATUS(ar[i]); } + if (parsemode == HEIGHT) { parsemode = opt_HEIGHT(ar[i]); } + if (parsemode == CLOSETEXT) { parsemode = opt_CLOSETEXT(ar[i]); } + if (parsemode == SNAPX) { parsemode = opt_SNAPX(ar[i]); } + if (parsemode == SNAPY) { parsemode = opt_SNAPY(ar[i]); } + if (parsemode == FIXX) { parsemode = opt_FIXX(ar[i]); } + if (parsemode == FIXY) { parsemode = opt_FIXY(ar[i]); } + if (parsemode == FGBACKGROUND) { parsemode = opt_FGBACKGROUND(ar[i]); } + if (parsemode == BGBACKGROUND) { parsemode = opt_BGBACKGROUND(ar[i]); } + if (parsemode == PADX2) { parsemode = opt_PADX2(ar[i]); } // must be before PADX + if (parsemode == PADY2) { parsemode = opt_PADY2(ar[i]); } // must be before PADY + if (parsemode == PADX) { parsemode = opt_PADX(ar[i]); } + if (parsemode == PADY) { parsemode = opt_PADY(ar[i]); } + if (parsemode == CAPICON) { parsemode = opt_CAPICON(ar[i]); } + if (parsemode == TEXTFONT) { parsemode = opt_TEXTFONT(ar[i]); } + if (parsemode == CAPTIONFONT) { parsemode = opt_CAPTIONFONT(ar[i]); } + if (parsemode == CLOSEFONT) { parsemode = opt_CLOSEFONT(ar[i]); } + if (parsemode == TEXTSIZE) { parsemode = opt_TEXTSIZE(ar[i]); } + if (parsemode == CAPTIONSIZE) { parsemode = opt_CAPTIONSIZE(ar[i]); } + if (parsemode == CLOSESIZE) { parsemode = opt_CLOSESIZE(ar[i]); } + if (parsemode == FRAME) { parsemode = opt_FRAME(ar[i]); } + if (parsemode == TIMEOUT) { parsemode = opt_TIMEOUT(ar[i]); } + if (parsemode == FUNCTION) { parsemode = opt_FUNCTION(ar[i]); } + if (parsemode == DELAY) { parsemode = opt_DELAY(ar[i]); } + + } + } + } + + if (o3_delay == 0) { + return box333(); + } else { + o3_delayid = setTimeout("box333()", o3_delay); + + if (o3_sticky) { + return false; + } else { + return true; + } + } +} + + + +// Clears popups if appropriate +function nd() { + if ( o3_removecounter >= 1 ) { o3_showingsticky = 0 }; + if ( (ns4) || (ie4) || (ns6) ) { + if ( o3_showingsticky == 0 ) { + o3_allowmove = 0; + if (over != null) hideObject(over); + } else { + o3_removecounter++; + } + } + + return true; +} + + + + + + + +//////////////////////////////////// +// OVERLIB 3.33 FUNCTION +//////////////////////////////////// + + +// This function decides what it is we want to display and how we want it done. +function box333() { + + // Make layer content + var layerhtml; + + if (o3_background != "" || o3_fullhtml) { + // Use background instead of box. + layerhtml = ol_content_background(o3_text, o3_background, o3_fullhtml); + } else { + // They want a popup box. + + // Prepare popup background + if (o3_fgbackground != "") { + o3_fgbackground = "BACKGROUND=\""+o3_fgbackground+"\""; + } + if (o3_bgbackground != "") { + o3_bgbackground = "BACKGROUND=\""+o3_bgbackground+"\""; + } + + // Prepare popup colors + if (o3_fgcolor != "") { + o3_fgcolor = "BGCOLOR=\""+o3_fgcolor+"\""; + } + if (o3_bgcolor != "") { + o3_bgcolor = "BGCOLOR=\""+o3_bgcolor+"\""; + } + + // Prepare popup height + if (o3_height > 0) { + o3_height = "HEIGHT=" + o3_height; + } else { + o3_height = ""; + } + + // Decide which kinda box. + if (o3_cap == "") { + // Plain + layerhtml = ol_content_simple(o3_text); + } else { + // With caption + if (o3_sticky) { + // Show close text + layerhtml = ol_content_caption(o3_text, o3_cap, o3_close); + } else { + // No close text + layerhtml = ol_content_caption(o3_text, o3_cap, ""); + } + } + } + + // We want it to stick! + if (o3_sticky) { + o3_showingsticky = 1; + o3_removecounter = 0; + } + + // Write layer + layerWrite(layerhtml); + + // Prepare status bar + if (o3_autostatus > 0) { + o3_status = o3_text; + if (o3_autostatus > 1) { + o3_status = o3_cap; + } + } + + // When placing the layer the first time, even stickies may be moved. + o3_allowmove = 0; + + // Initiate a timer for timeout + if (o3_timeout > 0) { + if (o3_timerid > 0) clearTimeout(o3_timerid); + o3_timerid = setTimeout("cClick()", o3_timeout); + } + + // Show layer + disp(o3_status); + + // Stickies should stay where they are. + if (o3_sticky) { + o3_allowmove = 0; + return false; + } else { + return true; + } +} + + + +//////////////////////////////////// +// LAYER GENERATION FUNCTIONS +//////////////////////////////////// + +// Makes simple table without caption +function ol_content_simple(text) { + txt = "
"+text+"
"; + set_background(""); + return txt; +} + +// Makes table with caption and optional close link +function ol_content_caption(text, title, close) { + closing = ""; + if (close != "") { + closing = ""+close+""; + } + if (o3_capicon != "") { + o3_capicon = " "; + } + txt = "
"+closing+"
"+o3_capicon+title+"
"+text+"
"; + set_background(""); + return txt; +} + +// Sets the background picture, padding and lots more :) +function ol_content_background(text, picture, hasfullhtml) { + if (hasfullhtml) { + txt = text; + } else { + txt = "
"+text+"
"; + } + set_background(picture); + return txt; +} + +// Loads a picture into the div. +function set_background(pic) { + if (pic == "") { + if (ie4) over.backgroundImage = "none"; + if (ns6) over.style.backgroundImage = "none"; + } else { + if (ns4) { + over.background.src = pic; + } else if (ie4) { + over.backgroundImage = "url("+pic+")"; + } else if (ns6) { + over.style.backgroundImage = "url("+pic+")"; + } + } +} + + + +//////////////////////////////////// +// HANDLING FUNCTIONS +//////////////////////////////////// + + +// Displays the popup +function disp(statustext) { + if ( (ns4) || (ie4) || (ns6) ) { + if (o3_allowmove == 0) { + placeLayer(); + showObject(over); + o3_allowmove = 1; + } + } + + if (statustext != "") { + self.status = statustext; + } +} + +// Decides where we want the popup. +function placeLayer() { + var placeX, placeY; + + // HORIZONTAL PLACEMENT + if (o3_fixx > -1) { + // Fixed position + placeX = o3_fixx; + } else { + winoffset = (ie4) ? o3_frame.document.body.scrollLeft : o3_frame.pageXOffset; + if (ie4) iwidth = o3_frame.document.body.clientWidth; + if (ns4) iwidth = o3_frame.innerWidth; // was screwed in mozilla, fixed now? + if (ns6) iwidth = o3_frame.outerWidth; + + // If HAUTO, decide what to use. + if (o3_hauto == 1) { + if ( (o3_x - winoffset) > ((eval(iwidth)) / 2)) { + o3_hpos = LEFT; + } else { + o3_hpos = RIGHT; + } + } + + // From mouse + if (o3_hpos == CENTER) { // Center + placeX = o3_x+o3_offsetx-(o3_width/2); + } + if (o3_hpos == RIGHT) { // Right + placeX = o3_x+o3_offsetx; + if ( (eval(placeX) + eval(o3_width)) > (winoffset + iwidth) ) { + placeX = iwidth + winoffset - o3_width; + if (placeX < 0) placeX = 0; + } + } + if (o3_hpos == LEFT) { // Left + placeX = o3_x-o3_offsetx-o3_width; + if (placeX < winoffset) placeX = winoffset; + } + + // Snapping! + if (o3_snapx > 1) { + var snapping = placeX % o3_snapx; + if (o3_hpos == LEFT) { + placeX = placeX - (o3_snapx + snapping); + } else { + // CENTER and RIGHT + placeX = placeX + (o3_snapx - snapping); + } + if (placeX < 0) placeX = 0; + } + } + + + + // VERTICAL PLACEMENT + if (o3_fixy > -1) { + // Fixed position + placeY = o3_fixy; + } else { + // If VAUTO, decide what to use. + if (o3_vauto == 1) { + if (ie4) iheight = o3_frame.document.body.clientHeight; + if (ns4) iheight = o3_frame.innerHeight; + if (ns6) iheight = o3_frame.outerHeight; + + iheight = (eval(iheight)) / 2; + if (o3_y > iheight) { + o3_vpos = ABOVE; + } else { + o3_vpos = BELOW; + } + } + + // From mouse + if (o3_aboveheight > 0 && o3_vpos == ABOVE) { + placeY = o3_y - (o3_aboveheight + o3_offsety); + } else { + // BELOW + placeY = o3_y + o3_offsety; + } + + // Snapping! + if (o3_snapy > 1) { + var snapping = placeY % o3_snapy; + + if (o3_aboveheight > 0 && o3_vpos == ABOVE) { + placeY = placeY - (o3_snapy + snapping); + } else { + placeY = placeY + (o3_snapy - snapping); + } + + if (placeY < 0) placeY = 0; + } + } + + + // Actually move the object. + repositionTo(over, placeX, placeY); +} + + +// Moves the layer +function mouseMove(e) { + if ( (ns4) || (ns6) ) {o3_x=e.pageX; o3_y=e.pageY;} + if (ie4) {o3_x=event.x; o3_y=event.y;} + if (ie5) {o3_x=event.x+o3_frame.document.body.scrollLeft; o3_y=event.y+o3_frame.document.body.scrollTop;} + + if (o3_allowmove == 1) { + placeLayer(); + } +} + +// The Close onMouseOver function for stickies +function cClick() { + hideObject(over); + o3_showingsticky = 0; +} + + +// Makes sure target frame has overLIB +function compatibleframe(frameid) { + if (ns4) { + if (typeof frameid.document.overDiv =='undefined') return false; + } else if (ie4) { + if (typeof frameid.document.all["overDiv"] =='undefined') return false; + } else if (ns6) { + if (frameid.document.getElementById('overDiv') == null) return false; + } + + return true; +} + + + +//////////////////////////////////// +// LAYER FUNCTIONS +//////////////////////////////////// + + +// Writes to a layer +function layerWrite(txt) { + txt += "\n"; + + if (ns4) { + var lyr = o3_frame.document.overDiv.document + + lyr.write(txt) + lyr.close() + } else if (ie4) { + o3_frame.document.all["overDiv"].innerHTML = txt + } else if (ns6) { + range = o3_frame.document.createRange(); + range.setStartBefore(over); + domfrag = range.createContextualFragment(txt); + while (over.hasChildNodes()) { + over.removeChild(over.lastChild); + } + over.appendChild(domfrag); + } +} + +// Make an object visible +function showObject(obj) { + if (ns4) obj.visibility = "show"; + else if (ie4) obj.visibility = "visible"; + else if (ns6) obj.style.visibility = "visible"; +} + +// Hides an object +function hideObject(obj) { + if (ns4) obj.visibility = "hide"; + else if (ie4) obj.visibility = "hidden"; + else if (ns6) obj.style.visibility = "hidden"; + if (o3_timerid > 0) clearTimeout(o3_timerid); + if (o3_delayid > 0) clearTimeout(o3_delayid); + o3_timerid = 0; + o3_delayid = 0; + self.status = ""; +} + +// Move a layer +function repositionTo(obj,xL,yL) { + if ( (ns4) || (ie4) ) { + obj.left = xL; + obj.top = yL; + } else if (ns6) { + obj.style.left = xL + "px"; + obj.style.top = yL+ "px"; + } +} + + + +//////////////////////////////////// +// PARSER FUNCTIONS +//////////////////////////////////// + + +// Sets text from array. +function opt_INARRAY(id) { + o3_text = ol_texts[id]; + return 0; +} + +// Sets caption from array. +function opt_CAPARRAY(id) { + o3_cap = ol_caps[id]; + return 0; +} + +// Sets stickiness. +function opt_STICKY(unused) { + o3_sticky = 1; + return 0; +} + +// Sets background picture. +function opt_BACKGROUND(file) { + o3_background = file; + return 0; +} + +// Sets use of close text. +function opt_NOCLOSE(unused) { + o3_close = ""; + return 0; +} + +// Sets caption. +function opt_CAPTION(text) { + o3_cap = text; + return 0; +} + +// Sets hpos, for LEFT, RIGHT and CENTER. +function opt_HPOS(pos) { + o3_hpos = pos; + return 0; +} + +// Sets the x offset +function opt_OFFSETX(offset) { + o3_offsetx = offset; + return 0; +} + +// Sets the y offset +function opt_OFFSETY(offset) { + o3_offsety = offset; + return 0; +} + + +// Sets the fg color +function opt_FGCOLOR(clr) { + o3_fgcolor = clr; + return 0; +} + +// Sets the bg color +function opt_BGCOLOR(clr) { + o3_bgcolor = clr; + return 0; +} + +// Sets the text color +function opt_TEXTCOLOR(clr) { + o3_textcolor = clr; + return 0; +} + +// Sets the caption color +function opt_CAPCOLOR(clr) { + o3_capcolor = clr; + return 0; +} + +// Sets the close color +function opt_CLOSECOLOR(clr) { + o3_closecolor = clr; + return 0; +} + +// Sets the popup width +function opt_WIDTH(pixels) { + o3_width = pixels; + return 0; +} + +// Sets the popup border width +function opt_BORDER(pixels) { + o3_border = pixels; + return 0; +} + +// Sets the status bar text +function opt_STATUS(text) { + o3_status = text; + return 0; +} + +// Sets that status bar text to the text +function opt_AUTOSTATUS(val) { + o3_autostatus = 1; + return 0; +} + +// Sets that status bar text to the caption +function opt_AUTOSTATUSCAP(val) { + o3_autostatus = 2; + return 0; +} + +// Sets the popup height +function opt_HEIGHT(pixels) { + o3_height = pixels; + o3_aboveheight = pixels; + return 0; +} + +// Sets the close text. +function opt_CLOSETEXT(text) { + o3_close = text; + return 0; +} + +// Sets horizontal snapping +function opt_SNAPX(pixels) { + o3_snapx = pixels; + return 0; +} + +// Sets vertical snapping +function opt_SNAPY(pixels) { + o3_snapy = pixels; + return 0; +} + +// Sets horizontal position +function opt_FIXX(pos) { + o3_fixx = pos; + return 0; +} + +// Sets vertical position +function opt_FIXY(pos) { + o3_fixy = pos; + return 0; +} + +// Sets the fg background +function opt_FGBACKGROUND(picture) { + o3_fgbackground = picture; + return 0; +} + +// Sets the bg background +function opt_BGBACKGROUND(picture) { + o3_bgbackground = picture; + return 0; +} + +// Sets the left x padding for background +function opt_PADX(pixels) { + o3_padxl = pixels; + return PADX2; +} + +// Sets the top y padding for background +function opt_PADY(pixels) { + o3_padyt = pixels; + return PADY2; +} + +// Sets the right x padding for background +function opt_PADX2(pixels) { + o3_padxr = pixels; + return 0; +} + +// Sets the bottom y padding for background +function opt_PADY2(pixels) { + o3_padyb = pixels; + return 0; +} + +// Sets that user provides full html. +function opt_FULLHTML(unused) { + o3_fullhtml = 1; + return 0; +} + +// Sets vpos, for ABOVE and BELOW +function opt_VPOS(pos) { + o3_vpos = pos; + return 0; +} + +// Sets the caption icon. +function opt_CAPICON(icon) { + o3_capicon = icon; + return 0; +} + +// Sets the text font +function opt_TEXTFONT(fontname) { + o3_textfont = fontname; + return 0; +} + +// Sets the caption font +function opt_CAPTIONFONT(fontname) { + o3_captionfont = fontname; + return 0; +} + +// Sets the close font +function opt_CLOSEFONT(fontname) { + o3_closefont = fontname; + return 0; +} + +// Sets the text font size +function opt_TEXTSIZE(fontsize) { + o3_textsize = fontsize; + return 0; +} + +// Sets the caption font size +function opt_CAPTIONSIZE(fontsize) { + o3_captionsize = fontsize; + return 0; +} + +// Sets the close font size +function opt_CLOSESIZE(fontsize) { + o3_closesize = fontsize; + return 0; +} + +// Defines which frame we should point to. +function opt_FRAME(frm) { + o3_frame = compatibleframe(frm) ? frm : ol_frame; + + if ( (ns4) || (ie4 || (ns6)) ) { + if (ns4) over = o3_frame.document.overDiv; + if (ie4) over = o3_frame.overDiv.style; + if (ns6) over = o3_frame.document.getElementById("overDiv"); + } + + return 0; +} + +// Sets the popup timeout (note: 1 sec = 1000) +function opt_TIMEOUT(maxtime) { + o3_timeout = maxtime; + return 0; +} + +// Calls an external function +function opt_FUNCTION(callme) { + o3_text = callme() + return 0; +} + +// Sets the popup delay (note: 1 sec = 1000) +function opt_DELAY(waittime) { + o3_delay = waittime; + return 0; +} + +// Sets the auto horizontal option +function opt_HAUTO(onoff) { + if (o3_hauto == 0) { + o3_hauto = 1; + } else { + o3_hauto = 0; + } + return 0; +} + +// Sets the auto vertical option +function opt_VAUTO(onoff) { + if (o3_vauto == 0) { + o3_vauto = 1; + } else { + o3_vauto = 0; + } + return 0; +} + + +//end (OF OVERLIB. OTHER ITEMS MAY FOLLOW) + + +// Opens a single window of parametered size, called "pannellino" +function makeWindow(W,H) { + if (W == null) { W = 567; } + if (H == null) { H = 378; } +W = W+16; +H = H+16; +window.open("","pannellino","width="+W+",height="+H+",innerwidth="+W+",innerheight="+H+",titlebar=no,title=no,resizable=no"); +} + +// Opens multiple windows of parametered size, each called "pannellinoN" (N = 1, 2, etc.) +// used in SMIGRA Coma +function makeWindow1(W,H,N) { + if (W == null) { W = 567; } + if (H == null) { H = 378; } +N = "pannellino"+N; +W = W+16; +H = H+16; +window.open("",N,"width="+W+",height="+H+",innerwidth="+W+",innerheight="+H+",titlebar=no,title=no,resizable=no"); +} + +// Opens a single window of parametered size, called "pannellone" +function makeWindow2(W,H) { + if (W == null) { W = 567; } + if (H == null) { H = 378; } +W = W+16; +H = H+16; +window.open("","pannellone","width="+W+",height="+H+",innerwidth="+W+",innerheight="+H+",titlebar=no,title=no,resizable=no"); +} + diff --git a/sources/book_2_files/Italy.gif b/sources/book_2_files/Italy.gif new file mode 100644 index 0000000..4e82f2c Binary files /dev/null and b/sources/book_2_files/Italy.gif differ diff --git a/sources/book_2_files/LIGHT.css b/sources/book_2_files/LIGHT.css new file mode 100644 index 0000000..e46698f --- /dev/null +++ b/sources/book_2_files/LIGHT.css @@ -0,0 +1,10 @@ +.running_title { + color: #000066 ! important; +} + .running_title .emend { + color: #0066cc ! important; + } + +.my_running_title { + color: #0066cc ! important; /* matches .emend */ +} diff --git a/sources/book_2_files/colors.css b/sources/book_2_files/colors.css new file mode 100644 index 0000000..dc4a17a --- /dev/null +++ b/sources/book_2_files/colors.css @@ -0,0 +1,2173 @@ +/* +KEEP IN THE FOLLOWING ORDER: + 1. GOOGLEMAP COLORS FIRST ▸ search for <1> + 2. PLAIN FONT COLORS NO BACKGROUNDS ▸ search for <2> + 3. PLAIN BACKGROUND COLORS ▸ search for <3> + 4. COMBINED FONT+BACKGROUND SCHEMES ▸ search for <4> +*/ + +/* +ideally: + plain color names should be for plain font colors + evocative names should be for combined schemes + */ + +/* +TABLES WITH ALTERNATING ROWS/BANDS: + Across all backgrounds and stylesheets, they are CLASS="Orvieto", + differently defined in the various stylesheets. + Model use: +E/Gazetteer/Places/America/United_States/_Topics/history/_Texts/DULOCT/Appendix*.html + */ + +/*<1>*/ + +SPAN.WalkColor { + color: #00bf40 ! important; +} + +SPAN.RideColor { + color: #cc6600 ! important; +} + +SPAN.ApproximateColor { + color: #ff99ff ! important; +} + +/*<2>*/ +/* +KEEP IN THE FOLLOWING ORDER: + 1. NAMED COLORS ▸ search for + 2. colorNNNNNN PLACEHOLDERS ▸ search for , within which: + 2a. WEBSAFE: xxyyzz with x, y, z = {0,3,6,9,C,F} + 2b. OTHER +*/ + +/**/ +.black { + color: #000000 ! important; + } + +.blue { + color: #0000ff ! important; +} + +.celadon { + color: #33CCFF ! important; + } + +.chancery { + color: #FF33FF ! important; + } + +.cordovan { + color: #993300 ! important; + } + +.fuchsia { + color: #ff00ff ! important; + } + +.green { + color: #009900 ! important; +} + +.dark_green { + color: #003300 ! important; + } + +.lawngreen { + color: #7cfc00 ! important; +} + +.light_green { + color: #33ff33 ! important; +} + + A.light_green { + background-color: inherit ! important; + color: #33ff33 ! important; + } + +.light_red { + color: #ff3333 ! important; +} + +.light_yellow { + color: #ffff33 ! important; +} + +.pale_green { + color: #ccffcc ! important; +} + + A.pale_green { + background-color: inherit ! important; + color: #ccffcc ! important; + } + +.pale_yellow { + color: #ffffcc ! important; +} + +.lemon { + color: #FFFF99 ! important; + } + +.maroon { + color: #990000 ! important; + } + +.muted { + color: #666666 ! important; + } + +.semimuted { + color: #999999 ! important; + } + +.ochre { + color: #996600 ! important; + } + +.ochre_yellow { + color: #ccad00 ! important; +} + +.orange { + color: #FFAA22 ! important; + } + +.pale_magenta { + color: #ff6699 ! important; +} + +.pale_purple { + color: #ffccff ! important; +} + + A.pale_purple { + background-color: inherit ! important; + color: #ffccff ! important; + } + +.purple { + color: #990099 ! important; + } + +.red { + color: #ff0000 ! important; +} + +.rust { + color: #CC6600 ! important; + } + +.salmon { + color: #ff6666 ! important; +} + +.USMA_gold { + color: #ffdd00 ! important; + } + +.USMA_stripes { + color: #fffb98 ! important; + } + +.violet { + color: #200080 ! important; +} + +/**/ + /**/ + /* Should eventually be replaced by mnemonic names */ + +.color001100 { + color: #001100 ! important; + } + +.color000033 { + color: #000033 ! important; + } + +.color000066 { + color: #000066 ! important; + } + +.color000099 { + color: #000099 ! important; + } + +.color0000CC { + color: #0000CC ! important; + } + +.color003333 { + color: #003333 ! important; + } + +.color003366 { + color: #003366 ! important; + } + +.color0033CC { + color: #0033CC ! important; + } + +.color006600 { + color: #006600 ! important; + } + +.color006633 { + color: #006633 ! important; + } + +.color0066CC { + color: #0066CC ! important; + } + +.color0066FF { + color: #0066FF ! important; + } + +.color00CC99 { + color: #00CC99 ! important; + } + +.color00FF99 { + color: #00FF99 ! important; + } + +.color330000 { + color: #330000 ! important; + } + +.color330033 { + color: #330033 ! important; + } + +.color333333 { + color: #333333 ! important; + } + +.color333300 { + color: #333300 ! important; + } + +.color333366 { + color: #333366 ! important; + } + +.color333399 { + color: #333399 ! important; + } + +.color3333CC { + color: #3333CC ! important; + } + +.color3333FF { + color: #3333FF ! important; + } + +.color336600 { + color: #336600 ! important; + } + +.color336633 { + color: #336633 ! important; + } + +.color3366FF { + color: #3366FF ! important; + } + +.color339900 { + color: #339900 ! important; + } + +.color339933 { + color: #339933 ! important; + } + +.color33FFFF { + color: #33FFFF ! important; + } + +.color660000 { + color: #660000 ! important; + } + +.color660033 { + color: #660033 ! important; + } + +.color660066 { + color: #660066 ! important; + } + +.color660099 { + color: #660099 ! important; + } + +.color663300 { + color: #663300 ! important; + } + +.color663333 { + color: #663333 ! important; + } + +.color6699CC { + color: #6699CC ! important; + } + +.color993333 { + color: #993333 ! important; + } + +.color996666 { + color: #996666 ! important; + } + +.color999999 { + color: #999999 ! important; + } + +.color99CCFF { + color: #99CCFF ! important; + } + +.color99FF66 { + color: #99FF66 ! important; + } + +.color99FFFF { + color: #99FFFF ! important; + } + +.colorCC0000 { + color: #CC0000 ! important; + } + +.colorCC0033 { + color: #CC0033 ! important; + } + +.colorCC0066 { + color: #CC0066 ! important; + } + +.colorCC0099 { + color: #CC0099 ! important; + } + +.colorCC00CC { + color: #CC00CC ! important; + } + +.colorCC3300 { + color: #CC3300 ! important; + } + +.colorCC6666 { + color: #CC6666 ! important; + } + +.colorCC9900 { + color: #CC9900 ! important; + } + +.colorCCCCFF { + color: #CCCCFF ! important; + } + +.colorCCFFCC { + color: #CCFFCC ! important; + } + +.colorCCFFFF { + color: #CCFFFF ! important; + } + +.colorFF0066 { + color: #FF0066 ! important; + } + +.colorFF0099 { + color: #FF0099 ! important; + } + +.colorFF3300 { + color: #FF3300 ! important; + } + +.colorFF6600 { + color: #FF6600 ! important; + } + +.colorFF9900 { + color: #FF9900 ! important; + } + +.colorFF9933 { + color: #FF9933 ! important; + } + +.colorFF9966 { + color: #FF9966 ! important; + } + +.colorFF9999 { + color: #FF9999 ! important; + } + +.colorFF99CC { + color: #FF99CC ! important; + } + +.colorFF99FF { + color: #FF99FF ! important; + } + +.colorFFCC00 { + color: #FFCC00 ! important; + } + +.colorFFCC33 { + color: #FFCC33 ! important; + } + +.colorFFCC66 { + color: #FFCC66 ! important; + } + +.colorFFCC99 { + color: #FFCC99 ! important; + } + +.colorFFCCCC { + color: #FFCCCC ! important; + } + +.colorFFFF00 { + color: #FFFF00 ! important; + } + +.colorFFFF66 { + color: #FFFF66 ! important; + } + +.colorFFFFFF { + color: #FFFFFF ! important; + } + + /**/ + +.color000090 { + color: #000090 ! important; + } + +.color002200 { + color: #002200 ! important; + } + +.color004000 { + color: #004000 ! important; + } + +.color0040B0 { + color: #0040B0 ! important; + } + +.color004400 { + color: #004400 ! important; + } + +.color004A00 { + color: #004A00 ! important; + } + +.color0060FF { + color: #0060FF ! important; + } + +.color006E3A { + color: #006E3A ! important; + } + +.color007000 { + color: #007000 ! important; + } + +.color008000 { + color: #008000 ! important; + } + +.color0080FF { + color: #0080FF ! important; + } + +.color008800 { + color: #008800 ! important; + } + +.color008C00 { + color: #008C00 ! important; + } + +.color0C3000 { + color: #0C3000 ! important; + } + +.color110000 { + color: #110000 ! important; + } + +.color110011 { + color: #110011 ! important; + } + +.color112200 { + color: #112200 ! important; + } + +.color200000 { + color: #200000 ! important; + } + +.color223344 { + color: #223344 ! important; + } + +.color330010 { + color: #330010 ! important; + } + +.color332222 { + color: #332222 ! important; + } + +.color3900D6 { + color: #3900D6 ! important; + } + +.color3900E6 { + color: #3900E6 ! important; + } + +.color400080 { + color: #400080 ! important; + } + +.color4040FF { + color: #4040FF ! important; + } + +.color410000 { + color: #410000 ! important; + } + +.color4B2700 { + color: #4B2700 ! important; + } + +.color4C1900 { + color: #4C1900 ! important; + } + +.color4C9900 { + color: #4C9900 ! important; + } + +.color5000D0 { + color: #5000D0 ! important; + } + +.color600000 { + color: #600000 ! important; + } + +.color6A0080 { + color: #6A0080 ! important; + } + +.color6F0000 { + color: #6F0000 ! important; + } + +.color800000 { + color: #800000 ! important; + } + +.color800080 { + color: #800080 ! important; + } + +.color802600 { + color: #802600 ! important; + } + +.color900000 { + color: #900000 ! important; + } + +.color903030 { + color: #903030 ! important; + } + +.color992200 { + color: #992200 ! important; + } + +.color994C4C { + color: #994C4C ! important; + } + +.color9C2973 { + color: #9C2973 ! important; + } + +.color9C6342 { + color: #9C6342 ! important; + } + +.colorA00000 { + color: #A00000 ! important; + } + +.colorAACC00 { + color: #AACC00 ! important; + } + +.colorBE5F00 { + color: #BE5F00 ! important; + } + +.colorC03A3A { + color: #C03A3A ! important; + } + +.colorCCCCDD { + color: #CCCCDD ! important; + } + +.colorD00000 { + color: #D00000 ! important; + } + +.colorD10022 { + color: #D10022 ! important; + } + +.colorD56A00 { + color: #D56A00 ! important; + } + +.colorDDDDCC { + color: #DDDDCC ! important; + } + +.colorDDDDDD { + color: #DDDDDD ! important; + } + +.colorDDDDEE { + color: #DDDDEE ! important; + } + +.colorDDDDFF { + color: #DDDDFF ! important; + } + +.colorDDFFCC { + color: #DDFFCC ! important; + } + +.colorE0FFCC { + color: #E0FFCC ! important; + } + +.colorE77300 { + color: #E77300 ! important; + } + +.colorEECC99 { + color: #EECC99 ! important; + } + +.colorEEEEEE { + color: #EEEEEE ! important; + } + +.colorEEEEFF { + color: #EEEEFF ! important; + } + +.colorEEFFFF { + color: #EEFFFF ! important; + } + +.colorFF002A { + color: #FF002A ! important; + } + +.colorFF4000 { + color: #FF4000 ! important; + } + +.colorFF5500 { + color: #FF5500 ! important; + } + +.colorFF6633 { + color: #FF6633 ! important; + } + +.colorFF7F00 { + color: #FF7F00 ! important; + } + +.colorFFAA00 { + color: #FFAA00 ! important; + } + +.colorFFBB88 { + color: #FFBB88 ! important; + } + +.colorFFDD00 { + color: #FFDD00 ! important; + } + +.colorFFDD99 { + color: #FFDD99 ! important; + } + +.colorFFDDBB { + color: #FFDDBB ! important; + } + +.colorFFDDDD { + color: #FFDDDD ! important; + } + +.colorFFDDEE { + color: #FFDDEE ! important; + } + +.colorFFEEDD { + color: #FFEEDD ! important; + } + +.colorFFEEEE { + color: #FFEEEE ! important; + } + +.colorFFFFEE { + color: #FFFFEE ! important; + } + +/*<3>*/ + +.aquawhite { + background-color: #f7fbff ! important; +} + +.bluewhite { + background-color: #f7f7ff ! important; +} + +.ecruwhite { + background-color: #fffff7 ! important; +} + +.redwhite { + background-color: #fff7f7 ! important; +} + +.bistre { + background-color: #cccc99 ! important; +} + +SPAN.bistre { + background-color: inherit ! important; + color: #cccc99 ! important; +} + +.ecru { + background-color: #ffffcc ! important; + color: #000066 ! important; +} + +SPAN.ecru { + background-color: inherit ! important; + color: #ffffcc ! important; +} + +.grey { + background-color: #cccccc ! important; +} + +SPAN.grey { + color: #cccccc ! important; +} + +.pale_grey { + background-color: #ddddee ! important; + } + +.paler_grey { + background-color: #eeeef6 ! important; + } + +.lagoon { + background-color: #99ffff ! important; + color: #000066 ! important; +} + + SPAN.lagoon { + background-color: inherit ! important; + color: #99ffff ! important; +} + +.lime { + background-color: #ccff99 ! important; +} + +.mist_green { + background-color: #e8ffe8 ! important; +} + +.mustard { + background-color: #ffcc44 ! important; +} + +.pale_blue { + background-color: #ccccff ! important; +} + SPAN.pale_blue { + background-color: inherit ! important; + color: #ccccff ! important; + } + +.hospital_wall { + background-color: #ccffcc ! important; +} + SPAN.hospital_wall { + background-color: inherit ! important; + color: #ccffcc ! important; + } + + A.hospital_wall { + background-color: inherit ! important; + color: #ccffcc ! important; + } + +.pale_red { + background-color: #ffcccc ! important; +} + SPAN.pale_red { + background-color: inherit ! important; + color: #ffcccc ! important; + } + + A.pale_red { + background-color: inherit ! important; + color: #ffcccc ! important; + } + +.pink { + background-color: #fff2ff ! important; +} + +.plaster { + background-color: #ffeedd ! important; +} + +.pumpkin { + background-color: #ff9933 ! important; +} + +.silver { + background-color: #f6f6ff ! important; +} + +.silver .emend { + color: #0066cc ! important; +} + +.sky { + background-color: #99ccff ! important; +} + SPAN.sky { + background-color: inherit ! important; + color: #99ccff ! important; + } + +.sunset { + background-color: #ffff99 ! important; +} + +.tawny { + background-color: #ffcc66 ! important; +} + + .tawny .Latin { + color: #660000 ! important; + } + + .tawny .lapis { + color: #660000 ! important; + } + + .tawny .nummus { + color: #660000 ! important; + } + + .tawny .Latin .emend { + color: #cc3399 ! important; + } + + .tawny .lapis .emend { + color: #cc3399 ! important; + } + + .tawny .nummus .emend { + color: #cc3399 ! important; + } + +.terracotta { + background-color: #ff9966 ! important; +} + +.white { + background-color: #ffffff ! important; + color: #000066 ! important; +} + + SPAN.white { + background-color: inherit ! important; + color: #ffffff ! important; + } + +/*<4>*/ + +.Acquaeortus { + background-color: #ff6666 ! important; + color: #ffffff ! important; +} + +.Air_Force { + background-color: #003366 ! important; + color: #ffffff ! important; +} + .Air_Force A { + color: #ffff33 ! important; + } + +.Algol { + background-color: #444444 ! important; + color: #ff6600 ! important; +} + + .Algol P { + color: #ff6600 ! important; + } + + .Algol .Italian { + color: #99ff99 ! important; + } + + .Algol .source { + color: #99ff99 ! important; + } + .Algol A { + color: #ffcccc ! important; + } + +.Algol2 { + background-color: #333333 ! important; + color: #ff6633 ! important; +} + + .Algol2 P { + color: #ff6633 ! important; + } + + .Algol2 .source { + color: #99ff99 ! important; + } + .Algol2 A { + color: #ffcccc ! important; + } + +.Americas { + background-color: #bbffff ! important; + color: #336633 ! important; +} + +.amphora { + background-color: #993333 ! important; + color: #ffffcc ! important; +} + + .amphora .Latin { + color: #ffff99 ! important; + } + + .amphora .lapis { + color: #ff9999 ! important; + } + + .amphora .nummus { + color: #ff9999 ! important; + } + .amphora A { + color: #33ff33 ! important; + } + +.angelica { + background-color: #99cc33 ! important; +} + +.angels { + background-color: #000099 ! important; + color: #ffff66 ! important; +} + .angels A { + color: #99ffff ! important; + } + +.Antares { + background-color: #000000 ! important; + color: #ff3300 ! important; +} + .Antares A { + color: #ffff66 ! important; + } + +.aqua { + background-color: #ccffff ! important; + color: #000066 ! important; +} + A.aqua { + background-color: inherit ! important; + color: #ccffff ! important; + } + + SPAN.aqua { + background-color: inherit ! important; + color: #ccffff ! important; + } + +.Arizona { + background-color: #ffe6cc ! important; +} + .Arizona .Italian { + color: #20bb44 ! important; + } + +.Arnhem { + background-color: #3333ff ! important; + color: #ffffff ! important; +} + + A.Arnhem { + background-color: inherit ! important; + color: #3333ff ! important; + } + + SPAN.Arnhem { + color: #ffffff ! important; + } + +.Augustus { + background-color: #660022 ! important; + color: #ffffff ! important; +} + .Augustus A { + color: #00ffcc ! important; + } + +.autumn { + background-color: #663333 ! important; + color: #ffcc99 ! important; +} + .autumn A { + color: #99ffff ! important; + } + +.autumn_gold { + background-color: #663333 ! important; + color: #ffff66 ! important; +} + +.autumn_sand { + background-color: #663333 ! important; + color: #ffffcc ! important; +} + +.azure { + background-color: #150080 ! important; + color: #ffffcc ! important; +} + +.Bonely { + background-color: #cccccc ! important; + color: #000011 ! important; +} + +.Boston_red { + color: #cc0000 ! important; +} + +.brick { + background-color: #773300 ! important; + color: #ffffff ! important; +} + + .brick .Latin { + color: #ffff99 ! important; + } + + .brick .lapis { + color: #ffff99 ! important; + } + + .brick .nummus { + color: #ffff99 ! important; + } + .brick A { + color: #33ff33 ! important; + } + +.brickstamp { + background-color: #ffcc99 ! important; +} + +.brickstamp1 { + background-color: #ffcc99 ! important; + color: #cc3333 ! important; +} + +.brickstamp2 { + background-color: #ffcc99 ! important; + color: #993333 ! important; +} + +.Britain { + background-color: #00237d ! important; + /*must be the same color as BODY in Britannia.css*/ + color: #ffffff ! important; +} + +.brown { + background-color: #330000 ! important; + color: #ffffcc ! important; +} + + .brown .Latin { + color: #ffcc66 ! important; + } + + .brown .lapis { + color: #ffcc66 ! important; + } + + .brown .nummus { + color: #ffcc66 ! important; + } + + .brown .source { + color: #99ff33 ! important; + } + + SPAN.brown { + background-color: inherit ! important; + color: #330000 ! important; + } + + SPAN.brown A { + color: #0000ff ! important; + } + .brown A { + color: #99ff99 ! important; + } + +.dark_brown { + background-color: #332222 ! important; + color: #ffffcc ! important; +} + + .dark_brown .Latin { + color: #ffcc66 ! important; + } + + .dark_brown .lapis { + color: #ffcc66 ! important; + } + + .dark_brown .nummus { + color: #ffcc66 ! important; + } + + .dark_brown .source { + color: #99ff33 ! important; + } + +.burgundy { + background-color: #330000 ! important; + color: #ffcccc ! important; +} + +.butterscotch { + background-color: #995500 ! important; + color: #ffffff ! important; +} + + .butterscotch .Latin { + color: #ffff99 ! important; + } + + .butterscotch .lapis { + color: #ffff99 ! important; + } + + .butterscotch .nummus { + color: #ffff99 ! important; + } + .butterscotch A { + color: #33ff33 ! important; + } + +.cadet_grey { + background-color: #a5a6bb ! important; + color: #000066 ! important; +} + +.light_cadet_grey { + background-color: #c5c6d3 ! important; + color: #000066 ! important; +} + +/* The red of the Cambodian flag is e00025; the color here is slightly bluer, and much darker, for readability and so as not to confuse it with a link. */ +/* OLD: +.Cambodia { + background-color: #ffffff ! important; + color: #bf0050 ! important; + border-color: #032ea1 ! important; + border-width: 2px ! important; +} + .Cambodia A { + color: #cc00ff ! important; + } + */ + +.Cambodia { + background-color: #e00025 ! important; + color: #ffffff ! important; + border-color: #032ea1 ! important; + border-width: 2px ! important; +} + .Cambodia A { + color: #99ffff ! important; + } + .Cambodia A.ref { + color: #99ffff ! important; + } + +.Canada { + background-color: #ffffff ! important; + color: #37495f ! important; /* matches the Canadian Government's site */ + border-color: #ff0000 ! important; +} + .Canada A { + color: #cc00ff ! important; + } + +.Capella { + background-color: #000000 ! important; + color: #ffffcc ! important; +} + .Capella A { + color: #ffff66 ! important; + } + + .Capella .source { + color: #66ff66 ! important; + } + +.caramel { + background-color: #996633 ! important; + color: #ffffff ! important; +} + .caramel A { + color: #bbbbff ! important; + } + +.Cartagena { + background-color: #ff6666 ! important; + color: #ffff99 ! important; +} + +.Catalunya { + background-color: #fcdd09 ! important; + color: #da131a ! important; + border-color: #da131a ! important; +} + .Catalunya A { + color: #cc00ff ! important; + } + +/* +The following style was called "Catholic" but I renamed it to avoid conflict with BODY CLASS= "Catholic". It appears to be very rarely called; but if in fact it is called a lot, I may have to revert the name. + */ +.Kapaun { + background-color: #90191b ! important; + color: #ffff33 ! important; + font-size: 90%; +} + .Kapaun A { + color: #ffff00 ! important; + } + +.charcoal { + background-color: #333333 ! important; + color: #ffffff ! important; +} + .charcoal A { + color: #ffff33 ! important; + } + +.checkColor { /* = ecru */ + background-color: #ffffcc ! important; +} + +.Chicago_maroon { + background-color: #cccccc ! important; + color: #990000 ! important; +} + +.Chile { + background-color: #ffffff ! important; + color: #0044cc ! important; + border-color: #d83820 ! important; +} + .Chile A { + color: #cc00ff ! important; + } + +.chocolate { + background-color: #330000 ! important; + color: #ffff99 ! important; +} + .chocolate A { + color: #33ff33 ! important; + } + +.Claudian { + background-color: #333333 ! important; + color: #cccccc ! important; +} + + .Claudian P { + color: #cccccc ! important; + } + + .Claudian .source { + color: #99ff99 ! important; + } + .Claudian A { + color: #66ccff ! important; + } + +.cobblestone { + background-color: #999999 ! important; + color: #ffffff ! important; +} + +.cocoa { + background-color: #665555 ! important; + color: #ffffcc ! important; +} + .cocoa A { + color: #33ccff ! important; + } + +.coffee { + background-color: #998866 ! important; + color: #ffffee ! important; +} + .coffee A { + color: #0033ff ! important; + } + +.crimson { + background-color: #990033 ! important; + color: #ffcc00 ! important; +} + + .crimson P { + color: #ffcc00 ! important; + } + +.daffodil { + background-color: #ffffff ! important; + color: #70a000 ! important; +} + +.Dalmatian { + background-color: #ffffff ! important; + color: #000000 ! important; +} + +.dandelion { + background-color: #003300 ! important; + color: #ffcc00 ! important; +} + .dandelion A { + color: #9999ff ! important; + } + + .dandelion .source { + color: #99ff99 ! important; + } + +.Daniel { + background-color: #006600 ! important; + color: #ffff99 ! important; +} + .Daniel A { + color: #ff6633 ! important; + } + +.dark_blue { + background-color: #003399 ! important; + color: #ffffff ! important; +} + .dark_blue A { + background-color: inherit ! important; + font-weight: bold; + color: #ffff33 ! important; + } + + SPAN.dark_blue { + color: #003399 ! important; + } + +.dark_pines { + background-color: #003300 ! important; + color: #ffffff ! important; +} + .dark_pines A { + color: #9999ff ! important; + } + + .dark_pines .source { + color: #99ff99 ! important; + } + +.dark_sepia { + background-color: #888877 ! important; + color: #ddddcc ! important; +} + .dark_sepia A { + color: #99ffff ! important; + } + + .dark_sepia .source { + color: #99ff99 ! important; + } + +.dark_slate { + background-color: #444444 ! important; + color: #ffffff ! important; +} + +.doughboy { + background-color: #a67c41 ! important; + color: #e5c68e ! important; +} + +.Dutch2 { + background-color: #ddffff ! important; /*e9feff*/ + color: #ee8800 ! important; /*eb810f*/ +} + +.early_spring { + background-color: #99cc66 ! important; + color: #ffffff ! important; +} + +.empyrean { + background-color: #000033 ! important; + color: #ffcc99 ! important; +} + .empyrean A { + color: #99ffff ! important; + } + + .empyrean .Latin { + color: #ff9999 ! important; + } + + .empyrean .lapis { + color: #ff9999 ! important; + } + + .empyrean .nummus { + color: #ff9999 ! important; + } + +.eucalyptus { + background-color: #669966 ! important; + color: #0033cc ! important; +} + .eucalyptus A { + color: #33ff33 ! important; + } + +.farmhouse { + background-color: #113300 ! important; + color: #ffffcc ! important; +} + .farmhouse A { + color: #99ccff ! important; + } + +.fertile { + background-color: #663300 ! important; + color: #33ff00 ! important; +} + +.Firenze_ghibellino { + background-color: #ff3333 ! important; + color: #ffffff ! important; +} + +.Firenze { + background-color: #ffffff ! important; + color: #ff3333 ! important; +} + +.forest_sunset { + background-color: #336633 ! important; + color: #ffddbb ! important; +} + .forest_sunset A { + color: #ccccff ! important; + } + +.French2 { + background-color: #99ccff ! important; + color: #ee4037 ! important; +} + +.French_paperback { + background-color: #fff7f2 ! important; + color: #b7375c ! important; +} + +.fudge { + background-color: #996600 ! important; + color: #ffffff ! important; +} + +.glauque { + background-color: #669999 ! important; + color: #ffffff ! important; +} + .glauque A { + color: #ccccff ! important; + } + .glauque A:visited { + color: #ffcccc ! important; + } + +.Gran_Colombia { + background-color: #fee88a ! important; + color: #0044cc ! important; /* why doesn't this work? */ + border-color: #d83820 ! important; +} + .Gran_Colombia TD { + color: #0044cc ! important; /* workaround because previous doesn't work! */ + } + + .Gran_Colombia A { + color: #339900 ! important; + } + +.grey_pines { + background-color: #336600 ! important; + color: #ccccff ! important; +} + .grey_pines A { + color: #ffffcc ! important; + } + + .grey_pines .source { + color: #99ff99 ! important; + } + + .grey_pines .Italian { + color: #7acc7a ! important; + } + +.Harlequin { + background-color: #000000 ! important; + color: #ffffff ! important; +} + .Harlequin A { + color: #ffff66 ! important; + } + + .Harlequin .source { + color: #66ff66 ! important; + } + + .Harlequin .bland { + color: #ffffff ! important; + } + +.imperial { + background-color: #4d0099 ! important; + color: #ffff66 ! important; +} + +.ink_blue { + background-color: #000033 ! important; + color: #ffffff ! important; +} + .ink_blue A { + color: #99ffff ! important; + } + + .ink_blue P { + color: #ffffff ! important; + } + + SPAN.ink_blue { + color: #000033 ! important; + } + +.Labro { + background-color: #506600 ! important; + color: #fff9e5 ! important; +} + +.landscape { + background-color: #559900 ! important; + color: #ffffff ! important; +} + +.laterite { + background-color: #cc6633 ! important; + color: #ccffff ! important; +} + +.late_spring { + background-color: #339900 ! important; + color: #ffcccc ! important; +} + .late_spring A { + font-weight: bold; + color: #ffff33 ! important; + } + +.light_ochre { + background-color: #cc9933 ! important; + color: #ffffff ! important; +} + +.limestone { + background-color: #ffffcc ! important; + color: #663300 ! important; +} + +.London { + background-color: #cccccc ! important; + color: #993333 ! important; +} + +.lupine { + background-color: #113300 ! important; + color: #ffffff ! important; +} + .lupine A { + color: #99ccff ! important; + } + +.marl { + background-color: #ffcccc ! important; + color: #333366 ! important; +} + +.mahogany { + background-color: #330000 ! important; + color: #ffffff ! important; +} + .mahogany A { + color: #33ff33 ! important; + } + + .mahogany A.comment { + color: #33ccff ! important; + font-weight: bold; + font-size: 85%; + } + + .mahogany .Latin { + color: #ff6600 ! important; + } + + .mahogany .Latin .emend { + color: #ffaa00 ! important; + } + + .mahogany .lapis { + color: #ff6600 ! important; + } + + .mahogany .lapis .emend { + color: #ffaa00 ! important; + } + +.masoor_dal { + background-color: #cc6600 ! important; + color: #ffffff ! important; +} + + .masoor_dal .Latin { + color: #ffff99 ! important; + } + + .masoor_dal .lapis { + color: #ffff99 ! important; + } + + .masoor_dal .nummus { + color: #ffff99 ! important; + } + .masoor_dal A { + color: #33ff33 ! important; + } + +.mimosa { + background-color: #336633 ! important; + color: #ffff99 ! important; +} + +.minium { + background-color: #ffe0aa ! important; + color: #cc0000 ! important; +} + +.mint { + background-color: #003300 ! important; + color: #ccffcc ! important; +} + .mint A { + color: #9999ff ! important; + } + + .mint .source { + color: #99ff99 ! important; + } + +.mordore { + background-color: #663300 ! important; + color: #ffffcc ! important; +} + .mordore A { + color: #33ff33 ! important; + } + + .mordore .emend { + color: #99ffff ! important; + } + + .mordore .Latin { + color: #ff3300 ! important; + } + + .mordore .Latin .emend { + color: #cc3399 ! important; + } + +.mossy_pavement { + background-color: #cccccc ! important; + color: #006600 ! important; +} + +.mourning_dove { + background-color: #a8a99b ! important; + color: #f1e0d6 ! important; +} + .mourning_dove A { + color: #4662d0 ! important; + } + +.MrWhite { + background-color: #ffffff ! important; + color: #993333 ! important; +} + +.Nar { + background-color: #808066 ! important; + color: #ffffcc ! important; +} + +.Navajo { + background-color: #330000 ! important; + color: #33ff00 ! important; +} + .Navajo A { + color: #99ff33 ! important; + } + +.navy { + background-color: #110044 ! important; + color: #ffffff ! important; +} + +.Netherlands { + background-color: #ffffff ! important; + color: #3075f6 ! important; + border-color: #f29e39 ! important; +} + .Netherlands A { + color: #cc00ff ! important; + } + +.Newburgh { + background-color: #b4b5cc ! important; + color: #fff600 ! important; +} + +.nicotine { + background-color: #ffffcc ! important; + color: #993333 ! important; +} + +.Nigeria { + background-color: #006600 ! important; + color: #ffffff ! important; +} + .Nigeria A { + color: #ff6633 ! important; + } + +.North_Carolina { + background-color: #ffffff ! important; + color: #003399 ! important;/*102f5f*/ + border-color: #bf2b45 ! important; +} + .North_Carolina A { + color: #ff6633 ! important; + } + +.old_belfry { + background-color: #998866 ! important; + color: #ddffff ! important; +} + +.olive { + background-color: #666633 ! important; + color: #ffffcc ! important; +} + .olive A { + color: #ccccff ! important; + } + +.dark_olive { + background-color: #333300 ! important; + color: #ffffff ! important; +} + .dark_olive A { + color: #99ffff ! important; + } + + .dark_olive .emend { + color: #ccffff ! important; + } + +.light_olive { + background-color: #999966 ! important; + color: #ffffcc ! important; +} + .light_olive A { + color: #ccccff ! important; + } + +.Oxford { + background-color: #ddeeff ! important; + color: #f36512 ! important; + font-weight: bold; +} + .Oxford A { + color: #993333 ! important; + } + + .Oxford .bland { + color: #000066 ! important; + font-weight: normal; +} + +SPAN.pale_yellow { + background-color: inherit ! important; + color: #ffffcc ! important; + } + +A.pale_yellow { + background-color: inherit ! important; + color: #ffffcc ! important; + } + +.paleo { + background-color: #e6d7b8 ! important; + color: #331900 ! important; +} + .paleo .Italian { + color: #20bb44 ! important; + } + +.parchment { + background-color: #ffffff ! important; + color: #663300 ! important; +} + +.Pentecost { + background-color: #660000 ! important; + color: #ffff66 ! important; +} + +.pietra_morta { + background-color: #ccccb0 ! important; + color: #330000 ! important; +} + +.pigeon { + background-color: #99cccc ! important; + color: #660000 ! important; +} + +.pines { + background-color: #447711 ! important; + color: #ffffff ! important; +} + .pines A { + color: #66ffff ! important; + } + + .pines .source { + color: #99ff99 ! important; + } + +.Ravenna { + background-color: #440055 ! important; + color: #ccffcc ! important; +} + +.red_wax { + background-color: #cc3333 ! important; + color: #ffffff ! important; +} + .red_wax A { + color: #66ffff ! important; + } + +.rockscape { + background-color: #330000 ! important; + color: #ccffff ! important; +} + .rockscape A { + color: #66ffff ! important; + } + +.sand { + background-color: #ffeeee ! important; + color: #663300 ! important; +} + +.sandstone { + background-color: #ffeedd ! important; + color: #663300 ! important; +} + +.shaded_stone { + background-color: #cccccc ! important; + color: #663300 ! important; +} + +.sigillata { + background-color: #660000 ! important; + color: #ffffff ! important; +} + .sigillata .Latin { + color: #ffff99 ! important; + } + .sigillata .lapis { + color: #ff9999 ! important; + } + .sigillata .nummus { + color: #ff9999 ! important; + } + .sigillata A { + color: #33ff33 ! important; + } + +.slate { + background-color: #666666 ! important; + color: #ffffff ! important; +} + +.spaceflight { + background-color: #150080 ! important; + color: #ffff66 ! important; +} + +.spearmint { + background-color: #ffffff ! important; + color: #006600 ! important; +} + +.spring { + background-color: #66cc00 ! important; + color: #ffffff ! important; +} + +.stone_walls { + background-color: #221100 ! important; + color: #cc7733 ! important; +} + .stone_walls A { + color: #66ffff ! important; + } + +.storm_pines { + background-color: #003300 ! important; + color: #cccccc ! important; +} + .storm_pines A { + color: #9999ff ! important; + } + .storm_pines .source { + color: #99ff99 ! important; + } + +.straw { + background-color: #ffffff ! important; + color: #996600 ! important; +} + +.summer { + background-color: #7c9645 ! important; + color: #ffffff ! important; +} + .summer A { + color: #0044ff ! important; + } + +.tobacco { + background-color: #663300 ! important; + color: #ffcc00 ! important; +} + +.toffee { + background-color: #cc9966 ! important; + color: #660000 ! important; +} + + .toffee .Latin { + color: #cc3300 ! important; + } + + .toffee .lapis { + color: #ffff99 ! important; + } + + .toffee .nummus { + color: #ffff99 ! important; + } + +.Ukraine { + background-color: #ffffff ! important; + color: #0056bd ! important; + border-color: #fed700 ! important; +} + +.umber { + background-color: #663300 ! important; + color: #ffffff ! important; +} + .umber A { + color: #33ff33 ! important; + } + .umber .emend { + color: #99ffff ! important; + } + .umber .Latin { + color: #ff3300 ! important; + } + .umber .Latin .emend { + color: #cc3399 ! important; + } + +.Venezuela { + background-color: #ffea80 ! important; + color: #152169 ! important; +} + +.very_green { + background-color: #002200 ! important; + color: #aacc00 ! important; +} + .very_green A { + color: #ccccff ! important; + } + +.wintergreen { + background-color: #ffffff ! important; + color: #0099cc ! important; +} + +.woodruff { + background-color: #336633 ! important; + color: #ffffff ! important; +} + .woodruff A { + color: #ccccff ! important; + } + .woodruff .emend { + color: #ddffff ! important; + } + +.Wyoming { + background-color: #ffffff ! important; + color: #003399 ! important; + border-color: #bf0b32 ! important; +} + .Wyoming A { + color: #ff6633 ! important; + } + +.zinnia { + background-color: #003300 ! important; + color: #ff8800 ! important; +} + + SPAN.zinnia { + background-color: inherit ! important; + color: #003300 ! important; +} + .zinnia A { + color: #6699ff ! important; + } + +/* ORVIETO */ +/* +BODY. TABLE.Orvieto { +} + */ diff --git a/sources/book_2_files/empty.gif b/sources/book_2_files/empty.gif new file mode 100644 index 0000000..d37a0bb Binary files /dev/null and b/sources/book_2_files/empty.gif differ diff --git a/sources/book_2_files/home_.gif b/sources/book_2_files/home_.gif new file mode 100644 index 0000000..4ec156c Binary files /dev/null and b/sources/book_2_files/home_.gif differ diff --git a/sources/book_2_files/home__small.gif b/sources/book_2_files/home__small.gif new file mode 100644 index 0000000..cf2137e Binary files /dev/null and b/sources/book_2_files/home__small.gif differ diff --git a/sources/book_2_files/logo__.gif b/sources/book_2_files/logo__.gif new file mode 100644 index 0000000..0fbb441 Binary files /dev/null and b/sources/book_2_files/logo__.gif differ diff --git a/sources/book_2_files/next.gif b/sources/book_2_files/next.gif new file mode 100644 index 0000000..2f1682a Binary files /dev/null and b/sources/book_2_files/next.gif differ diff --git a/sources/book_2_files/ol.js b/sources/book_2_files/ol.js new file mode 100644 index 0000000..8ed611d --- /dev/null +++ b/sources/book_2_files/ol.js @@ -0,0 +1,8 @@ +!function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e():"function"==typeof define&&define.amd?define([],e):"object"==typeof exports?exports.ol=e():t.ol=e()}(window,function(){return function(t){var e={};function i(r){if(e[r])return e[r].exports;var n=e[r]={i:r,l:!1,exports:{}};return t[r].call(n.exports,n,n.exports,i),n.l=!0,n.exports}return i.m=t,i.c=e,i.d=function(t,e,r){i.o(t,e)||Object.defineProperty(t,e,{enumerable:!0,get:r})},i.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},i.t=function(t,e){if(1&e&&(t=i(t)),8&e)return t;if(4&e&&"object"==typeof t&&t&&t.__esModule)return t;var r=Object.create(null);if(i.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:t}),2&e&&"string"!=typeof t)for(var n in t)i.d(r,n,function(e){return t[e]}.bind(null,n));return r},i.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return i.d(e,"a",e),e},i.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},i.p="",i(i.s=9)}([function(t,e,i){"use strict";t.exports=n,t.exports.default=n;var r=i(5);function n(t,e){if(!(this instanceof n))return new n(t,e);this._maxEntries=Math.max(4,t||9),this._minEntries=Math.max(2,Math.ceil(.4*this._maxEntries)),e&&this._initFormat(e),this.clear()}function o(t,e,i){if(!i)return e.indexOf(t);for(var r=0;r=t.minX&&e.maxY>=t.minY}function y(t){return{children:t,height:1,leaf:!0,minX:1/0,minY:1/0,maxX:-1/0,maxY:-1/0}}function v(t,e,i,n,o){for(var s,a=[e,i];a.length;)(i=a.pop())-(e=a.pop())<=n||(s=e+Math.ceil((i-e)/n/2)*n,r(t,s,e,i,o),a.push(e,s,s,i))}n.prototype={all:function(){return this._all(this.data,[])},search:function(t){var e=this.data,i=[],r=this.toBBox;if(!g(t,e))return i;for(var n,o,s,a,h=[];e;){for(n=0,o=e.children.length;n=0&&o[e].children.length>this._maxEntries;)this._split(o,e),e--;this._adjustParentBBoxes(n,o,e)},_split:function(t,e){var i=t[e],r=i.children.length,n=this._minEntries;this._chooseSplitAxis(i,n,r);var o=this._chooseSplitIndex(i,n,r),a=y(i.children.splice(o,i.children.length-o));a.height=i.height,a.leaf=i.leaf,s(i,this.toBBox),s(a,this.toBBox),e?t[e-1].children.push(a):this._splitRoot(i,a)},_splitRoot:function(t,e){this.data=y([t,e]),this.data.height=t.height+1,this.data.leaf=!1,s(this.data,this.toBBox)},_chooseSplitIndex:function(t,e,i){var r,n,o,s,h,l,u,c;for(l=u=1/0,r=e;r<=i-e;r++)s=f(n=a(t,0,r,this.toBBox),o=a(t,r,i,this.toBBox)),h=p(n)+p(o),s=e;n--)o=t.children[n],h(u,t.leaf?s(o):o),p+=c(u);return p},_adjustParentBBoxes:function(t,e,i){for(var r=i;r>=0;r--)h(e[r],t)},_condense:function(t){for(var e,i=t.length-1;i>=0;i--)0===t[i].children.length?i>0?(e=t[i-1].children).splice(e.indexOf(t[i]),1):this.clear():s(t[i],this.toBBox)},_initFormat:function(t){var e=["return a"," - b",";"];this.compareMinX=new Function("a","b",e.join(t[0])),this.compareMinY=new Function("a","b",e.join(t[1])),this.toBBox=new Function("a","return {minX: a"+t[0]+", minY: a"+t[1]+", maxX: a"+t[2]+", maxY: a"+t[3]+"};")}}},function(t,e,i){"use strict";t.exports=n;var r=i(6);function n(t){this.buf=ArrayBuffer.isView&&ArrayBuffer.isView(t)?t:new Uint8Array(t||0),this.pos=0,this.type=0,this.length=this.buf.length}n.Varint=0,n.Fixed64=1,n.Bytes=2,n.Fixed32=5;function o(t){return t.type===n.Bytes?t.readVarint()+t.pos:t.pos+1}function s(t,e,i){return i?4294967296*e+(t>>>0):4294967296*(e>>>0)+(t>>>0)}function a(t,e,i){var r=e<=16383?1:e<=2097151?2:e<=268435455?3:Math.ceil(Math.log(e)/(7*Math.LN2));i.realloc(r);for(var n=i.pos-1;n>=t;n--)i.buf[n+r]=i.buf[n]}function h(t,e){for(var i=0;i>>8,t[i+2]=e>>>16,t[i+3]=e>>>24}function m(t,e){return(t[e]|t[e+1]<<8|t[e+2]<<16)+(t[e+3]<<24)}n.prototype={destroy:function(){this.buf=null},readFields:function(t,e,i){for(i=i||this.length;this.pos>3,o=this.pos;this.type=7&r,t(n,e,this),this.pos===o&&this.skip(r)}return e},readMessage:function(t,e){return this.readFields(t,e,this.readVarint()+this.pos)},readFixed32:function(){var t=y(this.buf,this.pos);return this.pos+=4,t},readSFixed32:function(){var t=m(this.buf,this.pos);return this.pos+=4,t},readFixed64:function(){var t=y(this.buf,this.pos)+4294967296*y(this.buf,this.pos+4);return this.pos+=8,t},readSFixed64:function(){var t=y(this.buf,this.pos)+4294967296*m(this.buf,this.pos+4);return this.pos+=8,t},readFloat:function(){var t=r.read(this.buf,this.pos,!0,23,4);return this.pos+=4,t},readDouble:function(){var t=r.read(this.buf,this.pos,!0,52,8);return this.pos+=8,t},readVarint:function(t){var e,i,r=this.buf;return e=127&(i=r[this.pos++]),i<128?e:(e|=(127&(i=r[this.pos++]))<<7,i<128?e:(e|=(127&(i=r[this.pos++]))<<14,i<128?e:(e|=(127&(i=r[this.pos++]))<<21,i<128?e:function(t,e,i){var r,n,o=i.buf;if(n=o[i.pos++],r=(112&n)>>4,n<128)return s(t,r,e);if(n=o[i.pos++],r|=(127&n)<<3,n<128)return s(t,r,e);if(n=o[i.pos++],r|=(127&n)<<10,n<128)return s(t,r,e);if(n=o[i.pos++],r|=(127&n)<<17,n<128)return s(t,r,e);if(n=o[i.pos++],r|=(127&n)<<24,n<128)return s(t,r,e);if(n=o[i.pos++],r|=(1&n)<<31,n<128)return s(t,r,e);throw new Error("Expected varint not more than 10 bytes")}(e|=(15&(i=r[this.pos]))<<28,t,this))))},readVarint64:function(){return this.readVarint(!0)},readSVarint:function(){var t=this.readVarint();return t%2==1?(t+1)/-2:t/2},readBoolean:function(){return Boolean(this.readVarint())},readString:function(){var t=this.readVarint()+this.pos,e=function(t,e,i){var r="",n=e;for(;n239?4:h>223?3:h>191?2:1;if(n+u>i)break;1===u?h<128&&(l=h):2===u?128==(192&(o=t[n+1]))&&(l=(31&h)<<6|63&o)<=127&&(l=null):3===u?(o=t[n+1],s=t[n+2],128==(192&o)&&128==(192&s)&&((l=(15&h)<<12|(63&o)<<6|63&s)<=2047||l>=55296&&l<=57343)&&(l=null)):4===u&&(o=t[n+1],s=t[n+2],a=t[n+3],128==(192&o)&&128==(192&s)&&128==(192&a)&&((l=(15&h)<<18|(63&o)<<12|(63&s)<<6|63&a)<=65535||l>=1114112)&&(l=null)),null===l?(l=65533,u=1):l>65535&&(l-=65536,r+=String.fromCharCode(l>>>10&1023|55296),l=56320|1023&l),r+=String.fromCharCode(l),n+=u}return r}(this.buf,this.pos,t);return this.pos=t,e},readBytes:function(){var t=this.readVarint()+this.pos,e=this.buf.subarray(this.pos,t);return this.pos=t,e},readPackedVarint:function(t,e){var i=o(this);for(t=t||[];this.pos127;);else if(e===n.Bytes)this.pos=this.readVarint()+this.pos;else if(e===n.Fixed32)this.pos+=4;else{if(e!==n.Fixed64)throw new Error("Unimplemented type: "+e);this.pos+=8}},writeTag:function(t,e){this.writeVarint(t<<3|e)},realloc:function(t){for(var e=this.length||16;e268435455||t<0?function(t,e){var i,r;t>=0?(i=t%4294967296|0,r=t/4294967296|0):(r=~(-t/4294967296),4294967295^(i=~(-t%4294967296))?i=i+1|0:(i=0,r=r+1|0));if(t>=0x10000000000000000||t<-0x10000000000000000)throw new Error("Given varint doesn't fit into 10 bytes");e.realloc(10),function(t,e,i){i.buf[i.pos++]=127&t|128,t>>>=7,i.buf[i.pos++]=127&t|128,t>>>=7,i.buf[i.pos++]=127&t|128,t>>>=7,i.buf[i.pos++]=127&t|128,t>>>=7,i.buf[i.pos]=127&t}(i,0,e),function(t,e){var i=(7&t)<<4;if(e.buf[e.pos++]|=i|((t>>>=3)?128:0),!t)return;if(e.buf[e.pos++]=127&t|((t>>>=7)?128:0),!t)return;if(e.buf[e.pos++]=127&t|((t>>>=7)?128:0),!t)return;if(e.buf[e.pos++]=127&t|((t>>>=7)?128:0),!t)return;if(e.buf[e.pos++]=127&t|((t>>>=7)?128:0),!t)return;e.buf[e.pos++]=127&t}(r,e)}(t,this):(this.realloc(4),this.buf[this.pos++]=127&t|(t>127?128:0),t<=127||(this.buf[this.pos++]=127&(t>>>=7)|(t>127?128:0),t<=127||(this.buf[this.pos++]=127&(t>>>=7)|(t>127?128:0),t<=127||(this.buf[this.pos++]=t>>>7&127))))},writeSVarint:function(t){this.writeVarint(t<0?2*-t-1:2*t)},writeBoolean:function(t){this.writeVarint(Boolean(t))},writeString:function(t){t=String(t),this.realloc(4*t.length),this.pos++;var e=this.pos;this.pos=function(t,e,i){for(var r,n,o=0;o55295&&r<57344){if(!n){r>56319||o+1===e.length?(t[i++]=239,t[i++]=191,t[i++]=189):n=r;continue}if(r<56320){t[i++]=239,t[i++]=191,t[i++]=189,n=r;continue}r=n-55296<<10|r-56320|65536,n=null}else n&&(t[i++]=239,t[i++]=191,t[i++]=189,n=null);r<128?t[i++]=r:(r<2048?t[i++]=r>>6|192:(r<65536?t[i++]=r>>12|224:(t[i++]=r>>18|240,t[i++]=r>>12&63|128),t[i++]=r>>6&63|128),t[i++]=63&r|128)}return i}(this.buf,t,this.pos);var i=this.pos-e;i>=128&&a(e,i,this),this.pos=e-1,this.writeVarint(i),this.pos+=i},writeFloat:function(t){this.realloc(4),r.write(this.buf,t,this.pos,!0,23,4),this.pos+=4},writeDouble:function(t){this.realloc(8),r.write(this.buf,t,this.pos,!0,52,8),this.pos+=8},writeBytes:function(t){var e=t.length;this.writeVarint(e),this.realloc(e);for(var i=0;i=128&&a(i,r,this),this.pos=i-1,this.writeVarint(r),this.pos+=r},writeMessage:function(t,e,i){this.writeTag(t,n.Bytes),this.writeRawMessage(e,i)},writePackedVarint:function(t,e){this.writeMessage(t,h,e)},writePackedSVarint:function(t,e){this.writeMessage(t,l,e)},writePackedBoolean:function(t,e){this.writeMessage(t,c,e)},writePackedFloat:function(t,e){this.writeMessage(t,u,e)},writePackedDouble:function(t,e){this.writeMessage(t,p,e)},writePackedFixed32:function(t,e){this.writeMessage(t,d,e)},writePackedSFixed32:function(t,e){this.writeMessage(t,f,e)},writePackedFixed64:function(t,e){this.writeMessage(t,_,e)},writePackedSFixed64:function(t,e){this.writeMessage(t,g,e)},writeBytesField:function(t,e){this.writeTag(t,n.Bytes),this.writeBytes(e)},writeFixed32Field:function(t,e){this.writeTag(t,n.Fixed32),this.writeFixed32(e)},writeSFixed32Field:function(t,e){this.writeTag(t,n.Fixed32),this.writeSFixed32(e)},writeFixed64Field:function(t,e){this.writeTag(t,n.Fixed64),this.writeFixed64(e)},writeSFixed64Field:function(t,e){this.writeTag(t,n.Fixed64),this.writeSFixed64(e)},writeVarintField:function(t,e){this.writeTag(t,n.Varint),this.writeVarint(e)},writeSVarintField:function(t,e){this.writeTag(t,n.Varint),this.writeSVarint(e)},writeStringField:function(t,e){this.writeTag(t,n.Bytes),this.writeString(e)},writeFloatField:function(t,e){this.writeTag(t,n.Fixed32),this.writeFloat(e)},writeDoubleField:function(t,e){this.writeTag(t,n.Fixed64),this.writeDouble(e)},writeBooleanField:function(t,e){this.writeVarintField(t,Boolean(e))}}},function(t,e,i){var r=i(7);e.Processor=r},,,function(t,e,i){t.exports=function(){"use strict";function t(t,e,i){var r=t[e];t[e]=t[i],t[i]=r}function e(t,e){return te?1:0}return function(i,r,n,o,s){!function e(i,r,n,o,s){for(;o>n;){if(o-n>600){var a=o-n+1,h=r-n+1,l=Math.log(a),u=.5*Math.exp(2*l/3),p=.5*Math.sqrt(l*u*(a-u)/a)*(h-a/2<0?-1:1),c=Math.max(n,Math.floor(r-h*u/a+p)),d=Math.min(o,Math.floor(r+(a-h)*u/a+p));e(i,r,c,d,s)}var f=i[r],_=n,g=o;for(t(i,n,r),s(i[o],f)>0&&t(i,n,o);_0;)g--}0===s(i[n],f)?t(i,n,g):t(i,++g,o),g<=r&&(n=g+1),r<=g&&(o=g-1)}}(i,r,n||0,o||i.length-1,s||e)}}()},function(t,e){e.read=function(t,e,i,r,n){var o,s,a=8*n-r-1,h=(1<>1,u=-7,p=i?n-1:0,c=i?-1:1,d=t[e+p];for(p+=c,o=d&(1<<-u)-1,d>>=-u,u+=a;u>0;o=256*o+t[e+p],p+=c,u-=8);for(s=o&(1<<-u)-1,o>>=-u,u+=r;u>0;s=256*s+t[e+p],p+=c,u-=8);if(0===o)o=1-l;else{if(o===h)return s?NaN:1/0*(d?-1:1);s+=Math.pow(2,r),o-=l}return(d?-1:1)*s*Math.pow(2,o-r)},e.write=function(t,e,i,r,n,o){var s,a,h,l=8*o-n-1,u=(1<>1,c=23===n?Math.pow(2,-24)-Math.pow(2,-77):0,d=r?0:o-1,f=r?1:-1,_=e<0||0===e&&1/e<0?1:0;for(e=Math.abs(e),isNaN(e)||e===1/0?(a=isNaN(e)?1:0,s=u):(s=Math.floor(Math.log(e)/Math.LN2),e*(h=Math.pow(2,-s))<1&&(s--,h*=2),(e+=s+p>=1?c/h:c*Math.pow(2,1-p))*h>=2&&(s++,h/=2),s+p>=u?(a=0,s=u):s+p>=1?(a=(e*h-1)*Math.pow(2,n),s+=p):(a=e*Math.pow(2,p-1)*Math.pow(2,n),s=0));n>=8;t[i+d]=255&a,d+=f,a/=256,n-=8);for(s=s<0;t[i+d]=255&s,d+=f,s/=256,l-=8);t[i+d-f]|=128*_}},function(t,e,i){var r=i(8).newImageData;function n(t){var e=!0;try{new ImageData(10,10)}catch(t){e=!1}function i(t,i,r){return e?new ImageData(t,i,r):{data:t,width:i,height:r}}return function(e){var r,n,o=e.buffers,s=e.meta,a=e.imageOps,h=e.width,l=e.height,u=o.length,p=o[0].byteLength;if(a){var c=new Array(u);for(n=0;nthis._maxQueueLength;)this._queue.shift().callback(null,null)},s.prototype._dispatch=function(){if(0===this._running&&this._queue.length>0){var t=this._job=this._queue.shift(),e=t.inputs[0].width,i=t.inputs[0].height,r=t.inputs.map(function(t){return t.data.buffer}),n=this._workers.length;if(this._running=n,1===n)this._workers[0].postMessage({buffers:r,meta:t.meta,imageOps:this._imageOps,width:e,height:i},r);else for(var o=t.inputs[0].data.length,s=4*Math.ceil(o/4/n),a=0;a0},e.prototype.removeEventListener=function(t,e){var i=this.listeners_[t];if(i){var r=i.indexOf(e);t in this.pendingRemovals_?(i[r]=I,++this.pendingRemovals_[t]):(i.splice(r,1),0===i.length&&delete this.listeners_[t])}},e}(C),M={CHANGE:"change",CLEAR:"clear",CONTEXTMENU:"contextmenu",CLICK:"click",DBLCLICK:"dblclick",DRAGENTER:"dragenter",DRAGOVER:"dragover",DROP:"drop",ERROR:"error",KEYDOWN:"keydown",KEYPRESS:"keypress",LOAD:"load",MOUSEDOWN:"mousedown",MOUSEMOVE:"mousemove",MOUSEOUT:"mouseout",MOUSEUP:"mouseup",MOUSEWHEEL:"mousewheel",MSPOINTERDOWN:"MSPointerDown",RESIZE:"resize",TOUCHSTART:"touchstart",TOUCHMOVE:"touchmove",TOUCHEND:"touchend",WHEEL:"wheel"};var F=function(t){function e(){t.call(this),this.revision_=0}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.changed=function(){++this.revision_,this.dispatchEvent(M.CHANGE)},e.prototype.getRevision=function(){return this.revision_},e.prototype.on=function(t,e){if(Array.isArray(t)){for(var i=t.length,r=new Array(i),n=0;n0;)this.pop()},e.prototype.extend=function(t){for(var e=0,i=t.length;ee?1:t=0}function z(t,e,i){var r,n=t.length;if(t[0]<=e)return 0;if(e<=t[n-1])return n-1;if(i>0){for(r=1;r>>0,n=0;nn&&(h|=$.RIGHT),ao&&(h|=$.ABOVE),h===$.UNKNOWN&&(h=$.INTERSECTING),h}function ht(){return[1/0,1/0,-1/0,-1/0]}function lt(t,e,i,r,n){return n?(n[0]=t,n[1]=e,n[2]=i,n[3]=r,n):[t,e,i,r]}function ut(t){return lt(1/0,1/0,-1/0,-1/0,t)}function pt(t,e){var i=t[0],r=t[1];return lt(i,r,i,r,e)}function ct(t,e,i,r,n){return yt(ut(n),t,e,i,r)}function dt(t,e){return t[0]==e[0]&&t[2]==e[2]&&t[1]==e[1]&&t[3]==e[3]}function ft(t,e){return e[0]t[2]&&(t[2]=e[2]),e[1]t[3]&&(t[3]=e[3]),t}function _t(t,e){e[0]t[2]&&(t[2]=e[0]),e[1]t[3]&&(t[3]=e[1])}function gt(t,e){for(var i=0,r=e.length;ie[0]?r[0]=t[0]:r[0]=e[0],t[1]>e[1]?r[1]=t[1]:r[1]=e[1],t[2]=e[0]&&t[1]<=e[3]&&t[3]>=e[1]}function bt(t){return t[2]1?(i=n,r=o):h>0&&(i+=s*h,r+=a*h)}return Yt(t,e,i,r)}function Yt(t,e,i,r){var n=i-t,o=r-e;return n*n+o*o}function Bt(t){return 180*t/Math.PI}function Vt(t){return t*Math.PI/180}function Xt(t,e){var i=t%e;return i*e<0?i+e:i}function zt(t,e,i){return t+i*(e-t)} +/** + * @license + * Latitude/longitude spherical geodesy formulae taken from + * http://www.movable-type.co.uk/scripts/latlong.html + * Licensed under CC-BY-3.0. + */var Wt=6371008.8;function Kt(t,e,i){var r=i||Wt,n=Vt(t[1]),o=Vt(e[1]),s=(o-n)/2,a=Vt(e[0]-t[0])/2,h=Math.sin(s)*Math.sin(s)+Math.sin(a)*Math.sin(a)*Math.cos(n)*Math.cos(o);return 2*r*Math.atan2(Math.sqrt(h),Math.sqrt(1-h))}function Ht(t,e){for(var i=0,r=0,n=t.length;r1?i:2,o=e;void 0===o&&(o=n>2?t.slice():new Array(r));for(var s=re,a=0;as?h=s:h<-s&&(h=-s),o[a+1]=h}return o}function le(t,e,i){var r=t.length,n=i>1?i:2,o=e;void 0===o&&(o=n>2?t.slice():new Array(r));for(var s=0;s=2;--l)s[a+l]=e[a+l]}return s}}function we(t,e,i,r){var n=Ee(t),o=Ee(e);ge(n,o,Re(i)),ge(o,n,Re(r))}function Ie(t,e){if(t===e)return!0;var i=t.getUnits()===e.getUnits();return t.getCode()===e.getCode()?i:Le(t,e)===ve&&i}function Le(t,e){var i=ye(t.getCode(),e.getCode());return i||(i=me),i}function Oe(t,e){return Le(Ee(t),Ee(e))}function Pe(t,e,i){return Oe(e,i)(t,void 0,t.length)}function be(t,e,i){return Ft(t,Oe(e,i))}Te(ae),Te(de),function(t,e,i,r){t.forEach(function(t){e.forEach(function(e){ge(t,e,i),ge(e,t,r)})})}(de,ae,he,le);var Me=new Array(6);function Fe(t){return Ne(t,1,0,0,1,0,0)}function Ae(t,e){var i=t[0],r=t[1],n=t[2],o=t[3],s=t[4],a=t[5],h=e[0],l=e[1],u=e[2],p=e[3],c=e[4],d=e[5];return t[0]=i*h+n*l,t[1]=r*h+o*l,t[2]=i*u+n*p,t[3]=r*u+o*p,t[4]=i*c+n*d+s,t[5]=r*c+o*d+a,t}function Ne(t,e,i,r,n,o,s){return t[0]=e,t[1]=i,t[2]=r,t[3]=n,t[4]=o,t[5]=s,t}function Ge(t,e){return t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[4]=e[4],t[5]=e[5],t}function De(t,e){var i=e[0],r=e[1];return e[0]=t[0]*i+t[2]*r+t[4],e[1]=t[1]*i+t[3]*r+t[5],e}function ke(t,e){var i=Math.cos(e),r=Math.sin(e);return Ae(t,Ne(Me,i,r,-r,i,0,0))}function je(t,e,i){return Ae(t,Ne(Me,e,0,0,i,0,0))}function Ue(t,e,i){return Ae(t,Ne(Me,1,0,0,1,e,i))}function Ye(t,e,i,r,n,o,s,a){var h=Math.sin(o),l=Math.cos(o);return t[0]=r*l,t[1]=n*h,t[2]=-r*h,t[3]=n*l,t[4]=s*r*l-a*r*h+e,t[5]=s*n*h+a*n*l+i,t}function Be(t){var e=function(t){return t[0]*t[3]-t[1]*t[2]}(t);Y(0!==e,32);var i=t[0],r=t[1],n=t[2],o=t[3],s=t[4],a=t[5];return t[0]=o/e,t[1]=-r/e,t[2]=-n/e,t[3]=i/e,t[4]=(n*a-o*s)/e,t[5]=-(i*a-r*s)/e,t}var Ve=[1,0,0,1,0,0],Xe=function(t){function e(){t.call(this),this.extent_=[1/0,1/0,-1/0,-1/0],this.extentRevision_=-1,this.simplifiedGeometryCache={},this.simplifiedGeometryMaxMinSquaredTolerance=0,this.simplifiedGeometryRevision=0}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.clone=function(){return r()},e.prototype.closestPointXY=function(t,e,i,n){return r()},e.prototype.containsXY=function(t,e){return!1},e.prototype.getClosestPoint=function(t,e){var i=e||[NaN,NaN];return this.closestPointXY(t[0],t[1],i,1/0),i},e.prototype.intersectsCoordinate=function(t){return this.containsXY(t[0],t[1])},e.prototype.computeExtent=function(t){return r()},e.prototype.getExtent=function(t){return this.extentRevision_!=this.getRevision()&&(this.extent_=this.computeExtent(this.extent_),this.extentRevision_=this.getRevision()),function(t,e){return e?(e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],e):t}(this.extent_,t)},e.prototype.rotate=function(t,e){r()},e.prototype.scale=function(t,e,i){r()},e.prototype.simplify=function(t){return this.getSimplifiedGeometry(t*t)},e.prototype.getSimplifiedGeometry=function(t){return r()},e.prototype.getType=function(){return r()},e.prototype.applyTransform=function(t){r()},e.prototype.intersectsExtent=function(t){return r()},e.prototype.translate=function(t,e){r()},e.prototype.transform=function(t,e){var i=Ee(t),r=i.getUnits()==$t.TILE_PIXELS?function(t,r,n){var o=i.getExtent(),s=i.getWorldExtent(),a=Rt(s)/Rt(o);return Ye(Ve,s[0],s[3],a,-a,0,0,0),Gt(t,0,t.length,n,Ve,r),Oe(i,e)(t,r,n)}:Oe(i,e);return this.applyTransform(r),this},e}(D);function ze(t){var e;return t==At.XY?e=2:t==At.XYZ||t==At.XYM?e=3:t==At.XYZM&&(e=4),e}var We=function(t){function e(){t.call(this),this.layout=At.XY,this.stride=2,this.flatCoordinates=null}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.computeExtent=function(t){return ct(this.flatCoordinates,0,this.flatCoordinates.length,this.stride,t)},e.prototype.getCoordinates=function(){return r()},e.prototype.getFirstCoordinate=function(){return this.flatCoordinates.slice(0,this.stride)},e.prototype.getFlatCoordinates=function(){return this.flatCoordinates},e.prototype.getLastCoordinate=function(){return this.flatCoordinates.slice(this.flatCoordinates.length-this.stride)},e.prototype.getLayout=function(){return this.layout},e.prototype.getSimplifiedGeometry=function(t){if(this.simplifiedGeometryRevision!=this.getRevision()&&(p(this.simplifiedGeometryCache),this.simplifiedGeometryMaxMinSquaredTolerance=0,this.simplifiedGeometryRevision=this.getRevision()),t<0||0!==this.simplifiedGeometryMaxMinSquaredTolerance&&t<=this.simplifiedGeometryMaxMinSquaredTolerance)return this;var e=t.toString();if(this.simplifiedGeometryCache.hasOwnProperty(e))return this.simplifiedGeometryCache[e];var i=this.getSimplifiedGeometryInternal(t);return i.getFlatCoordinates().length1)a=i;else{if(c>0){for(var d=0;dn&&(n=l),o=a,s=h}return n}function Je(t,e,i,r,n){for(var o=0,s=i.length;o0;){for(var p=l.pop(),c=l.pop(),d=0,f=t[c],_=t[c+1],g=t[p],y=t[p+1],v=c+r;vd&&(u=v,d=m)}d>n&&(h[(u-e)/r]=1,c+r0&&_>d)&&(f<0&&g0&&g>f)?(a=p,h=c):(o[s++]=a,o[s++]=h,l=a,u=h,a=p,h=c)}}return o[s++]=a,o[s++]=h,s}function ui(t,e,i,r,n,o,s,a){for(var h=0,l=i.length;ho&&(l-a)*(o-h)-(n-a)*(u-h)>0&&s++:u<=o&&(l-a)*(o-h)-(n-a)*(u-h)<0&&s--,a=l,h=u}return 0!==s}function _i(t,e,i,r,n,o){if(0===i.length)return!1;if(!fi(t,e,i[0],r,n,o))return!1;for(var s=1,a=i.length;sx&&_i(t,e,i,r,l=(u+p)/2,f)&&(m=l,x=E),u=p}return isNaN(m)&&(m=n[o]),s?(s.push(m,f,x),s):[m,f,x]}function yi(t,e,i,r,n){for(var o=[],s=0,a=i.length;s=n[0]&&o[2]<=n[2]||(o[1]>=n[1]&&o[3]<=n[3]||vi(t,e,i,r,function(t,e){return function(t,e,i){var r=!1,n=at(t,e),o=at(t,i);if(n===$.INTERSECTING||o===$.INTERSECTING)r=!0;else{var s,a,h=t[0],l=t[1],u=t[2],p=t[3],c=e[0],d=e[1],f=i[0],_=i[1],g=(_-d)/(f-c);o&$.ABOVE&&!(n&$.ABOVE)&&(r=(s=f-(_-p)/g)>=h&&s<=u),r||!(o&$.RIGHT)||n&$.RIGHT||(r=(a=_-(f-u)*g)>=l&&a<=p),r||!(o&$.BELOW)||n&$.BELOW||(r=(s=f-(_-l)/g)>=h&&s<=u),r||!(o&$.LEFT)||n&$.LEFT||(r=(a=_-(f-h)*g)>=l&&a<=p)}return r}(n,t,e)}))))}function xi(t,e,i,r,n){if(!function(t,e,i,r,n){return!!(mi(t,e,i,r,n)||fi(t,e,i,r,n[0],n[1])||fi(t,e,i,r,n[0],n[3])||fi(t,e,i,r,n[2],n[1])||fi(t,e,i,r,n[2],n[3]))}(t,e,i[0],r,n))return!1;if(1===i.length)return!0;for(var o=1,s=i.length;o0}function Ti(t,e,i,r,n){for(var o=void 0!==n&&n,s=0,a=i.length;se?r:new Array(1+e-n).join("0")+r}function Ki(t,e){for(var i=(""+t).split("."),r=(""+e).split("."),n=0;ns)return 1;if(s>o)return-1}return 0}function Hi(t,e){return t[0]+=e[0],t[1]+=e[1],t}function Zi(t,e){var i,r,n=t[0],o=t[1],s=e[0],a=e[1],h=s[0],l=s[1],u=a[0],p=a[1],c=u-h,d=p-l,f=0===c&&0===d?0:(c*(n-h)+d*(o-l))/(c*c+d*d||0);return f<=0?(i=h,r=l):f>=1?(i=u,r=p):(i=h+f*c,r=l+f*d),[i,r]}function qi(t,e,i){var r=Xt(e+180,360)-180,n=Math.abs(3600*r),o=i||0,s=Math.pow(10,o),a=Math.floor(n/3600),h=Math.floor((n-3600*a)/60),l=n-3600*a-60*h;return(l=Math.ceil(l*s)/s)>=60&&(l=0,h+=1),h>=60&&(h=0,a+=1),a+"° "+Wi(h,2)+"′ "+Wi(l,2,o)+"″"+(0==r?"":" "+t.charAt(r<0?1:0))}function Ji(t,e,i){return t?e.replace("{x}",t[0].toFixed(i)).replace("{y}",t[1].toFixed(i)):""}function Qi(t,e){for(var i=!0,r=t.length-1;r>=0;--r)if(t[r]!=e[r]){i=!1;break}return i}function $i(t,e){var i=Math.cos(e),r=Math.sin(e),n=t[0]*i-t[1]*r,o=t[1]*i+t[0]*r;return t[0]=n,t[1]=o,t}function tr(t,e){return t[0]*=e,t[1]*=e,t}function er(t,e){var i=t[0]-e[0],r=t[1]-e[1];return i*i+r*r}function ir(t,e){return Math.sqrt(er(t,e))}function rr(t,e){return er(t,Zi(t,e))}function nr(t,e){return Ji(t,"{x}, {y}",e)}function or(t,e,i,r,n,o){var s=NaN,a=NaN,h=(i-e)/r;if(1===h)s=t[e],a=t[e+1];else if(2==h)s=(1-n)*t[e]+n*t[e+r],a=(1-n)*t[e+1]+n*t[e+r+1];else if(0!==h){for(var l=t[e],u=t[e+1],p=0,c=[0],d=e+r;d>1)],e))<0?s=r+1:(a=r,h=!n);return h?s:~s}(c,g);if(y<0){var v=(g-c[-y-2])/(c[-y-1]-c[-y-2]),m=e+(-y-2)*r;s=zt(t[m],t[m+r],v),a=zt(t[m+1],t[m+r+1],v)}else s=t[e+y*r],a=t[e+y*r+1]}return o?(o[0]=s,o[1]=a,o):[s,a]}function sr(t,e,i,r,n,o){if(i==e)return null;var s;if(n>1;n0&&g.length>0;)o=g.pop(),u=f.pop(),c=_.pop(),(h=o.toString())in y||(l.push(c[0],c[1]),y[h]=!0),s=g.pop(),p=f.pop(),d=_.pop(),Ut((n=e(r=t(a=(o+s)/2)))[0],n[1],c[0],c[1],d[0],d[1])=1024){var n=0;for(var o in t)0==(3&n++)&&(delete t[o],--e)}r=function(t){var e,i,r,n,o;cr.exec(t)&&(t=function(t){var e=document.createElement("div");if(e.style.color=t,""!==e.style.color){document.body.appendChild(e);var i=getComputedStyle(e).color;return document.body.removeChild(e),i}return""}(t));if(pr.exec(t)){var s,a=t.length-1;s=a<=4?1:2;var h=4===a||8===a;e=parseInt(t.substr(1+0*s,s),16),i=parseInt(t.substr(1+1*s,s),16),r=parseInt(t.substr(1+2*s,s),16),n=h?parseInt(t.substr(1+3*s,s),16):255,1==s&&(e=(e<<4)+e,i=(i<<4)+i,r=(r<<4)+r,h&&(n=(n<<4)+n)),o=[e,i,r,n/255]}else 0==t.indexOf("rgba(")?gr(o=t.slice(5,-1).split(",").map(Number)):0==t.indexOf("rgb(")?((o=t.slice(4,-1).split(",").map(Number)).push(1),gr(o)):Y(!1,14);return o}(i),t[i]=r,++e}return r}}();function _r(t){return Array.isArray(t)?t:fr(t)}function gr(t){return t[0]=kt(t[0]+.5|0,0,255),t[1]=kt(t[1]+.5|0,0,255),t[2]=kt(t[2]+.5|0,0,255),t[3]=kt(t[3],0,1),t}function yr(t){var e=t[0];e!=(0|e)&&(e=e+.5|0);var i=t[1];i!=(0|i)&&(i=i+.5|0);var r=t[2];return r!=(0|r)&&(r=r+.5|0),"rgba("+e+","+i+","+r+","+(void 0===t[3]?1:t[3])+")"}var vr=function(t){var e=t||{};this.color_=void 0!==e.color?e.color:null,this.checksum_=void 0};vr.prototype.clone=function(){var t=this.getColor();return new vr({color:Array.isArray(t)?t.slice():t||void 0})},vr.prototype.getColor=function(){return this.color_},vr.prototype.setColor=function(t){this.color_=t,this.checksum_=void 0},vr.prototype.getChecksum=function(){if(void 0===this.checksum_){var t=this.color_;t?Array.isArray(t)||"string"==typeof t?this.checksum_="f"+dr(t):this.checksum_=o(this.color_):this.checksum_="f-"}return this.checksum_};var mr=vr,xr=function(t){var e=t||{};this.color_=void 0!==e.color?e.color:null,this.lineCap_=e.lineCap,this.lineDash_=void 0!==e.lineDash?e.lineDash:null,this.lineDashOffset_=e.lineDashOffset,this.lineJoin_=e.lineJoin,this.miterLimit_=e.miterLimit,this.width_=e.width,this.checksum_=void 0};xr.prototype.clone=function(){var t=this.getColor();return new xr({color:Array.isArray(t)?t.slice():t||void 0,lineCap:this.getLineCap(),lineDash:this.getLineDash()?this.getLineDash().slice():void 0,lineDashOffset:this.getLineDashOffset(),lineJoin:this.getLineJoin(),miterLimit:this.getMiterLimit(),width:this.getWidth()})},xr.prototype.getColor=function(){return this.color_},xr.prototype.getLineCap=function(){return this.lineCap_},xr.prototype.getLineDash=function(){return this.lineDash_},xr.prototype.getLineDashOffset=function(){return this.lineDashOffset_},xr.prototype.getLineJoin=function(){return this.lineJoin_},xr.prototype.getMiterLimit=function(){return this.miterLimit_},xr.prototype.getWidth=function(){return this.width_},xr.prototype.setColor=function(t){this.color_=t,this.checksum_=void 0},xr.prototype.setLineCap=function(t){this.lineCap_=t,this.checksum_=void 0},xr.prototype.setLineDash=function(t){this.lineDash_=t,this.checksum_=void 0},xr.prototype.setLineDashOffset=function(t){this.lineDashOffset_=t,this.checksum_=void 0},xr.prototype.setLineJoin=function(t){this.lineJoin_=t,this.checksum_=void 0},xr.prototype.setMiterLimit=function(t){this.miterLimit_=t,this.checksum_=void 0},xr.prototype.setWidth=function(t){this.width_=t,this.checksum_=void 0},xr.prototype.getChecksum=function(){return void 0===this.checksum_&&(this.checksum_="s",this.color_?"string"==typeof this.color_?this.checksum_+=this.color_:this.checksum_+=o(this.color_):this.checksum_+="-",this.checksum_+=","+(void 0!==this.lineCap_?this.lineCap_.toString():"-")+","+(this.lineDash_?this.lineDash_.toString():"-")+","+(void 0!==this.lineDashOffset_?this.lineDashOffset_:"-")+","+(void 0!==this.lineJoin_?this.lineJoin_:"-")+","+(void 0!==this.miterLimit_?this.miterLimit_.toString():"-")+","+(void 0!==this.width_?this.width_.toString():"-")),this.checksum_};var Er=xr,Sr="point",Tr="line",Cr=function(t){var e=t||{};this.font_=e.font,this.rotation_=e.rotation,this.rotateWithView_=e.rotateWithView,this.scale_=e.scale,this.text_=e.text,this.textAlign_=e.textAlign,this.textBaseline_=e.textBaseline,this.fill_=void 0!==e.fill?e.fill:new mr({color:"#333"}),this.maxAngle_=void 0!==e.maxAngle?e.maxAngle:Math.PI/4,this.placement_=void 0!==e.placement?e.placement:Sr,this.overflow_=!!e.overflow,this.stroke_=void 0!==e.stroke?e.stroke:null,this.offsetX_=void 0!==e.offsetX?e.offsetX:0,this.offsetY_=void 0!==e.offsetY?e.offsetY:0,this.backgroundFill_=e.backgroundFill?e.backgroundFill:null,this.backgroundStroke_=e.backgroundStroke?e.backgroundStroke:null,this.padding_=void 0===e.padding?null:e.padding};Cr.prototype.clone=function(){return new Cr({font:this.getFont(),placement:this.getPlacement(),maxAngle:this.getMaxAngle(),overflow:this.getOverflow(),rotation:this.getRotation(),rotateWithView:this.getRotateWithView(),scale:this.getScale(),text:this.getText(),textAlign:this.getTextAlign(),textBaseline:this.getTextBaseline(),fill:this.getFill()?this.getFill().clone():void 0,stroke:this.getStroke()?this.getStroke().clone():void 0,offsetX:this.getOffsetX(),offsetY:this.getOffsetY(),backgroundFill:this.getBackgroundFill()?this.getBackgroundFill().clone():void 0,backgroundStroke:this.getBackgroundStroke()?this.getBackgroundStroke().clone():void 0})},Cr.prototype.getOverflow=function(){return this.overflow_},Cr.prototype.getFont=function(){return this.font_},Cr.prototype.getMaxAngle=function(){return this.maxAngle_},Cr.prototype.getPlacement=function(){return this.placement_},Cr.prototype.getOffsetX=function(){return this.offsetX_},Cr.prototype.getOffsetY=function(){return this.offsetY_},Cr.prototype.getFill=function(){return this.fill_},Cr.prototype.getRotateWithView=function(){return this.rotateWithView_},Cr.prototype.getRotation=function(){return this.rotation_},Cr.prototype.getScale=function(){return this.scale_},Cr.prototype.getStroke=function(){return this.stroke_},Cr.prototype.getText=function(){return this.text_},Cr.prototype.getTextAlign=function(){return this.textAlign_},Cr.prototype.getTextBaseline=function(){return this.textBaseline_},Cr.prototype.getBackgroundFill=function(){return this.backgroundFill_},Cr.prototype.getBackgroundStroke=function(){return this.backgroundStroke_},Cr.prototype.getPadding=function(){return this.padding_},Cr.prototype.setOverflow=function(t){this.overflow_=t},Cr.prototype.setFont=function(t){this.font_=t},Cr.prototype.setMaxAngle=function(t){this.maxAngle_=t},Cr.prototype.setOffsetX=function(t){this.offsetX_=t},Cr.prototype.setOffsetY=function(t){this.offsetY_=t},Cr.prototype.setPlacement=function(t){this.placement_=t},Cr.prototype.setFill=function(t){this.fill_=t},Cr.prototype.setRotation=function(t){this.rotation_=t},Cr.prototype.setScale=function(t){this.scale_=t},Cr.prototype.setStroke=function(t){this.stroke_=t},Cr.prototype.setText=function(t){this.text_=t},Cr.prototype.setTextAlign=function(t){this.textAlign_=t},Cr.prototype.setTextBaseline=function(t){this.textBaseline_=t},Cr.prototype.setBackgroundFill=function(t){this.backgroundFill_=t},Cr.prototype.setBackgroundStroke=function(t){this.backgroundStroke_=t},Cr.prototype.setPadding=function(t){this.padding_=t};var Rr=Cr,wr=new Er({color:"rgba(0,0,0,0.2)"}),Ir=[90,45,30,20,10,5,2,1,.5,.2,.1,.05,.01,.005,.002,.001],Lr=function(t){var e=t||{};this.map_=null,this.postcomposeListenerKey_=null,this.projection_=null,this.maxLat_=1/0,this.maxLon_=1/0,this.minLat_=-1/0,this.minLon_=-1/0,this.maxLatP_=1/0,this.maxLonP_=1/0,this.minLatP_=-1/0,this.minLonP_=-1/0,this.targetSize_=void 0!==e.targetSize?e.targetSize:100,this.maxLines_=void 0!==e.maxLines?e.maxLines:100,this.meridians_=[],this.parallels_=[],this.strokeStyle_=void 0!==e.strokeStyle?e.strokeStyle:wr,this.fromLonLatTransform_=void 0,this.toLonLatTransform_=void 0,this.projectionCenterLonLat_=null,this.meridiansLabels_=null,this.parallelsLabels_=null,1==e.showLabels&&(this.lonLabelFormatter_=void 0==e.lonLabelFormatter?qi.bind(this,"EW"):e.lonLabelFormatter,this.latLabelFormatter_=void 0==e.latLabelFormatter?qi.bind(this,"NS"):e.latLabelFormatter,this.lonLabelPosition_=void 0==e.lonLabelPosition?0:e.lonLabelPosition,this.latLabelPosition_=void 0==e.latLabelPosition?1:e.latLabelPosition,this.lonLabelStyle_=void 0!==e.lonLabelStyle?e.lonLabelStyle:new Rr({font:"12px Calibri,sans-serif",textBaseline:"bottom",fill:new mr({color:"rgba(0,0,0,1)"}),stroke:new Er({color:"rgba(255,255,255,1)",width:3})}),this.latLabelStyle_=void 0!==e.latLabelStyle?e.latLabelStyle:new Rr({font:"12px Calibri,sans-serif",textAlign:"end",fill:new mr({color:"rgba(0,0,0,1)"}),stroke:new Er({color:"rgba(255,255,255,1)",width:3})}),this.meridiansLabels_=[],this.parallelsLabels_=[]),this.intervals_=void 0!==e.intervals?e.intervals:Ir,this.setMap(void 0!==e.map?e.map:null)};Lr.prototype.addMeridian_=function(t,e,i,r,n,o){var s=this.getMeridian_(t,e,i,r,o);if(Pt(s.getExtent(),n)){if(this.meridiansLabels_){var a=this.getMeridianPoint_(s,n,o);this.meridiansLabels_[o]={geom:a,text:this.lonLabelFormatter_(t)}}this.meridians_[o++]=s}return o},Lr.prototype.getMeridianPoint_=function(t,e,i){var r,n=t.getFlatCoordinates(),o=Math.max(e[1],n[1]),s=Math.min(e[3],n[n.length-1]),a=kt(e[1]+Math.abs(e[1]-e[3])*this.lonLabelPosition_,o,s),h=[n[0],a];return i in this.meridiansLabels_?(r=this.meridiansLabels_[i].geom).setCoordinates(h):r=new ci(h),r},Lr.prototype.addParallel_=function(t,e,i,r,n,o){var s=this.getParallel_(t,e,i,r,o);if(Pt(s.getExtent(),n)){if(this.parallelsLabels_){var a=this.getParallelPoint_(s,n,o);this.parallelsLabels_[o]={geom:a,text:this.latLabelFormatter_(t)}}this.parallels_[o++]=s}return o},Lr.prototype.getParallelPoint_=function(t,e,i){var r,n=t.getFlatCoordinates(),o=Math.max(e[0],n[0]),s=Math.min(e[2],n[n.length-2]),a=[kt(e[0]+Math.abs(e[0]-e[2])*this.latLabelPosition_,o,s),n[1]];return i in this.parallelsLabels_?(r=this.parallelsLabels_[i].geom).setCoordinates(a):r=new ci(a),r},Lr.prototype.createGraticule_=function(t,e,i,r){var n=this.getInterval_(i);if(-1==n)return this.meridians_.length=this.parallels_.length=0,this.meridiansLabels_&&(this.meridiansLabels_.length=0),void(this.parallelsLabels_&&(this.parallelsLabels_.length=0));var o,s,a,h,l=this.toLonLatTransform_(e),u=l[0],p=l[1],c=this.maxLines_,d=[Math.max(t[0],this.minLonP_),Math.max(t[1],this.minLatP_),Math.min(t[2],this.maxLonP_),Math.min(t[3],this.maxLatP_)],f=(d=be(d,this.projection_,"EPSG:4326"))[3],_=d[2],g=d[1],y=d[0];for(h=kt(u=Math.floor(u/n)*n,this.minLon_,this.maxLon_),s=this.addMeridian_(h,g,f,r,t,0),o=0;h!=this.minLon_&&o++0&&this.points_[i+2]>t;)i-=3;var r=this.points_[e+2]-this.points_[i+2];if(r<1e3/60)return!1;var n=this.points_[e]-this.points_[i],o=this.points_[e+1]-this.points_[i+1];return this.angle_=Math.atan2(o,n),this.initialVelocity_=Math.sqrt(n*n+o*o)/r,this.initialVelocity_>this.minVelocity_},Pr.prototype.getDistance=function(){return(this.minVelocity_-this.initialVelocity_)/this.decay_},Pr.prototype.getAngle=function(){return this.angle_};var br=Pr,Mr=function(t){function e(e,i,r){t.call(this,e),this.map=i,this.frameState=void 0!==r?r:null}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e}(P),Fr=function(t){function e(e,i,r,n,o){t.call(this,e,i,o),this.originalEvent=r,this.pixel=i.getEventPixel(r),this.coordinate=i.getCoordinateFromPixel(this.pixel),this.dragging=void 0!==n&&n}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.preventDefault=function(){t.prototype.preventDefault.call(this),this.originalEvent.preventDefault()},e.prototype.stopPropagation=function(){t.prototype.stopPropagation.call(this),this.originalEvent.stopPropagation()},e}(Mr),Ar={SINGLECLICK:"singleclick",CLICK:M.CLICK,DBLCLICK:M.DBLCLICK,POINTERDRAG:"pointerdrag",POINTERMOVE:"pointermove",POINTERDOWN:"pointerdown",POINTERUP:"pointerup",POINTEROVER:"pointerover",POINTEROUT:"pointerout",POINTERENTER:"pointerenter",POINTERLEAVE:"pointerleave",POINTERCANCEL:"pointercancel"},Nr=function(t){function e(e,i,r,n,o){t.call(this,e,i,r.originalEvent,n,o),this.pointerEvent=r}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e}(Fr),Gr={POINTERMOVE:"pointermove",POINTERDOWN:"pointerdown",POINTERUP:"pointerup",POINTEROVER:"pointerover",POINTEROUT:"pointerout",POINTERENTER:"pointerenter",POINTERLEAVE:"pointerleave",POINTERCANCEL:"pointercancel"},Dr=function(t,e){this.dispatcher=t,this.mapping_=e};Dr.prototype.getEvents=function(){return Object.keys(this.mapping_)},Dr.prototype.getHandlerForEvent=function(t){return this.mapping_[t]};var kr=Dr,jr=1,Ur="mouse";function Yr(t){if(!this.isEventSimulatedFromTouch_(t)){jr.toString()in this.pointerMap&&this.cancel(t);var e=Wr(t,this.dispatcher);this.pointerMap[jr.toString()]=t,this.dispatcher.down(e,t)}}function Br(t){if(!this.isEventSimulatedFromTouch_(t)){var e=Wr(t,this.dispatcher);this.dispatcher.move(e,t)}}function Vr(t){if(!this.isEventSimulatedFromTouch_(t)){var e=this.pointerMap[jr.toString()];if(e&&e.button===t.button){var i=Wr(t,this.dispatcher);this.dispatcher.up(i,t),this.cleanupMouse()}}}function Xr(t){if(!this.isEventSimulatedFromTouch_(t)){var e=Wr(t,this.dispatcher);this.dispatcher.enterOver(e,t)}}function zr(t){if(!this.isEventSimulatedFromTouch_(t)){var e=Wr(t,this.dispatcher);this.dispatcher.leaveOut(e,t)}}function Wr(t,e){var i=e.cloneEvent(t,t),r=i.preventDefault;return i.preventDefault=function(){t.preventDefault(),r()},i.pointerId=jr,i.isPrimary=!0,i.pointerType=Ur,i}var Kr=function(t){function e(e){var i={mousedown:Yr,mousemove:Br,mouseup:Vr,mouseover:Xr,mouseout:zr};t.call(this,e,i),this.pointerMap=e.pointerMap,this.lastTouches=[]}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.isEventSimulatedFromTouch_=function(t){for(var e=this.lastTouches,i=t.clientX,r=t.clientY,n=0,o=e.length,s=void 0;n=e.length){for(var n=[],o=0;o-1;r&&t.splice(i,1)}(e,r)},this.dedupTimeout_)}},e}(kr),Sn=[["bubbles",!1],["cancelable",!1],["view",null],["detail",null],["screenX",0],["screenY",0],["clientX",0],["clientY",0],["ctrlKey",!1],["altKey",!1],["shiftKey",!1],["metaKey",!1],["button",0],["relatedTarget",null],["buttons",0],["pointerId",0],["width",0],["height",0],["pressure",0],["tiltX",0],["tiltY",0],["pointerType",""],["hwTimestamp",0],["isPrimary",!1],["type",""],["target",null],["currentTarget",null],["which",0]],Tn=function(t){function e(e){t.call(this),this.element_=e,this.pointerMap={},this.eventMap_={},this.eventSourceList_=[],this.registerSources()}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.registerSources=function(){if(Yi)this.registerSource("native",new dn(this));else if(Bi)this.registerSource("ms",new nn(this));else{var t=new Kr(this);this.registerSource("mouse",t),Ui&&this.registerSource("touch",new En(this,t))}this.register_()},e.prototype.registerSource=function(t,e){var i=e,r=i.getEvents();r&&(r.forEach(function(t){var e=i.getHandlerForEvent(t);e&&(this.eventMap_[t]=e.bind(i))}.bind(this)),this.eventSourceList_.push(i))},e.prototype.register_=function(){for(var t=this.eventSourceList_.length,e=0;ethis.moveTolerance_||Math.abs(t.clientY-this.down_.clientY)>this.moveTolerance_},e.prototype.disposeInternal=function(){this.relayedListenerKey_&&(E(this.relayedListenerKey_),this.relayedListenerKey_=null),this.pointerdownListenerKey_&&(E(this.pointerdownListenerKey_),this.pointerdownListenerKey_=null),this.dragListenerKeys_.forEach(E),this.dragListenerKeys_.length=0,this.documentPointerEventHandler_&&(this.documentPointerEventHandler_.dispose(),this.documentPointerEventHandler_=null),this.pointerEventHandler_&&(this.pointerEventHandler_.dispose(),this.pointerEventHandler_=null),t.prototype.disposeInternal.call(this)},e}(b),Rn="postrender",wn="movestart",In="moveend",Ln={LAYERGROUP:"layergroup",SIZE:"size",TARGET:"target",VIEW:"view"},On={IDLE:0,LOADING:1,LOADED:2,ERROR:3,EMPTY:4,ABORT:5},Pn=function(t,e){this.priorityFunction_=t,this.keyFunction_=e,this.elements_=[],this.priorities_=[],this.queuedElements_={}};Pn.prototype.clear=function(){this.elements_.length=0,this.priorities_.length=0,p(this.queuedElements_)},Pn.prototype.dequeue=function(){var t=this.elements_,e=this.priorities_,i=t[0];1==t.length?(t.length=0,e.length=0):(t[0]=t.pop(),e[0]=e.pop(),this.siftUp_(0));var r=this.keyFunction_(i);return delete this.queuedElements_[r],i},Pn.prototype.enqueue=function(t){Y(!(this.keyFunction_(t)in this.queuedElements_),31);var e=this.priorityFunction_(t);return e!=1/0&&(this.elements_.push(t),this.priorities_.push(e),this.queuedElements_[this.keyFunction_(t)]=!0,this.siftDown_(0,this.elements_.length-1),!0)},Pn.prototype.getCount=function(){return this.elements_.length},Pn.prototype.getLeftChildIndex_=function(t){return 2*t+1},Pn.prototype.getRightChildIndex_=function(t){return 2*t+2},Pn.prototype.getParentIndex_=function(t){return t-1>>1},Pn.prototype.heapify_=function(){var t;for(t=(this.elements_.length>>1)-1;t>=0;t--)this.siftUp_(t)},Pn.prototype.isEmpty=function(){return 0===this.elements_.length},Pn.prototype.isKeyQueued=function(t){return t in this.queuedElements_},Pn.prototype.isQueued=function(t){return this.isKeyQueued(this.keyFunction_(t))},Pn.prototype.siftUp_=function(t){for(var e=this.elements_,i=this.priorities_,r=e.length,n=e[t],o=i[t],s=t;t>1;){var a=this.getLeftChildIndex_(t),h=this.getRightChildIndex_(t),l=ht;){var s=this.getParentIndex_(e);if(!(r[s]>o))break;i[e]=i[s],r[e]=r[s],e=s}i[e]=n,r[e]=o},Pn.prototype.reprioritize=function(){var t,e,i,r=this.priorityFunction_,n=this.elements_,o=this.priorities_,s=0,a=n.length;for(e=0;e0;)n=(r=this.dequeue()[0]).getKey(),(i=r.getState())===On.ABORT?s=!0:i!==On.IDLE||n in this.tilesLoadingKeys_||(this.tilesLoadingKeys_[n]=!0,++this.tilesLoading_,++o,r.load());0===o&&s&&this.tileChangeCallback_()},e}(bn),Fn=42,An=256;function Nn(t){return t}function Gn(t,e){return void 0!==t?0:void 0}function Dn(t,e){return void 0!==t?t+e:void 0}var kn=0,jn=1,Un="center",Yn="resolution",Bn="rotation";function Vn(t){return Math.pow(t,3)}function Xn(t){return 1-Vn(1-t)}function zn(t){return 3*t*t-2*t*t*t}function Wn(t){return t}var Kn=0;function Hn(t,e){setTimeout(function(){t(e)},0)}function Zn(t){return!(t.sourceCenter&&t.targetCenter&&!Qi(t.sourceCenter,t.targetCenter))&&(t.sourceResolution===t.targetResolution&&t.sourceRotation===t.targetRotation)}var qn=function(t){function e(e){t.call(this);var i=u({},e);this.hints_=[0,0],this.animations_=[],this.updateAnimationKey_,this.updateAnimations_=this.updateAnimations_.bind(this),this.projection_=Ce(i.projection,"EPSG:3857"),this.applyOptions_(i)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.applyOptions_=function(t){var e={};e[Un]=void 0!==t.center?t.center:null;var i=function(t){var e,i,r,n=void 0!==t.minZoom?t.minZoom:Kn,o=void 0!==t.maxZoom?t.maxZoom:28,s=void 0!==t.zoomFactor?t.zoomFactor:2;if(void 0!==t.resolutions){var a=t.resolutions;i=a[n],r=void 0!==a[o]?a[o]:a[a.length-1],e=function(t){return function(e,i,r){if(void 0!==e){var n=z(t,e,r);n=kt(n+i,0,t.length-1);var o=Math.floor(n);if(n!=o&&o1&&"function"==typeof arguments[r-1]&&(e=arguments[r-1],--r),!this.isDef()){var n=arguments[r-1];return n.center&&this.setCenter(n.center),void 0!==n.zoom&&this.setZoom(n.zoom),void 0!==n.rotation&&this.setRotation(n.rotation),void(e&&Hn(e,!0))}for(var o=Date.now(),s=this.getCenter().slice(),a=this.getResolution(),h=this.getRotation(),l=[],u=0;u0},e.prototype.getInteracting=function(){return this.hints_[jn]>0},e.prototype.cancelAnimations=function(){this.setHint(kn,-this.hints_[kn]);for(var t=0,e=this.animations_.length;t=0;--i){for(var r=this.animations_[i],n=!0,o=0,s=r.length;o0?h/a.duration:1;l>=1?(a.complete=!0,l=1):n=!1;var u=a.easing(l);if(a.sourceCenter){var p=a.sourceCenter[0],c=a.sourceCenter[1],d=p+u*(a.targetCenter[0]-p),f=c+u*(a.targetCenter[1]-c);this.set(Un,[d,f])}if(a.sourceResolution&&a.targetResolution){var _=1===u?a.targetResolution:a.sourceResolution+u*(a.targetResolution-a.sourceResolution);a.anchor&&this.set(Un,this.calculateCenterZoom(_,a.anchor)),this.set(Yn,_)}if(void 0!==a.sourceRotation&&void 0!==a.targetRotation){var g=1===u?Xt(a.targetRotation+Math.PI,2*Math.PI)-Math.PI:a.sourceRotation+u*(a.targetRotation-a.sourceRotation);a.anchor&&this.set(Un,this.calculateCenterRotate(g,a.anchor)),this.set(Bn,g)}if(e=!0,!a.complete)break}}if(n){this.animations_[i]=null,this.setHint(kn,-1);var y=r[0].callback;y&&Hn(y,!0)}}this.animations_=this.animations_.filter(Boolean),e&&void 0===this.updateAnimationKey_&&(this.updateAnimationKey_=requestAnimationFrame(this.updateAnimations_))}},e.prototype.calculateCenterRotate=function(t,e){var i,r=this.getCenter();return void 0!==r&&($i(i=[r[0]-e[0],r[1]-e[1]],t-this.getRotation()),Hi(i,e)),i},e.prototype.calculateCenterZoom=function(t,e){var i,r=this.getCenter(),n=this.getResolution();void 0!==r&&void 0!==n&&(i=[e[0]-t*(e[0]-r[0])/n,e[1]-t*(e[1]-r[1])/n]);return i},e.prototype.getSizeFromViewport_=function(){var t=[100,100],e='.ol-viewport[data-view="'+o(this)+'"]',i=document.querySelector(e);if(i){var r=getComputedStyle(i);t[0]=parseInt(r.width,10),t[1]=parseInt(r.height,10)}return t},e.prototype.constrainCenter=function(t){return this.constraints_.center(t)},e.prototype.constrainResolution=function(t,e,i){var r=e||0,n=i||0;return this.constraints_.resolution(t,r,n)},e.prototype.constrainRotation=function(t,e){var i=e||0;return this.constraints_.rotation(t,i)},e.prototype.getCenter=function(){return this.get(Un)},e.prototype.getConstraints=function(){return this.constraints_},e.prototype.getHints=function(t){return void 0!==t?(t[0]=this.hints_[0],t[1]=this.hints_[1],t):this.hints_.slice()},e.prototype.calculateExtent=function(t){var e=t||this.getSizeFromViewport_(),i=this.getCenter();Y(i,1);var r=this.getResolution();Y(void 0!==r,2);var n=this.getRotation();return Y(void 0!==n,3),Ct(i,r,n,e)},e.prototype.getMaxResolution=function(){return this.maxResolution_},e.prototype.getMinResolution=function(){return this.minResolution_},e.prototype.getMaxZoom=function(){return this.getZoomForResolution(this.minResolution_)},e.prototype.setMaxZoom=function(t){this.applyOptions_(this.getUpdatedOptions_({maxZoom:t}))},e.prototype.getMinZoom=function(){return this.getZoomForResolution(this.maxResolution_)},e.prototype.setMinZoom=function(t){this.applyOptions_(this.getUpdatedOptions_({minZoom:t}))},e.prototype.getProjection=function(){return this.projection_},e.prototype.getResolution=function(){return this.get(Yn)},e.prototype.getResolutions=function(){return this.resolutions_},e.prototype.getResolutionForExtent=function(t,e){var i=e||this.getSizeFromViewport_(),r=Ot(t)/i[0],n=Rt(t)/i[1];return Math.max(r,n)},e.prototype.getResolutionForValueFunction=function(t){var e=t||2,i=this.maxResolution_,r=this.minResolution_,n=Math.log(i/r)/Math.log(e);return function(t){return i/Math.pow(e,t*n)}},e.prototype.getRotation=function(){return this.get(Bn)},e.prototype.getValueForResolutionFunction=function(t){var e=t||2,i=this.maxResolution_,r=this.minResolution_,n=Math.log(i/r)/Math.log(e);return function(t){return Math.log(i/t)/Math.log(e)/n}},e.prototype.getState=function(t){var e=this.getCenter(),i=this.getProjection(),r=this.getResolution(),n=r/t,o=this.getRotation();return{center:[Math.round(e[0]/n)*n,Math.round(e[1]/n)*n],projection:void 0!==i?i:null,resolution:r,rotation:o,zoom:this.getZoom()}},e.prototype.getZoom=function(){var t,e=this.getResolution();return void 0!==e&&(t=this.getZoomForResolution(e)),t},e.prototype.getZoomForResolution=function(t){var e,i,r=this.minZoom_||0;if(this.resolutions_){var n=z(this.resolutions_,t,1);r=n,e=this.resolutions_[n],i=n==this.resolutions_.length-1?2:e/this.resolutions_[n+1]}else e=this.maxResolution_,i=this.zoomFactor_;return r+Math.log(e/t)/Math.log(i)},e.prototype.getResolutionForZoom=function(t){return this.constrainResolution(this.maxResolution_,t-this.minZoom_,0)},e.prototype.fit=function(t,e){var i,r=e||{},n=r.size;n||(n=this.getSizeFromViewport_()),Y(Array.isArray(t)||"function"==typeof t.getSimplifiedGeometry,24),Array.isArray(t)?(Y(!bt(t),25),i=Oi(t)):t.getType()===Nt.CIRCLE?(i=Oi(t=t.getExtent())).rotate(this.getRotation(),Tt(t)):i=t;var o,s=void 0!==r.padding?r.padding:[0,0,0,0],a=void 0===r.constrainResolution||r.constrainResolution,h=void 0!==r.nearest&&r.nearest;o=void 0!==r.minResolution?r.minResolution:void 0!==r.maxZoom?this.constrainResolution(this.maxResolution_,r.maxZoom-this.minZoom_,0):0;for(var l=i.getFlatCoordinates(),u=this.getRotation(),p=Math.cos(-u),c=Math.sin(-u),d=1/0,f=1/0,_=-1/0,g=-1/0,y=i.getStride(),v=0,m=l.length;v=0;i--){var r=e[i];if(r.getActive())if(!r.handleEvent(t))break}}},e.prototype.handlePostRender=function(){var t=this.frameState_,e=this.tileQueue_;if(!e.isEmpty()){var i=this.maxTilesLoading_,r=i;if(t){var n=t.viewHints;n[kn]&&(i=this.loadTilesWhileAnimating_?8:0,r=2),n[jn]&&(i=this.loadTilesWhileInteracting_?8:0,r=2)}e.getTilesLoading()0&&t[1]>0}(i)&&r&&r.isDef()){for(var h=r.getHints(this.frameState_?this.frameState_.viewHints:void 0),l=this.getLayerGroup().getLayerStatesArray(),u={},p=0,c=l.length;p=t.minResolution&&e0;if(this.renderedVisible_!=i&&(this.element.style.display=i?"":"none",this.renderedVisible_=i),!Z(e,this.renderedAttributions_)){to(this.ulElement_);for(var r=0,n=e.length;r0?t.animate({rotation:0,duration:this.duration_,easing:Xn}):t.setRotation(0))},e}(uo),Ro=function(t){function e(e){var i=e||{};t.call(this,{element:document.createElement("div"),target:i.target});var r=void 0!==i.className?i.className:"ol-zoom",n=void 0!==i.delta?i.delta:1,o=void 0!==i.zoomInLabel?i.zoomInLabel:"+",s=void 0!==i.zoomOutLabel?i.zoomOutLabel:"−",a=void 0!==i.zoomInTipLabel?i.zoomInTipLabel:"Zoom in",h=void 0!==i.zoomOutTipLabel?i.zoomOutTipLabel:"Zoom out",l=document.createElement("button");l.className=r+"-in",l.setAttribute("type","button"),l.title=a,l.appendChild("string"==typeof o?document.createTextNode(o):o),v(l,M.CLICK,this.handleClick_.bind(this,n));var u=document.createElement("button");u.className=r+"-out",u.setAttribute("type","button"),u.title=h,u.appendChild("string"==typeof s?document.createTextNode(s):s),v(u,M.CLICK,this.handleClick_.bind(this,-n));var p=r+" "+fo+" "+go,c=this.element;c.className=p,c.appendChild(l),c.appendChild(u),this.duration_=void 0!==i.duration?i.duration:250}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.handleClick_=function(t,e){e.preventDefault(),this.zoomByDelta_(t)},e.prototype.zoomByDelta_=function(t){var e=this.getMap().getView();if(e){var i=e.getResolution();if(i){var r=e.constrainResolution(i,t);this.duration_>0?(e.getAnimating()&&e.cancelAnimations(),e.animate({resolution:r,duration:this.duration_,easing:Xn})):e.setResolution(r)}}},e}(uo);function wo(t){var e=t||{},i=new U;return(void 0===e.zoom||e.zoom)&&i.push(new Ro(e.zoomOptions)),(void 0===e.rotate||e.rotate)&&i.push(new Co(e.rotateOptions)),(void 0===e.attribution||e.attribution)&&i.push(new So(e.attributionOptions)),i}var Io={ACTIVE:"active"};function Lo(t,e,i,r){Oo(t,e=t.constrainRotation(e,0),i,r)}function Oo(t,e,i,r){if(void 0!==e){var n=t.getRotation(),o=t.getCenter();void 0!==n&&o&&r>0?t.animate({rotation:e,anchor:i,duration:r,easing:Xn}):t.rotate(e,i)}}function Po(t,e,i,r,n){Mo(t,e=t.constrainResolution(e,0,n),i,r)}function bo(t,e,i,r){var n=t.getResolution(),o=t.constrainResolution(n,e,0);if(void 0!==o){var s=t.getResolutions();o=kt(o,t.getMinResolution()||s[s.length-1],t.getMaxResolution()||s[0])}if(i&&void 0!==o&&o!==n){var a=t.getCenter(),h=t.calculateCenterZoom(o,i);h=t.constrainCenter(h),i=[(o*a[0]-n*h[0])/(o-n),(o*a[1]-n*h[1])/(o-n)]}Mo(t,o,i,r)}function Mo(t,e,i,r){if(e){var n=t.getResolution(),o=t.getCenter();if(void 0!==n&&o&&e!==n&&r)t.animate({resolution:e,anchor:i,duration:r,easing:Xn});else{if(i){var s=t.calculateCenterZoom(e,i);t.setCenter(s)}t.setResolution(e)}}}var Fo=function(t){function e(e){t.call(this),e.handleEvent&&(this.handleEvent=e.handleEvent),this.map_=null,this.setActive(!0)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.getActive=function(){return this.get(Io.ACTIVE)},e.prototype.getMap=function(){return this.map_},e.prototype.handleEvent=function(t){return!0},e.prototype.setActive=function(t){this.set(Io.ACTIVE,t)},e.prototype.setMap=function(t){this.map_=t},e}(D);function Ao(t){var e=!1;if(t.type==Ar.DBLCLICK){var i=t.originalEvent,r=t.map,n=t.coordinate,o=i.shiftKey?-this.delta_:this.delta_;bo(r.getView(),o,n,this.duration_),t.preventDefault(),e=!0}return!e}var No=function(t){function e(e){t.call(this,{handleEvent:Ao});var i=e||{};this.delta_=i.delta?i.delta:1,this.duration_=void 0!==i.duration?i.duration:250}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e}(Fo),Go=function(t){var e=t.originalEvent;return e.altKey&&!(e.metaKey||e.ctrlKey)&&!e.shiftKey},Do=function(t){var e=t.originalEvent;return e.altKey&&!(e.metaKey||e.ctrlKey)&&e.shiftKey},ko=function(t){return t.target.getTargetElement()===document.activeElement},jo=R,Uo=function(t){var e=t.originalEvent;return 0==e.button&&!(Ni&&Gi&&e.ctrlKey)},Yo=w,Bo=function(t){return"pointermove"==t.type},Vo=function(t){return t.type==Ar.SINGLECLICK},Xo=function(t){var e=t.originalEvent;return!e.altKey&&!(e.metaKey||e.ctrlKey)&&!e.shiftKey},zo=function(t){var e=t.originalEvent;return!e.altKey&&!(e.metaKey||e.ctrlKey)&&e.shiftKey},Wo=function(t){var e=t.originalEvent.target.tagName;return"INPUT"!==e&&"SELECT"!==e&&"TEXTAREA"!==e},Ko=function(t){var e=t.pointerEvent;return Y(void 0!==e,56),"mouse"==e.pointerType},Ho=function(t){var e=t.pointerEvent;return Y(void 0!==e,56),e.isPrimary&&0===e.button};function Zo(t){for(var e=t.length,i=0,r=0,n=0;n0}}else if(t.type==Ar.POINTERDOWN){var r=this.handleDownEvent(t);r&&t.preventDefault(),this.handlingDownUpSequence=r,e=this.stopDown(r)}else t.type==Ar.POINTERMOVE&&this.handleMoveEvent(t);return!e},e.prototype.handleMoveEvent=function(t){},e.prototype.handleUpEvent=function(t){return!1},e.prototype.stopDown=function(t){return t},e.prototype.updateTrackedPointers_=function(t){if(function(t){var e=t.type;return e===Ar.POINTERDOWN||e===Ar.POINTERDRAG||e===Ar.POINTERUP}(t)){var e=t.pointerEvent,i=e.pointerId.toString();t.type==Ar.POINTERUP?delete this.trackedPointers_[i]:t.type==Ar.POINTERDOWN?this.trackedPointers_[i]=e:i in this.trackedPointers_&&(this.trackedPointers_[i]=e),this.targetPointers=c(this.trackedPointers_)}},e}(Fo),Jo=function(t){function e(e){t.call(this,{stopDown:w});var i=e||{};this.kinetic_=i.kinetic,this.lastCentroid=null,this.lastPointersCount_,this.panning_=!1,this.condition_=i.condition?i.condition:Xo,this.noKinetic_=!1}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.handleDragEvent=function(t){this.panning_||(this.panning_=!0,this.getMap().getView().setHint(jn,1));var e=this.targetPointers,i=Zo(e);if(e.length==this.lastPointersCount_){if(this.kinetic_&&this.kinetic_.update(i[0],i[1]),this.lastCentroid){var r=this.lastCentroid[0]-i[0],n=i[1]-this.lastCentroid[1],o=t.map.getView(),s=[r,n];tr(s,o.getResolution()),$i(s,o.getRotation()),Hi(s,o.getCenter()),s=o.constrainCenter(s),o.setCenter(s)}}else this.kinetic_&&this.kinetic_.begin();this.lastCentroid=i,this.lastPointersCount_=e.length},e.prototype.handleUpEvent=function(t){var e=t.map,i=e.getView();if(0===this.targetPointers.length){if(!this.noKinetic_&&this.kinetic_&&this.kinetic_.end()){var r=this.kinetic_.getDistance(),n=this.kinetic_.getAngle(),o=i.getCenter(),s=e.getPixelFromCoordinate(o),a=e.getCoordinateFromPixel([s[0]-r*Math.cos(n),s[1]-r*Math.sin(n)]);i.animate({center:i.constrainCenter(a),duration:500,easing:Xn})}return this.panning_&&(this.panning_=!1,i.setHint(jn,-1)),!1}return this.kinetic_&&this.kinetic_.begin(),this.lastCentroid=null,!0},e.prototype.handleDownEvent=function(t){if(this.targetPointers.length>0&&this.condition_(t)){var e=t.map.getView();return this.lastCentroid=null,e.getAnimating()&&e.setCenter(t.frameState.viewState.center),this.kinetic_&&this.kinetic_.begin(),this.noKinetic_=this.targetPointers.length>1,!0}return!1},e}(qo),Qo=function(t){function e(e){var i=e||{};t.call(this,{stopDown:w}),this.condition_=i.condition?i.condition:Do,this.lastAngle_=void 0,this.duration_=void 0!==i.duration?i.duration:250}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.handleDragEvent=function(t){if(Ko(t)){var e=t.map,i=e.getView();if(i.getConstraints().rotation!==Gn){var r=e.getSize(),n=t.pixel,o=Math.atan2(r[1]/2-n[1],n[0]-r[0]/2);if(void 0!==this.lastAngle_){var s=o-this.lastAngle_;Oo(i,i.getRotation()-s)}this.lastAngle_=o}}},e.prototype.handleUpEvent=function(t){if(!Ko(t))return!0;var e=t.map.getView();return e.setHint(jn,-1),Lo(e,e.getRotation(),void 0,this.duration_),!1},e.prototype.handleDownEvent=function(t){return!!Ko(t)&&(!(!Uo(t)||!this.condition_(t))&&(t.map.getView().setHint(jn,1),this.lastAngle_=void 0,!0))},e}(qo),$o=function(t){function e(e){t.call(this),this.geometry_=null,this.element_=document.createElement("div"),this.element_.style.position="absolute",this.element_.className="ol-box "+e,this.map_=null,this.startPixel_=null,this.endPixel_=null}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.disposeInternal=function(){this.setMap(null)},e.prototype.render_=function(){var t=this.startPixel_,e=this.endPixel_,i=this.element_.style;i.left=Math.min(t[0],e[0])+"px",i.top=Math.min(t[1],e[1])+"px",i.width=Math.abs(e[0]-t[0])+"px",i.height=Math.abs(e[1]-t[1])+"px"},e.prototype.setMap=function(t){if(this.map_){this.map_.getOverlayContainer().removeChild(this.element_);var e=this.element_.style;e.left=e.top=e.width=e.height="inherit"}this.map_=t,this.map_&&this.map_.getOverlayContainer().appendChild(this.element_)},e.prototype.setPixels=function(t,e){this.startPixel_=t,this.endPixel_=e,this.createOrUpdateGeometry(),this.render_()},e.prototype.createOrUpdateGeometry=function(){var t=this.startPixel_,e=this.endPixel_,i=[t,[t[0],e[1]],e,[e[0],t[1]]].map(this.map_.getCoordinateFromPixel,this.map_);i[4]=i[0].slice(),this.geometry_?this.geometry_.setCoordinates([i]):this.geometry_=new Ii([i])},e.prototype.getGeometry=function(){return this.geometry_},e}(C),ts="boxstart",es="boxdrag",is="boxend",rs=function(t){function e(e,i,r){t.call(this,e),this.coordinate=i,this.mapBrowserEvent=r}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e}(P),ns=function(t){function e(e){t.call(this);var i=e||{};this.box_=new $o(i.className||"ol-dragbox"),this.minArea_=void 0!==i.minArea?i.minArea:64,this.onBoxEnd_=i.onBoxEnd?i.onBoxEnd:I,this.startPixel_=null,this.condition_=i.condition?i.condition:jo,this.boxEndCondition_=i.boxEndCondition?i.boxEndCondition:this.defaultBoxEndCondition}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.defaultBoxEndCondition=function(t,e,i){var r=i[0]-e[0],n=i[1]-e[1];return r*r+n*n>=this.minArea_},e.prototype.getGeometry=function(){return this.box_.getGeometry()},e.prototype.handleDragEvent=function(t){Ko(t)&&(this.box_.setPixels(this.startPixel_,t.pixel),this.dispatchEvent(new rs(es,t.coordinate,t)))},e.prototype.handleUpEvent=function(t){return!Ko(t)||(this.box_.setMap(null),this.boxEndCondition_(t,this.startPixel_,t.pixel)&&(this.onBoxEnd_(t),this.dispatchEvent(new rs(is,t.coordinate,t))),!1)},e.prototype.handleDownEvent=function(t){return!!Ko(t)&&(!(!Uo(t)||!this.condition_(t))&&(this.startPixel_=t.pixel,this.box_.setMap(t.map),this.box_.setPixels(this.startPixel_,this.startPixel_),this.dispatchEvent(new rs(ts,t.coordinate,t)),!0))},e}(qo);function os(){var t=this.getMap(),e=t.getView(),i=t.getSize(),r=this.getGeometry().getExtent();if(this.out_){var n=e.calculateExtent(i),o=function(t,e){return gt(ut(e),t)}([t.getPixelFromCoordinate(Et(r)),t.getPixelFromCoordinate(Lt(r))]);Mt(n,1/e.getResolutionForExtent(o,i)),r=n}var s=e.constrainResolution(e.getResolutionForExtent(r,i)),a=Tt(r);a=e.constrainCenter(a),e.animate({resolution:s,center:a,duration:this.duration_,easing:Xn})}var ss=function(t){function e(e){var i=e||{},r=i.condition?i.condition:zo;t.call(this,{condition:r,className:i.className||"ol-dragzoom",onBoxEnd:os}),this.duration_=void 0!==i.duration?i.duration:200,this.out_=void 0!==i.out&&i.out}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e}(ns),as={LEFT:37,UP:38,RIGHT:39,DOWN:40};function hs(t){var e=!1;if(t.type==M.KEYDOWN){var i=t.originalEvent.keyCode;if(this.condition_(t)&&(i==as.DOWN||i==as.LEFT||i==as.RIGHT||i==as.UP)){var r=t.map.getView(),n=r.getResolution()*this.pixelDelta_,o=0,s=0;i==as.DOWN?s=-n:i==as.LEFT?o=-n:i==as.RIGHT?o=n:s=n;var a=[o,s];$i(a,r.getRotation()),function(t,e,i){var r=t.getCenter();if(r){var n=t.constrainCenter([r[0]+e[0],r[1]+e[1]]);i?t.animate({duration:i,easing:Wn,center:n}):t.setCenter(n)}}(r,a,this.duration_),t.preventDefault(),e=!0}}return!e}var ls=function(t){function e(e){t.call(this,{handleEvent:hs});var i=e||{};this.defaultCondition_=function(t){return Xo(t)&&Wo(t)},this.condition_=void 0!==i.condition?i.condition:this.defaultCondition_,this.duration_=void 0!==i.duration?i.duration:100,this.pixelDelta_=void 0!==i.pixelDelta?i.pixelDelta:128}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e}(Fo);function us(t){var e=!1;if(t.type==M.KEYDOWN||t.type==M.KEYPRESS){var i=t.originalEvent.charCode;if(this.condition_(t)&&(i=="+".charCodeAt(0)||i=="-".charCodeAt(0))){var r=t.map,n=i=="+".charCodeAt(0)?this.delta_:-this.delta_;bo(r.getView(),n,void 0,this.duration_),t.preventDefault(),e=!0}}return!e}var ps=function(t){function e(e){t.call(this,{handleEvent:us});var i=e||{};this.condition_=i.condition?i.condition:Wo,this.delta_=i.delta?i.delta:1,this.duration_=void 0!==i.duration?i.duration:100}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e}(Fo),cs="trackpad",ds="wheel",fs=function(t){function e(e){var i=e||{};t.call(this,i),this.delta_=0,this.duration_=void 0!==i.duration?i.duration:250,this.timeout_=void 0!==i.timeout?i.timeout:80,this.useAnchor_=void 0===i.useAnchor||i.useAnchor,this.constrainResolution_=i.constrainResolution||!1,this.condition_=i.condition?i.condition:jo,this.lastAnchor_=null,this.startTime_=void 0,this.timeoutId_,this.mode_=void 0,this.trackpadEventGap_=400,this.trackpadTimeoutId_,this.trackpadDeltaPerZoom_=300,this.trackpadZoomBuffer_=1.5}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.decrementInteractingHint_=function(){this.trackpadTimeoutId_=void 0,this.getMap().getView().setHint(jn,-1)},e.prototype.handleEvent=function(t){if(!this.condition_(t))return!0;var e=t.type;if(e!==M.WHEEL&&e!==M.MOUSEWHEEL)return!0;t.preventDefault();var i,r=t.map,n=t.originalEvent;if(this.useAnchor_&&(this.lastAnchor_=t.coordinate),t.type==M.WHEEL?(i=n.deltaY,Fi&&n.deltaMode===WheelEvent.DOM_DELTA_PIXEL&&(i/=Di),n.deltaMode===WheelEvent.DOM_DELTA_LINE&&(i*=40)):t.type==M.MOUSEWHEEL&&(i=-n.wheelDeltaY,Ai&&(i/=3)),0===i)return!1;var o=Date.now();if(void 0===this.startTime_&&(this.startTime_=o),(!this.mode_||o-this.startTime_>this.trackpadEventGap_)&&(this.mode_=Math.abs(i)<4?cs:ds),this.mode_===cs){var s=r.getView();this.trackpadTimeoutId_?clearTimeout(this.trackpadTimeoutId_):s.setHint(jn,1),this.trackpadTimeoutId_=setTimeout(this.decrementInteractingHint_.bind(this),this.trackpadEventGap_);var a=s.getResolution()*Math.pow(2,i/this.trackpadDeltaPerZoom_),h=s.getMinResolution(),l=s.getMaxResolution(),u=0;if(al&&(a=Math.min(a,l*this.trackpadZoomBuffer_),u=-1),this.lastAnchor_){var p=s.calculateCenterZoom(a,this.lastAnchor_);s.setCenter(s.constrainCenter(p))}return s.setResolution(a),0===u&&this.constrainResolution_&&s.animate({resolution:s.constrainResolution(a,i>0?-1:1),easing:Xn,anchor:this.lastAnchor_,duration:this.duration_}),u>0?s.animate({resolution:h,easing:Xn,anchor:this.lastAnchor_,duration:500}):u<0&&s.animate({resolution:l,easing:Xn,anchor:this.lastAnchor_,duration:500}),this.startTime_=o,!1}this.delta_+=i;var c=Math.max(this.timeout_-(o-this.startTime_),0);return clearTimeout(this.timeoutId_),this.timeoutId_=setTimeout(this.handleWheelZoom_.bind(this,r),c),!1},e.prototype.handleWheelZoom_=function(t){var e=t.getView();e.getAnimating()&&e.cancelAnimations();bo(e,-kt(this.delta_,-1,1),this.lastAnchor_,this.duration_),this.mode_=void 0,this.delta_=0,this.lastAnchor_=null,this.startTime_=void 0,this.timeoutId_=void 0},e.prototype.setMouseAnchor=function(t){this.useAnchor_=t,t||(this.lastAnchor_=null)},e}(Fo),_s=function(t){function e(e){var i=e||{},r=i;r.stopDown||(r.stopDown=w),t.call(this,r),this.anchor_=null,this.lastAngle_=void 0,this.rotating_=!1,this.rotationDelta_=0,this.threshold_=void 0!==i.threshold?i.threshold:.3,this.duration_=void 0!==i.duration?i.duration:250}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.handleDragEvent=function(t){var e=0,i=this.targetPointers[0],r=this.targetPointers[1],n=Math.atan2(r.clientY-i.clientY,r.clientX-i.clientX);if(void 0!==this.lastAngle_){var o=n-this.lastAngle_;this.rotationDelta_+=o,!this.rotating_&&Math.abs(this.rotationDelta_)>this.threshold_&&(this.rotating_=!0),e=o}this.lastAngle_=n;var s=t.map,a=s.getView();if(a.getConstraints().rotation!==Gn){var h=s.getViewport().getBoundingClientRect(),l=Zo(this.targetPointers);if(l[0]-=h.left,l[1]-=h.top,this.anchor_=s.getCoordinateFromPixel(l),this.rotating_){var u=a.getRotation();s.render(),Oo(a,u+e,this.anchor_)}}},e.prototype.handleUpEvent=function(t){if(this.targetPointers.length<2){var e=t.map.getView();if(e.setHint(jn,-1),this.rotating_)Lo(e,e.getRotation(),this.anchor_,this.duration_);return!1}return!0},e.prototype.handleDownEvent=function(t){if(this.targetPointers.length>=2){var e=t.map;return this.anchor_=null,this.lastAngle_=void 0,this.rotating_=!1,this.rotationDelta_=0,this.handlingDownUpSequence||e.getView().setHint(jn,1),!0}return!1},e}(qo),gs=function(t){function e(e){var i=e||{},r=i;r.stopDown||(r.stopDown=w),t.call(this,r),this.constrainResolution_=i.constrainResolution||!1,this.anchor_=null,this.duration_=void 0!==i.duration?i.duration:400,this.lastDistance_=void 0,this.lastScaleDelta_=1}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.handleDragEvent=function(t){var e=1,i=this.targetPointers[0],r=this.targetPointers[1],n=i.clientX-r.clientX,o=i.clientY-r.clientY,s=Math.sqrt(n*n+o*o);void 0!==this.lastDistance_&&(e=this.lastDistance_/s),this.lastDistance_=s;var a=t.map,h=a.getView(),l=h.getResolution(),u=h.getMaxResolution(),p=h.getMinResolution(),c=l*e;c>u?(e=u/l,c=u):ce.getMaxResolution()){var r=this.lastScaleDelta_-1;Po(e,i,this.anchor_,this.duration_,r)}return!1}return!0},e.prototype.handleDownEvent=function(t){if(this.targetPointers.length>=2){var e=t.map;return this.anchor_=null,this.lastDistance_=void 0,this.lastScaleDelta_=1,this.handlingDownUpSequence||e.getView().setHint(jn,1),!0}return!1},e}(qo);function ys(t){var e=t||{},i=new U,r=new br(-.005,.05,100);return(void 0===e.altShiftDragRotate||e.altShiftDragRotate)&&i.push(new Qo),(void 0===e.doubleClickZoom||e.doubleClickZoom)&&i.push(new No({delta:e.zoomDelta,duration:e.zoomDuration})),(void 0===e.dragPan||e.dragPan)&&i.push(new Jo({condition:e.onFocusOnly?ko:void 0,kinetic:r})),(void 0===e.pinchRotate||e.pinchRotate)&&i.push(new _s),(void 0===e.pinchZoom||e.pinchZoom)&&i.push(new gs({constrainResolution:e.constrainResolution,duration:e.zoomDuration})),(void 0===e.keyboard||e.keyboard)&&(i.push(new ls),i.push(new ps({delta:e.zoomDelta,duration:e.zoomDuration}))),(void 0===e.mouseWheelZoom||e.mouseWheelZoom)&&i.push(new fs({condition:e.onFocusOnly?ko:void 0,constrainResolution:e.constrainResolution,duration:e.zoomDuration})),(void 0===e.shiftDragZoom||e.shiftDragZoom)&&i.push(new ss({duration:e.zoomDuration})),i}var vs=.5,ms=function(t){function e(e,i,r,n){t.call(this),this.extent=e,this.pixelRatio_=r,this.resolution=i,this.state=n}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.changed=function(){this.dispatchEvent(M.CHANGE)},e.prototype.getExtent=function(){return this.extent},e.prototype.getImage=function(){return r()},e.prototype.getPixelRatio=function(){return this.pixelRatio_},e.prototype.getResolution=function(){return this.resolution},e.prototype.getState=function(){return this.state},e.prototype.load=function(){r()},e}(b),xs={IDLE:0,LOADING:1,LOADED:2,ERROR:3},Es=function(t){function e(e,i,r,n,o){var s=void 0!==o?xs.IDLE:xs.LOADED;t.call(this,e,i,r,s),this.loader_=void 0!==o?o:null,this.canvas_=n,this.error_=null}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.getError=function(){return this.error_},e.prototype.handleLoad_=function(t){t?(this.error_=t,this.state=xs.ERROR):this.state=xs.LOADED,this.changed()},e.prototype.load=function(){this.state==xs.IDLE&&(this.state=xs.LOADING,this.changed(),this.loader_(this.handleLoad_.bind(this)))},e.prototype.getImage=function(){return this.canvas_},e}(ms),Ss={IMAGE:"IMAGE",TILE:"TILE",VECTOR_TILE:"VECTOR_TILE",VECTOR:"VECTOR"},Ts={IMAGE:"image",VECTOR:"vector"},Cs=function(t){function e(e,i,r,n,o){t.call(this,e),this.vectorContext=i,this.frameState=r,this.context=n,this.glContext=o}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e}(P),Rs=function(t){function e(e){t.call(this),this.highWaterMark=void 0!==e?e:2048,this.count_=0,this.entries_={},this.oldest_=null,this.newest_=null}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.canExpireCache=function(){return this.getCount()>this.highWaterMark},e.prototype.clear=function(){this.count_=0,this.entries_={},this.oldest_=null,this.newest_=null,this.dispatchEvent(M.CLEAR)},e.prototype.containsKey=function(t){return this.entries_.hasOwnProperty(t)},e.prototype.forEach=function(t,e){for(var i=this.oldest_;i;)t.call(e,i.value_,i.key_,this),i=i.newer},e.prototype.get=function(t){var e=this.entries_[t];return Y(void 0!==e,15),e===this.newest_?e.value_:(e===this.oldest_?(this.oldest_=this.oldest_.newer,this.oldest_.older=null):(e.newer.older=e.older,e.older.newer=e.newer),e.newer=null,e.older=this.newest_,this.newest_.newer=e,this.newest_=e,e.value_)},e.prototype.remove=function(t){var e=this.entries_[t];return Y(void 0!==e,15),e===this.newest_?(this.newest_=e.older,this.newest_&&(this.newest_.newer=null)):e===this.oldest_?(this.oldest_=e.newer,this.oldest_&&(this.oldest_.older=null)):(e.newer.older=e.older,e.older.newer=e.newer),delete this.entries_[t],--this.count_,e.value_},e.prototype.getCount=function(){return this.count_},e.prototype.getKeys=function(){var t,e=new Array(this.count_),i=0;for(t=this.newest_;t;t=t.older)e[i++]=t.key_;return e},e.prototype.getValues=function(){var t,e=new Array(this.count_),i=0;for(t=this.newest_;t;t=t.older)e[i++]=t.value_;return e},e.prototype.peekLast=function(){return this.oldest_.value_},e.prototype.peekLastKey=function(){return this.oldest_.key_},e.prototype.peekFirstKey=function(){return this.newest_.key_},e.prototype.pop=function(){var t=this.oldest_;return delete this.entries_[t.key_],t.newer&&(t.newer.older=null),this.oldest_=t.newer,this.oldest_||(this.newest_=null),--this.count_,t.value_},e.prototype.replace=function(t,e){this.get(t),this.entries_[t].value_=e},e.prototype.set=function(t,e){Y(!(t in this.entries_),16);var i={key_:t,newer:null,older:this.newest_,value_:e};this.newest_?this.newest_.newer=i:this.oldest_=i,this.newest_=i,this.entries_[t]=i,++this.count_},e.prototype.setSize=function(t){this.highWaterMark=t},e.prototype.prune=function(){for(;this.canExpireCache();)this.pop()},e}(b),ws=[0,0,0,1],Is=[],Ls=[0,0,0,1],Os=[0,0,0,0],Ps=new Rs,bs={},Ms=null,Fs={},As=function(){var t,e,i=60,r=bs,n="32px ",o=["monospace","serif"],s=o.length,a="wmytzilWMYTZIL@#/&?$%10";function h(t){for(var i=Ns(),r=100;r<=700;r+=300){for(var h=r+" ",l=!0,u=0;uthis.maxCacheSize_){var t=0;for(var e in this.cache_){var i=this.cache_[e];0!=(3&t++)||i.hasListener()||(delete this.cache_[e],--this.cacheSize_)}}},zs.prototype.get=function(t,e,i){var r=Ws(t,e,i);return r in this.cache_?this.cache_[r]:null},zs.prototype.set=function(t,e,i,r){var n=Ws(t,e,i);this.cache_[n]=r,++this.cacheSize_},zs.prototype.setSize=function(t){this.maxCacheSize_=t,this.expire()};var Ks=new zs;function Hs(t,e){Ks.expire()}function Zs(t,e){return t.zIndex-e.zIndex}var qs=function(t){function e(e){t.call(this),this.map_=e,this.layerRenderers_={},this.layerRendererListeners_={},this.layerRendererConstructors_=[]}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.dispatchRenderEvent=function(t,e){r()},e.prototype.registerLayerRenderers=function(t){this.layerRendererConstructors_.push.apply(this.layerRendererConstructors_,t)},e.prototype.calculateMatrices2D=function(t){var e=t.viewState,i=t.coordinateToPixelTransform,r=t.pixelToCoordinateTransform;Ye(i,t.size[0]/2,t.size[1]/2,1/e.resolution,-1/e.resolution,-e.rotation,-e.center[0],-e.center[1]),Be(Ge(r,i))},e.prototype.removeLayerRenderers=function(){for(var t in this.layerRenderers_)this.removeLayerRendererByKey_(t).dispose()},e.prototype.forEachFeatureAtCoordinate=function(t,e,i,r,n,s,a){var h,l=e.viewState,u=l.resolution;function p(t,i){var s=e.layerStates[o(i)].managed;if(!(o(t)in e.skippedFeatureUids)||s)return r.call(n,t,s?i:null)}var c=l.projection,d=t;if(c.canWrapX()){var f=c.getExtent(),_=Ot(f),g=t[0];if(gf[2])d=[g+_*Math.ceil((f[0]-g)/_),t[1]]}var y,v=e.layerStatesArray;for(y=v.length-1;y>=0;--y){var m=v[y],x=m.layer;if(mo(m,u)&&s.call(a,x)){var E=this.getLayerRenderer(x),S=x.getSource();if(S&&(h=E.forEachFeatureAtCoordinate(S.getWrapX()?d:t,e,i,p)),h)return h}}},e.prototype.forEachLayerAtPixel=function(t,e,i,n,o,s,a){return r()},e.prototype.hasFeatureAtCoordinate=function(t,e,i,r,n){return void 0!==this.forEachFeatureAtCoordinate(t,e,i,R,this,r,n)},e.prototype.getLayerRenderer=function(t){var e=o(t);if(e in this.layerRenderers_)return this.layerRenderers_[e];for(var i,r=0,n=this.layerRendererConstructors_.length;r=0;--h){var d=u[h],f=d.layer;if(mo(d,l)&&o.call(s,f))if(a=this.getLayerRenderer(f).forEachLayerAtCoordinate(c,e,i,r,n))return a}},e.prototype.registerLayerRenderers=function(e){t.prototype.registerLayerRenderers.call(this,e);for(var i=0,r=e.length;i=.5&&p>=.5&&i.drawImage(r,0,0,+r.width,+r.height,Math.round(h),Math.round(l),Math.round(u),Math.round(p)),i.globalAlpha=a,o&&i.restore()}this.postCompose(i,t,e)},e.prototype.getImage=function(){return r()},e.prototype.getImageTransform=function(){return r()},e.prototype.forEachLayerAtCoordinate=function(t,e,i,r,n){if(this.getImage()){var o=De(this.coordinateToCanvasPixelTransform,t.slice());tr(o,e.viewState.resolution/this.renderedResolution),this.hitCanvasContext_||(this.hitCanvasContext_=Jn(1,1)),this.hitCanvasContext_.clearRect(0,0,1,1),this.hitCanvasContext_.drawImage(this.getImage(),o[0],o[1],1,1,0,0,1,1);var s=this.hitCanvasContext_.getImageData(0,0,1,1).data;return s[3]>0?r.call(n,this.getLayer(),s):void 0}},e}(ta),ia=function(t){function e(i){if(t.call(this,i),this.image_=null,this.imageTransform_=[1,0,0,1,0,0],this.skippedFeatures_=[],this.vectorRenderer_=null,i.getType()===Ss.VECTOR)for(var r=0,n=Js.length;rthis.maxX&&(this.maxX=t.maxX),t.minYthis.maxY&&(this.maxY=t.maxY)},na.prototype.getHeight=function(){return this.maxY-this.minY+1},na.prototype.getSize=function(){return[this.getWidth(),this.getHeight()]},na.prototype.getWidth=function(){return this.maxX-this.minX+1},na.prototype.intersects=function(t){return this.minX<=t.maxX&&this.maxX>=t.minX&&this.minY<=t.maxY&&this.maxY>=t.minY};var sa=na,aa=function(t){function e(e,i){t.call(this,e),this.context=i?null:Jn(),this.oversampling_,this.renderedExtent_=null,this.renderedRevision,this.renderedTiles=[],this.newTiles_=!1,this.tmpExtent=[1/0,1/0,-1/0,-1/0],this.tmpTileRange_=new sa(0,0,0,0),this.imageTransform_=[1,0,0,1,0,0],this.zDirection=0}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.isDrawableTile_=function(t){var e=this.getLayer(),i=t.getState(),r=e.getUseInterimTilesOnError();return i==On.LOADED||i==On.EMPTY||i==On.ERROR&&!r},e.prototype.getTile=function(t,e,i,r,n){var o=this.getLayer(),s=o.getSource().getTile(t,e,i,r,n);return s.getState()==On.ERROR&&(o.getUseInterimTilesOnError()?o.getPreload()>0&&(this.newTiles_=!0):s.setState(On.LOADED)),this.isDrawableTile_(s)||(s=s.getInterimTile()),s},e.prototype.prepareFrame=function(t,e){var i=t.pixelRatio,r=t.size,n=t.viewState,s=n.projection,a=n.resolution,h=n.center,l=this.getLayer(),u=l.getSource(),p=u.getRevision(),c=u.getTileGridForProjection(s),d=c.getZForResolution(a,this.zDirection),f=c.getResolution(d),_=Math.round(a/f)||1,g=t.extent;if(void 0!==e.extent&&(g=wt(g,e.extent)),bt(g))return!1;var y=c.getTileRangeForExtentAndZ(g,d),v=c.getTileRangeExtent(d,y),m=u.getTilePixelRatio(i),x={};x[d]={};var E,S,T,C=this.createLoadedTileFinder(u,s,x),R=t.viewHints,w=R[kn]||R[jn],I=this.tmpExtent,L=this.tmpTileRange_;for(this.newTiles_=!1,S=y.minX;S<=y.maxX;++S)for(T=y.minY;T<=y.maxY;++T)if(!(Date.now()-t.time>16&&w)){if(E=this.getTile(d,S,T,i,s),this.isDrawableTile_(E)){var O=o(this);if(E.getState()==On.LOADED){x[d][E.tileCoord.toString()]=E;var P=E.inTransition(O);this.newTiles_||!P&&-1!==this.renderedTiles.indexOf(E)||(this.newTiles_=!0)}if(1===E.getAlpha(O,t.time))continue}var b=c.getTileCoordChildTileRange(E.tileCoord,L,I),M=!1;b&&(M=C(d+1,b)),M||c.forEachTileCoordParentTileRange(E.tileCoord,C,null,L,I)}var F=f*i/m*_;if(!(this.renderedResolution&&Date.now()-t.time>16&&w)&&(this.newTiles_||!this.renderedExtent_||!ot(this.renderedExtent_,g)||this.renderedRevision!=p||_!=this.oversampling_||!w&&F!=this.renderedResolution)){var A=this.context;if(A){var N=u.getTilePixelSize(d,i,s),G=Math.round(y.getWidth()*N[0]/_),D=Math.round(y.getHeight()*N[1]/_),k=A.canvas;k.width!=G||k.height!=D?(this.oversampling_=_,k.width=G,k.height=D):(this.renderedExtent_&&!dt(v,this.renderedExtent_)&&A.clearRect(0,0,G,D),_=this.oversampling_)}this.renderedTiles.length=0;var j,U,Y,B,V,X,z,W,K,H,Z=Object.keys(x).map(Number);for(Z.sort(function(t,e){return t===d?1:e===d?-1:t>e?1:t0},e.prototype.drawTileImage=function(t,e,i,r,n,s,a,h,l){var u=this.getTileImage(t);if(u){var p=o(this),c=l?t.getAlpha(p,e.time):1,d=this.getLayer().getSource();1!==c||d.getOpaque(e.viewState.projection)||this.context.clearRect(r,n,s,a);var f=c!==this.context.globalAlpha;f&&(this.context.save(),this.context.globalAlpha=c),this.context.drawImage(u,h,h,u.width-2*h,u.height-2*h,r,n,s,a),f&&this.context.restore(),1!==c?e.animate=!0:l&&t.endTransition(p)}},e.prototype.getImage=function(){var t=this.context;return t?t.canvas:null},e.prototype.getImageTransform=function(){return this.imageTransform_},e.prototype.getTileImage=function(t){return t.getImage()},e}(ea);aa.handles=function(t){return t.getType()===Ss.TILE},aa.create=function(t,e){return new aa(e)},aa.prototype.getLayer;var ha=aa,la=i(0),ua=i.n(la),pa=function(){};pa.prototype.getReplay=function(t,e){return r()},pa.prototype.isEmpty=function(){return r()},pa.prototype.addDeclutter=function(t){return r()};var ca=pa,da={CIRCLE:"Circle",DEFAULT:"Default",IMAGE:"Image",LINE_STRING:"LineString",POLYGON:"Polygon",TEXT:"Text"};function fa(t,e,i,r,n,o,s,a){for(var h,l,u,p=[],c=t[e]>t[i-r],d=n.length,f=t[e],_=t[e+1],g=t[e+=r],y=t[e+1],v=0,m=Math.sqrt(Math.pow(g-f,2)+Math.pow(y-_,2)),x="",E=0,S=0;S0?-Math.PI:Math.PI),void 0!==u){var L=I-u;if(L+=L>Math.PI?-2*Math.PI:L<-Math.PI?2*Math.PI:0,Math.abs(L)>a)return null}var O=w/m,P=zt(f,g,O),b=zt(_,y,O);u==I?(c&&(h[0]=P,h[1]=b,h[2]=C/2),h[4]=x):(E=C,h=[P,b,C/2,I,x=T],c?p.unshift(h):p.push(h),u=I),s+=C}return p}var _a={BEGIN_GEOMETRY:0,BEGIN_PATH:1,CIRCLE:2,CLOSE_PATH:3,CUSTOM:4,DRAW_CHARS:5,DRAW_IMAGE:6,END_GEOMETRY:7,FILL:8,MOVE_TO_LINE_TO:9,SET_FILL_STYLE:10,SET_STROKE_STYLE:11,STROKE:12},ga=[_a.FILL],ya=[_a.STROKE],va=[_a.BEGIN_PATH],ma=[_a.CLOSE_PATH],xa=_a,Ea=[da.POLYGON,da.CIRCLE,da.LINE_STRING,da.IMAGE,da.TEXT,da.DEFAULT],Sa={left:0,end:0,center:.5,right:1,start:1,top:0,middle:.5,hanging:.2,alphabetic:.8,ideographic:.8,bottom:1},Ta=[1/0,1/0,-1/0,-1/0],Ca=[1,0,0,1,0,0],Ra=function(t){function e(e,i,r,n,o,s){t.call(this),this.declutterTree=s,this.tolerance=e,this.maxExtent=i,this.overlaps=o,this.pixelRatio=n,this.maxLineWidth=0,this.resolution=r,this.alignFill_,this.beginGeometryInstruction1_=null,this.beginGeometryInstruction2_=null,this.bufferedMaxExtent_=null,this.instructions=[],this.coordinates=[],this.coordinateCache_={},this.renderedTransform_=[1,0,0,1,0,0],this.hitDetectionInstructions=[],this.pixelCoordinates_=null,this.state={},this.viewRotation_=0}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.replayTextBackground_=function(t,e,i,r,n,o,s){t.beginPath(),t.moveTo.apply(t,e),t.lineTo.apply(t,i),t.lineTo.apply(t,r),t.lineTo.apply(t,n),t.lineTo.apply(t,e),o&&(this.alignFill_=o[2],this.fill_(t)),s&&(this.setStrokeStyle_(t,s),t.stroke())},e.prototype.replayImage_=function(t,e,i,r,n,o,s,a,h,l,u,p,c,d,f,_,g,y){var v=g||y;e-=n*=c,i-=o*=c;var m,x,E,S,T=f+l>r.width?r.width-l:f,C=a+u>r.height?r.height-u:a,R=_[3]+T*c+_[1],w=_[0]+C*c+_[2],I=e-_[3],L=i-_[0];(v||0!==p)&&(m=[I,L],x=[I+R,L],E=[I+R,L+w],S=[I,L+w]);var O=null;if(0!==p){var P=e+n,b=i+o;O=Ye(Ca,P,b,1,1,p,-P,-b),ut(Ta),_t(Ta,De(Ca,m)),_t(Ta,De(Ca,x)),_t(Ta,De(Ca,E)),_t(Ta,De(Ca,S))}else lt(I,L,I+R,L+w,Ta);var M=t.canvas,F=y?y[2]*c/2:0,A=Ta[0]-F<=M.width&&Ta[2]+F>=0&&Ta[1]-F<=M.height&&Ta[3]+F>=0;if(d&&(e=Math.round(e),i=Math.round(i)),s){if(!A&&1==s[4])return;ft(s,Ta);var N=A?[t,O?O.slice(0):null,h,r,l,u,T,C,e,i,c]:null;N&&v&&N.push(g,y,m,x,E,S),s.push(N)}else A&&(v&&this.replayTextBackground_(t,m,x,E,S,g,y),Us(t,O,h,r,l,u,T,C,e,i,c))},e.prototype.applyPixelRatio=function(t){var e=this.pixelRatio;return 1==e?t:t.map(function(t){return t*e})},e.prototype.appendFlatCoordinates=function(t,e,i,r,n,o){var s=this.coordinates.length,a=this.getBufferedMaxExtent();o&&(e+=r);var h,l,u,p=[t[e],t[e+1]],c=[NaN,NaN],d=!0;for(h=e+r;h5){var i=t[4];if(1==i||i==t.length-5){var r={minX:t[0],minY:t[1],maxX:t[2],maxY:t[3],value:e};if(!this.declutterTree.collides(r)){this.declutterTree.insert(r);for(var n=5,o=t.length;n11&&this.replayTextBackground_(s[0],s[13],s[14],s[15],s[16],s[11],s[12]),Us.apply(void 0,s))}}t.length=5,ut(t)}}},e.prototype.replay_=function(t,e,i,r,n,s,a){var h;this.pixelCoordinates_&&Z(e,this.renderedTransform_)?h=this.pixelCoordinates_:(this.pixelCoordinates_||(this.pixelCoordinates_=[]),h=Gt(this.coordinates,0,this.coordinates.length,2,e,this.pixelCoordinates_),Ge(this.renderedTransform_,e));for(var l,u,p,c,f,_,g,y,v,m,x,E,S=!d(i),T=0,C=r.length,R=0,w=0,I=0,L=null,O=null,P=this.coordinateCache_,b=this.viewRotation_,M={context:t,pixelRatio:this.pixelRatio,resolution:this.resolution,rotation:b},F=this.instructions!=r||this.overlaps?0:200;TF&&(this.fill_(t),w=0),I>F&&(t.stroke(),I=0),w||I||(t.beginPath(),c=f=NaN),++T;break;case xa.CIRCLE:var N=h[R=A[1]],G=h[R+1],D=h[R+2]-N,k=h[R+3]-G,j=Math.sqrt(D*D+k*k);t.moveTo(N+j,G),t.arc(N,G,j,0,2*Math.PI,!0),++T;break;case xa.CLOSE_PATH:t.closePath(),++T;break;case xa.CUSTOM:R=A[1],l=A[2];var U=A[3],Y=A[4],B=6==A.length?A[5]:void 0;M.geometry=U,M.feature=m,T in P||(P[T]=[]);var V=P[T];B?B(h,R,l,2,V):(V[0]=h[R],V[1]=h[R+1],V.length=2),Y(V,M),++T;break;case xa.DRAW_IMAGE:R=A[1],l=A[2],v=A[3],u=A[4],p=A[5],y=s?null:A[6];var X=A[7],z=A[8],W=A[9],K=A[10],H=A[11],q=A[12],J=A[13],Q=A[14],$=void 0,tt=void 0,et=void 0;for(A.length>16?($=A[15],tt=A[16],et=A[17]):($=Os,tt=et=!1),H&&(q+=b);Rthis.maxLineWidth&&(this.maxLineWidth=i.lineWidth,this.bufferedMaxExtent_=null)}else i.strokeStyle=void 0,i.lineCap=void 0,i.lineDash=null,i.lineDashOffset=void 0,i.lineJoin=void 0,i.lineWidth=void 0,i.miterLimit=void 0},e.prototype.createFill=function(t,e){var i=t.fillStyle,r=[xa.SET_FILL_STYLE,i];return"string"!=typeof i&&r.push(!0),r},e.prototype.applyStroke=function(t){this.instructions.push(this.createStroke(t))},e.prototype.createStroke=function(t){return[xa.SET_STROKE_STYLE,t.strokeStyle,t.lineWidth*this.pixelRatio,t.lineCap,t.lineJoin,t.miterLimit,this.applyPixelRatio(t.lineDash),t.lineDashOffset*this.pixelRatio]},e.prototype.updateFillStyle=function(t,e,i){var r=t.fillStyle;"string"==typeof r&&t.currentFillStyle==r||(void 0!==r&&this.instructions.push(e.call(this,t,i)),t.currentFillStyle=r)},e.prototype.updateStrokeStyle=function(t,e){var i=t.strokeStyle,r=t.lineCap,n=t.lineDash,o=t.lineDashOffset,s=t.lineJoin,a=t.lineWidth,h=t.miterLimit;(t.currentStrokeStyle!=i||t.currentLineCap!=r||n!=t.currentLineDash&&!Z(t.currentLineDash,n)||t.currentLineDashOffset!=o||t.currentLineJoin!=s||t.currentLineWidth!=a||t.currentMiterLimit!=h)&&(void 0!==i&&e.call(this,t),t.currentStrokeStyle=i,t.currentLineCap=r,t.currentLineDash=n,t.currentLineDashOffset=o,t.currentLineJoin=s,t.currentLineWidth=a,t.currentMiterLimit=h)},e.prototype.endGeometry=function(t,e){this.beginGeometryInstruction1_[2]=this.instructions.length,this.beginGeometryInstruction1_=null,this.beginGeometryInstruction2_[2]=this.hitDetectionInstructions.length,this.beginGeometryInstruction2_=null;var i=[xa.END_GEOMETRY,e];this.instructions.push(i),this.hitDetectionInstructions.push(i)},e.prototype.getBufferedMaxExtent=function(){if(!this.bufferedMaxExtent_&&(this.bufferedMaxExtent_=it(this.maxExtent),this.maxLineWidth>0)){var t=this.resolution*(this.maxLineWidth+1)/2;et(this.bufferedMaxExtent_,t,this.bufferedMaxExtent_)}return this.bufferedMaxExtent_},e}(Vs),wa=function(t){function e(e,i,r,n,o,s){t.call(this,e,i,r,n,o,s),this.declutterGroup_=null,this.hitDetectionImage_=null,this.image_=null,this.anchorX_=void 0,this.anchorY_=void 0,this.height_=void 0,this.opacity_=void 0,this.originX_=void 0,this.originY_=void 0,this.rotateWithView_=void 0,this.rotation_=void 0,this.scale_=void 0,this.width_=void 0}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.drawCoordinates_=function(t,e,i,r){return this.appendFlatCoordinates(t,e,i,r,!1,!1)},e.prototype.drawPoint=function(t,e){if(this.image_){this.beginGeometry(t,e);var i=t.getFlatCoordinates(),r=t.getStride(),n=this.coordinates.length,o=this.drawCoordinates_(i,0,i.length,r);this.instructions.push([xa.DRAW_IMAGE,n,o,this.image_,this.anchorX_,this.anchorY_,this.declutterGroup_,this.height_,this.opacity_,this.originX_,this.originY_,this.rotateWithView_,this.rotation_,this.scale_*this.pixelRatio,this.width_]),this.hitDetectionInstructions.push([xa.DRAW_IMAGE,n,o,this.hitDetectionImage_,this.anchorX_,this.anchorY_,this.declutterGroup_,this.height_,this.opacity_,this.originX_,this.originY_,this.rotateWithView_,this.rotation_,this.scale_,this.width_]),this.endGeometry(t,e)}},e.prototype.drawMultiPoint=function(t,e){if(this.image_){this.beginGeometry(t,e);var i=t.getFlatCoordinates(),r=t.getStride(),n=this.coordinates.length,o=this.drawCoordinates_(i,0,i.length,r);this.instructions.push([xa.DRAW_IMAGE,n,o,this.image_,this.anchorX_,this.anchorY_,this.declutterGroup_,this.height_,this.opacity_,this.originX_,this.originY_,this.rotateWithView_,this.rotation_,this.scale_*this.pixelRatio,this.width_]),this.hitDetectionInstructions.push([xa.DRAW_IMAGE,n,o,this.hitDetectionImage_,this.anchorX_,this.anchorY_,this.declutterGroup_,this.height_,this.opacity_,this.originX_,this.originY_,this.rotateWithView_,this.rotation_,this.scale_,this.width_]),this.endGeometry(t,e)}},e.prototype.finish=function(){this.reverseHitDetectionInstructions(),this.anchorX_=void 0,this.anchorY_=void 0,this.hitDetectionImage_=null,this.image_=null,this.height_=void 0,this.scale_=void 0,this.opacity_=void 0,this.originX_=void 0,this.originY_=void 0,this.rotateWithView_=void 0,this.rotation_=void 0,this.width_=void 0},e.prototype.setImageStyle=function(t,e){var i=t.getAnchor(),r=t.getSize(),n=t.getHitDetectionImage(1),o=t.getImage(1),s=t.getOrigin();this.anchorX_=i[0],this.anchorY_=i[1],this.declutterGroup_=e,this.hitDetectionImage_=n,this.image_=o,this.height_=r[1],this.opacity_=t.getOpacity(),this.originX_=s[0],this.originY_=s[1],this.rotateWithView_=t.getRotateWithView(),this.rotation_=t.getRotation(),this.scale_=t.getScale(),this.width_=r[0]},e}(Ra),Ia=function(t){function e(e,i,r,n,o,s){t.call(this,e,i,r,n,o,s)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.drawFlatCoordinates_=function(t,e,i,r){var n=this.coordinates.length,o=this.appendFlatCoordinates(t,e,i,r,!1,!1),s=[xa.MOVE_TO_LINE_TO,n,o];return this.instructions.push(s),this.hitDetectionInstructions.push(s),i},e.prototype.drawLineString=function(t,e){var i=this.state,r=i.strokeStyle,n=i.lineWidth;if(void 0!==r&&void 0!==n){this.updateStrokeStyle(i,this.applyStroke),this.beginGeometry(t,e),this.hitDetectionInstructions.push([xa.SET_STROKE_STYLE,i.strokeStyle,i.lineWidth,i.lineCap,i.lineJoin,i.miterLimit,i.lineDash,i.lineDashOffset],va);var o=t.getFlatCoordinates(),s=t.getStride();this.drawFlatCoordinates_(o,0,o.length,s),this.hitDetectionInstructions.push(ya),this.endGeometry(t,e)}},e.prototype.drawMultiLineString=function(t,e){var i=this.state,r=i.strokeStyle,n=i.lineWidth;if(void 0!==r&&void 0!==n){this.updateStrokeStyle(i,this.applyStroke),this.beginGeometry(t,e),this.hitDetectionInstructions.push([xa.SET_STROKE_STYLE,i.strokeStyle,i.lineWidth,i.lineCap,i.lineJoin,i.miterLimit,i.lineDash,i.lineDashOffset],va);for(var o=t.getEnds(),s=t.getFlatCoordinates(),a=t.getStride(),h=0,l=0,u=o.length;lt&&(y>g&&(g=y,f=v,_=o),y=0,v=o-n)),s=a,u=c,p=d),h=m,l=x}return(y+=a)>g?[v,o]:[f,_]}var Pa={Circle:La,Default:Ra,Image:wa,LineString:Ia,Polygon:La,Text:function(t){function e(e,i,r,n,o,s){t.call(this,e,i,r,n,o,s),this.declutterGroup_,this.labels_=null,this.text_="",this.textOffsetX_=0,this.textOffsetY_=0,this.textRotateWithView_=void 0,this.textRotation_=0,this.textFillState_=null,this.fillStates={},this.textStrokeState_=null,this.strokeStates={},this.textState_={},this.textStates={},this.textKey_="",this.fillKey_="",this.strokeKey_="",this.widths_={},Ps.prune()}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.drawText=function(t,e){var i=this.textFillState_,r=this.textStrokeState_,n=this.textState_;if(""!==this.text_&&n&&(i||r)){var o,s,a=this.coordinates.length,h=t.getType(),l=null,u=2,p=2;if(n.placement===Tr){if(!Pt(this.getBufferedMaxExtent(),t.getExtent()))return;var c;if(l=t.getFlatCoordinates(),p=t.getStride(),h==Nt.LINE_STRING)c=[l.length];else if(h==Nt.MULTI_LINE_STRING)c=t.getEnds();else if(h==Nt.POLYGON)c=t.getEnds().slice(0,1);else if(h==Nt.MULTI_POLYGON){var d=t.getEndss();for(c=[],o=0,s=d.length;o=E)&&l.push(S[o],S[o+1]);if(0==(u=l.length))return}u=this.appendFlatCoordinates(l,0,u,p,!1,!1),(n.backgroundFill||n.backgroundStroke)&&(this.setFillStrokeStyle(n.backgroundFill,n.backgroundStroke),n.backgroundFill&&(this.updateFillStyle(this.state,this.createFill,t),this.hitDetectionInstructions.push(this.createFill(this.state,t))),n.backgroundStroke&&(this.updateStrokeStyle(this.state,this.applyStroke),this.hitDetectionInstructions.push(this.createStroke(this.state)))),this.beginGeometry(t,e),this.drawTextImage_(x,a,u),this.endGeometry(t,e)}}},e.prototype.getImage=function(t,e,i,r){var n,o=r+e+t+i+this.pixelRatio;if(!Ps.containsKey(o)){var s=r?this.strokeStates[r]||this.textStrokeState_:null,a=i?this.fillStates[i]||this.textFillState_:null,h=this.textStates[e]||this.textState_,l=this.pixelRatio,u=h.scale*l,p=Sa[h.textAlign||"center"],c=r&&s.lineWidth?s.lineWidth:0,d=t.split("\n"),f=d.length,_=[],g=function(t,e,i){for(var r=e.length,n=0,o=0;o=o;)Fa(i,t+n,t+o),Fa(i,t+o,t+n),Fa(i,t-o,t+n),Fa(i,t-n,t+o),Fa(i,t-n,t-o),Fa(i,t-o,t-n),Fa(i,t+o,t-n),Fa(i,t+n,t-o),2*((s+=1+2*++o)-n)+1>0&&(s+=1-2*(n-=1));return Ma[t]=i,i}(r);function f(t){for(var e=u.getImageData(0,0,h,h).data,i=0;i0){var n=void 0;return(!p||c!=da.IMAGE&&c!=da.TEXT||-1!==p.indexOf(t))&&(n=o(t)),n||void u.clearRect(0,0,h,h)}}this.declutterTree_&&(p=this.declutterTree_.all().map(function(t){return t.value}));var _,g,y,v,m,x=Object.keys(this.replaysByZIndex_).map(Number);for(x.sort(V),_=x.length-1;_>=0;--_){var E=x[_].toString();for(y=this.replaysByZIndex_[E],g=Ea.length-1;g>=0;--g)if(void 0!==(v=y[c=Ea[g]]))if(!s||c!=da.IMAGE&&c!=da.TEXT){if(m=v.replayHitDetection(u,l,i,n,f,a))return m}else{var S=s[E];S?S.push(v,l.slice(0)):s[E]=[v,l.slice(0)]}}},e.prototype.getClipCoords=function(t){var e=this.maxExtent_,i=e[0],r=e[1],n=e[2],o=e[3],s=[i,r,i,o,n,o,n,r];return Gt(s,0,8,2,t,s),s},e.prototype.getReplay=function(t,e){var i=void 0!==t?t.toString():"0",r=this.replaysByZIndex_[i];void 0===r&&(r={},this.replaysByZIndex_[i]=r);var n=r[e];void 0===n&&(n=new(0,Pa[e])(this.tolerance_,this.maxExtent_,this.resolution_,this.pixelRatio_,this.overlaps_,this.declutterTree_),r[e]=n);return n},e.prototype.getReplays=function(){return this.replaysByZIndex_},e.prototype.isEmpty=function(){return d(this.replaysByZIndex_)},e.prototype.replay=function(t,e,i,r,n,o,s){var a=Object.keys(this.replaysByZIndex_).map(Number);a.sort(V),t.save(),this.clip(t,e);var h,l,u,p,c,d,f=o||Ea;for(h=0,l=a.length;h=n)for(r=n;rl[2];)O=b*++M,p=this.getTransform(e,O),f.replay(_,p,h,o,w),P-=b}if(ks(_,h,I/2,L/2),x&&this.dispatchRenderEvent(_,e,p),_!=t){if(m){var F=t.globalAlpha;t.globalAlpha=i.opacity,t.drawImage(_.canvas,-y,-v),t.globalAlpha=F}else t.drawImage(_.canvas,-y,-v);_.translate(-y,-v)}m||(_.globalAlpha=C)}d&&t.restore()},e.prototype.composeFrame=function(t,e,i){var r=this.getTransform(t,0);this.preCompose(i,t,r),this.compose(i,t,e),this.postCompose(i,t,e,r)},e.prototype.forEachFeatureAtCoordinate=function(t,e,i,r,n){if(this.replayGroup_){var s=e.viewState.resolution,a=e.viewState.rotation,h=this.getLayer(),l={};return this.replayGroup_.forEachFeatureAtCoordinate(t,s,a,i,{},function(t){var e=o(t);if(!(e in l))return l[e]=!0,r.call(n,t,h)},null)}},e.prototype.handleFontsChanged_=function(t){var e=this.getLayer();e.getVisible()&&this.replayGroup_&&e.changed()},e.prototype.handleStyleImageChange_=function(t){this.renderIfReadyAndVisible()},e.prototype.prepareFrame=function(t,e){var i=this.getLayer(),r=i.getSource(),n=t.viewHints[kn],o=t.viewHints[jn],s=i.getUpdateWhileAnimating(),a=i.getUpdateWhileInteracting();if(!this.dirty_&&!s&&n||!a&&o)return!0;var h=t.extent,l=t.viewState,u=l.projection,p=l.resolution,c=t.pixelRatio,d=i.getRevision(),f=i.getRenderBuffer(),_=i.getRenderOrder();void 0===_&&(_=Da);var g=et(h,f*p),y=l.projection.getExtent();if(r.getWrapX()&&l.projection.canWrapX()&&!ot(y,t.extent)){var v=Ot(y),m=Math.max(Ot(g)/2,v);g[0]=y[0]-m,g[2]=y[2]+m}if(!this.dirty_&&this.renderedResolution_==p&&this.renderedRevision_==d&&this.renderedRenderOrder_==_&&ot(this.renderedExtent_,g))return this.replayGroupChanged=!1,!0;this.replayGroup_=null,this.dirty_=!1;var x=new Aa(ja(p,c),g,p,c,r.getOverlaps(),this.declutterTree_,i.getRenderBuffer());r.loadFeatures(g,p,u);var E=function(t){var e,r=t.getStyleFunction()||i.getStyleFunction();if(r&&(e=r(t,p)),e){var n=this.renderFeature(t,p,c,e,x);this.dirty_=this.dirty_||n}}.bind(this);if(_){var S=[];r.forEachFeatureInExtent(g,function(t){S.push(t)}),S.sort(_);for(var T=0,C=S.length;T=0;--x){var E=g[x];if(E.getState()!=On.ABORT)for(var S=E.tileCoord,T=y.getTileCoordExtent(S,this.tmpExtent)[0]-E.extent[0],C=void 0,R=0,w=E.tileKeys.length;R radius + v_halfWidth) {\n if (u_strokeColor.a == 0.0) {\n gl_FragColor = u_fillColor;\n } else {\n gl_FragColor = u_strokeColor;\n }\n gl_FragColor.a = gl_FragColor.a - (dist - (radius + v_halfWidth));\n } else if (u_fillColor.a == 0.0) {\n // Hooray, no fill, just stroke. We can use real antialiasing.\n gl_FragColor = u_strokeColor;\n if (dist < radius - v_halfWidth) {\n gl_FragColor.a = gl_FragColor.a - (radius - v_halfWidth - dist);\n }\n } else {\n gl_FragColor = u_fillColor;\n float strokeDist = radius - v_halfWidth;\n float antialias = 2.0 * v_pixelRatio;\n if (dist > strokeDist) {\n gl_FragColor = u_strokeColor;\n } else if (dist >= strokeDist - antialias) {\n float step = smoothstep(strokeDist - antialias, strokeDist, dist);\n gl_FragColor = mix(u_fillColor, u_strokeColor, step);\n }\n }\n gl_FragColor.a = gl_FragColor.a * u_opacity;\n if (gl_FragColor.a <= 0.0) {\n discard;\n }\n}\n"),ch=new uh("varying vec2 v_center;\nvarying vec2 v_offset;\nvarying float v_halfWidth;\nvarying float v_pixelRatio;\n\n\nattribute vec2 a_position;\nattribute float a_instruction;\nattribute float a_radius;\n\nuniform mat4 u_projectionMatrix;\nuniform mat4 u_offsetScaleMatrix;\nuniform mat4 u_offsetRotateMatrix;\nuniform float u_lineWidth;\nuniform float u_pixelRatio;\n\nvoid main(void) {\n mat4 offsetMatrix = u_offsetScaleMatrix * u_offsetRotateMatrix;\n v_center = vec4(u_projectionMatrix * vec4(a_position, 0.0, 1.0)).xy;\n v_pixelRatio = u_pixelRatio;\n float lineWidth = u_lineWidth * u_pixelRatio;\n v_halfWidth = lineWidth / 2.0;\n if (lineWidth == 0.0) {\n lineWidth = 2.0 * u_pixelRatio;\n }\n vec2 offset;\n // Radius with anitaliasing (roughly).\n float radius = a_radius + 3.0 * u_pixelRatio;\n // Until we get gl_VertexID in WebGL, we store an instruction.\n if (a_instruction == 0.0) {\n // Offsetting the edges of the triangle by lineWidth / 2 is necessary, however\n // we should also leave some space for the antialiasing, thus we offset by lineWidth.\n offset = vec2(-1.0, 1.0);\n } else if (a_instruction == 1.0) {\n offset = vec2(-1.0, -1.0);\n } else if (a_instruction == 2.0) {\n offset = vec2(1.0, -1.0);\n } else {\n offset = vec2(1.0, 1.0);\n }\n\n gl_Position = u_projectionMatrix * vec4(a_position + offset * radius, 0.0, 1.0) +\n offsetMatrix * vec4(offset * lineWidth, 0.0, 0.0);\n v_offset = vec4(u_projectionMatrix * vec4(a_position.x + a_radius, a_position.y,\n 0.0, 1.0)).xy;\n\n if (distance(v_center, v_offset) > 20000.0) {\n gl_Position = vec4(v_center, 0.0, 1.0);\n }\n}\n\n\n"),dh=function(t,e){this.u_projectionMatrix=t.getUniformLocation(e,"u_projectionMatrix"),this.u_offsetScaleMatrix=t.getUniformLocation(e,"u_offsetScaleMatrix"),this.u_offsetRotateMatrix=t.getUniformLocation(e,"u_offsetRotateMatrix"),this.u_lineWidth=t.getUniformLocation(e,"u_lineWidth"),this.u_pixelRatio=t.getUniformLocation(e,"u_pixelRatio"),this.u_opacity=t.getUniformLocation(e,"u_opacity"),this.u_fillColor=t.getUniformLocation(e,"u_fillColor"),this.u_strokeColor=t.getUniformLocation(e,"u_strokeColor"),this.u_size=t.getUniformLocation(e,"u_size"),this.a_position=t.getAttribLocation(e,"a_position"),this.a_instruction=t.getAttribLocation(e,"a_instruction"),this.a_radius=t.getAttribLocation(e,"a_radius")};function fh(t,e){return t[0]=e[0],t[1]=e[1],t[4]=e[2],t[5]=e[3],t[12]=e[4],t[13]=e[5],t}var _h=function(t){function e(e,i){t.call(this),this.tolerance=e,this.maxExtent=i,this.origin=Tt(i),this.projectionMatrix_=[1,0,0,1,0,0],this.offsetRotateMatrix_=[1,0,0,1,0,0],this.offsetScaleMatrix_=[1,0,0,1,0,0],this.tmpMat4_=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1],this.indices=[],this.indicesBuffer=null,this.startIndices=[],this.startIndicesFeature=[],this.vertices=[],this.verticesBuffer=null,this.lineStringReplay=void 0}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.getDeleteResourcesFunction=function(t){return r()},e.prototype.finish=function(t){r()},e.prototype.setUpProgram=function(t,e,i,n){return r()},e.prototype.shutDownProgram=function(t,e){r()},e.prototype.drawReplay=function(t,e,i,n){r()},e.prototype.drawHitDetectionReplayOneByOne=function(t,e,i,n,o){return r()},e.prototype.drawHitDetectionReplay=function(t,e,i,r,n,o){return n?this.drawHitDetectionReplayOneByOne(t,e,i,r,o):this.drawHitDetectionReplayAll(t,e,i,r)},e.prototype.drawHitDetectionReplayAll=function(t,e,i,r){t.clear(t.COLOR_BUFFER_BIT|t.DEPTH_BUFFER_BIT),this.drawReplay(t,e,i,!0);var n=r(null);return n||void 0},e.prototype.replay=function(t,e,i,r,n,o,s,a,h,l,u){var p,c,d,f,_,g,y,v,m=t.getGL();this.lineStringReplay&&(p=m.isEnabled(m.STENCIL_TEST),c=m.getParameter(m.STENCIL_FUNC),d=m.getParameter(m.STENCIL_VALUE_MASK),f=m.getParameter(m.STENCIL_REF),_=m.getParameter(m.STENCIL_WRITEMASK),g=m.getParameter(m.STENCIL_FAIL),y=m.getParameter(m.STENCIL_PASS_DEPTH_PASS),v=m.getParameter(m.STENCIL_PASS_DEPTH_FAIL),m.enable(m.STENCIL_TEST),m.clear(m.STENCIL_BUFFER_BIT),m.stencilMask(255),m.stencilFunc(m.ALWAYS,1,255),m.stencilOp(m.KEEP,m.KEEP,m.REPLACE),this.lineStringReplay.replay(t,e,i,r,n,o,s,a,h,l,u),m.stencilMask(0),m.stencilFunc(m.NOTEQUAL,1,255)),t.bindBuffer(34962,this.verticesBuffer),t.bindBuffer(34963,this.indicesBuffer);var x=this.setUpProgram(m,t,n,o),E=Fe(this.projectionMatrix_);je(E,2/(i*n[0]),2/(i*n[1])),ke(E,-r),Ue(E,-(e[0]-this.origin[0]),-(e[1]-this.origin[1]));var S=Fe(this.offsetScaleMatrix_);je(S,2/n[0],2/n[1]);var T,C=Fe(this.offsetRotateMatrix_);return 0!==r&&ke(C,-r),m.uniformMatrix4fv(x.u_projectionMatrix,!1,fh(this.tmpMat4_,E)),m.uniformMatrix4fv(x.u_offsetScaleMatrix,!1,fh(this.tmpMat4_,S)),m.uniformMatrix4fv(x.u_offsetRotateMatrix,!1,fh(this.tmpMat4_,C)),m.uniform1f(x.u_opacity,s),void 0===h?this.drawReplay(m,t,a,!1):T=this.drawHitDetectionReplay(m,t,a,h,l,u),this.shutDownProgram(m,x),this.lineStringReplay&&(p||m.disable(m.STENCIL_TEST),m.clear(m.STENCIL_BUFFER_BIT),m.stencilFunc(c,f,d),m.stencilMask(_),m.stencilOp(g,v,y)),T},e.prototype.drawElements=function(t,e,i,r){var n=e.hasOESElementIndexUint?5125:5123,o=r-i,s=i*(e.hasOESElementIndexUint?4:2);t.drawElements(4,o,n,s)},e}(Vs),gh=[0,0,0,1],yh=[],vh=[0,0,0,1],mh=Number.EPSILON||2.220446049250313e-16,xh=function(t,e,i,r,n,o){var s=(i-t)*(o-e)-(n-t)*(r-e);return s<=mh&&s>=-mh?void 0:s>0},Eh=35044,Sh=function(t,e){this.arr_=void 0!==t?t:[],this.usage_=void 0!==e?e:Eh};Sh.prototype.getArray=function(){return this.arr_},Sh.prototype.getUsage=function(){return this.usage_};var Th=Sh,Ch=function(t){function e(e,i){t.call(this,e,i),this.defaultLocations_=null,this.styles_=[],this.styleIndices_=[],this.radius_=0,this.state_={fillColor:null,strokeColor:null,lineDash:null,lineDashOffset:void 0,lineWidth:void 0,changed:!1}}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.drawCoordinates_=function(t,e,i,r){var n,o,s=this.vertices.length,a=this.indices.length,h=s/4;for(n=e,o=i;n0&&(this.styles_=[]),this.vertices=null,this.indices=null},e.prototype.getDeleteResourcesFunction=function(t){var e=this.verticesBuffer,i=this.indicesBuffer;return function(){t.deleteBuffer(e),t.deleteBuffer(i)}},e.prototype.setUpProgram=function(t,e,i,r){var n,o=e.getProgram(ph,ch);return this.defaultLocations_?n=this.defaultLocations_:(n=new dh(t,o),this.defaultLocations_=n),e.useProgram(o),t.enableVertexAttribArray(n.a_position),t.vertexAttribPointer(n.a_position,2,5126,!1,16,0),t.enableVertexAttribArray(n.a_instruction),t.vertexAttribPointer(n.a_instruction,1,5126,!1,16,8),t.enableVertexAttribArray(n.a_radius),t.vertexAttribPointer(n.a_radius,1,5126,!1,16,12),t.uniform2fv(n.u_size,i),t.uniform1f(n.u_pixelRatio,r),n},e.prototype.shutDownProgram=function(t,e){t.disableVertexAttribArray(e.a_position),t.disableVertexAttribArray(e.a_instruction),t.disableVertexAttribArray(e.a_radius)},e.prototype.drawReplay=function(t,e,i,r){var n,o,s,a;if(d(i))for(s=this.startIndices[this.startIndices.length-1],n=this.styleIndices_.length-1;n>=0;--n)o=this.styleIndices_[n],a=this.styles_[n],this.setFillStyle_(t,a[0]),this.setStrokeStyle_(t,a[1],a[2]),this.drawElements(t,e,o,s),s=o;else this.drawReplaySkipping_(t,e,i)},e.prototype.drawHitDetectionReplayOneByOne=function(t,e,i,r,n){var s,a,h,l,u,p,c;for(c=this.startIndices.length-2,h=this.startIndices[c+1],s=this.styleIndices_.length-1;s>=0;--s)for(l=this.styles_[s],this.setFillStyle_(t,l[0]),this.setStrokeStyle_(t,l[1],l[2]),u=this.styleIndices_[s];c>=0&&this.startIndices[c]>=u;){if(a=this.startIndices[c],void 0===i[o(p=this.startIndicesFeature[c])]&&p.getGeometry()&&(void 0===n||Pt(n,p.getGeometry().getExtent()))){t.clear(t.COLOR_BUFFER_BIT|t.DEPTH_BUFFER_BIT),this.drawElements(t,e,a,h);var d=r(p);if(d)return d}c--,h=a}},e.prototype.drawReplaySkipping_=function(t,e,i){var r,n,s,a,h,l,u;for(l=this.startIndices.length-2,s=n=this.startIndices[l+1],r=this.styleIndices_.length-1;r>=0;--r){for(a=this.styles_[r],this.setFillStyle_(t,a[0]),this.setStrokeStyle_(t,a[1],a[2]),h=this.styleIndices_[r];l>=0&&this.startIndices[l]>=h;)u=this.startIndices[l],i[o(this.startIndicesFeature[l])]&&(n!==s&&this.drawElements(t,e,n,s),s=u),l--,n=u;n!==s&&this.drawElements(t,e,n,s),n=s=h}},e.prototype.setFillStyle_=function(t,e){t.uniform4fv(this.defaultLocations_.u_fillColor,e)},e.prototype.setStrokeStyle_=function(t,e,i){t.uniform4fv(this.defaultLocations_.u_strokeColor,e),t.uniform1f(this.defaultLocations_.u_lineWidth,i)},e.prototype.setFillStrokeStyle=function(t,e){var i,r;if(e){var n=e.getLineDash();this.state_.lineDash=n||yh;var o=e.getLineDashOffset();this.state_.lineDashOffset=o||0,i=(i=e.getColor())instanceof CanvasGradient||i instanceof CanvasPattern?vh:_r(i).map(function(t,e){return 3!=e?t/255:t})||vh,r=void 0!==(r=e.getWidth())?r:1}else i=[0,0,0,0],r=0;var s=t?t.getColor():[0,0,0,0];s=s instanceof CanvasGradient||s instanceof CanvasPattern?gh:_r(s).map(function(t,e){return 3!=e?t/255:t})||gh,this.state_.strokeColor&&Z(this.state_.strokeColor,i)&&this.state_.fillColor&&Z(this.state_.fillColor,s)&&this.state_.lineWidth===r||(this.state_.changed=!0,this.state_.fillColor=s,this.state_.strokeColor=i,this.state_.lineWidth=r,this.styles_.push([s,i,r]))},e}(_h),Rh=new lh("precision mediump float;\nvarying vec2 v_texCoord;\nvarying float v_opacity;\n\nuniform float u_opacity;\nuniform sampler2D u_image;\n\nvoid main(void) {\n vec4 texColor = texture2D(u_image, v_texCoord);\n gl_FragColor.rgb = texColor.rgb;\n float alpha = texColor.a * v_opacity * u_opacity;\n if (alpha == 0.0) {\n discard;\n }\n gl_FragColor.a = alpha;\n}\n"),wh=new uh("varying vec2 v_texCoord;\nvarying float v_opacity;\n\nattribute vec2 a_position;\nattribute vec2 a_texCoord;\nattribute vec2 a_offsets;\nattribute float a_opacity;\nattribute float a_rotateWithView;\n\nuniform mat4 u_projectionMatrix;\nuniform mat4 u_offsetScaleMatrix;\nuniform mat4 u_offsetRotateMatrix;\n\nvoid main(void) {\n mat4 offsetMatrix = u_offsetScaleMatrix;\n if (a_rotateWithView == 1.0) {\n offsetMatrix = u_offsetScaleMatrix * u_offsetRotateMatrix;\n }\n vec4 offsets = offsetMatrix * vec4(a_offsets, 0.0, 0.0);\n gl_Position = u_projectionMatrix * vec4(a_position, 0.0, 1.0) + offsets;\n v_texCoord = a_texCoord;\n v_opacity = a_opacity;\n}\n\n\n"),Ih=function(t,e){this.u_projectionMatrix=t.getUniformLocation(e,"u_projectionMatrix"),this.u_offsetScaleMatrix=t.getUniformLocation(e,"u_offsetScaleMatrix"),this.u_offsetRotateMatrix=t.getUniformLocation(e,"u_offsetRotateMatrix"),this.u_opacity=t.getUniformLocation(e,"u_opacity"),this.u_image=t.getUniformLocation(e,"u_image"),this.a_position=t.getAttribLocation(e,"a_position"),this.a_texCoord=t.getAttribLocation(e,"a_texCoord"),this.a_offsets=t.getAttribLocation(e,"a_offsets"),this.a_opacity=t.getAttribLocation(e,"a_opacity"),this.a_rotateWithView=t.getAttribLocation(e,"a_rotateWithView")},Lh={LOST:"webglcontextlost",RESTORED:"webglcontextrestored"};function Oh(t,e,i){var r=t.createTexture();return t.bindTexture(t.TEXTURE_2D,r),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MAG_FILTER,t.LINEAR),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MIN_FILTER,t.LINEAR),void 0!==e&&t.texParameteri(eh,$a,e),void 0!==i&&t.texParameteri(eh,th,i),r}function Ph(t,e,i,r,n){var o=Oh(t,r,n);return t.texImage2D(t.TEXTURE_2D,0,t.RGBA,e,i,0,t.RGBA,t.UNSIGNED_BYTE,null),o}function bh(t,e,i,r){var n=Oh(t,i,r);return t.texImage2D(t.TEXTURE_2D,0,t.RGBA,t.RGBA,t.UNSIGNED_BYTE,e),n}var Mh=function(t){function e(e,i){t.call(this),this.canvas_=e,this.gl_=i,this.bufferCache_={},this.shaderCache_={},this.programCache_={},this.currentProgram_=null,this.hitDetectionFramebuffer_=null,this.hitDetectionTexture_=null,this.hitDetectionRenderbuffer_=null,this.hasOESElementIndexUint=X(oh,"OES_element_index_uint"),this.hasOESElementIndexUint&&i.getExtension("OES_element_index_uint"),v(this.canvas_,Lh.LOST,this.handleWebGLContextLost,this),v(this.canvas_,Lh.RESTORED,this.handleWebGLContextRestored,this)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.bindBuffer=function(t,e){var i=this.getGL(),r=e.getArray(),n=o(e);if(n in this.bufferCache_){var s=this.bufferCache_[n];i.bindBuffer(t,s.buffer)}else{var a,h=i.createBuffer();i.bindBuffer(t,h),34962==t?a=new Float32Array(r):34963==t&&(a=this.hasOESElementIndexUint?new Uint32Array(r):new Uint16Array(r)),i.bufferData(t,a,e.getUsage()),this.bufferCache_[n]={buf:e,buffer:h}}},e.prototype.deleteBuffer=function(t){var e=this.getGL(),i=o(t),r=this.bufferCache_[i];e.isContextLost()||e.deleteBuffer(r.buffer),delete this.bufferCache_[i]},e.prototype.disposeInternal=function(){S(this.canvas_);var t=this.getGL();if(!t.isContextLost()){for(var e in this.bufferCache_)t.deleteBuffer(this.bufferCache_[e].buffer);for(var i in this.programCache_)t.deleteProgram(this.programCache_[i]);for(var r in this.shaderCache_)t.deleteShader(this.shaderCache_[r]);t.deleteFramebuffer(this.hitDetectionFramebuffer_),t.deleteRenderbuffer(this.hitDetectionRenderbuffer_),t.deleteTexture(this.hitDetectionTexture_)}},e.prototype.getCanvas=function(){return this.canvas_},e.prototype.getGL=function(){return this.gl_},e.prototype.getHitDetectionFramebuffer=function(){return this.hitDetectionFramebuffer_||this.initHitDetectionFramebuffer_(),this.hitDetectionFramebuffer_},e.prototype.getShader=function(t){var e=o(t);if(e in this.shaderCache_)return this.shaderCache_[e];var i=this.getGL(),r=i.createShader(t.getType());return i.shaderSource(r,t.getSource()),i.compileShader(r),this.shaderCache_[e]=r,r},e.prototype.getProgram=function(t,e){var i=o(t)+"/"+o(e);if(i in this.programCache_)return this.programCache_[i];var r=this.getGL(),n=r.createProgram();return r.attachShader(n,this.getShader(t)),r.attachShader(n,this.getShader(e)),r.linkProgram(n),this.programCache_[i]=n,n},e.prototype.handleWebGLContextLost=function(){p(this.bufferCache_),p(this.shaderCache_),p(this.programCache_),this.currentProgram_=null,this.hitDetectionFramebuffer_=null,this.hitDetectionTexture_=null,this.hitDetectionRenderbuffer_=null},e.prototype.handleWebGLContextRestored=function(){},e.prototype.initHitDetectionFramebuffer_=function(){var t=this.gl_,e=t.createFramebuffer();t.bindFramebuffer(t.FRAMEBUFFER,e);var i=Ph(t,1,1),r=t.createRenderbuffer();t.bindRenderbuffer(t.RENDERBUFFER,r),t.renderbufferStorage(t.RENDERBUFFER,t.DEPTH_COMPONENT16,1,1),t.framebufferTexture2D(t.FRAMEBUFFER,t.COLOR_ATTACHMENT0,t.TEXTURE_2D,i,0),t.framebufferRenderbuffer(t.FRAMEBUFFER,t.DEPTH_ATTACHMENT,t.RENDERBUFFER,r),t.bindTexture(t.TEXTURE_2D,null),t.bindRenderbuffer(t.RENDERBUFFER,null),t.bindFramebuffer(t.FRAMEBUFFER,null),this.hitDetectionFramebuffer_=e,this.hitDetectionTexture_=i,this.hitDetectionRenderbuffer_=r},e.prototype.useProgram=function(t){return t!=this.currentProgram_&&(this.getGL().useProgram(t),this.currentProgram_=t,!0)},e}(C),Fh=function(t){function e(e,i){t.call(this,e,i),this.anchorX=void 0,this.anchorY=void 0,this.groupIndices=[],this.hitDetectionGroupIndices=[],this.height=void 0,this.imageHeight=void 0,this.imageWidth=void 0,this.defaultLocations=null,this.opacity=void 0,this.originX=void 0,this.originY=void 0,this.rotateWithView=void 0,this.rotation=void 0,this.scale=void 0,this.width=void 0}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.getDeleteResourcesFunction=function(t){var e=this.verticesBuffer,i=this.indicesBuffer,r=this.getTextures(!0),n=t.getGL();return function(){var o,s;if(!n.isContextLost())for(o=0,s=r.length;o0?n[s-1]:0,u=n[s],p=l,c=l;h=0;--s)for(t.bindTexture(eh,c[s]),a=s>0?this.hitDetectionGroupIndices[s-1]:0,l=this.hitDetectionGroupIndices[s];p>=0&&this.startIndices[p]>=a;){if(h=this.startIndices[p],void 0===i[o(u=this.startIndicesFeature[p])]&&u.getGeometry()&&(void 0===n||Pt(n,u.getGeometry().getExtent()))){t.clear(t.COLOR_BUFFER_BIT|t.DEPTH_BUFFER_BIT),this.drawElements(t,e,h,l);var d=r(u);if(d)return d}l=h,p--}},e.prototype.finish=function(t){this.anchorX=void 0,this.anchorY=void 0,this.height=void 0,this.imageHeight=void 0,this.imageWidth=void 0,this.indices=null,this.opacity=void 0,this.originX=void 0,this.originY=void 0,this.rotateWithView=void 0,this.rotation=void 0,this.scale=void 0,this.vertices=null,this.width=void 0},e.prototype.getTextures=function(t){return r()},e.prototype.getHitDetectionTextures=function(){return r()},e}(_h),Ah=function(t){function e(e,i){t.call(this,e,i),this.images_=[],this.hitDetectionImages_=[],this.textures_=[],this.hitDetectionTextures_=[]}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.drawMultiPoint=function(t,e){this.startIndices.push(this.indices.length),this.startIndicesFeature.push(e);var i=t.getFlatCoordinates(),r=t.getStride();this.drawCoordinates(i,0,i.length,r)},e.prototype.drawPoint=function(t,e){this.startIndices.push(this.indices.length),this.startIndicesFeature.push(e);var i=t.getFlatCoordinates(),r=t.getStride();this.drawCoordinates(i,0,i.length,r)},e.prototype.finish=function(e){var i=e.getGL();this.groupIndices.push(this.indices.length),this.hitDetectionGroupIndices.push(this.indices.length),this.verticesBuffer=new Th(this.vertices);var r=this.indices;this.indicesBuffer=new Th(r);var n={};this.createTextures(this.textures_,this.images_,n,i),this.createTextures(this.hitDetectionTextures_,this.hitDetectionImages_,n,i),this.images_=null,this.hitDetectionImages_=null,t.prototype.finish.call(this,e)},e.prototype.setImageStyle=function(t){var e=t.getAnchor(),i=t.getImage(1),r=t.getImageSize(),n=t.getHitDetectionImage(1),s=t.getOpacity(),a=t.getOrigin(),h=t.getRotateWithView(),l=t.getRotation(),u=t.getSize(),p=t.getScale();0===this.images_.length?this.images_.push(i):o(this.images_[this.images_.length-1])!=o(i)&&(this.groupIndices.push(this.indices.length),this.images_.push(i)),0===this.hitDetectionImages_.length?this.hitDetectionImages_.push(n):o(this.hitDetectionImages_[this.hitDetectionImages_.length-1])!=o(n)&&(this.hitDetectionGroupIndices.push(this.indices.length),this.hitDetectionImages_.push(n)),this.anchorX=e[0],this.anchorY=e[1],this.height=u[1],this.imageHeight=r[1],this.imageWidth=r[0],this.opacity=s,this.originX=a[0],this.originY=a[1],this.rotation=l,this.rotateWithView=h,this.scale=p,this.width=u[0]},e.prototype.getTextures=function(t){return t?this.textures_.concat(this.hitDetectionTextures_):this.textures_},e.prototype.getHitDetectionTextures=function(){return this.hitDetectionTextures_},e}(Fh);function Nh(t,e,i,r){var n=i-r;return t[e]===t[n]&&t[e+1]===t[n+1]&&(i-e)/r>3&&!!Ke(t,e,i,r)}var Gh=new lh("precision mediump float;\nvarying float v_round;\nvarying vec2 v_roundVertex;\nvarying float v_halfWidth;\n\n\n\nuniform float u_opacity;\nuniform vec4 u_color;\nuniform vec2 u_size;\nuniform float u_pixelRatio;\n\nvoid main(void) {\n if (v_round > 0.0) {\n vec2 windowCoords = vec2((v_roundVertex.x + 1.0) / 2.0 * u_size.x * u_pixelRatio,\n (v_roundVertex.y + 1.0) / 2.0 * u_size.y * u_pixelRatio);\n if (length(windowCoords - gl_FragCoord.xy) > v_halfWidth * u_pixelRatio) {\n discard;\n }\n }\n gl_FragColor = u_color;\n float alpha = u_color.a * u_opacity;\n if (alpha == 0.0) {\n discard;\n }\n gl_FragColor.a = alpha;\n}\n"),Dh=new uh("varying float v_round;\nvarying vec2 v_roundVertex;\nvarying float v_halfWidth;\n\n\nattribute vec2 a_lastPos;\nattribute vec2 a_position;\nattribute vec2 a_nextPos;\nattribute float a_direction;\n\nuniform mat4 u_projectionMatrix;\nuniform mat4 u_offsetScaleMatrix;\nuniform mat4 u_offsetRotateMatrix;\nuniform float u_lineWidth;\nuniform float u_miterLimit;\n\nbool nearlyEquals(in float value, in float ref) {\n float epsilon = 0.000000000001;\n return value >= ref - epsilon && value <= ref + epsilon;\n}\n\nvoid alongNormal(out vec2 offset, in vec2 nextP, in float turnDir, in float direction) {\n vec2 dirVect = nextP - a_position;\n vec2 normal = normalize(vec2(-turnDir * dirVect.y, turnDir * dirVect.x));\n offset = u_lineWidth / 2.0 * normal * direction;\n}\n\nvoid miterUp(out vec2 offset, out float round, in bool isRound, in float direction) {\n float halfWidth = u_lineWidth / 2.0;\n vec2 tangent = normalize(normalize(a_nextPos - a_position) + normalize(a_position - a_lastPos));\n vec2 normal = vec2(-tangent.y, tangent.x);\n vec2 dirVect = a_nextPos - a_position;\n vec2 tmpNormal = normalize(vec2(-dirVect.y, dirVect.x));\n float miterLength = abs(halfWidth / dot(normal, tmpNormal));\n offset = normal * direction * miterLength;\n round = 0.0;\n if (isRound) {\n round = 1.0;\n } else if (miterLength > u_miterLimit + u_lineWidth) {\n offset = halfWidth * tmpNormal * direction;\n }\n}\n\nbool miterDown(out vec2 offset, in vec4 projPos, in mat4 offsetMatrix, in float direction) {\n bool degenerate = false;\n vec2 tangent = normalize(normalize(a_nextPos - a_position) + normalize(a_position - a_lastPos));\n vec2 normal = vec2(-tangent.y, tangent.x);\n vec2 dirVect = a_lastPos - a_position;\n vec2 tmpNormal = normalize(vec2(-dirVect.y, dirVect.x));\n vec2 longOffset, shortOffset, longVertex;\n vec4 shortProjVertex;\n float halfWidth = u_lineWidth / 2.0;\n if (length(a_nextPos - a_position) > length(a_lastPos - a_position)) {\n longOffset = tmpNormal * direction * halfWidth;\n shortOffset = normalize(vec2(dirVect.y, -dirVect.x)) * direction * halfWidth;\n longVertex = a_nextPos;\n shortProjVertex = u_projectionMatrix * vec4(a_lastPos, 0.0, 1.0);\n } else {\n shortOffset = tmpNormal * direction * halfWidth;\n longOffset = normalize(vec2(dirVect.y, -dirVect.x)) * direction * halfWidth;\n longVertex = a_lastPos;\n shortProjVertex = u_projectionMatrix * vec4(a_nextPos, 0.0, 1.0);\n }\n //Intersection algorithm based on theory by Paul Bourke (http://paulbourke.net/geometry/pointlineplane/).\n vec4 p1 = u_projectionMatrix * vec4(longVertex, 0.0, 1.0) + offsetMatrix * vec4(longOffset, 0.0, 0.0);\n vec4 p2 = projPos + offsetMatrix * vec4(longOffset, 0.0, 0.0);\n vec4 p3 = shortProjVertex + offsetMatrix * vec4(-shortOffset, 0.0, 0.0);\n vec4 p4 = shortProjVertex + offsetMatrix * vec4(shortOffset, 0.0, 0.0);\n float denom = (p4.y - p3.y) * (p2.x - p1.x) - (p4.x - p3.x) * (p2.y - p1.y);\n float firstU = ((p4.x - p3.x) * (p1.y - p3.y) - (p4.y - p3.y) * (p1.x - p3.x)) / denom;\n float secondU = ((p2.x - p1.x) * (p1.y - p3.y) - (p2.y - p1.y) * (p1.x - p3.x)) / denom;\n float epsilon = 0.000000000001;\n if (firstU > epsilon && firstU < 1.0 - epsilon && secondU > epsilon && secondU < 1.0 - epsilon) {\n shortProjVertex.x = p1.x + firstU * (p2.x - p1.x);\n shortProjVertex.y = p1.y + firstU * (p2.y - p1.y);\n offset = shortProjVertex.xy;\n degenerate = true;\n } else {\n float miterLength = abs(halfWidth / dot(normal, tmpNormal));\n offset = normal * direction * miterLength;\n }\n return degenerate;\n}\n\nvoid squareCap(out vec2 offset, out float round, in bool isRound, in vec2 nextP,\n in float turnDir, in float direction) {\n round = 0.0;\n vec2 dirVect = a_position - nextP;\n vec2 firstNormal = normalize(dirVect);\n vec2 secondNormal = vec2(turnDir * firstNormal.y * direction, -turnDir * firstNormal.x * direction);\n vec2 hypotenuse = normalize(firstNormal - secondNormal);\n vec2 normal = vec2(turnDir * hypotenuse.y * direction, -turnDir * hypotenuse.x * direction);\n float length = sqrt(v_halfWidth * v_halfWidth * 2.0);\n offset = normal * length;\n if (isRound) {\n round = 1.0;\n }\n}\n\nvoid main(void) {\n bool degenerate = false;\n float direction = float(sign(a_direction));\n mat4 offsetMatrix = u_offsetScaleMatrix * u_offsetRotateMatrix;\n vec2 offset;\n vec4 projPos = u_projectionMatrix * vec4(a_position, 0.0, 1.0);\n bool round = nearlyEquals(mod(a_direction, 2.0), 0.0);\n\n v_round = 0.0;\n v_halfWidth = u_lineWidth / 2.0;\n v_roundVertex = projPos.xy;\n\n if (nearlyEquals(mod(a_direction, 3.0), 0.0) || nearlyEquals(mod(a_direction, 17.0), 0.0)) {\n alongNormal(offset, a_nextPos, 1.0, direction);\n } else if (nearlyEquals(mod(a_direction, 5.0), 0.0) || nearlyEquals(mod(a_direction, 13.0), 0.0)) {\n alongNormal(offset, a_lastPos, -1.0, direction);\n } else if (nearlyEquals(mod(a_direction, 23.0), 0.0)) {\n miterUp(offset, v_round, round, direction);\n } else if (nearlyEquals(mod(a_direction, 19.0), 0.0)) {\n degenerate = miterDown(offset, projPos, offsetMatrix, direction);\n } else if (nearlyEquals(mod(a_direction, 7.0), 0.0)) {\n squareCap(offset, v_round, round, a_nextPos, 1.0, direction);\n } else if (nearlyEquals(mod(a_direction, 11.0), 0.0)) {\n squareCap(offset, v_round, round, a_lastPos, -1.0, direction);\n }\n if (!degenerate) {\n vec4 offsets = offsetMatrix * vec4(offset, 0.0, 0.0);\n gl_Position = projPos + offsets;\n } else {\n gl_Position = vec4(offset, 0.0, 1.0);\n }\n}\n\n\n"),kh=function(t,e){this.u_projectionMatrix=t.getUniformLocation(e,"u_projectionMatrix"),this.u_offsetScaleMatrix=t.getUniformLocation(e,"u_offsetScaleMatrix"),this.u_offsetRotateMatrix=t.getUniformLocation(e,"u_offsetRotateMatrix"),this.u_lineWidth=t.getUniformLocation(e,"u_lineWidth"),this.u_miterLimit=t.getUniformLocation(e,"u_miterLimit"),this.u_opacity=t.getUniformLocation(e,"u_opacity"),this.u_color=t.getUniformLocation(e,"u_color"),this.u_size=t.getUniformLocation(e,"u_size"),this.u_pixelRatio=t.getUniformLocation(e,"u_pixelRatio"),this.a_lastPos=t.getAttribLocation(e,"a_lastPos"),this.a_position=t.getAttribLocation(e,"a_position"),this.a_nextPos=t.getAttribLocation(e,"a_nextPos"),this.a_direction=t.getAttribLocation(e,"a_direction")},jh=3,Uh=5,Yh=7,Bh=11,Vh=13,Xh=17,zh=19,Wh=23,Kh=function(t){function e(e,i){t.call(this,e,i),this.defaultLocations_=null,this.styles_=[],this.styleIndices_=[],this.state_={strokeColor:null,lineCap:void 0,lineDash:null,lineDashOffset:void 0,lineJoin:void 0,lineWidth:void 0,miterLimit:void 0,changed:!1}}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.drawCoordinates_=function(t,e,i,r){var n,o,s,a,h,l,u,p,c=this.vertices.length,d=this.indices.length,f="bevel"===this.state_.lineJoin?0:"miter"===this.state_.lineJoin?1:2,_="butt"===this.state_.lineCap?0:"square"===this.state_.lineCap?1:2,g=Nh(t,e,i,r),y=d,v=1;for(n=e,o=i;ne&&(this.indices[d++]=h,this.indices[d++]=y-1,this.indices[d++]=y,this.indices[d++]=h+2,this.indices[d++]=h,this.indices[d++]=v*a>0?y:y-1),this.indices[d++]=h,this.indices[d++]=h+2,this.indices[d++]=h+1,y=h+2,v=a,f&&(c=this.addVertices_(l,u,p,a*Wh*f,c),this.indices[d++]=h+1,this.indices[d++]=h+3,this.indices[d++]=h)}g&&(h=h||c/7,a=Si([l[0],l[1],u[0],u[1],p[0],p[1]],0,6,2)?1:-1,c=this.addVertices_(l,u,p,a*Vh*(f||1),c),c=this.addVertices_(l,u,p,-a*zh*(f||1),c),this.indices[d++]=h,this.indices[d++]=y-1,this.indices[d++]=y,this.indices[d++]=h+1,this.indices[d++]=h,this.indices[d++]=v*a>0?y:y-1)},e.prototype.addVertices_=function(t,e,i,r,n){return this.vertices[n++]=t[0],this.vertices[n++]=t[1],this.vertices[n++]=e[0],this.vertices[n++]=e[1],this.vertices[n++]=i[0],this.vertices[n++]=i[1],this.vertices[n++]=r,n},e.prototype.isValid_=function(t,e,i,r){var n=i-e;return!(n<2*r)&&(n!==2*r||!Z([t[e],t[e+1]],[t[e+r],t[e+r+1]]))},e.prototype.drawLineString=function(t,e){var i=t.getFlatCoordinates(),r=t.getStride();this.isValid_(i,0,i.length,r)&&(i=Dt(i,0,i.length,r,-this.origin[0],-this.origin[1]),this.state_.changed&&(this.styleIndices_.push(this.indices.length),this.state_.changed=!1),this.startIndices.push(this.indices.length),this.startIndicesFeature.push(e),this.drawCoordinates_(i,0,i.length,r))},e.prototype.drawMultiLineString=function(t,e){var i=this.indices.length,r=t.getEnds();r.unshift(0);var n,o,s=t.getFlatCoordinates(),a=t.getStride();if(r.length>1)for(n=1,o=r.length;ni&&(this.startIndices.push(i),this.startIndicesFeature.push(e),this.state_.changed&&(this.styleIndices_.push(i),this.state_.changed=!1))},e.prototype.drawPolygonCoordinates=function(t,e,i){var r,n;if(Nh(t,0,t.length,i)||(t.push(t[0]),t.push(t[1])),this.drawCoordinates_(t,0,t.length,i),e.length)for(r=0,n=e.length;r0&&(this.styles_=[]),this.vertices=null,this.indices=null},e.prototype.getDeleteResourcesFunction=function(t){var e=this.verticesBuffer,i=this.indicesBuffer;return function(){t.deleteBuffer(e),t.deleteBuffer(i)}},e.prototype.setUpProgram=function(t,e,i,r){var n,o=e.getProgram(Gh,Dh);return this.defaultLocations_?n=this.defaultLocations_:(n=new kh(t,o),this.defaultLocations_=n),e.useProgram(o),t.enableVertexAttribArray(n.a_lastPos),t.vertexAttribPointer(n.a_lastPos,2,5126,!1,28,0),t.enableVertexAttribArray(n.a_position),t.vertexAttribPointer(n.a_position,2,5126,!1,28,8),t.enableVertexAttribArray(n.a_nextPos),t.vertexAttribPointer(n.a_nextPos,2,5126,!1,28,16),t.enableVertexAttribArray(n.a_direction),t.vertexAttribPointer(n.a_direction,1,5126,!1,28,24),t.uniform2fv(n.u_size,i),t.uniform1f(n.u_pixelRatio,r),n},e.prototype.shutDownProgram=function(t,e){t.disableVertexAttribArray(e.a_lastPos),t.disableVertexAttribArray(e.a_position),t.disableVertexAttribArray(e.a_nextPos),t.disableVertexAttribArray(e.a_direction)},e.prototype.drawReplay=function(t,e,i,r){var n,o,s,a,h=t.getParameter(t.DEPTH_FUNC),l=t.getParameter(t.DEPTH_WRITEMASK);if(r||(t.enable(t.DEPTH_TEST),t.depthMask(!0),t.depthFunc(t.NOTEQUAL)),d(i))for(s=this.startIndices[this.startIndices.length-1],n=this.styleIndices_.length-1;n>=0;--n)o=this.styleIndices_[n],a=this.styles_[n],this.setStrokeStyle_(t,a[0],a[1],a[2]),this.drawElements(t,e,o,s),t.clear(t.DEPTH_BUFFER_BIT),s=o;else this.drawReplaySkipping_(t,e,i);r||(t.disable(t.DEPTH_TEST),t.clear(t.DEPTH_BUFFER_BIT),t.depthMask(l),t.depthFunc(h))},e.prototype.drawReplaySkipping_=function(t,e,i){var r,n,s,a,h,l,u;for(l=this.startIndices.length-2,s=n=this.startIndices[l+1],r=this.styleIndices_.length-1;r>=0;--r){for(a=this.styles_[r],this.setStrokeStyle_(t,a[0],a[1],a[2]),h=this.styleIndices_[r];l>=0&&this.startIndices[l]>=h;)u=this.startIndices[l],i[o(this.startIndicesFeature[l])]&&(n!==s&&(this.drawElements(t,e,n,s),t.clear(t.DEPTH_BUFFER_BIT)),s=u),l--,n=u;n!==s&&(this.drawElements(t,e,n,s),t.clear(t.DEPTH_BUFFER_BIT)),n=s=h}},e.prototype.drawHitDetectionReplayOneByOne=function(t,e,i,r,n){var s,a,h,l,u,p,c;for(c=this.startIndices.length-2,h=this.startIndices[c+1],s=this.styleIndices_.length-1;s>=0;--s)for(l=this.styles_[s],this.setStrokeStyle_(t,l[0],l[1],l[2]),u=this.styleIndices_[s];c>=0&&this.startIndices[c]>=u;){if(a=this.startIndices[c],void 0===i[o(p=this.startIndicesFeature[c])]&&p.getGeometry()&&(void 0===n||Pt(n,p.getGeometry().getExtent()))){t.clear(t.COLOR_BUFFER_BIT|t.DEPTH_BUFFER_BIT),this.drawElements(t,e,a,h);var d=r(p);if(d)return d}c--,h=a}},e.prototype.setStrokeStyle_=function(t,e,i,r){t.uniform4fv(this.defaultLocations_.u_color,e),t.uniform1f(this.defaultLocations_.u_lineWidth,i),t.uniform1f(this.defaultLocations_.u_miterLimit,r)},e.prototype.setFillStrokeStyle=function(t,e){var i=e.getLineCap();this.state_.lineCap=void 0!==i?i:"round";var r=e.getLineDash();this.state_.lineDash=r||yh;var n=e.getLineDashOffset();this.state_.lineDashOffset=n||0;var o=e.getLineJoin();this.state_.lineJoin=void 0!==o?o:"round";var s=e.getColor();s=s instanceof CanvasGradient||s instanceof CanvasPattern?vh:_r(s).map(function(t,e){return 3!=e?t/255:t})||vh;var a=e.getWidth();a=void 0!==a?a:1;var h=e.getMiterLimit();h=void 0!==h?h:10,this.state_.strokeColor&&Z(this.state_.strokeColor,s)&&this.state_.lineWidth===a&&this.state_.miterLimit===h||(this.state_.changed=!0,this.state_.strokeColor=s,this.state_.lineWidth=a,this.state_.miterLimit=h,this.styles_.push([s,a,h]))},e}(_h),Hh=new lh("precision mediump float;\n\n\n\nuniform vec4 u_color;\nuniform float u_opacity;\n\nvoid main(void) {\n gl_FragColor = u_color;\n float alpha = u_color.a * u_opacity;\n if (alpha == 0.0) {\n discard;\n }\n gl_FragColor.a = alpha;\n}\n"),Zh=new uh("\n\nattribute vec2 a_position;\n\nuniform mat4 u_projectionMatrix;\nuniform mat4 u_offsetScaleMatrix;\nuniform mat4 u_offsetRotateMatrix;\n\nvoid main(void) {\n gl_Position = u_projectionMatrix * vec4(a_position, 0.0, 1.0);\n}\n\n\n"),qh=function(t,e){this.u_projectionMatrix=t.getUniformLocation(e,"u_projectionMatrix"),this.u_offsetScaleMatrix=t.getUniformLocation(e,"u_offsetScaleMatrix"),this.u_offsetRotateMatrix=t.getUniformLocation(e,"u_offsetRotateMatrix"),this.u_color=t.getUniformLocation(e,"u_color"),this.u_opacity=t.getUniformLocation(e,"u_opacity"),this.a_position=t.getAttribLocation(e,"a_position")},Jh=function(t){this.first_,this.last_,this.head_,this.circular_=void 0===t||t,this.length_=0};Jh.prototype.insertItem=function(t){var e={prev:void 0,next:void 0,data:t},i=this.head_;if(i){var r=i.next;e.prev=i,e.next=r,i.next=e,r&&(r.prev=e),i===this.last_&&(this.last_=e)}else this.first_=e,this.last_=e,this.circular_&&(e.next=e,e.prev=e);this.head_=e,this.length_++},Jh.prototype.removeItem=function(){var t=this.head_;if(t){var e=t.next,i=t.prev;e&&(e.prev=i),i&&(i.next=e),this.head_=e||i,this.first_===this.last_?(this.head_=void 0,this.first_=void 0,this.last_=void 0):this.first_===t?this.first_=this.head_:this.last_===t&&(this.last_=i?this.head_.prev:this.head_),this.length_--}},Jh.prototype.firstItem=function(){if(this.head_=this.first_,this.head_)return this.head_.data},Jh.prototype.lastItem=function(){if(this.head_=this.last_,this.head_)return this.head_.data},Jh.prototype.nextItem=function(){if(this.head_&&this.head_.next)return this.head_=this.head_.next,this.head_.data},Jh.prototype.getNextItem=function(){if(this.head_&&this.head_.next)return this.head_.next.data},Jh.prototype.prevItem=function(){if(this.head_&&this.head_.prev)return this.head_=this.head_.prev,this.head_.data},Jh.prototype.getPrevItem=function(){if(this.head_&&this.head_.prev)return this.head_.prev.data},Jh.prototype.getCurrItem=function(){if(this.head_)return this.head_.data},Jh.prototype.setFirstItem=function(){this.circular_&&this.head_&&(this.first_=this.head_,this.last_=this.head_.prev)},Jh.prototype.concat=function(t){if(t.head_){if(this.head_){var e=this.head_.next;this.head_.next=t.first_,t.first_.prev=this.head_,e.prev=t.last_,t.last_.next=e,this.length_+=t.length_}else this.head_=t.head_,this.first_=t.first_,this.last_=t.last_,this.length_=t.length_;t.head_=void 0,t.first_=void 0,t.last_=void 0,t.length_=0}},Jh.prototype.getLength=function(){return this.length_};var Qh=Jh,$h=function(t){this.rbush_=ua()(t,void 0),this.items_={}};$h.prototype.insert=function(t,e){var i={minX:t[0],minY:t[1],maxX:t[2],maxY:t[3],value:e};this.rbush_.insert(i),this.items_[o(e)]=i},$h.prototype.load=function(t,e){for(var i=new Array(e.length),r=0,n=e.length;r=s;o-=e)l=this.createPoint_(t[o],t[o+1],p++),d.push(this.insertItem_(h,l,i)),c.push([Math.min(h.x,l.x),Math.min(h.y,l.y),Math.max(h.x,l.x),Math.max(h.y,l.y)]),h=l;d.push(this.insertItem_(l,a,i)),c.push([Math.min(h.x,l.x),Math.min(h.y,l.y),Math.max(h.x,l.x),Math.max(h.y,l.y)])}r.load(c,d)},e.prototype.getMaxCoords_=function(t){var e=t.firstItem(),i=e,r=[i.p0.x,i.p0.y];do{(i=t.nextItem()).p0.x>r[0]&&(r=[i.p0.x,i.p0.y])}while(i!==e);return r},e.prototype.classifyPoints_=function(t,e,i){var r=t.firstItem(),n=r,o=t.nextItem(),s=!1;do{var a=i?xh(o.p1.x,o.p1.y,n.p1.x,n.p1.y,n.p0.x,n.p0.y):xh(n.p0.x,n.p0.y,n.p1.x,n.p1.y,o.p1.x,o.p1.y);void 0===a?(this.removeItem_(n,o,t,e),s=!0,o===r&&(r=t.getNextItem()),o=n,t.prevItem()):n.p1.reflex!==a&&(n.p1.reflex=a,s=!0),n=o,o=t.nextItem()}while(n!==r);return s},e.prototype.bridgeHole_=function(t,e,i,r,n){for(var o=t.firstItem();o.p1.x!==e;)o=t.nextItem();var s,a,h,l,u=o.p1,p={x:r,y:u.y,i:-1},c=1/0,d=this.getIntersections_({p0:u,p1:p},n,!0);for(s=0,a=d.length;s0){var y=this.getPointsInTriangle_(u,l,o.p1,n);if(y.length){var v=1/0;for(s=0,a=y.length;s3;)if(r){if(!this.clipEars_(t,e,r,i)&&!this.classifyPoints_(t,e,i)&&!this.resolveSelfIntersections_(t,e,!0))break}else if(!this.clipEars_(t,e,r,i)&&!this.classifyPoints_(t,e,i)&&!this.resolveSelfIntersections_(t,e)){if(!(r=this.isSimple_(t,e))){this.splitPolygon_(t,e);break}i=!this.isClockwise_(t),this.classifyPoints_(t,e,i)}if(3===t.getLength()){var n=this.indices.length;this.indices[n++]=t.getPrevItem().p0.i,this.indices[n++]=t.getCurrItem().p0.i,this.indices[n++]=t.getNextItem().p0.i}},e.prototype.clipEars_=function(t,e,i,r){var n,o,s,a=this.indices.length,h=t.firstItem(),l=t.getPrevItem(),u=h,p=t.nextItem(),c=t.getNextItem(),d=!1;do{if(n=u.p0,o=u.p1,s=p.p1,!1===o.reflex){var f=void 0;f=i?0===this.getPointsInTriangle_(n,o,s,e,!0).length:r?this.diagonalIsInside_(c.p1,s,o,n,l.p0):this.diagonalIsInside_(l.p0,n,o,s,c.p1),(i||0===this.getIntersections_({p0:n,p1:s},e).length)&&f&&(i||!1===n.reflex||!1===s.reflex||Si([l.p0.x,l.p0.y,n.x,n.y,o.x,o.y,s.x,s.y,c.p1.x,c.p1.y],0,10,2)===!r)&&(this.indices[a++]=n.i,this.indices[a++]=o.i,this.indices[a++]=s.i,this.removeItem_(u,p,t,e),p===h&&(h=c),d=!0)}l=t.getPrevItem(),u=t.getCurrItem(),p=t.nextItem(),c=t.getNextItem()}while(u!==h&&t.getLength()>3);return d},e.prototype.resolveSelfIntersections_=function(t,e,i){var r=t.firstItem();t.nextItem();var n=r,o=t.nextItem(),s=!1;do{var a=this.calculateIntersection_(n.p0,n.p1,o.p0,o.p1,i);if(a){var h=!1,l=this.vertices.length,u=this.indices.length,p=l/2,c=t.prevItem();t.removeItem(),e.remove(c),h=c===r;var d=void 0;if(i?(a[0]===n.p0.x&&a[1]===n.p0.y?(t.prevItem(),d=n.p0,o.p0=d,e.remove(n),h=h||n===r):(d=o.p1,n.p1=d,e.remove(o),h=h||o===r),t.removeItem()):(d=this.createPoint_(a[0],a[1],p),n.p1=d,o.p0=d,e.update([Math.min(n.p0.x,n.p1.x),Math.min(n.p0.y,n.p1.y),Math.max(n.p0.x,n.p1.x),Math.max(n.p0.y,n.p1.y)],n),e.update([Math.min(o.p0.x,o.p1.x),Math.min(o.p0.y,o.p1.y),Math.max(o.p0.x,o.p1.x),Math.max(o.p0.y,o.p1.y)],o)),this.indices[u++]=c.p0.i,this.indices[u++]=c.p1.i,this.indices[u++]=d.i,s=!0,h)break}n=t.getPrevItem(),o=t.nextItem()}while(n!==r);return s},e.prototype.isSimple_=function(t,e){var i=t.firstItem(),r=i;do{if(this.getIntersections_(r,e).length)return!1;r=t.nextItem()}while(r!==i);return!0},e.prototype.isClockwise_=function(t){var e=2*t.getLength(),i=new Array(e),r=t.firstItem(),n=r,o=0;do{i[o++]=n.p0.x,i[o++]=n.p0.y,n=t.nextItem()}while(n!==r);return Si(i,0,e,2)},e.prototype.splitPolygon_=function(t,e){var i=t.firstItem(),r=i;do{var n=this.getIntersections_(r,e);if(n.length){var o=n[0],s=this.vertices.length/2,a=this.calculateIntersection_(r.p0,r.p1,o.p0,o.p1),h=this.createPoint_(a[0],a[1],s),l=new Qh,u=new tl;this.insertItem_(h,r.p1,l,u),r.p1=h,e.update([Math.min(r.p0.x,h.x),Math.min(r.p0.y,h.y),Math.max(r.p0.x,h.x),Math.max(r.p0.y,h.y)],r);for(var p=t.nextItem();p!==o;)this.insertItem_(p.p0,p.p1,l,u),e.remove(p),t.removeItem(),p=t.getCurrItem();this.insertItem_(o.p0,h,l,u),o.p0=h,e.update([Math.min(o.p1.x,h.x),Math.min(o.p1.y,h.y),Math.max(o.p1.x,h.x),Math.max(o.p1.y,h.y)],o),this.classifyPoints_(t,e,!1),this.triangulate_(t,e),this.classifyPoints_(l,u,!1),this.triangulate_(l,u);break}r=t.nextItem()}while(r!==i)},e.prototype.createPoint_=function(t,e,i){var r=this.vertices.length;return this.vertices[r++]=t,this.vertices[r++]=e,{x:t,y:e,i:i,reflex:void 0}},e.prototype.insertItem_=function(t,e,i,r){var n={p0:t,p1:e};return i.insertItem(n),r&&r.insert([Math.min(t.x,e.x),Math.min(t.y,e.y),Math.max(t.x,e.x),Math.max(t.y,e.y)],n),n},e.prototype.removeItem_=function(t,e,i,r){i.getCurrItem()===e&&(i.removeItem(),t.p1=e.p1,r.remove(e),r.update([Math.min(t.p0.x,t.p1.x),Math.min(t.p0.y,t.p1.y),Math.max(t.p0.x,t.p1.x),Math.max(t.p0.y,t.p1.y)],t))},e.prototype.getPointsInTriangle_=function(t,e,i,r,n){for(var o=[],s=r.getInExtent([Math.min(t.x,e.x,i.x),Math.min(t.y,e.y,i.y),Math.max(t.x,e.x,i.x),Math.max(t.y,e.y,i.y)]),a=0,h=s.length;amh&&s<1-mh&&a>mh&&a<1-mh||n&&s>=0&&s<=1&&a>=0&&a<=1)return[t.x+s*(e.x-t.x),t.y+s*(e.y-t.y)]}},e.prototype.diagonalIsInside_=function(t,e,i,r,n){if(void 0===e.reflex||void 0===r.reflex)return!1;var o=(i.x-r.x)*(e.y-r.y)>(i.y-r.y)*(e.x-r.x),s=(n.x-r.x)*(e.y-r.y)<(n.y-r.y)*(e.x-r.x),a=(t.x-e.x)*(r.y-e.y)>(t.y-e.y)*(r.x-e.x),h=(i.x-e.x)*(r.y-e.y)<(i.y-e.y)*(r.x-e.x),l=r.reflex?s||o:s&&o,u=e.reflex?h||a:h&&a;return l&&u},e.prototype.drawMultiPolygon=function(t,e){var i,r,n,o,s=t.getEndss(),a=t.getStride(),h=this.indices.length,l=this.lineStringReplay.getCurrentIndex(),u=t.getFlatCoordinates(),p=0;for(i=0,r=s.length;i0){var d=Dt(u,p,c[0],a,-this.origin[0],-this.origin[1]);if(d.length){var f=[],_=void 0;for(n=1,o=c.length;nh&&(this.startIndices.push(h),this.startIndicesFeature.push(e),this.state_.changed&&(this.styleIndices_.push(h),this.state_.changed=!1)),this.lineStringReplay.getCurrentIndex()>l&&this.lineStringReplay.setPolygonStyle(e,l)},e.prototype.drawPolygon=function(t,e){var i=t.getEnds(),r=t.getStride();if(i.length>0){var n=t.getFlatCoordinates().map(Number),o=Dt(n,0,i[0],r,-this.origin[0],-this.origin[1]);if(o.length){var s,a,h,l=[];for(s=1,a=i.length;s0&&(this.styles_=[]),this.vertices=null,this.indices=null},e.prototype.getDeleteResourcesFunction=function(t){var e=this.verticesBuffer,i=this.indicesBuffer,r=this.lineStringReplay.getDeleteResourcesFunction(t);return function(){t.deleteBuffer(e),t.deleteBuffer(i),r()}},e.prototype.setUpProgram=function(t,e,i,r){var n,o=e.getProgram(Hh,Zh);return this.defaultLocations_?n=this.defaultLocations_:(n=new qh(t,o),this.defaultLocations_=n),e.useProgram(o),t.enableVertexAttribArray(n.a_position),t.vertexAttribPointer(n.a_position,2,5126,!1,8,0),n},e.prototype.shutDownProgram=function(t,e){t.disableVertexAttribArray(e.a_position)},e.prototype.drawReplay=function(t,e,i,r){var n,o,s,a,h=t.getParameter(t.DEPTH_FUNC),l=t.getParameter(t.DEPTH_WRITEMASK);if(r||(t.enable(t.DEPTH_TEST),t.depthMask(!0),t.depthFunc(t.NOTEQUAL)),d(i))for(s=this.startIndices[this.startIndices.length-1],n=this.styleIndices_.length-1;n>=0;--n)o=this.styleIndices_[n],a=this.styles_[n],this.setFillStyle_(t,a),this.drawElements(t,e,o,s),s=o;else this.drawReplaySkipping_(t,e,i);r||(t.disable(t.DEPTH_TEST),t.clear(t.DEPTH_BUFFER_BIT),t.depthMask(l),t.depthFunc(h))},e.prototype.drawHitDetectionReplayOneByOne=function(t,e,i,r,n){var s,a,h,l,u,p,c;for(c=this.startIndices.length-2,h=this.startIndices[c+1],s=this.styleIndices_.length-1;s>=0;--s)for(l=this.styles_[s],this.setFillStyle_(t,l),u=this.styleIndices_[s];c>=0&&this.startIndices[c]>=u;){if(a=this.startIndices[c],void 0===i[o(p=this.startIndicesFeature[c])]&&p.getGeometry()&&(void 0===n||Pt(n,p.getGeometry().getExtent()))){t.clear(t.COLOR_BUFFER_BIT|t.DEPTH_BUFFER_BIT),this.drawElements(t,e,a,h);var d=r(p);if(d)return d}c--,h=a}},e.prototype.drawReplaySkipping_=function(t,e,i){var r,n,s,a,h,l,u;for(l=this.startIndices.length-2,s=n=this.startIndices[l+1],r=this.styleIndices_.length-1;r>=0;--r){for(a=this.styles_[r],this.setFillStyle_(t,a),h=this.styleIndices_[r];l>=0&&this.startIndices[l]>=h;)u=this.startIndices[l],i[o(this.startIndicesFeature[l])]&&(n!==s&&(this.drawElements(t,e,n,s),t.clear(t.DEPTH_BUFFER_BIT)),s=u),l--,n=u;n!==s&&(this.drawElements(t,e,n,s),t.clear(t.DEPTH_BUFFER_BIT)),n=s=h}},e.prototype.setFillStyle_=function(t,e){t.uniform4fv(this.defaultLocations_.u_color,e)},e.prototype.setFillStrokeStyle=function(t,e){var i=t?t.getColor():[0,0,0,0];if(i=i instanceof CanvasGradient||i instanceof CanvasPattern?gh:_r(i).map(function(t,e){return 3!=e?t/255:t})||gh,this.state_.fillColor&&Z(i,this.state_.fillColor)||(this.state_.fillColor=i,this.state_.changed=!0,this.styles_.push(i)),e)this.lineStringReplay.setFillStrokeStyle(null,e);else{var r=new Er({color:[0,0,0,0],width:0});this.lineStringReplay.setFillStrokeStyle(null,r)}},e}(_h),il=function(t,e){this.space_=e,this.emptyBlocks_=[{x:0,y:0,width:t,height:t}],this.entries_={},this.context_=Jn(t,t),this.canvas_=this.context_.canvas};il.prototype.get=function(t){return this.entries_[t]||null},il.prototype.add=function(t,e,i,r,n){for(var o=0,s=this.emptyBlocks_.length;o=e+this.space_&&a.height>=i+this.space_){var h={offsetX:a.x+this.space_,offsetY:a.y+this.space_,image:this.canvas_};return this.entries_[t]=h,r.call(n,this.context_,a.x+this.space_,a.y+this.space_),this.split_(o,a,e+this.space_,i+this.space_),h}}return null},il.prototype.split_=function(t,e,i,r){var n,o;e.width-i>e.height-r?(n={x:e.x+i,y:e.y,width:e.width-i,height:e.height},o={x:e.x,y:e.y+r,width:i,height:e.height-r},this.updateBlocks_(t,n,o)):(n={x:e.x+i,y:e.y,width:e.width-i,height:r},o={x:e.x,y:e.y+r,width:e.width,height:e.height-r},this.updateBlocks_(t,n,o))},il.prototype.updateBlocks_=function(t,e,i){var r=[t,1];e.width>0&&e.height>0&&r.push(e),i.width>0&&i.height>0&&r.push(i),this.emptyBlocks_.splice.apply(this.emptyBlocks_,r)};var rl=il,nl=function(t){var e=t||{};this.currentSize_=void 0!==e.initialSize?e.initialSize:256,this.maxSize_=void 0!==e.maxSize?e.maxSize:void 0!==nh?nh:2048,this.space_=void 0!==e.space?e.space:1,this.atlases_=[new rl(this.currentSize_,this.space_)],this.currentHitSize_=this.currentSize_,this.hitAtlases_=[new rl(this.currentHitSize_,this.space_)]};nl.prototype.getInfo=function(t){var e=this.getInfo_(this.atlases_,t);if(!e)return null;var i=this.getInfo_(this.hitAtlases_,t);return this.mergeInfos_(e,i)},nl.prototype.getInfo_=function(t,e){for(var i=0,r=t.length;ithis.maxSize_||i+this.space_>this.maxSize_)return null;var s=this.add_(!1,t,e,i,r,o);if(!s)return null;var a=void 0!==n?n:I,h=this.add_(!0,t,e,i,a,o);return this.mergeInfos_(s,h)},nl.prototype.add_=function(t,e,i,r,n,o){var s,a,h,l,u=t?this.hitAtlases_:this.atlases_;for(h=0,l=u.length;h=0;--d)if(void 0!==(_=f[Ea[d]])&&(g=_.replay(t,e,i,r,n,o,s,a,h,l,u)))return g},e.prototype.forEachFeatureAtCoordinate=function(t,e,i,r,n,o,s,a,h,l){var u,p=e.getGL();return p.bindFramebuffer(p.FRAMEBUFFER,e.getHitDetectionFramebuffer()),void 0!==this.renderBuffer_&&(u=et(pt(t),r*this.renderBuffer_)),this.replayHitDetection_(e,t,r,n,al,s,a,h,function(t){var e=new Uint8Array(4);if(p.readPixels(0,0,1,1,p.RGBA,p.UNSIGNED_BYTE,e),e[3]>0){var i=l(t);if(i)return i}},!0,u)},e.prototype.hasFeatureAtCoordinate=function(t,e,i,r,n,o,s,a,h){var l=e.getGL();return l.bindFramebuffer(l.FRAMEBUFFER,e.getHitDetectionFramebuffer()),void 0!==this.replayHitDetection_(e,t,r,n,al,s,a,h,function(t){var e=new Uint8Array(4);return l.readPixels(0,0,1,1,l.RGBA,l.UNSIGNED_BYTE,e),e[3]>0},!1)},e}(ca),ul=function(t){function e(e,i,r,n,o,s,a){t.call(this),this.context_=e,this.center_=i,this.extent_=s,this.pixelRatio_=a,this.size_=o,this.rotation_=n,this.resolution_=r,this.imageStyle_=null,this.fillStyle_=null,this.strokeStyle_=null,this.textStyle_=null}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.drawText_=function(t,e){var i=this.context_,r=t.getReplay(0,da.TEXT);r.setTextStyle(this.textStyle_),r.drawText(e,null),r.finish(i);r.replay(this.context_,this.center_,this.resolution_,this.rotation_,this.size_,this.pixelRatio_,1,{},void 0,!1),r.getDeleteResourcesFunction(i)()},e.prototype.setStyle=function(t){this.setFillStrokeStyle(t.getFill(),t.getStroke()),this.setImageStyle(t.getImage()),this.setTextStyle(t.getText())},e.prototype.drawGeometry=function(t){switch(t.getType()){case Nt.POINT:this.drawPoint(t,null);break;case Nt.LINE_STRING:this.drawLineString(t,null);break;case Nt.POLYGON:this.drawPolygon(t,null);break;case Nt.MULTI_POINT:this.drawMultiPoint(t,null);break;case Nt.MULTI_LINE_STRING:this.drawMultiLineString(t,null);break;case Nt.MULTI_POLYGON:this.drawMultiPolygon(t,null);break;case Nt.GEOMETRY_COLLECTION:this.drawGeometryCollection(t,null);break;case Nt.CIRCLE:this.drawCircle(t,null)}},e.prototype.drawFeature=function(t,e){var i=e.getGeometryFunction()(t);i&&Pt(this.extent_,i.getExtent())&&(this.setStyle(e),this.drawGeometry(i))},e.prototype.drawGeometryCollection=function(t,e){var i,r,n=t.getGeometriesArray();for(i=0,r=n.length;in[0]||o[1]<0||o[1]>n[1])){this.hitCanvasContext_||(this.hitCanvasContext_=Jn(1,1)),this.hitCanvasContext_.clearRect(0,0,1,1),this.hitCanvasContext_.drawImage(this.image_.getImage(),o[0],o[1],1,1,0,0,1,1);var s=this.hitCanvasContext_.getImageData(0,0,1,1).data;return s[3]>0?i.call(r,this.getLayer(),s):void 0}}},e.prototype.getHitTransformationMatrix_=function(t,e){var i=[1,0,0,1,0,0];Ue(i,-1,-1),je(i,2/t[0],2/t[1]),Ue(i,0,t[1]),je(i,1,-1);var r=Be(this.projectionMatrix.slice()),n=[1,0,0,1,0,0];return Ue(n,0,e[1]),je(n,1,-1),je(n,e[0]/2,e[1]/2),Ue(n,1,1),Ae(n,r),Ae(n,i),n},e}(fl);_l.handles=function(t){return t.getType()===Ss.IMAGE},_l.create=function(t,e){return new _l(t,e)};var gl=_l,yl=function(t){function e(e){t.call(this,e);var i=e.getViewport();this.canvas_=document.createElement("canvas"),this.canvas_.style.width="100%",this.canvas_.style.height="100%",this.canvas_.style.display="block",this.canvas_.className=fo,i.insertBefore(this.canvas_,i.childNodes[0]||null),this.clipTileCanvasWidth_=0,this.clipTileCanvasHeight_=0,this.clipTileContext_=Jn(),this.renderedVisible_=!0,this.gl_=rh(this.canvas_,{antialias:!0,depth:!0,failIfMajorPerformanceCaveat:!0,preserveDrawingBuffer:!1,stencil:!0}),this.context_=new Mh(this.canvas_,this.gl_),v(this.canvas_,Lh.LOST,this.handleWebGLContextLost,this),v(this.canvas_,Lh.RESTORED,this.handleWebGLContextRestored,this),this.textureCache_=new Rs,this.focus_=null,this.tileTextureQueue_=new bn(function(t){var e=t[1],i=t[2],r=e[0]-this.focus_[0],n=e[1]-this.focus_[1];return 65536*Math.log(i)+Math.sqrt(r*r+n*n)/i}.bind(this),function(t){return t[0].getKey()}),this.loadNextTileTexture_=function(t,e){if(!this.tileTextureQueue_.isEmpty()){this.tileTextureQueue_.reprioritize();var i=this.tileTextureQueue_.dequeue(),r=i[0],n=i[3],o=i[4];this.bindTileTexture(r,n,o,Qa,Qa)}return!1}.bind(this),this.textureCacheFrameMarkerCount_=0,this.initializeGL_()}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.bindTileTexture=function(t,e,i,r,n){var o=this.getGL(),s=t.getKey();if(this.textureCache_.containsKey(s)){var a=this.textureCache_.get(s);o.bindTexture(eh,a.texture),a.magFilter!=r&&(o.texParameteri(eh,10240,r),a.magFilter=r),a.minFilter!=n&&(o.texParameteri(eh,10241,n),a.minFilter=n)}else{var h=o.createTexture(),l=t;if(o.bindTexture(eh,h),i>0){var u=this.clipTileContext_.canvas,p=this.clipTileContext_;this.clipTileCanvasWidth_!==e[0]||this.clipTileCanvasHeight_!==e[1]?(u.width=e[0],u.height=e[1],this.clipTileCanvasWidth_=e[0],this.clipTileCanvasHeight_=e[1]):p.clearRect(0,0,e[0],e[1]),p.drawImage(l.getImage(),i,i,e[0],e[1],0,0,e[0],e[1]),o.texImage2D(eh,0,6408,6408,5121,u)}else o.texImage2D(eh,0,6408,6408,5121,l.getImage());o.texParameteri(eh,10240,r),o.texParameteri(eh,10241,n),o.texParameteri(eh,$a,33071),o.texParameteri(eh,th,33071),this.textureCache_.set(s,{texture:h,magFilter:r,minFilter:n})}},e.prototype.dispatchRenderEvent=function(t,e){var i=this.getMap();if(i.hasListener(t)){var r=this.context_,n=e.extent,o=e.size,s=e.viewState,a=e.pixelRatio,h=s.resolution,l=s.center,u=s.rotation,p=new ul(r,l,h,u,o,n,a),c=new Cs(t,p,e,null,r);i.dispatchEvent(c)}},e.prototype.disposeInternal=function(){var e=this.getGL();e.isContextLost()||this.textureCache_.forEach(function(t){t&&e.deleteTexture(t.texture)}),this.context_.dispose(),t.prototype.disposeInternal.call(this)},e.prototype.expireCache_=function(t,e){for(var i,r=this.getGL();this.textureCache_.getCount()-this.textureCacheFrameMarkerCount_>1024;){if(i=this.textureCache_.peekLast())r.deleteTexture(i.texture);else{if(+this.textureCache_.peekLastKey()==e.index)break;--this.textureCacheFrameMarkerCount_}this.textureCache_.pop()}},e.prototype.getContext=function(){return this.context_},e.prototype.getGL=function(){return this.gl_},e.prototype.getTileTextureQueue=function(){return this.tileTextureQueue_},e.prototype.handleWebGLContextLost=function(t){t.preventDefault(),this.textureCache_.clear(),this.textureCacheFrameMarkerCount_=0;var e=this.getLayerRenderers();for(var i in e){e[i].handleWebGLContextLost()}},e.prototype.handleWebGLContextRestored=function(){this.initializeGL_(),this.getMap().render()},e.prototype.initializeGL_=function(){var t=this.gl_;t.activeTexture(33984),t.blendFuncSeparate(770,771,1,771),t.disable(2884),t.disable(2929),t.disable(3089),t.disable(2960)},e.prototype.isTileTextureLoaded=function(t){return this.textureCache_.containsKey(t.getKey())},e.prototype.renderFrame=function(t){var e=this.getContext(),i=this.getGL();if(i.isContextLost())return!1;if(!t)return this.renderedVisible_&&(this.canvas_.style.display="none",this.renderedVisible_=!1),!1;this.focus_=t.focus,this.textureCache_.set((-t.index).toString(),null),++this.textureCacheFrameMarkerCount_,this.dispatchRenderEvent(ur.PRECOMPOSE,t);var r=[],n=t.layerStatesArray;q(n,Zs);var o,s,a=t.viewState.resolution;for(o=0,s=n.length;o1024&&t.postRenderFunctions.push(this.expireCache_.bind(this)),this.tileTextureQueue_.isEmpty()||(t.postRenderFunctions.push(this.loadNextTileTexture_),t.animate=!0),this.dispatchRenderEvent(ur.POSTCOMPOSE,t),this.scheduleRemoveUnusedLayerRenderers(t),this.scheduleExpireIconCache(t)},e.prototype.forEachFeatureAtCoordinate=function(t,e,i,r,n,o,s){var a;if(this.getGL().isContextLost())return!1;var h,l=e.viewState,u=e.layerStatesArray;for(h=u.length-1;h>=0;--h){var p=u[h],c=p.layer;if(mo(p,l.resolution)&&o.call(s,c))if(a=this.getLayerRenderer(c).forEachFeatureAtCoordinate(t,e,i,r))return a}},e.prototype.hasFeatureAtCoordinate=function(t,e,i,r,n){var o=!1;if(this.getGL().isContextLost())return!1;var s,a=e.viewState,h=e.layerStatesArray;for(s=h.length-1;s>=0;--s){var l=h[s],u=l.layer;if(mo(l,a.resolution)&&r.call(n,u))if(o=this.getLayerRenderer(u).hasFeatureAtCoordinate(t,e))return!0}return o},e.prototype.forEachLayerAtPixel=function(t,e,i,r,n,o,s){if(this.getGL().isContextLost())return!1;var a,h,l=e.viewState,u=e.layerStatesArray;for(h=u.length-1;h>=0;--h){var p=u[h],c=p.layer;if(mo(p,l.resolution)&&o.call(n,c))if(a=this.getLayerRenderer(c).forEachLayerAtPixel(t,e,r,n))return a}},e}(qs),vl=function(t){function e(e,i,r){t.call(this);var n=r||{};this.tileCoord=e,this.state=i,this.interimTile=null,this.key="",this.transition_=void 0===n.transition?250:n.transition,this.transitionStarts_={}}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.changed=function(){this.dispatchEvent(M.CHANGE)},e.prototype.getKey=function(){return this.key+"/"+this.tileCoord},e.prototype.getInterimTile=function(){if(!this.interimTile)return this;var t=this.interimTile;do{if(t.getState()==On.LOADED)return t;t=t.interimTile}while(t);return this},e.prototype.refreshInterimChain=function(){if(this.interimTile){var t=this.interimTile,e=this;do{if(t.getState()==On.LOADED){t.interimTile=null;break}t.getState()==On.LOADING?e=t:t.getState()==On.IDLE?e.interimTile=t.interimTile:e=t,t=e.interimTile}while(t)}},e.prototype.getTileCoord=function(){return this.tileCoord},e.prototype.getState=function(){return this.state},e.prototype.setState=function(t){this.state=t,this.changed()},e.prototype.load=function(){},e.prototype.getAlpha=function(t,e){if(!this.transition_)return 1;var i=this.transitionStarts_[t];if(i){if(-1===i)return 1}else i=e,this.transitionStarts_[t]=i;var r=e-i+1e3/60;return r>=this.transition_?1:Vn(r/this.transition_)},e.prototype.inTransition=function(t){return!!this.transition_&&-1!==this.transitionStarts_[t]},e.prototype.endTransition=function(t){this.transition_&&(this.transitionStarts_[t]=-1)},e}(b);function ml(){var t=Jn(1,1);return t.fillStyle="rgba(0,0,0,0)",t.fillRect(0,0,1,1),t.canvas}var xl=function(t){function e(e,i,r,n,o,s){t.call(this,e,i,s),this.crossOrigin_=n,this.src_=r,this.image_=new Image,null!==n&&(this.image_.crossOrigin=n),this.imageListenerKeys_=null,this.tileLoadFunction_=o}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.disposeInternal=function(){this.state==On.LOADING&&(this.unlistenImage_(),this.image_=ml()),this.interimTile&&this.interimTile.dispose(),this.state=On.ABORT,this.changed(),t.prototype.disposeInternal.call(this)},e.prototype.getImage=function(){return this.image_},e.prototype.getKey=function(){return this.src_},e.prototype.handleImageError_=function(){this.state=On.ERROR,this.unlistenImage_(),this.image_=ml(),this.changed()},e.prototype.handleImageLoad_=function(){var t=this.image_;t.naturalWidth&&t.naturalHeight?this.state=On.LOADED:this.state=On.EMPTY,this.unlistenImage_(),this.changed()},e.prototype.load=function(){this.state==On.ERROR&&(this.state=On.IDLE,this.image_=new Image,null!==this.crossOrigin_&&(this.image_.crossOrigin=this.crossOrigin_)),this.state==On.IDLE&&(this.state=On.LOADING,this.changed(),this.imageListenerKeys_=[m(this.image_,M.ERROR,this.handleImageError_,this),m(this.image_,M.LOAD,this.handleImageLoad_,this)],this.tileLoadFunction_(this,this.src_))},e.prototype.unlistenImage_=function(){this.imageListenerKeys_.forEach(E),this.imageListenerKeys_=null},e}(vl);function El(t,e,i,r){return void 0!==r?(r[0]=t,r[1]=e,r[2]=i,r):[t,e,i]}function Sl(t,e,i){return t+"/"+e+"/"+i}function Tl(t){return Sl(t[0],t[1],t[2])}function Cl(t){return(t[1]<0||i&&0===o)})}(this.resolutions_,function(t,e){return e-t},!0),17),!t.origins)for(var i=0,r=this.resolutions_.length-1;i=this.minZoom;){if(o=2===this.zoomFactor_?oa(s=Math.floor(s/2),s,a=Math.floor(a/2),a,r):this.getTileRangeForExtentAndZ(h,l,r),e.call(i,l,o))return!0;--l}return!1},Ol.prototype.getExtent=function(){return this.extent_},Ol.prototype.getMaxZoom=function(){return this.maxZoom},Ol.prototype.getMinZoom=function(){return this.minZoom},Ol.prototype.getOrigin=function(t){return this.origin_?this.origin_:this.origins_[t]},Ol.prototype.getResolution=function(t){return this.resolutions_[t]},Ol.prototype.getResolutions=function(){return this.resolutions_},Ol.prototype.getTileCoordChildTileRange=function(t,e,i){if(t[0]i||i>e.getMaxZoom())return!1;var o,s=e.getExtent();return!(o=s?e.getTileRangeForExtentAndZ(s,i):e.getFullTileRange(i))||o.containsXY(r,n)}(t,r)?t:null},e.prototype.refresh=function(){this.tileCache.clear(),this.changed()},e.prototype.useTile=function(t,e,i,r){},e}(Il),kl=function(t){function e(e,i){t.call(this,e),this.tile=i}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e}(P),jl=Dl,Ul=new lh("precision mediump float;\nvarying vec2 v_texCoord;\n\n\nuniform sampler2D u_texture;\n\nvoid main(void) {\n gl_FragColor = texture2D(u_texture, v_texCoord);\n}\n"),Yl=new uh("varying vec2 v_texCoord;\n\n\nattribute vec2 a_position;\nattribute vec2 a_texCoord;\nuniform vec4 u_tileOffset;\n\nvoid main(void) {\n gl_Position = vec4(a_position * u_tileOffset.xy + u_tileOffset.zw, 0., 1.);\n v_texCoord = a_texCoord;\n}\n\n\n"),Bl=function(t,e){this.u_tileOffset=t.getUniformLocation(e,"u_tileOffset"),this.u_texture=t.getUniformLocation(e,"u_texture"),this.a_position=t.getAttribLocation(e,"a_position"),this.a_texCoord=t.getAttribLocation(e,"a_texCoord")},Vl=function(t){function e(e,i){t.call(this,e,i),this.fragmentShader_=Ul,this.vertexShader_=Yl,this.locations_=null,this.renderArrayBuffer_=new Th([0,0,0,1,1,0,1,1,0,1,0,0,1,1,1,0]),this.renderedTileRange_=null,this.renderedFramebufferExtent_=null,this.renderedRevision_=-1,this.tmpSize_=[0,0]}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.disposeInternal=function(){this.mapRenderer.getContext().deleteBuffer(this.renderArrayBuffer_),t.prototype.disposeInternal.call(this)},e.prototype.createLoadedTileFinder=function(t,e,i){var r=this.mapRenderer;return function(n,o){return t.forEachLoadedTile(e,n,o,function(t){var e=r.isTileTextureLoaded(t);return e&&(i[n]||(i[n]={}),i[n][t.tileCoord.toString()]=t),e})}},e.prototype.handleWebGLContextLost=function(){t.prototype.handleWebGLContextLost.call(this),this.locations_=null},e.prototype.prepareFrame=function(t,e,i){var r=this.mapRenderer,n=i.getGL(),o=t.viewState,s=o.projection,a=this.getLayer(),h=a.getSource();if(!(h instanceof jl))return!0;var l,u=h.getTileGridForProjection(s),p=u.getZForResolution(o.resolution),c=u.getResolution(p),d=h.getTilePixelSize(p,t.pixelRatio,s),f=d[0]/ho(u.getTileSize(p),this.tmpSize_)[0],_=c/f,g=h.getTilePixelRatio(f)*h.getGutterForProjection(s),y=o.center,v=t.extent,m=u.getTileRangeForExtentAndZ(v,p);if(this.renderedTileRange_&&this.renderedTileRange_.equals(m)&&this.renderedRevision_==h.getRevision())l=this.renderedFramebufferExtent_;else{var x=m.getSize(),E=function(t){return Y(00?i.call(r,this.getLayer(),h):void 0}},e}(fl);Vl.handles=function(t){return t.getType()===Ss.TILE},Vl.create=function(t,e){return new Vl(t,e)};var Xl=Vl,zl=function(t){function e(e,i){t.call(this,e,i),this.dirty_=!1,this.renderedRevision_=-1,this.renderedResolution_=NaN,this.renderedExtent_=[1/0,1/0,-1/0,-1/0],this.renderedRenderOrder_=null,this.replayGroup_=null,this.layerState_=null}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.composeFrame=function(t,e,i){this.layerState_=e;var r=t.viewState,n=this.replayGroup_,o=t.size,s=t.pixelRatio,a=this.mapRenderer.getGL();n&&!n.isEmpty()&&(a.enable(a.SCISSOR_TEST),a.scissor(0,0,o[0]*s,o[1]*s),n.replay(i,r.center,r.resolution,r.rotation,o,s,e.opacity,e.managed?t.skippedFeatureUids:{}),a.disable(a.SCISSOR_TEST))},e.prototype.disposeInternal=function(){var e=this.replayGroup_;if(e){var i=this.mapRenderer.getContext();e.getDeleteResourcesFunction(i)(),this.replayGroup_=null}t.prototype.disposeInternal.call(this)},e.prototype.forEachFeatureAtCoordinate=function(t,e,i,r,n){if(this.replayGroup_&&this.layerState_){var s=this.mapRenderer.getContext(),a=e.viewState,h=this.getLayer(),l=this.layerState_,u={};return this.replayGroup_.forEachFeatureAtCoordinate(t,s,a.center,a.resolution,a.rotation,e.size,e.pixelRatio,l.opacity,{},function(t){var e=o(t);if(!(e in u))return u[e]=!0,r.call(n,t,h)})}},e.prototype.hasFeatureAtCoordinate=function(t,e){if(this.replayGroup_&&this.layerState_){var i=this.mapRenderer.getContext(),r=e.viewState,n=this.layerState_;return this.replayGroup_.hasFeatureAtCoordinate(t,i,r.center,r.resolution,r.rotation,e.size,e.pixelRatio,n.opacity,e.skippedFeatureUids)}return!1},e.prototype.forEachLayerAtPixel=function(t,e,i,r){var n=De(e.pixelToCoordinateTransform,t.slice());return this.hasFeatureAtCoordinate(n,e)?i.call(r,this.getLayer(),null):void 0},e.prototype.handleStyleImageChange_=function(t){this.renderIfReadyAndVisible()},e.prototype.prepareFrame=function(t,e,i){var r=this.getLayer(),n=r.getSource(),o=t.viewHints[kn],s=t.viewHints[jn],a=r.getUpdateWhileAnimating(),h=r.getUpdateWhileInteracting();if(!this.dirty_&&!a&&o||!h&&s)return!0;var l=t.extent,u=t.viewState,p=u.projection,c=u.resolution,d=t.pixelRatio,f=r.getRevision(),_=r.getRenderBuffer(),g=r.getRenderOrder();void 0===g&&(g=Da);var y=et(l,_*c);if(!this.dirty_&&this.renderedResolution_==c&&this.renderedRevision_==f&&this.renderedRenderOrder_==g&&ot(this.renderedExtent_,y))return!0;this.replayGroup_&&t.postRenderFunctions.push(this.replayGroup_.getDeleteResourcesFunction(i)),this.dirty_=!1;var v=new ll(ja(c,d),y,r.getRenderBuffer());n.loadFeatures(y,c,p);var m=function(t){var e,i=t.getStyleFunction()||r.getStyleFunction();if(i&&(e=i(t,c)),e){var n=this.renderFeature(t,c,d,e,v);this.dirty_=this.dirty_||n}}.bind(this);if(g){var x=[];n.forEachFeatureInExtent(y,function(t){x.push(t)}),x.sort(g),x.forEach(m.bind(this))}else n.forEachFeatureInExtent(y,m);return v.finish(i),this.renderedResolution_=c,this.renderedRevision_=f,this.renderedRenderOrder_=g,this.renderedExtent_=y,this.replayGroup_=v,!0},e.prototype.renderFeature=function(t,e,i,r,n){if(!r)return!1;var o=!1;if(Array.isArray(r))for(var s=r.length-1;s>=0;--s)o=Ua(n,t,r[s],ka(e,i),this.handleStyleImageChange_,this)||o;else o=Ua(n,t,r,ka(e,i),this.handleStyleImageChange_,this)||o;return o},e}(fl);zl.handles=function(t){return t.getType()===Ss.VECTOR},zl.create=function(t,e){return new zl(t,e)};var Wl=zl,Kl=function(t){function e(e){(e=u({},e)).controls||(e.controls=wo()),e.interactions||(e.interactions=ys()),t.call(this,e)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.createRenderer=function(){var t=new yl(this);return t.registerLayerRenderers([gl,Xl,Wl]),t},e}(lo),Hl={ARRAY_BUFFER:"arraybuffer",JSON:"json",TEXT:"text",XML:"xml"};function Zl(t,e,i,r){return function(n,o,s){var a=new XMLHttpRequest;a.open("GET","function"==typeof t?t(n,o,s):t,!0),e.getType()==Hl.ARRAY_BUFFER&&(a.responseType="arraybuffer"),a.onload=function(t){if(!a.status||a.status>=200&&a.status<300){var n,o=e.getType();o==Hl.JSON||o==Hl.TEXT?n=a.responseText:o==Hl.XML?(n=a.responseXML)||(n=(new DOMParser).parseFromString(a.responseText,"application/xml")):o==Hl.ARRAY_BUFFER&&(n=a.response),n?i.call(this,e.readFeatures(n,{featureProjection:s}),e.readProjection(n),e.getLastExtent()):r.call(this)}else r.call(this)}.bind(this),a.onerror=function(){r.call(this)}.bind(this),a.send()}}function ql(t,e){return Zl(t,e,function(t,e){"function"==typeof this.addFeatures&&this.addFeatures(t)},I)}function Jl(t,e){return[[-1/0,-1/0,1/0,1/0]]}var Ql=document.implementation.createDocument("","",null),$l="http://www.w3.org/2001/XMLSchema-instance";function tu(t,e){return Ql.createElementNS(t,e)}function eu(t,e){return function t(e,i,r){if(e.nodeType==Node.CDATA_SECTION_NODE||e.nodeType==Node.TEXT_NODE)i?r.push(String(e.nodeValue).replace(/(\r\n|\r|\n)/g,"")):r.push(e.nodeValue);else{var n;for(n=e.firstChild;n;n=n.nextSibling)t(n,i,r)}return r}(t,e,[]).join("")}function iu(t){return"documentElement"in t}function ru(t){return(new DOMParser).parseFromString(t,"application/xml")}function nu(t,e){return function(i,r){var n=t.call(void 0!==e?e:this,i,r);void 0!==n&&K(r[r.length-1],n)}}function ou(t,e){return function(i,r){var n=t.call(void 0!==e?e:this,i,r);void 0!==n&&r[r.length-1].push(n)}}function su(t,e){return function(i,r){var n=t.call(void 0!==e?e:this,i,r);void 0!==n&&(r[r.length-1]=n)}}function au(t,e,i){return function(r,n){var o=t.call(void 0!==i?i:this,r,n);if(void 0!==o){var s=n[n.length-1],a=void 0!==e?e:r.localName;(a in s?s[a]:s[a]=[]).push(o)}}}function hu(t,e,i){return function(r,n){var o=t.call(void 0!==i?i:this,r,n);void 0!==o&&(n[n.length-1][void 0!==e?e:r.localName]=o)}}function lu(t,e){return function(i,r,n){t.call(void 0!==e?e:this,i,r,n),n[n.length-1].node.appendChild(i)}}function uu(t,e){var i,r;return function(e,n,o){if(void 0===i){i={};var s={};s[e.localName]=t,i[e.namespaceURI]=s,r=pu(e.localName)}yu(i,r,n,o)}}function pu(t,e){var i=t;return function(t,r,n){var o=r[r.length-1].node,s=i;return void 0===s&&(s=n),tu(void 0!==e?e:o.namespaceURI,s)}}var cu=pu();function du(t,e){for(var i=e.length,r=new Array(i),n=0;n0)||H(h,function(i){return e.Identifier==i.TileMatrix||-1===e.Identifier.indexOf(":")&&t.Identifier+":"+e.Identifier===i.TileMatrix})){n.push(e.Identifier);var i=28e-5*e.ScaleDenominator/p,l=e.TileWidth,u=e.TileHeight;c?o.push([e.TopLeftCorner[1],e.TopLeftCorner[0]]):o.push(e.TopLeftCorner),r.push(i),s.push(l==u?l:[l,u]),a.push([e.MatrixWidth,-e.MatrixHeight])}}),new mu({extent:e,origins:o,resolutions:r,matrixIds:n,tileSizes:s,sizes:a})}var Su=function(t){this.opacity_=t.opacity,this.rotateWithView_=t.rotateWithView,this.rotation_=t.rotation,this.scale_=t.scale};Su.prototype.clone=function(){return new Su({opacity:this.getOpacity(),scale:this.getScale(),rotation:this.getRotation(),rotateWithView:this.getRotateWithView()})},Su.prototype.getOpacity=function(){return this.opacity_},Su.prototype.getRotateWithView=function(){return this.rotateWithView_},Su.prototype.getRotation=function(){return this.rotation_},Su.prototype.getScale=function(){return this.scale_},Su.prototype.getSnapToPixel=function(){return!1},Su.prototype.getAnchor=function(){return r()},Su.prototype.getImage=function(t){return r()},Su.prototype.getHitDetectionImage=function(t){return r()},Su.prototype.getImageState=function(){return r()},Su.prototype.getImageSize=function(){return r()},Su.prototype.getHitDetectionImageSize=function(){return r()},Su.prototype.getOrigin=function(){return r()},Su.prototype.getSize=function(){return r()},Su.prototype.setOpacity=function(t){this.opacity_=t},Su.prototype.setRotateWithView=function(t){this.rotateWithView_=t},Su.prototype.setRotation=function(t){this.rotation_=t},Su.prototype.setScale=function(t){this.scale_=t},Su.prototype.setSnapToPixel=function(t){},Su.prototype.listenImageChange=function(t,e){return r()},Su.prototype.load=function(){r()},Su.prototype.unlistenImageChange=function(t,e){r()};var Tu=Su,Cu=function(t){function e(e){var i=void 0!==e.rotateWithView&&e.rotateWithView;t.call(this,{opacity:1,rotateWithView:i,rotation:void 0!==e.rotation?e.rotation:0,scale:1}),this.checksums_=null,this.canvas_=null,this.hitDetectionCanvas_=null,this.fill_=void 0!==e.fill?e.fill:null,this.origin_=[0,0],this.points_=e.points,this.radius_=void 0!==e.radius?e.radius:e.radius1,this.radius2_=e.radius2,this.angle_=void 0!==e.angle?e.angle:0,this.stroke_=void 0!==e.stroke?e.stroke:null,this.anchor_=null,this.size_=null,this.imageSize_=null,this.hitDetectionImageSize_=null,this.atlasManager_=e.atlasManager,this.render_(this.atlasManager_)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.clone=function(){var t=new e({fill:this.getFill()?this.getFill().clone():void 0,points:this.getPoints(),radius:this.getRadius(),radius2:this.getRadius2(),angle:this.getAngle(),stroke:this.getStroke()?this.getStroke().clone():void 0,rotation:this.getRotation(),rotateWithView:this.getRotateWithView(),atlasManager:this.atlasManager_});return t.setOpacity(this.getOpacity()),t.setScale(this.getScale()),t},e.prototype.getAnchor=function(){return this.anchor_},e.prototype.getAngle=function(){return this.angle_},e.prototype.getFill=function(){return this.fill_},e.prototype.getHitDetectionImage=function(t){return this.hitDetectionCanvas_},e.prototype.getImage=function(t){return this.canvas_},e.prototype.getImageSize=function(){return this.imageSize_},e.prototype.getHitDetectionImageSize=function(){return this.hitDetectionImageSize_},e.prototype.getImageState=function(){return xs.LOADED},e.prototype.getOrigin=function(){return this.origin_},e.prototype.getPoints=function(){return this.points_},e.prototype.getRadius=function(){return this.radius_},e.prototype.getRadius2=function(){return this.radius2_},e.prototype.getSize=function(){return this.size_},e.prototype.getStroke=function(){return this.stroke_},e.prototype.listenImageChange=function(t,e){},e.prototype.load=function(){},e.prototype.unlistenImageChange=function(t,e){},e.prototype.render_=function(t){var e,i,r="",n="",o=0,s=null,a=0,h=0;this.stroke_&&(null===(i=this.stroke_.getColor())&&(i=Ls),i=Ys(i),void 0===(h=this.stroke_.getWidth())&&(h=1),s=this.stroke_.getLineDash(),a=this.stroke_.getLineDashOffset(),ki||(s=null,a=0),void 0===(n=this.stroke_.getLineJoin())&&(n="round"),void 0===(r=this.stroke_.getLineCap())&&(r="round"),void 0===(o=this.stroke_.getMiterLimit())&&(o=10));var l=2*(this.radius_+h)+1,u={strokeStyle:i,strokeWidth:h,size:l,lineCap:r,lineDash:s,lineDashOffset:a,lineJoin:n,miterLimit:o};if(void 0===t){var p=Jn(l,l);this.canvas_=p.canvas,e=l=this.canvas_.width,this.draw_(u,p,0,0),this.createHitDetectionCanvas_(u)}else{l=Math.round(l);var c,d=!this.fill_;d&&(c=this.drawHitDetectionCanvas_.bind(this,u));var f=this.getChecksum(),_=t.add(f,l,l,this.draw_.bind(this,u),c);this.canvas_=_.image,this.origin_=[_.offsetX,_.offsetY],e=_.image.width,d?(this.hitDetectionCanvas_=_.hitImage,this.hitDetectionImageSize_=[_.hitImage.width,_.hitImage.height]):(this.hitDetectionCanvas_=this.canvas_,this.hitDetectionImageSize_=[e,e])}this.anchor_=[l/2,l/2],this.size_=[l,l],this.imageSize_=[e,e]},e.prototype.draw_=function(t,e,i,r){var n,o,s;e.setTransform(1,0,0,1,0,0),e.translate(i,r),e.beginPath();var a=this.points_;if(a===1/0)e.arc(t.size/2,t.size/2,this.radius_,0,2*Math.PI,!0);else{var h=void 0!==this.radius2_?this.radius2_:this.radius_;for(h!==this.radius_&&(a*=2),n=0;n<=a;n++)o=2*n*Math.PI/a-Math.PI/2+this.angle_,s=n%2==0?this.radius_:h,e.lineTo(t.size/2+s*Math.cos(o),t.size/2+s*Math.sin(o))}if(this.fill_){var l=this.fill_.getColor();null===l&&(l=ws),e.fillStyle=Ys(l),e.fill()}this.stroke_&&(e.strokeStyle=t.strokeStyle,e.lineWidth=t.strokeWidth,t.lineDash&&(e.setLineDash(t.lineDash),e.lineDashOffset=t.lineDashOffset),e.lineCap=t.lineCap,e.lineJoin=t.lineJoin,e.miterLimit=t.miterLimit,e.stroke()),e.closePath()},e.prototype.createHitDetectionCanvas_=function(t){if(this.hitDetectionImageSize_=[t.size,t.size],this.fill_)this.hitDetectionCanvas_=this.canvas_;else{var e=Jn(t.size,t.size);this.hitDetectionCanvas_=e.canvas,this.drawHitDetectionCanvas_(t,e,0,0)}},e.prototype.drawHitDetectionCanvas_=function(t,e,i,r){e.setTransform(1,0,0,1,0,0),e.translate(i,r),e.beginPath();var n=this.points_;if(n===1/0)e.arc(t.size/2,t.size/2,this.radius_,0,2*Math.PI,!0);else{var o,s,a,h=void 0!==this.radius2_?this.radius2_:this.radius_;for(h!==this.radius_&&(n*=2),o=0;o<=n;o++)a=2*o*Math.PI/n-Math.PI/2+this.angle_,s=o%2==0?this.radius_:h,e.lineTo(t.size/2+s*Math.cos(a),t.size/2+s*Math.sin(a))}e.fillStyle=dr(ws),e.fill(),this.stroke_&&(e.strokeStyle=t.strokeStyle,e.lineWidth=t.strokeWidth,t.lineDash&&(e.setLineDash(t.lineDash),e.lineDashOffset=t.lineDashOffset),e.stroke()),e.closePath()},e.prototype.getChecksum=function(){var t=this.stroke_?this.stroke_.getChecksum():"-",e=this.fill_?this.fill_.getChecksum():"-";if(!this.checksums_||t!=this.checksums_[1]||e!=this.checksums_[2]||this.radius_!=this.checksums_[3]||this.radius2_!=this.checksums_[4]||this.angle_!=this.checksums_[5]||this.points_!=this.checksums_[6]){var i="r"+t+e+(void 0!==this.radius_?this.radius_.toString():"-")+(void 0!==this.radius2_?this.radius2_.toString():"-")+(void 0!==this.angle_?this.angle_.toString():"-")+(void 0!==this.points_?this.points_.toString():"-");this.checksums_=[i,t,e,this.radius_,this.radius2_,this.angle_,this.points_]}return this.checksums_[0]},e}(Tu),Ru=function(t){function e(e){var i=e||{};t.call(this,{points:1/0,fill:i.fill,radius:i.radius,stroke:i.stroke,atlasManager:i.atlasManager})}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.clone=function(){var t=new e({fill:this.getFill()?this.getFill().clone():void 0,stroke:this.getStroke()?this.getStroke().clone():void 0,radius:this.getRadius(),atlasManager:this.atlasManager_});return t.setOpacity(this.getOpacity()),t.setScale(this.getScale()),t},e.prototype.setRadius=function(t){this.radius_=t,this.render_(this.atlasManager_)},e}(Cu),wu={FRACTION:"fraction",PIXELS:"pixels"},Iu=function(t){function e(e,i,r,n,o,s){t.call(this),this.hitDetectionImage_=null,this.image_=e||new Image,null!==n&&(this.image_.crossOrigin=n),this.canvas_=s?document.createElement("canvas"):null,this.color_=s,this.imageListenerKeys_=null,this.imageState_=o,this.size_=r,this.src_=i,this.tainted_}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.isTainted_=function(){if(void 0===this.tainted_&&this.imageState_===xs.LOADED){this.tainted_=!1;var t=Jn(1,1);try{t.drawImage(this.image_,0,0),t.getImageData(0,0,1,1)}catch(t){this.tainted_=!0}}return!0===this.tainted_},e.prototype.dispatchChangeEvent_=function(){this.dispatchEvent(M.CHANGE)},e.prototype.handleImageError_=function(){this.imageState_=xs.ERROR,this.unlistenImage_(),this.dispatchChangeEvent_()},e.prototype.handleImageLoad_=function(){this.imageState_=xs.LOADED,this.size_&&(this.image_.width=this.size_[0],this.image_.height=this.size_[1]),this.size_=[this.image_.width,this.image_.height],this.unlistenImage_(),this.replaceColor_(),this.dispatchChangeEvent_()},e.prototype.getImage=function(t){return this.canvas_?this.canvas_:this.image_},e.prototype.getImageState=function(){return this.imageState_},e.prototype.getHitDetectionImage=function(t){if(!this.hitDetectionImage_)if(this.isTainted_()){var e=this.size_[0],i=this.size_[1],r=Jn(e,i);r.fillRect(0,0,e,i),this.hitDetectionImage_=r.canvas}else this.hitDetectionImage_=this.image_;return this.hitDetectionImage_},e.prototype.getSize=function(){return this.size_},e.prototype.getSrc=function(){return this.src_},e.prototype.load=function(){if(this.imageState_==xs.IDLE){this.imageState_=xs.LOADING,this.imageListenerKeys_=[m(this.image_,M.ERROR,this.handleImageError_,this),m(this.image_,M.LOAD,this.handleImageLoad_,this)];try{this.image_.src=this.src_}catch(t){this.handleImageError_()}}},e.prototype.replaceColor_=function(){if(this.color_&&!this.isTainted_()){this.canvas_.width=this.image_.width,this.canvas_.height=this.image_.height;var t=this.canvas_.getContext("2d");t.drawImage(this.image_,0,0);for(var e=t.getImageData(0,0,this.image_.width,this.image_.height),i=e.data,r=this.color_[0]/255,n=this.color_[1]/255,o=this.color_[2]/255,s=0,a=i.length;s0,6);var p=void 0!==i.src?xs.IDLE:xs.LOADED;this.color_=void 0!==i.color?_r(i.color):null,this.iconImage_=function(t,e,i,r,n,o){var s=Ks.get(e,r,o);return s||(s=new Iu(t,e,i,r,n,o),Ks.set(e,r,o,s)),s}(h,u,l,this.crossOrigin_,p,this.color_),this.offset_=void 0!==i.offset?i.offset:[0,0],this.offsetOrigin_=void 0!==i.offsetOrigin?i.offsetOrigin:Lu.TOP_LEFT,this.origin_=null,this.size_=void 0!==i.size?i.size:null}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.clone=function(){return new e({anchor:this.anchor_.slice(),anchorOrigin:this.anchorOrigin_,anchorXUnits:this.anchorXUnits_,anchorYUnits:this.anchorYUnits_,crossOrigin:this.crossOrigin_,color:this.color_&&this.color_.slice?this.color_.slice():this.color_||void 0,src:this.getSrc(),offset:this.offset_.slice(),offsetOrigin:this.offsetOrigin_,size:null!==this.size_?this.size_.slice():void 0,opacity:this.getOpacity(),scale:this.getScale(),rotation:this.getRotation(),rotateWithView:this.getRotateWithView()})},e.prototype.getAnchor=function(){if(this.normalizedAnchor_)return this.normalizedAnchor_;var t=this.anchor_,e=this.getSize();if(this.anchorXUnits_==wu.FRACTION||this.anchorYUnits_==wu.FRACTION){if(!e)return null;t=this.anchor_.slice(),this.anchorXUnits_==wu.FRACTION&&(t[0]*=e[0]),this.anchorYUnits_==wu.FRACTION&&(t[1]*=e[1])}if(this.anchorOrigin_!=Lu.TOP_LEFT){if(!e)return null;t===this.anchor_&&(t=this.anchor_.slice()),this.anchorOrigin_!=Lu.TOP_RIGHT&&this.anchorOrigin_!=Lu.BOTTOM_RIGHT||(t[0]=-t[0]+e[0]),this.anchorOrigin_!=Lu.BOTTOM_LEFT&&this.anchorOrigin_!=Lu.BOTTOM_RIGHT||(t[1]=-t[1]+e[1])}return this.normalizedAnchor_=t,this.normalizedAnchor_},e.prototype.setAnchor=function(t){this.anchor_=t,this.normalizedAnchor_=null},e.prototype.getColor=function(){return this.color_},e.prototype.getImage=function(t){return this.iconImage_.getImage(t)},e.prototype.getImageSize=function(){return this.iconImage_.getSize()},e.prototype.getHitDetectionImageSize=function(){return this.getImageSize()},e.prototype.getImageState=function(){return this.iconImage_.getImageState()},e.prototype.getHitDetectionImage=function(t){return this.iconImage_.getHitDetectionImage(t)},e.prototype.getOrigin=function(){if(this.origin_)return this.origin_;var t=this.offset_;if(this.offsetOrigin_!=Lu.TOP_LEFT){var e=this.getSize(),i=this.iconImage_.getSize();if(!e||!i)return null;t=t.slice(),this.offsetOrigin_!=Lu.TOP_RIGHT&&this.offsetOrigin_!=Lu.BOTTOM_RIGHT||(t[0]=i[0]-e[0]-t[0]),this.offsetOrigin_!=Lu.BOTTOM_LEFT&&this.offsetOrigin_!=Lu.BOTTOM_RIGHT||(t[1]=i[1]-e[1]-t[1])}return this.origin_=t,this.origin_},e.prototype.getSrc=function(){return this.iconImage_.getSrc()},e.prototype.getSize=function(){return this.size_?this.size_:this.iconImage_.getSize()},e.prototype.listenImageChange=function(t,e){return v(this.iconImage_,M.CHANGE,t,e)},e.prototype.load=function(){this.iconImage_.load()},e.prototype.unlistenImageChange=function(t,e){x(this.iconImage_,M.CHANGE,t,e)},e}(Tu),Pu=function(t){var e=t||{};this.geometry_=null,this.geometryFunction_=Au,void 0!==e.geometry&&this.setGeometry(e.geometry),this.fill_=void 0!==e.fill?e.fill:null,this.image_=void 0!==e.image?e.image:null,this.renderer_=void 0!==e.renderer?e.renderer:null,this.stroke_=void 0!==e.stroke?e.stroke:null,this.text_=void 0!==e.text?e.text:null,this.zIndex_=e.zIndex};Pu.prototype.clone=function(){var t=this.getGeometry();return t&&"object"==typeof t&&(t=t.clone()),new Pu({geometry:t,fill:this.getFill()?this.getFill().clone():void 0,image:this.getImage()?this.getImage().clone():void 0,stroke:this.getStroke()?this.getStroke().clone():void 0,text:this.getText()?this.getText().clone():void 0,zIndex:this.getZIndex()})},Pu.prototype.getRenderer=function(){return this.renderer_},Pu.prototype.setRenderer=function(t){this.renderer_=t},Pu.prototype.getGeometry=function(){return this.geometry_},Pu.prototype.getGeometryFunction=function(){return this.geometryFunction_},Pu.prototype.getFill=function(){return this.fill_},Pu.prototype.setFill=function(t){this.fill_=t},Pu.prototype.getImage=function(){return this.image_},Pu.prototype.setImage=function(t){this.image_=t},Pu.prototype.getStroke=function(){return this.stroke_},Pu.prototype.setStroke=function(t){this.stroke_=t},Pu.prototype.getText=function(){return this.text_},Pu.prototype.setText=function(t){this.text_=t},Pu.prototype.getZIndex=function(){return this.zIndex_},Pu.prototype.setGeometry=function(t){"function"==typeof t?this.geometryFunction_=t:"string"==typeof t?this.geometryFunction_=function(e){return e.get(t)}:t?void 0!==t&&(this.geometryFunction_=function(){return t}):this.geometryFunction_=Au,this.geometry_=t},Pu.prototype.setZIndex=function(t){this.zIndex_=t};var bu=null;function Mu(t,e){if(!bu){var i=new mr({color:"rgba(255,255,255,0.4)"}),r=new Er({color:"#3399CC",width:1.25});bu=[new Pu({image:new Ru({fill:i,stroke:r,radius:5}),fill:i,stroke:r})]}return bu}function Fu(){var t={},e=[255,255,255,1],i=[0,153,255,1];return t[Nt.POLYGON]=[new Pu({fill:new mr({color:[255,255,255,.5]})})],t[Nt.MULTI_POLYGON]=t[Nt.POLYGON],t[Nt.LINE_STRING]=[new Pu({stroke:new Er({color:e,width:5})}),new Pu({stroke:new Er({color:i,width:3})})],t[Nt.MULTI_LINE_STRING]=t[Nt.LINE_STRING],t[Nt.CIRCLE]=t[Nt.POLYGON].concat(t[Nt.LINE_STRING]),t[Nt.POINT]=[new Pu({image:new Ru({radius:6,fill:new mr({color:i}),stroke:new Er({color:e,width:1.5})}),zIndex:1/0})],t[Nt.MULTI_POINT]=t[Nt.POINT],t[Nt.GEOMETRY_COLLECTION]=t[Nt.POLYGON].concat(t[Nt.LINE_STRING],t[Nt.POINT]),t}function Au(t){return t.getGeometry()}var Nu=Pu;function Gu(t,e){var i=/\{z\}/g,r=/\{x\}/g,n=/\{y\}/g,o=/\{-y\}/g;return function(s,a,h){return s?t.replace(i,s[0].toString()).replace(r,s[1].toString()).replace(n,function(){return(-s[2]-1).toString()}).replace(o,function(){var t=s[0],i=e.getFullTileRange(t);return Y(i,55),(i.getHeight()+s[2]).toString()}):void 0}}function Du(t,e){for(var i=t.length,r=new Array(i),n=0;n0&&(o/=l)}return o}function Vu(t,e,i,r){var n=i-t,o=r-e,s=Math.sqrt(n*n+o*o);return[Math.round(i+n/s),Math.round(r+o/s)]}function Xu(t,e,i,r,n,o,s,a,h,l,u){var p=Jn(Math.round(i*t),Math.round(i*e));if(0===h.length)return p.canvas;p.scale(i,i);var c=[1/0,1/0,-1/0,-1/0];h.forEach(function(t,e,i){ft(c,t.extent)});var d=Ot(c),f=Rt(c),_=Jn(Math.round(i*d/r),Math.round(i*f/r)),g=i/r;h.forEach(function(t,e,i){var r=t.extent[0]-c[0],n=-(t.extent[3]-c[3]),o=Ot(t.extent),s=Rt(t.extent);_.drawImage(t.image,l,l,t.image.width-2*l,t.image.height-2*l,r*g,n*g,o*g,s*g)});var y=It(s);return a.getTriangles().forEach(function(t,e,n){var s=t.source,a=t.target,h=s[0][0],l=s[0][1],u=s[1][0],d=s[1][1],f=s[2][0],g=s[2][1],v=(a[0][0]-y[0])/o,m=-(a[0][1]-y[1])/o,x=(a[1][0]-y[0])/o,E=-(a[1][1]-y[1])/o,S=(a[2][0]-y[0])/o,T=-(a[2][1]-y[1])/o,C=h,R=l;h=0,l=0;var w=function(t){for(var e=t.length,i=0;in&&(n=s,r=o)}if(0===n)return null;var a=t[r];t[r]=t[i],t[i]=a;for(var h=i+1;h=0;c--){p[c]=t[c][e]/t[c][c];for(var d=c-1;d>=0;d--)t[d][e]-=t[d][c]*p[c]}return p}([[u-=C,d-=R,0,0,x-v],[f-=C,g-=R,0,0,S-v],[0,0,u,d,E-m],[0,0,f,g,T-m]]);if(w){p.save(),p.beginPath();var I=(v+x+S)/3,L=(m+E+T)/3,O=Vu(I,L,v,m),P=Vu(I,L,x,E),b=Vu(I,L,S,T);p.moveTo(P[0],P[1]),p.lineTo(O[0],O[1]),p.lineTo(b[0],b[1]),p.clip(),p.transform(w[0],w[2],w[1],w[3],v,m),p.translate(c[0]-C,c[3]-R),p.scale(r/i,-r/i),p.drawImage(_.canvas,0,0),p.restore()}}),u&&(p.save(),p.strokeStyle="black",p.lineWidth=1,a.getTriangles().forEach(function(t,e,i){var r=t.target,n=(r[0][0]-y[0])/o,s=-(r[0][1]-y[1])/o,a=(r[1][0]-y[0])/o,h=-(r[1][1]-y[1])/o,l=(r[2][0]-y[0])/o,u=-(r[2][1]-y[1])/o;p.beginPath(),p.moveTo(a,h),p.lineTo(n,s),p.lineTo(l,u),p.closePath(),p.stroke()}),p.restore()),p.canvas}var zu=function(t,e,i,r,n){this.sourceProj_=t,this.targetProj_=e;var o={},s=Oe(this.targetProj_,this.sourceProj_);this.transformInv_=function(t){var e=t[0]+"/"+t[1];return o[e]||(o[e]=s(t)),o[e]},this.maxSourceExtent_=r,this.errorThresholdSquared_=n*n,this.triangles_=[],this.wrapsXInSource_=!1,this.canWrapXInSource_=this.sourceProj_.canWrapX()&&!!r&&!!this.sourceProj_.getExtent()&&Ot(r)==Ot(this.sourceProj_.getExtent()),this.sourceWorldWidth_=this.sourceProj_.getExtent()?Ot(this.sourceProj_.getExtent()):null,this.targetWorldWidth_=this.targetProj_.getExtent()?Ot(this.targetProj_.getExtent()):null;var a=It(i),h=Lt(i),l=St(i),u=Et(i),p=this.transformInv_(a),c=this.transformInv_(h),d=this.transformInv_(l),f=this.transformInv_(u);if(this.addQuad_(a,h,l,u,p,c,d,f,10),this.wrapsXInSource_){var _=1/0;this.triangles_.forEach(function(t,e,i){_=Math.min(_,t.source[0][0],t.source[1][0],t.source[2][0])}),this.triangles_.forEach(function(t){if(Math.max(t.source[0][0],t.source[1][0],t.source[2][0])-_>this.sourceWorldWidth_/2){var e=[[t.source[0][0],t.source[0][1]],[t.source[1][0],t.source[1][1]],[t.source[2][0],t.source[2][1]]];e[0][0]-_>this.sourceWorldWidth_/2&&(e[0][0]-=this.sourceWorldWidth_),e[1][0]-_>this.sourceWorldWidth_/2&&(e[1][0]-=this.sourceWorldWidth_),e[2][0]-_>this.sourceWorldWidth_/2&&(e[2][0]-=this.sourceWorldWidth_);var i=Math.min(e[0][0],e[1][0],e[2][0]);Math.max(e[0][0],e[1][0],e[2][0])-i.5&&u<1,d=!1;if(h>0){if(this.targetProj_.isGlobal()&&this.targetWorldWidth_)d=Ot(tt([t,e,i,r]))/this.targetWorldWidth_>.25||d;!c&&this.sourceProj_.isGlobal()&&u&&(d=u>.25||d)}if(d||!this.maxSourceExtent_||Pt(l,this.maxSourceExtent_)){if(!(d||isFinite(n[0])&&isFinite(n[1])&&isFinite(o[0])&&isFinite(o[1])&&isFinite(s[0])&&isFinite(s[1])&&isFinite(a[0])&&isFinite(a[1]))){if(!(h>0))return;d=!0}if(h>0){if(!d){var f,_=[(t[0]+i[0])/2,(t[1]+i[1])/2],g=this.transformInv_(_);if(c)f=(Xt(n[0],p)+Xt(s[0],p))/2-Xt(g[0],p);else f=(n[0]+s[0])/2-g[0];var y=(n[1]+s[1])/2-g[1];d=f*f+y*y>this.errorThresholdSquared_}if(d){if(Math.abs(t[0]-i[0])<=Math.abs(t[1]-i[1])){var v=[(e[0]+i[0])/2,(e[1]+i[1])/2],m=this.transformInv_(v),x=[(r[0]+t[0])/2,(r[1]+t[1])/2],E=this.transformInv_(x);this.addQuad_(t,e,v,x,n,o,m,E,h-1),this.addQuad_(x,v,i,r,E,m,s,a,h-1)}else{var S=[(t[0]+e[0])/2,(t[1]+e[1])/2],T=this.transformInv_(S),C=[(i[0]+r[0])/2,(i[1]+r[1])/2],R=this.transformInv_(C);this.addQuad_(t,S,C,r,n,T,R,a,h-1),this.addQuad_(S,e,i,C,T,o,s,R,h-1)}return}}if(c){if(!this.canWrapXInSource_)return;this.wrapsXInSource_=!0}this.addTriangle_(t,i,r,n,s,a),this.addTriangle_(t,e,i,n,o,s)}},zu.prototype.calculateSourceExtent=function(){var t=[1/0,1/0,-1/0,-1/0];return this.triangles_.forEach(function(e,i,r){var n=e.source;_t(t,n[0]),_t(t,n[1]),_t(t,n[2])}),t},zu.prototype.getTriangles=function(){return this.triangles_};var Wu=zu,Ku=function(t){function e(e,i,r,n,o,s,a,h,l,u,p){t.call(this,o,On.IDLE),this.renderEdges_=void 0!==p&&p,this.pixelRatio_=a,this.gutter_=h,this.canvas_=null,this.sourceTileGrid_=i,this.targetTileGrid_=n,this.wrappedTileCoord_=s||o,this.sourceTiles_=[],this.sourcesListenerKeys_=null,this.sourceZ_=0;var c=n.getTileCoordExtent(this.wrappedTileCoord_),d=this.targetTileGrid_.getExtent(),f=this.sourceTileGrid_.getExtent(),_=d?wt(c,d):c;if(0!==xt(_)){var g=e.getExtent();g&&(f=f?wt(f,g):g);var y=n.getResolution(this.wrappedTileCoord_[0]),v=Bu(e,r,Tt(_),y);if(!isFinite(v)||v<=0)this.state=On.EMPTY;else{var m=void 0!==u?u:vs;if(this.triangulation_=new Wu(e,r,_,f,v*m),0!==this.triangulation_.getTriangles().length){this.sourceZ_=i.getZForResolution(v);var x=this.triangulation_.calculateSourceExtent();if(f&&(e.canWrapX()?(x[1]=kt(x[1],f[1],f[3]),x[3]=kt(x[3],f[1],f[3])):x=wt(x,f)),xt(x)){for(var E=i.getTileRangeForExtentAndZ(x,this.sourceZ_),S=E.minX;S<=E.maxX;S++)for(var T=E.minY;T<=E.maxY;T++){var C=l(this.sourceZ_,S,T,a);C&&this.sourceTiles_.push(C)}0===this.sourceTiles_.length&&(this.state=On.EMPTY)}else this.state=On.EMPTY}else this.state=On.EMPTY}}else this.state=On.EMPTY}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.disposeInternal=function(){this.state==On.LOADING&&this.unlistenSources_(),t.prototype.disposeInternal.call(this)},e.prototype.getImage=function(){return this.canvas_},e.prototype.reproject_=function(){var t=[];if(this.sourceTiles_.forEach(function(e,i,r){e&&e.getState()==On.LOADED&&t.push({extent:this.sourceTileGrid_.getTileCoordExtent(e.tileCoord),image:e.getImage()})}.bind(this)),this.sourceTiles_.length=0,0===t.length)this.state=On.ERROR;else{var e=this.wrappedTileCoord_[0],i=this.targetTileGrid_.getTileSize(e),r="number"==typeof i?i:i[0],n="number"==typeof i?i:i[1],o=this.targetTileGrid_.getResolution(e),s=this.sourceTileGrid_.getResolution(this.sourceZ_),a=this.targetTileGrid_.getTileCoordExtent(this.wrappedTileCoord_);this.canvas_=Xu(r,n,this.pixelRatio_,s,this.sourceTileGrid_.getExtent(),o,a,this.triangulation_,t,this.gutter_,this.renderEdges_),this.state=On.LOADED}this.changed()},e.prototype.load=function(){if(this.state==On.IDLE){this.state=On.LOADING,this.changed();var t=0;this.sourcesListenerKeys_=[],this.sourceTiles_.forEach(function(e,i,r){var n=e.getState();if(n==On.IDLE||n==On.LOADING){t++;var o=v(e,M.CHANGE,function(i){var r=e.getState();r!=On.LOADED&&r!=On.ERROR&&r!=On.EMPTY||(E(o),0===--t&&(this.unlistenSources_(),this.reproject_()))},this);this.sourcesListenerKeys_.push(o)}}.bind(this)),this.sourceTiles_.forEach(function(t,e,i){t.getState()==On.IDLE&&t.load()}),0===t&&setTimeout(this.reproject_.bind(this),0)}},e.prototype.unlistenSources_=function(){this.sourcesListenerKeys_.forEach(E),this.sourcesListenerKeys_=null},e}(vl),Hu="tileloadstart",Zu="tileloadend",qu="tileloaderror",Ju=function(t){function e(e){t.call(this,{attributions:e.attributions,cacheSize:e.cacheSize,opaque:e.opaque,projection:e.projection,state:e.state,tileGrid:e.tileGrid,tilePixelRatio:e.tilePixelRatio,wrapX:e.wrapX,transition:e.transition,key:e.key,attributionsCollapsible:e.attributionsCollapsible}),this.generateTileUrlFunction_=!e.tileUrlFunction,this.tileLoadFunction=e.tileLoadFunction,this.tileUrlFunction=e.tileUrlFunction?e.tileUrlFunction.bind(this):ju,this.urls=null,e.urls?this.setUrls(e.urls):e.url&&this.setUrl(e.url),e.tileUrlFunction&&this.setTileUrlFunction(e.tileUrlFunction,this.key_),this.tileLoadingKeys_={}}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.getTileLoadFunction=function(){return this.tileLoadFunction},e.prototype.getTileUrlFunction=function(){return this.tileUrlFunction},e.prototype.getUrls=function(){return this.urls},e.prototype.handleTileChange=function(t){var e,i=t.target,r=o(i),n=i.getState();n==On.LOADING?(this.tileLoadingKeys_[r]=!0,e=Hu):r in this.tileLoadingKeys_&&(delete this.tileLoadingKeys_[r],e=n==On.ERROR?qu:n==On.LOADED||n==On.ABORT?Zu:void 0),void 0!=e&&this.dispatchEvent(new kl(e,i))},e.prototype.setTileLoadFunction=function(t){this.tileCache.clear(),this.tileLoadFunction=t,this.changed()},e.prototype.setTileUrlFunction=function(t,e){this.tileUrlFunction=t,this.tileCache.pruneExceptNewestZ(),void 0!==e?this.setKey(e):this.changed()},e.prototype.setUrl=function(t){var e=this.urls=Uu(t);this.setUrls(e)},e.prototype.setUrls=function(t){this.urls=t;var e=t.join("\n");this.generateTileUrlFunction_?this.setTileUrlFunction(Du(t,this.tileGrid),e):this.setKey(e)},e.prototype.useTile=function(t,e,i){var r=Sl(t,e,i);this.tileCache.containsKey(r)&&this.tileCache.get(r)},e}(jl);function Qu(t,e){t.getImage().src=e}var $u=function(t){function e(e){t.call(this,{attributions:e.attributions,cacheSize:e.cacheSize,opaque:e.opaque,projection:e.projection,state:e.state,tileGrid:e.tileGrid,tileLoadFunction:e.tileLoadFunction?e.tileLoadFunction:Qu,tilePixelRatio:e.tilePixelRatio,tileUrlFunction:e.tileUrlFunction,url:e.url,urls:e.urls,wrapX:e.wrapX,transition:e.transition,key:e.key,attributionsCollapsible:e.attributionsCollapsible}),this.crossOrigin=void 0!==e.crossOrigin?e.crossOrigin:null,this.tileClass=void 0!==e.tileClass?e.tileClass:xl,this.tileCacheForProjection={},this.tileGridForProjection={},this.reprojectionErrorThreshold_=e.reprojectionErrorThreshold,this.renderReprojectionEdges_=!1}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.canExpireCache=function(){if(this.tileCache.canExpireCache())return!0;for(var t in this.tileCacheForProjection)if(this.tileCacheForProjection[t].canExpireCache())return!0;return!1},e.prototype.expireCache=function(t,e){var i=this.getTileCacheForProjection(t);for(var r in this.tileCache.expireCache(this.tileCache==i?e:{}),this.tileCacheForProjection){var n=this.tileCacheForProjection[r];n.expireCache(n==i?e:{})}},e.prototype.getGutterForProjection=function(t){return this.getProjection()&&t&&!Ie(this.getProjection(),t)?0:this.getGutter()},e.prototype.getGutter=function(){return 0},e.prototype.getOpaque=function(e){return!(this.getProjection()&&e&&!Ie(this.getProjection(),e))&&t.prototype.getOpaque.call(this,e)},e.prototype.getTileGridForProjection=function(t){var e=this.getProjection();if(!this.tileGrid||e&&!Ie(e,t)){var i=o(t);return i in this.tileGridForProjection||(this.tileGridForProjection[i]=bl(t)),this.tileGridForProjection[i]}return this.tileGrid},e.prototype.getTileCacheForProjection=function(t){var e=this.getProjection();if(!e||Ie(e,t))return this.tileCache;var i=o(t);return i in this.tileCacheForProjection||(this.tileCacheForProjection[i]=new Rl(this.tileCache.highWaterMark)),this.tileCacheForProjection[i]},e.prototype.createTile_=function(t,e,i,r,n,o){var s=[t,e,i],a=this.getTileCoordForTileUrlFunction(s,n),h=a?this.tileUrlFunction(a,r,n):void 0,l=new this.tileClass(s,void 0!==h?On.IDLE:On.EMPTY,void 0!==h?h:"",this.crossOrigin,this.tileLoadFunction,this.tileOptions);return l.key=o,v(l,M.CHANGE,this.handleTileChange,this),l},e.prototype.getTile=function(t,e,i,r,n){var o=this.getProjection();if(o&&n&&!Ie(o,n)){var s,a=this.getTileCacheForProjection(n),h=[t,e,i],l=Tl(h);a.containsKey(l)&&(s=a.get(l));var u=this.getKey();if(s&&s.key==u)return s;var p=this.getTileGridForProjection(o),c=this.getTileGridForProjection(n),d=this.getTileCoordForTileUrlFunction(h,n),f=new Ku(o,p,n,c,h,d,this.getTilePixelRatio(r),this.getGutter(),function(t,e,i,r){return this.getTileInternal(t,e,i,r,o)}.bind(this),this.reprojectionErrorThreshold_,this.renderReprojectionEdges_);return f.key=u,s?(f.interimTile=s,f.refreshInterimChain(),a.replace(l,f)):a.set(l,f),f}return this.getTileInternal(t,e,i,r,o||n)},e.prototype.getTileInternal=function(t,e,i,r,n){var o=null,s=Sl(t,e,i),a=this.getKey();if(this.tileCache.containsKey(s)){if((o=this.tileCache.get(s)).key!=a){var h=o;o=this.createTile_(t,e,i,r,n,a),h.getState()==On.IDLE?o.interimTile=h.interimTile:o.interimTile=h,o.refreshInterimChain(),this.tileCache.replace(s,o)}}else o=this.createTile_(t,e,i,r,n,a),this.tileCache.set(s,o);return o},e.prototype.setRenderReprojectionEdges=function(t){if(this.renderReprojectionEdges_!=t){for(var e in this.renderReprojectionEdges_=t,this.tileCacheForProjection)this.tileCacheForProjection[e].clear();this.changed()}},e.prototype.setTileGridForProjection=function(t,e){var i=Ee(t);if(i){var r=o(i);r in this.tileGridForProjection||(this.tileGridForProjection[r]=e)}},e}(Ju),tp=function(t){function e(e){var i=void 0!==e.hidpi&&e.hidpi;t.call(this,{cacheSize:e.cacheSize,crossOrigin:"anonymous",opaque:!0,projection:Ee("EPSG:3857"),reprojectionErrorThreshold:e.reprojectionErrorThreshold,state:ro.LOADING,tileLoadFunction:e.tileLoadFunction,tilePixelRatio:i?2:1,wrapX:void 0===e.wrapX||e.wrapX,transition:e.transition}),this.hidpi_=i,this.culture_=void 0!==e.culture?e.culture:"en-us",this.maxZoom_=void 0!==e.maxZoom?e.maxZoom:-1,this.apiKey_=e.key,this.imagerySet_=e.imagerySet,Yu("https://dev.virtualearth.net/REST/v1/Imagery/Metadata/"+this.imagerySet_+"?uriScheme=https&include=ImageryProviders&key="+this.apiKey_+"&c="+this.culture_,this.handleImageryMetadataResponse.bind(this),void 0,"jsonp")}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.getApiKey=function(){return this.apiKey_},e.prototype.getImagerySet=function(){return this.imagerySet_},e.prototype.handleImageryMetadataResponse=function(t){if(200==t.statusCode&&"OK"==t.statusDescription&&"ValidCredentials"==t.authenticationResultCode&&1==t.resourceSets.length&&1==t.resourceSets[0].resources.length){var e=t.resourceSets[0].resources[0],i=-1==this.maxZoom_?e.zoomMax:this.maxZoom_,r=Gl(this.getProjection()),n=this.hidpi_?2:1,o=e.imageWidth==e.imageHeight?e.imageWidth/n:[e.imageWidth/n,e.imageHeight/n],s=Fl({extent:r,minZoom:e.zoomMin,maxZoom:i,tileSize:o});this.tileGrid=s;var a=this.culture_,h=this.hidpi_;if(this.tileUrlFunction=ku(e.imageUrlSubdomains.map(function(t){var i=[0,0,0],r=e.imageUrl.replace("{subdomain}",t).replace("{culture}",a);return function(t,e,n){if(t){El(t[0],t[1],-t[2]-1,i);var o=r;return h&&(o+="&dpi=d1&device=mobile"),o.replace("{quadkey}",function(t){var e,i,r=t[0],n=new Array(r),o=1<>=1;return n.join("")}(i))}}})),e.imageryProviders){var l=Le(Ee("EPSG:4326"),this.getProjection());this.setAttributions(function(t){var i=[],r=t.viewState,n=this.getTileGrid().getTileCoordForCoordAndResolution(r.center,r.resolution)[0];return e.imageryProviders.map(function(e){for(var r=!1,o=e.coverageAreas,s=0,a=o.length;s=h.zoomMin&&n<=h.zoomMax){var u=h.bbox;if(Pt(Ft([u[1],u[0],u[3],u[2]],l),t.extent)){r=!0;break}}}r&&i.push(e.attribution)}),i.push('Terms of Use'),i}.bind(this))}this.setState(ro.READY)}else this.setState(ro.ERROR)},e}($u),ep=function(t){function e(e){var i=e||{},r=void 0!==i.projection?i.projection:"EPSG:3857",n=void 0!==i.tileGrid?i.tileGrid:Fl({extent:Gl(r),maxZoom:i.maxZoom,minZoom:i.minZoom,tileSize:i.tileSize});t.call(this,{attributions:i.attributions,cacheSize:i.cacheSize,crossOrigin:i.crossOrigin,opaque:i.opaque,projection:r,reprojectionErrorThreshold:i.reprojectionErrorThreshold,tileGrid:n,tileLoadFunction:i.tileLoadFunction,tilePixelRatio:i.tilePixelRatio,tileUrlFunction:i.tileUrlFunction,url:i.url,urls:i.urls,wrapX:void 0===i.wrapX||i.wrapX,transition:i.transition,attributionsCollapsible:i.attributionsCollapsible})}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e}($u),ip=function(t){function e(e){t.call(this,{attributions:e.attributions,cacheSize:e.cacheSize,crossOrigin:e.crossOrigin,maxZoom:void 0!==e.maxZoom?e.maxZoom:18,minZoom:e.minZoom,projection:e.projection,wrapX:e.wrapX}),this.account_=e.account,this.mapId_=e.map||"",this.config_=e.config||{},this.templateCache_={},this.initializeMap_()}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.getConfig=function(){return this.config_},e.prototype.updateConfig=function(t){u(this.config_,t),this.initializeMap_()},e.prototype.setConfig=function(t){this.config_=t||{},this.initializeMap_()},e.prototype.initializeMap_=function(){var t=JSON.stringify(this.config_);if(this.templateCache_[t])this.applyTemplate_(this.templateCache_[t]);else{var e="https://"+this.account_+".carto.com/api/v1/map";this.mapId_&&(e+="/named/"+this.mapId_);var i=new XMLHttpRequest;i.addEventListener("load",this.handleInitResponse_.bind(this,t)),i.addEventListener("error",this.handleInitError_.bind(this)),i.open("POST",e),i.setRequestHeader("Content-type","application/json"),i.send(JSON.stringify(this.config_))}},e.prototype.handleInitResponse_=function(t,e){var i=e.target;if(!i.status||i.status>=200&&i.status<300){var r;try{r=JSON.parse(i.responseText)}catch(t){return void this.setState(ro.ERROR)}this.applyTemplate_(r),this.templateCache_[t]=r,this.setState(ro.READY)}else this.setState(ro.ERROR)},e.prototype.handleInitError_=function(t){this.setState(ro.ERROR)},e.prototype.applyTemplate_=function(t){var e="https://"+t.cdn_url.https+"/"+this.account_+"/api/v1/map/"+t.layergroupid+"/{z}/{x}/{y}.png";this.setUrl(e)},e}(ep),rp={ADDFEATURE:"addfeature",CHANGEFEATURE:"changefeature",CLEAR:"clear",REMOVEFEATURE:"removefeature"},np=function(t){function e(e,i){t.call(this,e),this.feature=i}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e}(P),op=function(t){function e(e){var i=e||{};t.call(this,{attributions:i.attributions,projection:void 0,state:ro.READY,wrapX:void 0===i.wrapX||i.wrapX}),this.loader_=I,this.format_=i.format,this.overlaps_=void 0==i.overlaps||i.overlaps,this.url_=i.url,void 0!==i.loader?this.loader_=i.loader:void 0!==this.url_&&(Y(this.format_,7),this.loader_=ql(this.url_,this.format_)),this.strategy_=void 0!==i.strategy?i.strategy:Jl;var r,n,o=void 0===i.useSpatialIndex||i.useSpatialIndex;this.featuresRtree_=o?new tl:null,this.loadedExtentsRtree_=new tl,this.nullGeometryFeatures_={},this.idIndex_={},this.undefIdIndex_={},this.featureChangeKeys_={},this.featuresCollection_=null,Array.isArray(i.features)?n=i.features:i.features&&(n=(r=i.features).getArray()),o||void 0!==r||(r=new U(n)),void 0!==n&&this.addFeaturesInternal(n),void 0!==r&&this.bindFeaturesCollection_(r)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.addFeature=function(t){this.addFeatureInternal(t),this.changed()},e.prototype.addFeatureInternal=function(t){var e=o(t);if(this.addToIndex_(e,t)){this.setupChangeEvents_(e,t);var i=t.getGeometry();if(i){var r=i.getExtent();this.featuresRtree_&&this.featuresRtree_.insert(r,t)}else this.nullGeometryFeatures_[e]=t;this.dispatchEvent(new np(rp.ADDFEATURE,t))}},e.prototype.setupChangeEvents_=function(t,e){this.featureChangeKeys_[t]=[v(e,M.CHANGE,this.handleFeatureChange_,this),v(e,l,this.handleFeatureChange_,this)]},e.prototype.addToIndex_=function(t,e){var i=!0,r=e.getId();return void 0!==r?r.toString()in this.idIndex_?i=!1:this.idIndex_[r.toString()]=e:(Y(!(t in this.undefIdIndex_),30),this.undefIdIndex_[t]=e),i},e.prototype.addFeatures=function(t){this.addFeaturesInternal(t),this.changed()},e.prototype.addFeaturesInternal=function(t){for(var e=[],i=[],r=[],n=0,s=t.length;n=0;--i){var r=this.geometryFunction(t[i]);r?Hi(e,r.getCoordinates()):t.splice(i,1)}tr(e,1/t.length);var n=new B(new ci(e));return n.set("features",t),n},e}(op),ap=function(t){function e(e,i,r,n,o,s){var a=e.getExtent(),h=i.getExtent(),l=h?wt(r,h):r,u=Bu(e,i,Tt(l),n),p=new Wu(e,i,l,a,u*vs),c=s(p.calculateSourceExtent(),u,o),d=xs.LOADED;c&&(d=xs.IDLE);var f=c?c.getPixelRatio():1;t.call(this,r,n,f,d),this.targetProj_=i,this.maxSourceExtent_=a,this.triangulation_=p,this.targetResolution_=n,this.targetExtent_=r,this.sourceImage_=c,this.sourcePixelRatio_=f,this.canvas_=null,this.sourceListenerKey_=null}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.disposeInternal=function(){this.state==xs.LOADING&&this.unlistenSource_(),t.prototype.disposeInternal.call(this)},e.prototype.getImage=function(){return this.canvas_},e.prototype.getProjection=function(){return this.targetProj_},e.prototype.reproject_=function(){var t=this.sourceImage_.getState();if(t==xs.LOADED){var e=Ot(this.targetExtent_)/this.targetResolution_,i=Rt(this.targetExtent_)/this.targetResolution_;this.canvas_=Xu(e,i,this.sourcePixelRatio_,this.sourceImage_.getResolution(),this.maxSourceExtent_,this.targetResolution_,this.targetExtent_,this.triangulation_,[{extent:this.sourceImage_.getExtent(),image:this.sourceImage_.getImage()}],0)}this.state=t,this.changed()},e.prototype.load=function(){if(this.state==xs.IDLE){this.state=xs.LOADING,this.changed();var t=this.sourceImage_.getState();t==xs.LOADED||t==xs.ERROR?this.reproject_():(this.sourceListenerKey_=v(this.sourceImage_,M.CHANGE,function(t){var e=this.sourceImage_.getState();e!=xs.LOADED&&e!=xs.ERROR||(this.unlistenSource_(),this.reproject_())},this),this.sourceImage_.load())}},e.prototype.unlistenSource_=function(){E(this.sourceListenerKey_),this.sourceListenerKey_=null},e}(ms),hp="imageloadstart",lp="imageloadend",up="imageloaderror",pp=function(t){function e(e,i){t.call(this,e),this.image=i}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e}(P);function cp(t,e){t.getImage().src=e}var dp=function(t){function e(e){t.call(this,{attributions:e.attributions,projection:e.projection,state:e.state}),this.resolutions_=void 0!==e.resolutions?e.resolutions:null,this.reprojectedImage_=null,this.reprojectedRevision_=0}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.getResolutions=function(){return this.resolutions_},e.prototype.findNearestResolution=function(t){if(this.resolutions_){var e=z(this.resolutions_,t,0);t=this.resolutions_[e]}return t},e.prototype.getImage=function(t,e,i,r){var n=this.getProjection();if(n&&r&&!Ie(n,r)){if(this.reprojectedImage_){if(this.reprojectedRevision_==this.getRevision()&&Ie(this.reprojectedImage_.getProjection(),r)&&this.reprojectedImage_.getResolution()==e&&dt(this.reprojectedImage_.getExtent(),t))return this.reprojectedImage_;this.reprojectedImage_.dispose(),this.reprojectedImage_=null}return this.reprojectedImage_=new ap(n,r,t,e,i,function(t,e,i){return this.getImageInternal(t,e,i,n)}.bind(this)),this.reprojectedRevision_=this.getRevision(),this.reprojectedImage_}return n&&(r=n),this.getImageInternal(t,e,i,r)},e.prototype.getImageInternal=function(t,e,i,n){return r()},e.prototype.handleImageChange=function(t){var e=t.target;switch(e.getState()){case xs.LOADING:this.loading=!0,this.dispatchEvent(new pp(hp,e));break;case xs.LOADED:this.loading=!1,this.dispatchEvent(new pp(lp,e));break;case xs.ERROR:this.loading=!1,this.dispatchEvent(new pp(up,e))}},e}(Il),fp=function(t){function e(e,i,r,n,o,s){t.call(this,e,i,r,xs.IDLE),this.src_=n,this.image_=new Image,null!==o&&(this.image_.crossOrigin=o),this.imageListenerKeys_=null,this.state=xs.IDLE,this.imageLoadFunction_=s}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.getImage=function(){return this.image_},e.prototype.handleImageError_=function(){this.state=xs.ERROR,this.unlistenImage_(),this.changed()},e.prototype.handleImageLoad_=function(){void 0===this.resolution&&(this.resolution=Rt(this.extent)/this.image_.height),this.state=xs.LOADED,this.unlistenImage_(),this.changed()},e.prototype.load=function(){this.state!=xs.IDLE&&this.state!=xs.ERROR||(this.state=xs.LOADING,this.changed(),this.imageListenerKeys_=[m(this.image_,M.ERROR,this.handleImageError_,this),m(this.image_,M.LOAD,this.handleImageLoad_,this)],this.imageLoadFunction_(this,this.src_))},e.prototype.setImage=function(t){this.image_=t},e.prototype.unlistenImage_=function(){this.imageListenerKeys_.forEach(E),this.imageListenerKeys_=null},e}(ms);function _p(t,e){var i=[];Object.keys(e).forEach(function(t){null!==e[t]&&void 0!==e[t]&&i.push(t+"="+encodeURIComponent(e[t]))});var r=i.join("&");return(t=-1===(t=t.replace(/[?&]$/,"")).indexOf("?")?t+"?":t+"&")+r}var gp=function(t){function e(e){var i=e||{};t.call(this,{attributions:i.attributions,projection:i.projection,resolutions:i.resolutions}),this.crossOrigin_=void 0!==i.crossOrigin?i.crossOrigin:null,this.hidpi_=void 0===i.hidpi||i.hidpi,this.url_=i.url,this.imageLoadFunction_=void 0!==i.imageLoadFunction?i.imageLoadFunction:cp,this.params_=i.params||{},this.image_=null,this.imageSize_=[0,0],this.renderedRevision_=0,this.ratio_=void 0!==i.ratio?i.ratio:1.5}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.getParams=function(){return this.params_},e.prototype.getImageInternal=function(t,e,i,r){if(void 0===this.url_)return null;e=this.findNearestResolution(e),i=this.hidpi_?i:1;var n=this.image_;if(n&&this.renderedRevision_==this.getRevision()&&n.getResolution()==e&&n.getPixelRatio()==i&&ot(n.getExtent(),t))return n;var o={F:"image",FORMAT:"PNG32",TRANSPARENT:!0};u(o,this.params_);var s=((t=t.slice())[0]+t[2])/2,a=(t[1]+t[3])/2;if(1!=this.ratio_){var h=this.ratio_*Ot(t)/2,l=this.ratio_*Rt(t)/2;t[0]=s-h,t[1]=a-l,t[2]=s+h,t[3]=a+l}var p=e/i,c=Math.ceil(Ot(t)/p),d=Math.ceil(Rt(t)/p);t[0]=s-p*c/2,t[2]=s+p*c/2,t[1]=a-p*d/2,t[3]=a+p*d/2,this.imageSize_[0]=c,this.imageSize_[1]=d;var f=this.getRequestUrl_(t,this.imageSize_,i,r,o);return this.image_=new fp(t,e,i,f,this.crossOrigin_,this.imageLoadFunction_),this.renderedRevision_=this.getRevision(),v(this.image_,M.CHANGE,this.handleImageChange,this),this.image_},e.prototype.getImageLoadFunction=function(){return this.imageLoadFunction_},e.prototype.getRequestUrl_=function(t,e,i,r,n){var o=r.getCode().split(":").pop();n.SIZE=e[0]+","+e[1],n.BBOX=t.join(","),n.BBOXSR=o,n.IMAGESR=o,n.DPI=Math.round(90*i);var s=this.url_,a=s.replace(/MapServer\/?$/,"MapServer/export").replace(/ImageServer\/?$/,"ImageServer/exportImage");return a==s&&Y(!1,50),_p(a,n)},e.prototype.getUrl=function(){return this.url_},e.prototype.setImageLoadFunction=function(t){this.image_=null,this.imageLoadFunction_=t,this.changed()},e.prototype.setUrl=function(t){t!=this.url_&&(this.url_=t,this.image_=null,this.changed())},e.prototype.updateParams=function(t){u(this.params_,t),this.image_=null,this.changed()},e}(dp),yp=function(t){function e(e){var i=e||{};t.call(this,{attributions:i.attributions,projection:i.projection,resolutions:i.resolutions,state:i.state}),this.canvasFunction_=i.canvasFunction,this.canvas_=null,this.renderedRevision_=0,this.ratio_=void 0!==i.ratio?i.ratio:1.5}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.getImageInternal=function(t,e,i,r){e=this.findNearestResolution(e);var n=this.canvas_;if(n&&this.renderedRevision_==this.getRevision()&&n.getResolution()==e&&n.getPixelRatio()==i&&ot(n.getExtent(),t))return n;Mt(t=t.slice(),this.ratio_);var o=[Ot(t)/e*i,Rt(t)/e*i],s=this.canvasFunction_.call(this,t,e,i,o,r);return s&&(n=new Es(t,e,i,s)),this.canvas_=n,this.renderedRevision_=this.getRevision(),n},e}(dp);var vp=function(t){function e(e){t.call(this,{projection:e.projection,resolutions:e.resolutions}),this.crossOrigin_=void 0!==e.crossOrigin?e.crossOrigin:null,this.displayDpi_=void 0!==e.displayDpi?e.displayDpi:96,this.params_=e.params||{},this.url_=e.url,this.imageLoadFunction_=void 0!==e.imageLoadFunction?e.imageLoadFunction:cp,this.hidpi_=void 0===e.hidpi||e.hidpi,this.metersPerUnit_=void 0!==e.metersPerUnit?e.metersPerUnit:1,this.ratio_=void 0!==e.ratio?e.ratio:1,this.useOverlay_=void 0!==e.useOverlay&&e.useOverlay,this.image_=null,this.renderedRevision_=0}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.getParams=function(){return this.params_},e.prototype.getImageInternal=function(t,e,i,r){e=this.findNearestResolution(e),i=this.hidpi_?i:1;var n=this.image_;if(n&&this.renderedRevision_==this.getRevision()&&n.getResolution()==e&&n.getPixelRatio()==i&&ot(n.getExtent(),t))return n;1!=this.ratio_&&Mt(t=t.slice(),this.ratio_);var o=[Ot(t)/e*i,Rt(t)/e*i];if(void 0!==this.url_){var s=this.getUrl(this.url_,this.params_,t,o,r);v(n=new fp(t,e,i,s,this.crossOrigin_,this.imageLoadFunction_),M.CHANGE,this.handleImageChange,this)}else n=null;return this.image_=n,this.renderedRevision_=this.getRevision(),n},e.prototype.getImageLoadFunction=function(){return this.imageLoadFunction_},e.prototype.updateParams=function(t){u(this.params_,t),this.changed()},e.prototype.getUrl=function(t,e,i,r,n){var o=function(t,e,i,r){var n=Ot(t),o=Rt(t),s=e[0],a=e[1],h=.0254/r;return a*n>s*o?n*i/(s*h):o*i/(a*h)}(i,r,this.metersPerUnit_,this.displayDpi_),s=Tt(i),a={OPERATION:this.useOverlay_?"GETDYNAMICMAPOVERLAYIMAGE":"GETMAPIMAGE",VERSION:"2.0.0",LOCALE:"en",CLIENTAGENT:"ol/source/ImageMapGuide source",CLIP:"1",SETDISPLAYDPI:this.displayDpi_,SETDISPLAYWIDTH:Math.round(r[0]),SETDISPLAYHEIGHT:Math.round(r[1]),SETVIEWSCALE:o,SETVIEWCENTERX:s[0],SETVIEWCENTERY:s[1]};return u(a,e),_p(t,a)},e.prototype.setImageLoadFunction=function(t){this.image_=null,this.imageLoadFunction_=t,this.changed()},e}(dp),mp=function(t){function e(e){var i=void 0!==e.crossOrigin?e.crossOrigin:null,r=void 0!==e.imageLoadFunction?e.imageLoadFunction:cp;t.call(this,{attributions:e.attributions,projection:Ee(e.projection)}),this.url_=e.url,this.imageExtent_=e.imageExtent,this.image_=new fp(this.imageExtent_,void 0,1,this.url_,i,r),this.imageSize_=e.imageSize?e.imageSize:null,v(this.image_,M.CHANGE,this.handleImageChange,this)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.getImageExtent=function(){return this.imageExtent_},e.prototype.getImageInternal=function(t,e,i,r){return Pt(t,this.image_.getExtent())?this.image_:null},e.prototype.getUrl=function(){return this.url_},e.prototype.handleImageChange=function(e){if(this.image_.getState()==xs.LOADED){var i,r,n=this.image_.getExtent(),o=this.image_.getImage();this.imageSize_?(i=this.imageSize_[0],r=this.imageSize_[1]):(i=o.width,r=o.height);var s=Rt(n)/r,a=Math.ceil(Ot(n)/s);if(a!=i){var h=Jn(a,r),l=h.canvas;h.drawImage(o,0,0,i,r,0,0,l.width,l.height),this.image_.setImage(l)}}t.prototype.handleImageChange.call(this,e)},e}(dp),xp="1.3.0",Ep="carmentaserver",Sp="geoserver",Tp="mapserver",Cp="qgis",Rp=[101,101],wp=function(t){function e(e){var i=e||{};t.call(this,{attributions:i.attributions,projection:i.projection,resolutions:i.resolutions}),this.crossOrigin_=void 0!==i.crossOrigin?i.crossOrigin:null,this.url_=i.url,this.imageLoadFunction_=void 0!==i.imageLoadFunction?i.imageLoadFunction:cp,this.params_=i.params||{},this.v13_=!0,this.updateV13_(),this.serverType_=i.serverType,this.hidpi_=void 0===i.hidpi||i.hidpi,this.image_=null,this.imageSize_=[0,0],this.renderedRevision_=0,this.ratio_=void 0!==i.ratio?i.ratio:1.5}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.getGetFeatureInfoUrl=function(t,e,i,r){if(void 0!==this.url_){var n=Ee(i),o=this.getProjection();o&&o!==n&&(e=Bu(o,n,t,e),t=Pe(t,n,o));var s=Ct(t,e,0,Rp),a={SERVICE:"WMS",VERSION:xp,REQUEST:"GetFeatureInfo",FORMAT:"image/png",TRANSPARENT:!0,QUERY_LAYERS:this.params_.LAYERS};u(a,this.params_,r);var h=Math.floor((t[0]-s[0])/e),l=Math.floor((s[3]-t[1])/e);return a[this.v13_?"I":"X"]=h,a[this.v13_?"J":"Y"]=l,this.getRequestUrl_(s,Rp,1,o||n,a)}},e.prototype.getParams=function(){return this.params_},e.prototype.getImageInternal=function(t,e,i,r){if(void 0===this.url_)return null;e=this.findNearestResolution(e),1==i||this.hidpi_&&void 0!==this.serverType_||(i=1);var n=e/i,o=Tt(t),s=Ct(o,n,0,[Math.ceil(Ot(t)/n),Math.ceil(Rt(t)/n)]),a=Ct(o,n,0,[Math.ceil(this.ratio_*Ot(t)/n),Math.ceil(this.ratio_*Rt(t)/n)]),h=this.image_;if(h&&this.renderedRevision_==this.getRevision()&&h.getResolution()==e&&h.getPixelRatio()==i&&ot(h.getExtent(),s))return h;var l={SERVICE:"WMS",VERSION:xp,REQUEST:"GetMap",FORMAT:"image/png",TRANSPARENT:!0};u(l,this.params_),this.imageSize_[0]=Math.round(Ot(a)/n),this.imageSize_[1]=Math.round(Rt(a)/n);var p=this.getRequestUrl_(a,this.imageSize_,i,r,l);return this.image_=new fp(a,e,i,p,this.crossOrigin_,this.imageLoadFunction_),this.renderedRevision_=this.getRevision(),v(this.image_,M.CHANGE,this.handleImageChange,this),this.image_},e.prototype.getImageLoadFunction=function(){return this.imageLoadFunction_},e.prototype.getRequestUrl_=function(t,e,i,r,n){if(Y(void 0!==this.url_,9),n[this.v13_?"CRS":"SRS"]=r.getCode(),"STYLES"in this.params_||(n.STYLES=""),1!=i)switch(this.serverType_){case Sp:var o=90*i+.5|0;"FORMAT_OPTIONS"in n?n.FORMAT_OPTIONS+=";dpi:"+o:n.FORMAT_OPTIONS="dpi:"+o;break;case Tp:n.MAP_RESOLUTION=90*i;break;case Ep:case Cp:n.DPI=90*i;break;default:Y(!1,8)}n.WIDTH=e[0],n.HEIGHT=e[1];var s,a=r.getAxisOrientation();return s=this.v13_&&"ne"==a.substr(0,2)?[t[1],t[0],t[3],t[2]]:t,n.BBOX=s.join(","),_p(this.url_,n)},e.prototype.getUrl=function(){return this.url_},e.prototype.setImageLoadFunction=function(t){this.image_=null,this.imageLoadFunction_=t,this.changed()},e.prototype.setUrl=function(t){t!=this.url_&&(this.url_=t,this.image_=null,this.changed())},e.prototype.updateParams=function(t){u(this.params_,t),this.updateV13_(),this.image_=null,this.changed()},e.prototype.updateV13_=function(){var t=this.params_.VERSION||xp;this.v13_=Ki(t,"1.3")>=0},e}(dp),Ip='© OpenStreetMap contributors.',Lp=function(t){function e(e){var i,r=e||{};i=void 0!==r.attributions?r.attributions:[Ip];var n=void 0!==r.crossOrigin?r.crossOrigin:"anonymous",o=void 0!==r.url?r.url:"https://{a-c}.tile.openstreetmap.org/{z}/{x}/{y}.png";t.call(this,{attributions:i,cacheSize:r.cacheSize,crossOrigin:n,opaque:void 0===r.opaque||r.opaque,maxZoom:void 0!==r.maxZoom?r.maxZoom:19,reprojectionErrorThreshold:r.reprojectionErrorThreshold,tileLoadFunction:r.tileLoadFunction,url:o,wrapX:r.wrapX,attributionsCollapsible:!1})}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e}(ep),Op=i(2),Pp=function(t){function e(e){var i=e||{};t.call(this,i),this.type=Ss.IMAGE}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e}(xo);Pp.prototype.getSource;var bp=Pp,Mp="preload",Fp="useInterimTilesOnError",Ap=function(t){function e(e){var i=e||{},r=u({},i);delete r.preload,delete r.useInterimTilesOnError,t.call(this,r),this.setPreload(void 0!==i.preload?i.preload:0),this.setUseInterimTilesOnError(void 0===i.useInterimTilesOnError||i.useInterimTilesOnError),this.type=Ss.TILE}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.getPreload=function(){return this.get(Mp)},e.prototype.setPreload=function(t){this.set(Mp,t)},e.prototype.getUseInterimTilesOnError=function(){return this.get(Fp)},e.prototype.setUseInterimTilesOnError=function(t){this.set(Fp,t)},e}(xo);Ap.prototype.getSource;var Np=Ap,Gp="beforeoperations",Dp="afteroperations",kp={PIXEL:"pixel",IMAGE:"image"},jp=function(t){function e(e,i,r){t.call(this,e),this.extent=i.extent,this.resolution=i.viewState.resolution/i.pixelRatio,this.data=r}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e}(P),Up=null;function Yp(t,e,i){if(!t.prepareFrame(e,i))return null;var r=e.size[0],n=e.size[1];if(Up){var o=Up.canvas;o.width!==r||o.height!==n?Up=Jn(r,n):Up.clearRect(0,0,r,n)}else Up=Jn(r,n);return t.composeFrame(e,i,Up),Up.getImageData(0,0,r,n)}function Bp(t){var e=t,i=t,r=t,n=null;return"function"==typeof e.getTile?n=function(t){var e=new Np({source:t});return new ha(e)}(e):"function"==typeof i.getImage?n=function(t){var e=new bp({source:t});return new ra(e)}(i):r.getType()===Ss.TILE?n=new ha(r):r.getType()!=Ss.IMAGE&&r.getType()!=Ss.VECTOR||(n=new ra(r)),n}var Vp=function(t){function e(e){t.call(this,{projection:null}),this.worker_=null,this.operationType_=void 0!==e.operationType?e.operationType:kp.PIXEL,this.threads_=void 0!==e.threads?e.threads:1,this.renderers_=function(t){for(var e=t.length,i=new Array(e),r=0;rStamen Design, under CC BY 3.0.',Ip],zp={terrain:{extension:"jpg",opaque:!0},"terrain-background":{extension:"jpg",opaque:!0},"terrain-labels":{extension:"png",opaque:!1},"terrain-lines":{extension:"png",opaque:!1},"toner-background":{extension:"png",opaque:!0},toner:{extension:"png",opaque:!0},"toner-hybrid":{extension:"png",opaque:!1},"toner-labels":{extension:"png",opaque:!1},"toner-lines":{extension:"png",opaque:!1},"toner-lite":{extension:"png",opaque:!0},watercolor:{extension:"jpg",opaque:!0}},Wp={terrain:{minZoom:4,maxZoom:18},toner:{minZoom:0,maxZoom:20},watercolor:{minZoom:1,maxZoom:16}},Kp=function(t){function e(e){var i=e.layer.indexOf("-"),r=-1==i?e.layer:e.layer.slice(0,i),n=Wp[r],o=zp[e.layer],s=void 0!==e.url?e.url:"https://stamen-tiles-{a-d}.a.ssl.fastly.net/"+e.layer+"/{z}/{x}/{y}."+o.extension;t.call(this,{attributions:Xp,cacheSize:e.cacheSize,crossOrigin:"anonymous",maxZoom:void 0!=e.maxZoom?e.maxZoom:n.maxZoom,minZoom:void 0!=e.minZoom?e.minZoom:n.minZoom,opaque:o.opaque,reprojectionErrorThreshold:e.reprojectionErrorThreshold,tileLoadFunction:e.tileLoadFunction,url:s,wrapX:e.wrapX})}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e}(ep);function Hp(t,e,i){var r=this.getTileGrid();if(r||(r=this.getTileGridForProjection(i)),!(r.getResolutions().length<=t[0])){var n=r.getTileCoordExtent(t,this.tmpExtent_),o=ho(r.getTileSize(t[0]),this.tmpSize);1!=e&&(o=ao(o,e,this.tmpSize));var s={F:"image",FORMAT:"PNG32",TRANSPARENT:!0};return u(s,this.params_),this.getRequestUrl_(t,o,n,e,i,s)}}var Zp=function(t){function e(e){var i=e||{};t.call(this,{attributions:i.attributions,cacheSize:i.cacheSize,crossOrigin:i.crossOrigin,projection:i.projection,reprojectionErrorThreshold:i.reprojectionErrorThreshold,tileGrid:i.tileGrid,tileLoadFunction:i.tileLoadFunction,tileUrlFunction:Hp,url:i.url,urls:i.urls,wrapX:void 0===i.wrapX||i.wrapX,transition:i.transition}),this.params_=i.params||{},this.tmpExtent_=[1/0,1/0,-1/0,-1/0],this.setKey(this.getKeyForParams_())}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.getKeyForParams_=function(){var t=0,e=[];for(var i in this.params_)e[t++]=i+"-"+this.params_[i];return e.join("/")},e.prototype.getParams=function(){return this.params_},e.prototype.getRequestUrl_=function(t,e,i,r,n,o){var s=this.urls;if(s){var a,h=n.getCode().split(":").pop();if(o.SIZE=e[0]+","+e[1],o.BBOX=i.join(","),o.BBOXSR=h,o.IMAGESR=h,o.DPI=Math.round(o.DPI?o.DPI*r:90*r),1==s.length)a=s[0];else a=s[Xt(Cl(t),s.length)];return _p(a.replace(/MapServer\/?$/,"MapServer/export").replace(/ImageServer\/?$/,"ImageServer/exportImage"),o)}},e.prototype.getTilePixelRatio=function(t){return t},e.prototype.updateParams=function(t){u(this.params_,t),this.setKey(this.getKeyForParams_())},e}($u),qp=function(t){function e(e,i,r){t.call(this,e,On.LOADED),this.tileSize_=i,this.text_=r,this.canvas_=null}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.getImage=function(){if(this.canvas_)return this.canvas_;var t=this.tileSize_,e=Jn(t[0],t[1]);return e.strokeStyle="black",e.strokeRect(.5,.5,t[0]+.5,t[1]+.5),e.fillStyle="black",e.textAlign="center",e.textBaseline="middle",e.font="24px sans-serif",e.fillText(this.text_,t[0]/2,t[1]/2),this.canvas_=e.canvas,e.canvas},e.prototype.load=function(){},e}(vl),Jp=function(t){function e(e){t.call(this,{opaque:!1,projection:e.projection,tileGrid:e.tileGrid,wrapX:void 0===e.wrapX||e.wrapX})}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.getTile=function(t,e,i){var r=Sl(t,e,i);if(this.tileCache.containsKey(r))return this.tileCache.get(r);var n=ho(this.tileGrid.getTileSize(t)),o=[t,e,i],s=this.getTileCoordForTileUrlFunction(o),a=s?this.getTileCoordForTileUrlFunction(s).toString():"",h=new qp(o,n,a);return this.tileCache.set(r,h),h},e}(jl),Qp=function(t){function e(e){if(t.call(this,{attributions:e.attributions,cacheSize:e.cacheSize,crossOrigin:e.crossOrigin,projection:Ee("EPSG:3857"),reprojectionErrorThreshold:e.reprojectionErrorThreshold,state:ro.LOADING,tileLoadFunction:e.tileLoadFunction,wrapX:void 0===e.wrapX||e.wrapX,transition:e.transition}),this.tileJSON_=null,e.url)if(e.jsonp)Yu(e.url,this.handleTileJSONResponse.bind(this),this.handleTileJSONError.bind(this));else{var i=new XMLHttpRequest;i.addEventListener("load",this.onXHRLoad_.bind(this)),i.addEventListener("error",this.onXHRError_.bind(this)),i.open("GET",e.url),i.send()}else e.tileJSON?this.handleTileJSONResponse(e.tileJSON):Y(!1,51)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.onXHRLoad_=function(t){var e=t.target;if(!e.status||e.status>=200&&e.status<300){var i;try{i=JSON.parse(e.responseText)}catch(t){return void this.handleTileJSONError()}this.handleTileJSONResponse(i)}else this.handleTileJSONError()},e.prototype.onXHRError_=function(t){this.handleTileJSONError()},e.prototype.getTileJSON=function(){return this.tileJSON_},e.prototype.handleTileJSONResponse=function(t){var e,i=Ee("EPSG:4326"),r=this.getProjection();if(void 0!==t.bounds){var n=Le(i,r);e=Ft(t.bounds,n)}var o=t.minzoom||0,s=t.maxzoom||22,a=Fl({extent:Gl(r),maxZoom:s,minZoom:o});if(this.tileGrid=a,this.tileUrlFunction=Du(t.tiles,a),void 0!==t.attribution&&!this.getAttributions()){var h=void 0!==e?e:i.getExtent();this.setAttributions(function(e){return Pt(h,e.extent)?[t.attribution]:null})}this.tileJSON_=t,this.setState(ro.READY)},e.prototype.handleTileJSONError=function(){this.setState(ro.ERROR)},e}($u);function $p(t,e,i){var r=this.getTileGrid();if(r||(r=this.getTileGridForProjection(i)),!(r.getResolutions().length<=t[0])){1==e||this.hidpi_&&void 0!==this.serverType_||(e=1);var n=r.getResolution(t[0]),o=r.getTileCoordExtent(t,this.tmpExtent_),s=ho(r.getTileSize(t[0]),this.tmpSize),a=this.gutter_;0!==a&&(s=so(s,a,this.tmpSize),o=et(o,n*a,o)),1!=e&&(s=ao(s,e,this.tmpSize));var h={SERVICE:"WMS",VERSION:xp,REQUEST:"GetMap",FORMAT:"image/png",TRANSPARENT:!0};return u(h,this.params_),this.getRequestUrl_(t,s,o,e,i,h)}}var tc=function(t){function e(e){var i=e||{},r=i.params||{},n=!("TRANSPARENT"in r)||r.TRANSPARENT;t.call(this,{attributions:i.attributions,cacheSize:i.cacheSize,crossOrigin:i.crossOrigin,opaque:!n,projection:i.projection,reprojectionErrorThreshold:i.reprojectionErrorThreshold,tileClass:i.tileClass,tileGrid:i.tileGrid,tileLoadFunction:i.tileLoadFunction,tileUrlFunction:$p,url:i.url,urls:i.urls,wrapX:void 0===i.wrapX||i.wrapX,transition:i.transition}),this.gutter_=void 0!==i.gutter?i.gutter:0,this.params_=r,this.v13_=!0,this.serverType_=i.serverType,this.hidpi_=void 0===i.hidpi||i.hidpi,this.tmpExtent_=[1/0,1/0,-1/0,-1/0],this.updateV13_(),this.setKey(this.getKeyForParams_())}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.getGetFeatureInfoUrl=function(t,e,i,r){var n=Ee(i),o=this.getProjection(),s=this.getTileGrid();s||(s=this.getTileGridForProjection(n));var a=s.getTileCoordForCoordAndResolution(t,e);if(!(s.getResolutions().length<=a[0])){var h=s.getResolution(a[0]),l=s.getTileCoordExtent(a,this.tmpExtent_),p=ho(s.getTileSize(a[0]),this.tmpSize),c=this.gutter_;0!==c&&(p=so(p,c,this.tmpSize),l=et(l,h*c,l)),o&&o!==n&&(h=Bu(o,n,t,h),l=be(l,n,o),t=Pe(t,n,o));var d={SERVICE:"WMS",VERSION:xp,REQUEST:"GetFeatureInfo",FORMAT:"image/png",TRANSPARENT:!0,QUERY_LAYERS:this.params_.LAYERS};u(d,this.params_,r);var f=Math.floor((t[0]-l[0])/h),_=Math.floor((l[3]-t[1])/h);return d[this.v13_?"I":"X"]=f,d[this.v13_?"J":"Y"]=_,this.getRequestUrl_(a,p,l,1,o||n,d)}},e.prototype.getGutter=function(){return this.gutter_},e.prototype.getParams=function(){return this.params_},e.prototype.getRequestUrl_=function(t,e,i,r,n,o){var s=this.urls;if(s){if(o.WIDTH=e[0],o.HEIGHT=e[1],o[this.v13_?"CRS":"SRS"]=n.getCode(),"STYLES"in this.params_||(o.STYLES=""),1!=r)switch(this.serverType_){case Sp:var a=90*r+.5|0;"FORMAT_OPTIONS"in o?o.FORMAT_OPTIONS+=";dpi:"+a:o.FORMAT_OPTIONS="dpi:"+a;break;case Tp:o.MAP_RESOLUTION=90*r;break;case Ep:case Cp:o.DPI=90*r;break;default:Y(!1,52)}var h,l,u=n.getAxisOrientation(),p=i;if(this.v13_&&"ne"==u.substr(0,2))h=i[0],p[0]=i[1],p[1]=h,h=i[2],p[2]=i[3],p[3]=h;if(o.BBOX=p.join(","),1==s.length)l=s[0];else l=s[Xt(Cl(t),s.length)];return _p(l,o)}},e.prototype.getTilePixelRatio=function(t){return this.hidpi_&&void 0!==this.serverType_?t:1},e.prototype.getKeyForParams_=function(){var t=0,e=[];for(var i in this.params_)e[t++]=i+"-"+this.params_[i];return e.join("/")},e.prototype.updateParams=function(t){u(this.params_,t),this.updateV13_(),this.setKey(this.getKeyForParams_())},e.prototype.updateV13_=function(){var t=this.params_.VERSION||xp;this.v13_=Ki(t,"1.3")>=0},e}($u),ec=function(t){function e(e,i,r,n,o,s){t.call(this,e,i),this.src_=r,this.extent_=n,this.preemptive_=o,this.grid_=null,this.keys_=null,this.data_=null,this.jsonp_=s}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.getImage=function(){return null},e.prototype.getData=function(t){if(!this.grid_||!this.keys_)return null;var e=(t[0]-this.extent_[0])/(this.extent_[2]-this.extent_[0]),i=(t[1]-this.extent_[1])/(this.extent_[3]-this.extent_[1]),r=this.grid_[Math.floor((1-i)*this.grid_.length)];if("string"!=typeof r)return null;var n=r.charCodeAt(Math.floor(e*r.length));n>=93&&n--,n>=35&&n--;var o=null;if((n-=32)in this.keys_){var s=this.keys_[n];o=this.data_&&s in this.data_?this.data_[s]:s}return o},e.prototype.forDataAtCoordinate=function(t,e,i,r){this.state==On.IDLE&&!0===r?(m(this,M.CHANGE,function(r){e.call(i,this.getData(t))},this),this.loadInternal_()):!0===r?setTimeout(function(){e.call(i,this.getData(t))}.bind(this),0):e.call(i,this.getData(t))},e.prototype.getKey=function(){return this.src_},e.prototype.handleError_=function(){this.state=On.ERROR,this.changed()},e.prototype.handleLoad_=function(t){this.grid_=t.grid,this.keys_=t.keys,this.data_=t.data,this.state=On.EMPTY,this.changed()},e.prototype.loadInternal_=function(){if(this.state==On.IDLE)if(this.state=On.LOADING,this.jsonp_)Yu(this.src_,this.handleLoad_.bind(this),this.handleError_.bind(this));else{var t=new XMLHttpRequest;t.addEventListener("load",this.onXHRLoad_.bind(this)),t.addEventListener("error",this.onXHRError_.bind(this)),t.open("GET",this.src_),t.send()}},e.prototype.onXHRLoad_=function(t){var e=t.target;if(!e.status||e.status>=200&&e.status<300){var i;try{i=JSON.parse(e.responseText)}catch(t){return void this.handleError_()}this.handleLoad_(i)}else this.handleError_()},e.prototype.onXHRError_=function(t){this.handleError_()},e.prototype.load=function(){this.preemptive_&&this.loadInternal_()},e}(vl),ic=function(t){function e(e){if(t.call(this,{projection:Ee("EPSG:3857"),state:ro.LOADING}),this.preemptive_=void 0===e.preemptive||e.preemptive,this.tileUrlFunction_=ju,this.template_=void 0,this.jsonp_=e.jsonp||!1,e.url)if(this.jsonp_)Yu(e.url,this.handleTileJSONResponse.bind(this),this.handleTileJSONError.bind(this));else{var i=new XMLHttpRequest;i.addEventListener("load",this.onXHRLoad_.bind(this)),i.addEventListener("error",this.onXHRError_.bind(this)),i.open("GET",e.url),i.send()}else e.tileJSON?this.handleTileJSONResponse(e.tileJSON):Y(!1,51)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.onXHRLoad_=function(t){var e=t.target;if(!e.status||e.status>=200&&e.status<300){var i;try{i=JSON.parse(e.responseText)}catch(t){return void this.handleTileJSONError()}this.handleTileJSONResponse(i)}else this.handleTileJSONError()},e.prototype.onXHRError_=function(t){this.handleTileJSONError()},e.prototype.getTemplate=function(){return this.template_},e.prototype.forDataAtCoordinateAndResolution=function(t,e,i,r){if(this.tileGrid){var n=this.tileGrid.getTileCoordForCoordAndResolution(t,e);this.getTile(n[0],n[1],n[2],1,this.getProjection()).forDataAtCoordinate(t,i,null,r)}else!0===r?setTimeout(function(){i(null)},0):i(null)},e.prototype.handleTileJSONError=function(){this.setState(ro.ERROR)},e.prototype.handleTileJSONResponse=function(t){var e,i=Ee("EPSG:4326"),r=this.getProjection();if(void 0!==t.bounds){var n=Le(i,r);e=Ft(t.bounds,n)}var o=t.minzoom||0,s=t.maxzoom||22,a=Fl({extent:Gl(r),maxZoom:s,minZoom:o});this.tileGrid=a,this.template_=t.template;var h=t.grids;if(h){if(this.tileUrlFunction_=Du(h,a),void 0!==t.attribution){var l=void 0!==e?e:i.getExtent();this.setAttributions(function(e){return Pt(l,e.extent)?[t.attribution]:null})}this.setState(ro.READY)}else this.setState(ro.ERROR)},e.prototype.getTile=function(t,e,i,r,n){var o=Sl(t,e,i);if(this.tileCache.containsKey(o))return this.tileCache.get(o);var s=[t,e,i],a=this.getTileCoordForTileUrlFunction(s,n),h=this.tileUrlFunction_(a,r,n),l=new ec(s,void 0!==h?On.IDLE:On.EMPTY,void 0!==h?h:"",this.tileGrid.getTileCoordExtent(s),this.preemptive_,this.jsonp_);return this.tileCache.set(o,l),l},e.prototype.useTile=function(t,e,i){var r=Sl(t,e,i);this.tileCache.containsKey(r)&&this.tileCache.get(r)},e}(jl),rc=function(t){function e(i,r,n,o,s,a,h,l,u,p,c,d,f,_,g){if(t.call(this,i,r,{transition:0}),this.context_={},this.loader_,this.replayState_={},this.sourceTiles_=p,this.tileKeys=[],this.extent=null,this.sourceRevision_=n,this.wrappedTileCoord=a,this.loadListenerKeys_=[],this.sourceTileListenerKeys_=[],a){var y=this.extent=u.getTileCoordExtent(a),m=u.getResolution(g),x=l.getZForResolution(m),E=g!=i[0],S=0;if(l.forEachTileCoord(y,x,function(t){var e=wt(y,l.getTileCoordExtent(t)),i=l.getExtent();if(i&&(e=wt(e,i,e)),Ot(e)/m>=.5&&Rt(e)/m>=.5){++S;var r=t.toString(),n=p[r];if(!n&&!E){var a=h(t,c,d);n=p[r]=new f(t,void 0==a?On.EMPTY:On.IDLE,void 0==a?"":a,o,s),this.sourceTileListenerKeys_.push(v(n,M.CHANGE,_))}!n||E&&n.getState()!=On.LOADED||(n.consumers++,this.tileKeys.push(r))}}.bind(this)),E&&S==this.tileKeys.length&&this.finishLoading_(),g<=i[0]&&this.state!=On.LOADED)for(;g>u.getMinZoom();){var T=new e(i,r,n,o,s,a,h,l,u,p,c,d,f,I,--g);if(T.state==On.LOADED){this.interimTile=T;break}}}}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.disposeInternal=function(){this.state=On.ABORT,this.changed(),this.interimTile&&this.interimTile.dispose();for(var e=0,i=this.tileKeys.length;e=0;--i){var r=this.getTile(this.tileKeys[i]).getState();r!=On.LOADED&&--t,r==On.EMPTY&&++e}t==this.tileKeys.length?(this.loadListenerKeys_.forEach(E),this.loadListenerKeys_.length=0,this.setState(On.LOADED)):this.setState(e==this.tileKeys.length?On.EMPTY:On.ERROR)},e}(vl);function nc(t,e){var i=Zl(e,t.getFormat(),t.onLoad.bind(t),t.onError.bind(t));t.setLoader(i)}var oc=[0,0,4096,4096],sc=function(t){function e(e,i,r,n,o,s){t.call(this,e,i,s),this.consumers=0,this.extent_=null,this.format_=n,this.features_=null,this.loader_,this.projection_=null,this.replayGroups_={},this.tileLoadFunction_=o,this.url_=r}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.disposeInternal=function(){this.features_=null,this.replayGroups_={},this.state=On.ABORT,this.changed(),t.prototype.disposeInternal.call(this)},e.prototype.getExtent=function(){return this.extent_||oc},e.prototype.getFormat=function(){return this.format_},e.prototype.getFeatures=function(){return this.features_},e.prototype.getKey=function(){return this.url_},e.prototype.getProjection=function(){return this.projection_},e.prototype.getReplayGroup=function(t,e){return this.replayGroups_[o(t)+","+e]},e.prototype.load=function(){this.state==On.IDLE&&(this.setState(On.LOADING),this.tileLoadFunction_(this,this.url_),this.loader_(null,NaN,null))},e.prototype.onLoad=function(t,e,i){this.setProjection(e),this.setFeatures(t),this.setExtent(i)},e.prototype.onError=function(){this.setState(On.ERROR)},e.prototype.setExtent=function(t){this.extent_=t},e.prototype.setFeatures=function(t){this.features_=t,this.setState(On.LOADED)},e.prototype.setProjection=function(t){this.projection_=t},e.prototype.setReplayGroup=function(t,e,i){this.replayGroups_[o(t)+","+e]=i},e.prototype.setLoader=function(t){this.loader_=t},e}(vl),ac=function(t){function e(e){var i=e.projection||"EPSG:3857",r=e.extent||Gl(i),n=e.tileGrid||Fl({extent:r,maxZoom:e.maxZoom||22,minZoom:e.minZoom,tileSize:e.tileSize||512});t.call(this,{attributions:e.attributions,cacheSize:void 0!==e.cacheSize?e.cacheSize:128,opaque:!1,projection:i,state:e.state,tileGrid:n,tileLoadFunction:e.tileLoadFunction?e.tileLoadFunction:nc,tileUrlFunction:e.tileUrlFunction,url:e.url,urls:e.urls,wrapX:void 0===e.wrapX||e.wrapX,transition:e.transition}),this.format_=e.format?e.format:null,this.sourceTiles_={},this.overlaps_=void 0==e.overlaps||e.overlaps,this.tileClass=e.tileClass?e.tileClass:sc,this.tileGrids_={}}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.getOverlaps=function(){return this.overlaps_},e.prototype.clear=function(){this.tileCache.clear(),this.sourceTiles_={}},e.prototype.getTile=function(t,e,i,r,n){var o=Sl(t,e,i);if(this.tileCache.containsKey(o))return this.tileCache.get(o);var s=[t,e,i],a=this.getTileCoordForTileUrlFunction(s,n),h=new rc(s,null!==a?On.IDLE:On.EMPTY,this.getRevision(),this.format_,this.tileLoadFunction,a,this.tileUrlFunction,this.tileGrid,this.getTileGridForProjection(n),this.sourceTiles_,r,n,this.tileClass,this.handleTileChange.bind(this),s[0]);return this.tileCache.set(o,h),h},e.prototype.getTileGridForProjection=function(t){var e=t.getCode(),i=this.tileGrids_[e];if(!i){var r=this.tileGrid;i=this.tileGrids_[e]=Nl(t,void 0,r?r.getTileSize(r.getMinZoom()):void 0)}return i},e.prototype.getTilePixelRatio=function(t){return t},e.prototype.getTilePixelSize=function(t,e,i){var r=ho(this.getTileGridForProjection(i).getTileSize(t),this.tmpSize);return[Math.round(r[0]*e),Math.round(r[1]*e)]},e}(Ju),hc={KVP:"KVP",REST:"REST"},lc=function(t){function e(e){var i=void 0!==e.requestEncoding?e.requestEncoding:hc.KVP,r=e.tileGrid,n=e.urls;void 0===n&&void 0!==e.url&&(n=Uu(e.url)),t.call(this,{attributions:e.attributions,cacheSize:e.cacheSize,crossOrigin:e.crossOrigin,projection:e.projection,reprojectionErrorThreshold:e.reprojectionErrorThreshold,tileClass:e.tileClass,tileGrid:r,tileLoadFunction:e.tileLoadFunction,tilePixelRatio:e.tilePixelRatio,tileUrlFunction:ju,urls:n,wrapX:void 0!==e.wrapX&&e.wrapX,transition:e.transition}),this.version_=void 0!==e.version?e.version:"1.0.0",this.format_=void 0!==e.format?e.format:"image/jpeg",this.dimensions_=void 0!==e.dimensions?e.dimensions:{},this.layer_=e.layer,this.matrixSet_=e.matrixSet,this.style_=e.style,this.requestEncoding_=i,this.setKey(this.getKeyForDimensions_()),n&&n.length>0&&(this.tileUrlFunction=ku(n.map(uc.bind(this))))}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.setUrls=function(t){this.urls=t;var e=t.join("\n");this.setTileUrlFunction(ku(t.map(uc.bind(this))),e)},e.prototype.getDimensions=function(){return this.dimensions_},e.prototype.getFormat=function(){return this.format_},e.prototype.getLayer=function(){return this.layer_},e.prototype.getMatrixSet=function(){return this.matrixSet_},e.prototype.getRequestEncoding=function(){return this.requestEncoding_},e.prototype.getStyle=function(){return this.style_},e.prototype.getVersion=function(){return this.version_},e.prototype.getKeyForDimensions_=function(){var t=0,e=[];for(var i in this.dimensions_)e[t++]=i+"-"+this.dimensions_[i];return e.join("/")},e.prototype.updateDimensions=function(t){u(this.dimensions_,t),this.setKey(this.getKeyForDimensions_())},e}($u);function uc(t){var e=this.requestEncoding_,i={layer:this.layer_,style:this.style_,tilematrixset:this.matrixSet_};e==hc.KVP&&u(i,{Service:"WMTS",Request:"GetTile",Version:this.version_,Format:this.format_}),t=e==hc.KVP?_p(t,i):t.replace(/\{(\w+?)\}/g,function(t,e){return e.toLowerCase()in i?i[e.toLowerCase()]:t});var r=this.tileGrid,n=this.dimensions_;return function(i,o,s){if(i){var a={TileMatrix:r.getMatrixId(i[0]),TileCol:i[1],TileRow:-i[2]-1};u(a,n);var h=t;return h=e==hc.KVP?_p(h,a):h.replace(/\{(\w+?)\}/g,function(t,e){return a[e]})}}}var pc={DEFAULT:"default",TRUNCATED:"truncated"},cc=function(t){function e(e,i,r,n,o,s,a){t.call(this,i,r,n,o,s,a),this.zoomifyImage_=null,this.tileSize_=ho(e.getTileSize(i[0]))}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.getImage=function(){if(this.zoomifyImage_)return this.zoomifyImage_;var e=t.prototype.getImage.call(this);if(this.state==On.LOADED){var i=this.tileSize_;if(e.width==i[0]&&e.height==i[1])return this.zoomifyImage_=e,e;var r=Jn(i[0],i[1]);return r.drawImage(e,0,0),this.zoomifyImage_=r.canvas,r.canvas}return e},e}(xl),dc=function(t){function e(e){var i=e||{},r=i.size,n=void 0!==i.tierSizeCalculation?i.tierSizeCalculation:pc.DEFAULT,o=r[0],s=r[1],a=i.extent||[0,-r[1],r[0],0],h=[],l=i.tileSize||An,u=l;switch(n){case pc.DEFAULT:for(;o>u||s>u;)h.push([Math.ceil(o/u),Math.ceil(s/u)]),u+=u;break;case pc.TRUNCATED:for(var p=o,c=s;p>u||c>u;)h.push([Math.ceil(p/u),Math.ceil(c/u)]),p>>=1,c>>=1;break;default:Y(!1,53)}h.push([1,1]),h.reverse();for(var d=[1],f=[0],_=1,g=h.length;_0)break}this.source_&&(this.source_.clear(),this.source_.addFeatures(s)),this.dispatchEvent(new Tc(Sc,t,s,n))},e.prototype.registerListeners_=function(){var t=this.getMap();if(t){var e=this.target?this.target:t.getViewport();this.dropListenKeys_=[v(e,M.DROP,Cc,this),v(e,M.DRAGENTER,Rc,this),v(e,M.DRAGOVER,Rc,this),v(e,M.DROP,Rc,this)]}},e.prototype.setActive=function(e){t.prototype.setActive.call(this,e),e?this.registerListeners_():this.unregisterListeners_()},e.prototype.setMap=function(e){this.unregisterListeners_(),t.prototype.setMap.call(this,e),this.getActive()&&this.registerListeners_()},e.prototype.tryReadFeatures_=function(t,e,i){try{return t.readFeatures(e,i)}catch(t){return null}},e.prototype.unregisterListeners_=function(){this.dropListenKeys_&&(this.dropListenKeys_.forEach(E),this.dropListenKeys_=null)},e}(Fo),Ic=function(t){function e(e){var i=e||{};t.call(this,i),this.condition_=i.condition?i.condition:zo,this.lastAngle_=void 0,this.lastMagnitude_=void 0,this.lastScaleDelta_=0,this.duration_=void 0!==i.duration?i.duration:400}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.handleDragEvent=function(t){if(Ko(t)){var e=t.map,i=e.getSize(),r=t.pixel,n=r[0]-i[0]/2,o=i[1]/2-r[1],s=Math.atan2(o,n),a=Math.sqrt(n*n+o*o),h=e.getView();if(h.getConstraints().rotation!==Gn&&void 0!==this.lastAngle_){var l=s-this.lastAngle_;Oo(h,h.getRotation()-l)}if(this.lastAngle_=s,void 0!==this.lastMagnitude_)Mo(h,this.lastMagnitude_*(h.getResolution()/a));void 0!==this.lastMagnitude_&&(this.lastScaleDelta_=this.lastMagnitude_/a),this.lastMagnitude_=a}},e.prototype.handleUpEvent=function(t){if(!Ko(t))return!0;var e=t.map.getView();e.setHint(jn,-1);var i=this.lastScaleDelta_-1;return Lo(e,e.getRotation()),Po(e,e.getResolution(),void 0,this.duration_,i),this.lastScaleDelta_=0,!1},e.prototype.handleDownEvent=function(t){return!!Ko(t)&&(!!this.condition_(t)&&(t.map.getView().setHint(jn,1),this.lastAngle_=void 0,this.lastMagnitude_=void 0,!0))},e}(qo),Lc=function(t){function e(e,i,r){if(t.call(this),void 0!==r&&void 0===i)this.setFlatCoordinates(r,e);else{var n=i||0;this.setCenterAndRadius(e,n,r)}}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.clone=function(){return new e(this.flatCoordinates.slice(),void 0,this.layout)},e.prototype.closestPointXY=function(t,e,i,r){var n=this.flatCoordinates,o=t-n[0],s=e-n[1],a=o*o+s*s;if(a=e[0]||(t[1]<=e[1]&&t[3]>=e[1]||mt(t,this.intersectsCoordinate,this))}return!1},e.prototype.setCenter=function(t){var e=this.stride,i=this.flatCoordinates[e]-this.flatCoordinates[0],r=t.slice();r[e]=r[0]+i;for(var n=1;n=this.dragVertexDelay_?(this.downPx_=e.pixel,this.shouldHandle_=!this.freehand_,i=!0):this.lastDragTime_=void 0,this.shouldHandle_&&void 0!==this.downTimeout_&&(clearTimeout(this.downTimeout_),this.downTimeout_=void 0));return this.freehand_&&e.type===Ar.POINTERDRAG&&null!==this.sketchFeature_?(this.addToDrawing_(e),r=!1):this.freehand_&&e.type===Ar.POINTERDOWN?r=!1:i?(r=e.type===Ar.POINTERMOVE)&&this.freehand_?r=this.handlePointerMove_(e):(e.pointerEvent.pointerType==Ur||e.type===Ar.POINTERDRAG&&void 0===this.downTimeout_)&&this.handlePointerMove_(e):e.type===Ar.DBLCLICK&&(r=!1),t.prototype.handleEvent.call(this,e)&&r},e.prototype.handleDownEvent=function(t){return this.shouldHandle_=!this.freehand_,this.freehand_?(this.downPx_=t.pixel,this.finishCoordinate_||this.startDrawing_(t),!0):!!this.condition_(t)&&(this.lastDragTime_=Date.now(),this.downTimeout_=setTimeout(function(){this.handlePointerMove_(new Nr(Ar.POINTERMOVE,t.map,t.pointerEvent,!1,t.frameState))}.bind(this),this.dragVertexDelay_),this.downPx_=t.pixel,!0)},e.prototype.handleUpEvent=function(t){var e=!0;this.downTimeout_&&(clearTimeout(this.downTimeout_),this.downTimeout_=void 0),this.handlePointerMove_(t);var i=this.mode_===Ac.CIRCLE;return this.shouldHandle_?(this.finishCoordinate_?this.freehand_||i?this.finishDrawing():this.atFinish_(t)?this.finishCondition_(t)&&this.finishDrawing():this.addToDrawing_(t):(this.startDrawing_(t),this.mode_===Ac.POINT&&this.finishDrawing()),e=!1):this.freehand_&&(this.finishCoordinate_=null,this.abortDrawing_()),!e&&this.stopClick_&&t.stopPropagation(),e},e.prototype.handlePointerMove_=function(t){if(this.downPx_&&(!this.freehand_&&this.shouldHandle_||this.freehand_&&!this.shouldHandle_)){var e=this.downPx_,i=t.pixel,r=e[0]-i[0],n=e[1]-i[1],o=r*r+n*n;if(this.shouldHandle_=this.freehand_?o>this.squaredClickTolerance_:o<=this.squaredClickTolerance_,!this.shouldHandle_)return!0}return this.finishCoordinate_?this.modifyDrawing_(t):this.createOrUpdateSketchPoint_(t),!0},e.prototype.atFinish_=function(t){var e=!1;if(this.sketchFeature_){var i=!1,r=[this.finishCoordinate_];if(this.mode_===Ac.LINE_STRING)i=this.sketchCoords_.length>this.minPoints_;else if(this.mode_===Ac.POLYGON){var n=this.sketchCoords_;i=n[0].length>this.minPoints_,r=[n[0][0],n[0][n[0].length-2]]}if(i)for(var o=t.map,s=0,a=r.length;s=this.maxPoints_&&(this.freehand_?i.pop():e=!0),i.push(r.slice()),this.geometryFunction_(i,n)):this.mode_===Ac.POLYGON&&((i=this.sketchCoords_[0]).length>=this.maxPoints_&&(this.freehand_?i.pop():e=!0),i.push(r.slice()),e&&(this.finishCoordinate_=i[0]),this.geometryFunction_(this.sketchCoords_,n)),this.updateSketchFeatures_(),e&&this.finishDrawing()},e.prototype.removeLastPoint=function(){if(this.sketchFeature_){var t,e=this.sketchFeature_.getGeometry();this.mode_===Ac.LINE_STRING?((t=this.sketchCoords_).splice(-2,1),this.geometryFunction_(t,e),t.length>=2&&(this.finishCoordinate_=t[t.length-2].slice())):this.mode_===Ac.POLYGON&&((t=this.sketchCoords_[0]).splice(-2,1),this.sketchLine_.getGeometry().setCoordinates(t),this.geometryFunction_(this.sketchCoords_,e)),0===t.length&&(this.finishCoordinate_=null),this.updateSketchFeatures_()}},e.prototype.finishDrawing=function(){var t=this.abortDrawing_();if(t){var e=this.sketchCoords_,i=t.getGeometry();this.mode_===Ac.LINE_STRING?(e.pop(),this.geometryFunction_(e,i)):this.mode_===Ac.POLYGON&&(e[0].pop(),this.geometryFunction_(e,i),e=i.getCoordinates()),this.type_===Nt.MULTI_POINT?t.setGeometry(new bc([e])):this.type_===Nt.MULTI_LINE_STRING?t.setGeometry(new Pc([e])):this.type_===Nt.MULTI_POLYGON&&t.setGeometry(new Fc([e])),this.dispatchEvent(new Dc(Gc,t)),this.features_&&this.features_.push(t),this.source_&&this.source_.addFeature(t)}},e.prototype.abortDrawing_=function(){this.finishCoordinate_=null;var t=this.sketchFeature_;return t&&(this.sketchFeature_=null,this.sketchPoint_=null,this.sketchLine_=null,this.overlay_.getSource().clear(!0)),t},e.prototype.extend=function(t){var e=t.getGeometry();this.sketchFeature_=t,this.sketchCoords_=e.getCoordinates();var i=this.sketchCoords_[this.sketchCoords_.length-1];this.finishCoordinate_=i.slice(),this.sketchCoords_.push(i.slice()),this.updateSketchFeatures_(),this.dispatchEvent(new Dc(Nc,this.sketchFeature_))},e.prototype.updateSketchFeatures_=function(){var t=[];this.sketchFeature_&&t.push(this.sketchFeature_),this.sketchLine_&&t.push(this.sketchLine_),this.sketchPoint_&&t.push(this.sketchPoint_);var e=this.overlay_.getSource();e.clear(!0),e.addFeatures(t)},e.prototype.updateState_=function(){var t=this.getMap(),e=this.getActive();t&&e||this.abortDrawing_(),this.overlay_.setMap(e?t:null)},e}(qo),jc={EXTENTCHANGED:"extentchanged"},Uc=function(t){function e(e){t.call(this,jc.EXTENTCHANGED),this.extent=e}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e}(P);function Yc(t){return function(e){return tt([t,e])}}function Bc(t,e){return t[0]==e[0]?function(i){return tt([t,[i[0],e[1]]])}:t[1]==e[1]?function(i){return tt([t,[e[0],i[1]]])}:null}var Vc=function(t){function e(e){var i=e||{};t.call(this,i),this.extent_=null,this.pointerHandler_=null,this.pixelTolerance_=void 0!==i.pixelTolerance?i.pixelTolerance:10,this.snappedToVertex_=!1,this.extentFeature_=null,this.vertexFeature_=null,e||(e={}),this.extentOverlay_=new gc({source:new op({useSpatialIndex:!1,wrapX:!!e.wrapX}),style:e.boxStyle?e.boxStyle:function(){var t=Fu();return function(e,i){return t[Nt.POLYGON]}}(),updateWhileAnimating:!0,updateWhileInteracting:!0}),this.vertexOverlay_=new gc({source:new op({useSpatialIndex:!1,wrapX:!!e.wrapX}),style:e.pointerStyle?e.pointerStyle:function(){var t=Fu();return function(e,i){return t[Nt.POINT]}}(),updateWhileAnimating:!0,updateWhileInteracting:!0}),e.extent&&this.setExtent(e.extent)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.snapToVertex_=function(t,e){var i=e.getCoordinateFromPixel(t),r=this.getExtent();if(r){var n=function(t){return[[[t[0],t[1]],[t[0],t[3]]],[[t[0],t[3]],[t[2],t[3]]],[[t[2],t[3]],[t[2],t[1]]],[[t[2],t[1]],[t[0],t[1]]]]}(r);n.sort(function(t,e){return rr(i,t)-rr(i,e)});var o=n[0],s=Zi(i,o),a=e.getPixelFromCoordinate(s);if(ir(t,a)<=this.pixelTolerance_){var h=e.getPixelFromCoordinate(o[0]),l=e.getPixelFromCoordinate(o[1]),u=er(a,h),p=er(a,l),c=Math.sqrt(Math.min(u,p));return this.snappedToVertex_=c<=this.pixelTolerance_,this.snappedToVertex_&&(s=u>p?o[1]:o[0]),s}}return null},e.prototype.handlePointerMove_=function(t){var e=t.pixel,i=t.map,r=this.snapToVertex_(e,i);r||(r=i.getCoordinateFromPixel(e)),this.createOrUpdatePointerFeature_(r)},e.prototype.createOrUpdateExtentFeature_=function(t){var e=this.extentFeature_;return e?t?e.setGeometry(Oi(t)):e.setGeometry(void 0):(e=new B(t?Oi(t):{}),this.extentFeature_=e,this.extentOverlay_.getSource().addFeature(e)),e},e.prototype.createOrUpdatePointerFeature_=function(t){var e=this.vertexFeature_;e?e.getGeometry().setCoordinates(t):(e=new B(new ci(t)),this.vertexFeature_=e,this.vertexOverlay_.getSource().addFeature(e));return e},e.prototype.handleEvent=function(e){return!e.pointerEvent||(e.type!=Ar.POINTERMOVE||this.handlingDownUpSequence||this.handlePointerMove_(e),t.prototype.handleEvent.call(this,e),!1)},e.prototype.handleDownEvent=function(t){var e=t.pixel,i=t.map,r=this.getExtent(),n=this.snapToVertex_(e,i),o=function(t){var e=null,i=null;return t[0]==r[0]?e=r[2]:t[0]==r[2]&&(e=r[0]),t[1]==r[1]?i=r[3]:t[1]==r[3]&&(i=r[1]),null!==e&&null!==i?[e,i]:null};if(n&&r){var s=n[0]==r[0]||n[0]==r[2]?n[0]:null,a=n[1]==r[1]||n[1]==r[3]?n[1]:null;null!==s&&null!==a?this.pointerHandler_=Yc(o(n)):null!==s?this.pointerHandler_=Bc(o([s,r[1]]),o([s,r[3]])):null!==a&&(this.pointerHandler_=Bc(o([r[0],a]),o([r[2],a])))}else n=i.getCoordinateFromPixel(e),this.setExtent([n[0],n[1],n[0],n[1]]),this.pointerHandler_=Yc(n);return!0},e.prototype.handleDragEvent=function(t){if(this.pointerHandler_){var e=t.coordinate;this.setExtent(this.pointerHandler_(e)),this.createOrUpdatePointerFeature_(e)}return!0},e.prototype.handleUpEvent=function(t){this.pointerHandler_=null;var e=this.getExtent();return e&&0!==xt(e)||this.setExtent(null),!1},e.prototype.setMap=function(e){this.extentOverlay_.setMap(e),this.vertexOverlay_.setMap(e),t.prototype.setMap.call(this,e)},e.prototype.getExtent=function(){return this.extent_},e.prototype.setExtent=function(t){this.extent_=t||null,this.createOrUpdateExtentFeature_(t),this.dispatchEvent(new Uc(this.extent_))},e}(qo),Xc=1,zc="modifystart",Wc="modifyend",Kc=function(t){function e(e,i,r){t.call(this,e),this.features=i,this.mapBrowserEvent=r}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e}(P);function Hc(t,e){return t.index-e.index}function Zc(t,e){var i=e.geometry;if(i.getType()===Nt.CIRCLE){var r=i;if(e.index===Xc){var n=er(r.getCenter(),t),o=Math.sqrt(n)-r.getRadius();return o*o}}return rr(t,e.segment)}function qc(t,e){var i=e.geometry;return i.getType()===Nt.CIRCLE&&e.index===Xc?i.getClosestPoint(t):Zi(t,e.segment)}var Jc=function(t){function e(e){var i;if(t.call(this,e),this.condition_=e.condition?e.condition:Ho,this.defaultDeleteCondition_=function(t){return Go(t)&&Vo(t)},this.deleteCondition_=e.deleteCondition?e.deleteCondition:this.defaultDeleteCondition_,this.insertVertexCondition_=e.insertVertexCondition?e.insertVertexCondition:jo,this.vertexFeature_=null,this.vertexSegments_=null,this.lastPixel_=[0,0],this.ignoreNextSingleClick_=!1,this.modified_=!1,this.rBush_=new tl,this.pixelTolerance_=void 0!==e.pixelTolerance?e.pixelTolerance:10,this.snappedToVertex_=!1,this.changingFeature_=!1,this.dragSegments_=[],this.overlay_=new gc({source:new op({useSpatialIndex:!1,wrapX:!!e.wrapX}),style:e.style?e.style:function(){var t=Fu();return function(e,i){return t[Nt.POINT]}}(),updateWhileAnimating:!0,updateWhileInteracting:!0}),this.SEGMENT_WRITERS_={Point:this.writePointGeometry_,LineString:this.writeLineStringGeometry_,LinearRing:this.writeLineStringGeometry_,Polygon:this.writePolygonGeometry_,MultiPoint:this.writeMultiPointGeometry_,MultiLineString:this.writeMultiLineStringGeometry_,MultiPolygon:this.writeMultiPolygonGeometry_,Circle:this.writeCircleGeometry_,GeometryCollection:this.writeGeometryCollectionGeometry_},this.source_=null,e.source?(this.source_=e.source,i=new U(this.source_.getFeatures()),v(this.source_,rp.ADDFEATURE,this.handleSourceAdd_,this),v(this.source_,rp.REMOVEFEATURE,this.handleSourceRemove_,this)):i=e.features,!i)throw new Error("The modify interaction requires features or a source");this.features_=i,this.features_.forEach(this.addFeature_.bind(this)),v(this.features_,h.ADD,this.handleFeatureAdd_,this),v(this.features_,h.REMOVE,this.handleFeatureRemove_,this),this.lastPointerEvent_=null}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.addFeature_=function(t){var e=t.getGeometry();e&&e.getType()in this.SEGMENT_WRITERS_&&this.SEGMENT_WRITERS_[e.getType()].call(this,t,e);var i=this.getMap();i&&i.isRendered()&&this.getActive()&&this.handlePointerAtPixel_(this.lastPixel_,i),v(t,M.CHANGE,this.handleFeatureChange_,this)},e.prototype.willModifyFeatures_=function(t){this.modified_||(this.modified_=!0,this.dispatchEvent(new Kc(zc,this.features_,t)))},e.prototype.removeFeature_=function(t){this.removeFeatureSegmentData_(t),this.vertexFeature_&&0===this.features_.getLength()&&(this.overlay_.getSource().removeFeature(this.vertexFeature_),this.vertexFeature_=null),x(t,M.CHANGE,this.handleFeatureChange_,this)},e.prototype.removeFeatureSegmentData_=function(t){var e=this.rBush_,i=[];e.forEach(function(e){t===e.feature&&i.push(e)});for(var r=i.length-1;r>=0;--r)e.remove(i[r])},e.prototype.setActive=function(e){this.vertexFeature_&&!e&&(this.overlay_.getSource().removeFeature(this.vertexFeature_),this.vertexFeature_=null),t.prototype.setActive.call(this,e)},e.prototype.setMap=function(e){this.overlay_.setMap(e),t.prototype.setMap.call(this,e)},e.prototype.getOverlay=function(){return this.overlay_},e.prototype.handleSourceAdd_=function(t){t.feature&&this.features_.push(t.feature)},e.prototype.handleSourceRemove_=function(t){t.feature&&this.features_.remove(t.feature)},e.prototype.handleFeatureAdd_=function(t){this.addFeature_(t.element)},e.prototype.handleFeatureChange_=function(t){if(!this.changingFeature_){var e=t.target;this.removeFeature_(e),this.addFeature_(e)}},e.prototype.handleFeatureRemove_=function(t){var e=t.element;this.removeFeature_(e)},e.prototype.writePointGeometry_=function(t,e){var i=e.getCoordinates(),r={feature:t,geometry:e,segment:[i,i]};this.rBush_.insert(e.getExtent(),r)},e.prototype.writeMultiPointGeometry_=function(t,e){for(var i=e.getCoordinates(),r=0,n=i.length;r=0;--_)this.insertVertex_.apply(this,r[_])}return!!this.vertexFeature_},e.prototype.handleUpEvent=function(t){for(var e=this.dragSegments_.length-1;e>=0;--e){var i=this.dragSegments_[e][0],r=i.geometry;if(r.getType()===Nt.CIRCLE){var n=r.getCenter(),o=i.featureSegments[0],s=i.featureSegments[1];o.segment[0]=o.segment[1]=n,s.segment[0]=s.segment[1]=n,this.rBush_.update(pt(n),o),this.rBush_.update(r.getExtent(),s)}else this.rBush_.update(tt(i.segment),i)}return this.modified_&&(this.dispatchEvent(new Kc(Wc,this.features_,t)),this.modified_=!1),!1},e.prototype.handlePointerMove_=function(t){this.lastPixel_=t.pixel,this.handlePointerAtPixel_(t.pixel,t.map)},e.prototype.handlePointerAtPixel_=function(t,e){var i=e.getCoordinateFromPixel(t),r=et(pt(i),e.getView().getResolution()*this.pixelTolerance_),n=this.rBush_.getInExtent(r);if(n.length>0){n.sort(function(t,e){return Zc(i,t)-Zc(i,e)});var s=n[0],a=s.segment,h=qc(i,s),l=e.getPixelFromCoordinate(h),u=ir(t,l);if(u<=this.pixelTolerance_){var p={};if(s.geometry.getType()===Nt.CIRCLE&&s.index===Xc)this.snappedToVertex_=!0,this.createOrUpdateVertexFeature_(h);else{var c=e.getPixelFromCoordinate(a[0]),d=e.getPixelFromCoordinate(a[1]),f=er(l,c),_=er(l,d);u=Math.sqrt(Math.min(f,_)),this.snappedToVertex_=u<=this.pixelTolerance_,this.snappedToVertex_&&(h=f>_?a[1]:a[0]),this.createOrUpdateVertexFeature_(h);for(var g=1,y=n.length;g=0;--n)p=o((u=(i=c[n])[0]).feature),u.depth&&(p+="-"+u.depth.join("-")),p in d||(d[p]={}),0===i[1]?(d[p].right=u,d[p].index=u.index):1==i[1]&&(d[p].left=u,d[p].index=u.index+1);for(p in d){switch(l=d[p].right,a=d[p].left,h=(s=d[p].index)-1,u=void 0!==a?a:l,h<0&&(h=0),t=e=(r=u.geometry).getCoordinates(),f=!1,r.getType()){case Nt.MULTI_LINE_STRING:e[u.depth[0]].length>2&&(e[u.depth[0]].splice(s,1),f=!0);break;case Nt.LINE_STRING:e.length>2&&(e.splice(s,1),f=!0);break;case Nt.MULTI_POLYGON:t=t[u.depth[1]];case Nt.POLYGON:(t=t[u.depth[0]]).length>4&&(s==t.length-1&&(s=0),t.splice(s,1),f=!0,0===s&&(t.pop(),t.push(t[0]),h=t.length-1))}if(f){this.setGeometryCoordinates_(r,e);var _=[];if(void 0!==a&&(this.rBush_.remove(a),_.push(a.segment[0])),void 0!==l&&(this.rBush_.remove(l),_.push(l.segment[1])),void 0!==a&&void 0!==l){var g={depth:u.depth,feature:u.feature,geometry:u.geometry,index:h,segment:_};this.rBush_.insert(tt(g.segment),g)}this.updateSegmentIndices_(r,s,u.depth,-1),this.vertexFeature_&&(this.overlay_.getSource().removeFeature(this.vertexFeature_),this.vertexFeature_=null),c.length=0}}return f},e.prototype.setGeometryCoordinates_=function(t,e){this.changingFeature_=!0,t.setCoordinates(e),this.changingFeature_=!1},e.prototype.updateSegmentIndices_=function(t,e,i,r){this.rBush_.forEachInExtent(t.getExtent(),function(n){n.geometry===t&&(void 0===i||void 0===n.depth||Z(n.depth,i))&&n.index>e&&(n.index+=r)})},e}(qo),Qc={SELECT:"select"},$c=function(t){function e(e,i,r,n){t.call(this,e),this.selected=i,this.deselected=r,this.mapBrowserEvent=n}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e}(P);function td(t){if(!this.condition_(t))return!0;var e=this.addCondition_(t),i=this.removeCondition_(t),r=this.toggleCondition_(t),n=!e&&!i&&!r,o=t.map,s=this.getFeatures(),a=[],h=[];if(n){p(this.featureLayerAssociation_),o.forEachFeatureAtPixel(t.pixel,function(t,e){if(this.filter_(t,e))return h.push(t),this.addFeatureLayerAssociation_(t,e),!this.multi_}.bind(this),{layerFilter:this.layerFilter_,hitTolerance:this.hitTolerance_});for(var l=s.getLength()-1;l>=0;--l){var u=s.item(l),c=h.indexOf(u);c>-1?h.splice(c,1):(s.remove(u),a.push(u))}0!==h.length&&s.extend(h)}else{o.forEachFeatureAtPixel(t.pixel,function(t,n){if(this.filter_(t,n))return!e&&!r||X(s.getArray(),t)?(i||r)&&X(s.getArray(),t)&&(a.push(t),this.removeFeatureLayerAssociation_(t)):(h.push(t),this.addFeatureLayerAssociation_(t,n)),!this.multi_}.bind(this),{layerFilter:this.layerFilter_,hitTolerance:this.hitTolerance_});for(var d=a.length-1;d>=0;--d)s.remove(a[d]);s.extend(h)}return(h.length>0||a.length>0)&&this.dispatchEvent(new $c(Qc.SELECT,h,a,t)),Bo(t)}var ed=function(t){function e(e){t.call(this,{handleEvent:td});var i=e||{};this.condition_=i.condition?i.condition:Vo,this.addCondition_=i.addCondition?i.addCondition:Yo,this.removeCondition_=i.removeCondition?i.removeCondition:Yo,this.toggleCondition_=i.toggleCondition?i.toggleCondition:zo,this.multi_=!!i.multi&&i.multi,this.filter_=i.filter?i.filter:R,this.hitTolerance_=i.hitTolerance?i.hitTolerance:0;var r,n=new gc({source:new op({useSpatialIndex:!1,features:i.features,wrapX:i.wrapX}),style:i.style?i.style:function(){var t=Fu();return K(t[Nt.POLYGON],t[Nt.LINE_STRING]),K(t[Nt.GEOMETRY_COLLECTION],t[Nt.LINE_STRING]),function(e,i){return e.getGeometry()?t[e.getGeometry().getType()]:null}}(),updateWhileAnimating:!0,updateWhileInteracting:!0});if(this.featureOverlay_=n,i.layers)if("function"==typeof i.layers)r=i.layers;else{var o=i.layers;r=function(t){return X(o,t)}}else r=R;this.layerFilter_=r,this.featureLayerAssociation_={};var s=this.getFeatures();v(s,h.ADD,this.addFeature_,this),v(s,h.REMOVE,this.removeFeature_,this)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.addFeatureLayerAssociation_=function(t,e){this.featureLayerAssociation_[o(t)]=e},e.prototype.getFeatures=function(){return this.featureOverlay_.getSource().getFeaturesCollection()},e.prototype.getHitTolerance=function(){return this.hitTolerance_},e.prototype.getLayer=function(t){return this.featureLayerAssociation_[o(t)]},e.prototype.getOverlay=function(){return this.featureOverlay_},e.prototype.setHitTolerance=function(t){this.hitTolerance_=t},e.prototype.setMap=function(e){var i=this.getMap(),r=this.getFeatures();i&&r.forEach(i.unskipFeature.bind(i)),t.prototype.setMap.call(this,e),this.featureOverlay_.setMap(e),e&&r.forEach(e.skipFeature.bind(e))},e.prototype.addFeature_=function(t){var e=this.getMap();e&&e.skipFeature(t.element)},e.prototype.removeFeature_=function(t){var e=this.getMap();e&&e.unskipFeature(t.element)},e.prototype.removeFeatureLayerAssociation_=function(t){delete this.featureLayerAssociation_[o(t)]},e}(Fo);function id(t){return t.feature?t.feature:t.element?t.element:void 0}var rd=function(t){function e(e){var i=e||{},r=i;r.handleDownEvent||(r.handleDownEvent=R),r.stopDown||(r.stopDown=w),t.call(this,r),this.source_=i.source?i.source:null,this.vertex_=void 0===i.vertex||i.vertex,this.edge_=void 0===i.edge||i.edge,this.features_=i.features?i.features:null,this.featuresListenerKeys_=[],this.featureChangeListenerKeys_={},this.indexedFeaturesExtents_={},this.pendingFeatures_={},this.pixelCoordinate_=null,this.pixelTolerance_=void 0!==i.pixelTolerance?i.pixelTolerance:10,this.sortByDistance_=function(t,e){var i=rr(this.pixelCoordinate_,t.segment),r=rr(this.pixelCoordinate_,e.segment);return i-r}.bind(this),this.rBush_=new tl,this.SEGMENT_WRITERS_={Point:this.writePointGeometry_,LineString:this.writeLineStringGeometry_,LinearRing:this.writeLineStringGeometry_,Polygon:this.writePolygonGeometry_,MultiPoint:this.writeMultiPointGeometry_,MultiLineString:this.writeMultiLineStringGeometry_,MultiPolygon:this.writeMultiPolygonGeometry_,GeometryCollection:this.writeGeometryCollectionGeometry_,Circle:this.writeCircleGeometry_}}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.addFeature=function(t,e){var i=void 0===e||e,r=o(t),n=t.getGeometry();if(n){var s=this.SEGMENT_WRITERS_[n.getType()];s&&(this.indexedFeaturesExtents_[r]=n.getExtent([1/0,1/0,-1/0,-1/0]),s.call(this,t,n))}i&&(this.featureChangeListenerKeys_[r]=v(t,M.CHANGE,this.handleFeatureChange_,this))},e.prototype.forEachFeatureAdd_=function(t){this.addFeature(t)},e.prototype.forEachFeatureRemove_=function(t){this.removeFeature(t)},e.prototype.getFeatures_=function(){var t;return this.features_?t=this.features_:this.source_&&(t=this.source_.getFeatures()),t},e.prototype.handleEvent=function(e){var i=this.snapTo(e.pixel,e.coordinate,e.map);return i.snapped&&(e.coordinate=i.vertex.slice(0,2),e.pixel=i.vertexPixel),t.prototype.handleEvent.call(this,e)},e.prototype.handleFeatureAdd_=function(t){var e=id(t);this.addFeature(e)},e.prototype.handleFeatureRemove_=function(t){var e=id(t);this.removeFeature(e)},e.prototype.handleFeatureChange_=function(t){var e=t.target;if(this.handlingDownUpSequence){var i=o(e);i in this.pendingFeatures_||(this.pendingFeatures_[i]=e)}else this.updateFeature_(e)},e.prototype.handleUpEvent=function(t){var e=c(this.pendingFeatures_);return e.length&&(e.forEach(this.updateFeature_.bind(this)),this.pendingFeatures_={}),!1},e.prototype.removeFeature=function(t,e){var i=void 0===e||e,r=o(t),n=this.indexedFeaturesExtents_[r];if(n){var s=this.rBush_,a=[];s.forEachInExtent(n,function(e){t===e.feature&&a.push(e)});for(var h=a.length-1;h>=0;--h)s.remove(a[h])}i&&(E(this.featureChangeListenerKeys_[r]),delete this.featureChangeListenerKeys_[r])},e.prototype.setMap=function(e){var i=this.getMap(),r=this.featuresListenerKeys_,n=this.getFeatures_();i&&(r.forEach(E),r.length=0,n.forEach(this.forEachFeatureRemove_.bind(this))),t.prototype.setMap.call(this,e),e&&(this.features_?r.push(v(this.features_,h.ADD,this.handleFeatureAdd_,this),v(this.features_,h.REMOVE,this.handleFeatureRemove_,this)):this.source_&&r.push(v(this.source_,rp.ADDFEATURE,this.handleFeatureAdd_,this),v(this.source_,rp.REMOVEFEATURE,this.handleFeatureRemove_,this)),n.forEach(this.forEachFeatureAdd_.bind(this)))},e.prototype.snapTo=function(t,e,i){var r=tt([i.getCoordinateFromPixel([t[0]-this.pixelTolerance_,t[1]+this.pixelTolerance_]),i.getCoordinateFromPixel([t[0]+this.pixelTolerance_,t[1]-this.pixelTolerance_])]),n=this.rBush_.getInExtent(r);this.vertex_&&!this.edge_&&(n=n.filter(function(t){return t.feature.getGeometry().getType()!==Nt.CIRCLE}));var o,s,a,h,l=!1,u=null,p=null;if(n.length>0){this.pixelCoordinate_=e,n.sort(this.sortByDistance_);var c=n[0].segment,d=n[0].feature.getGeometry().getType()===Nt.CIRCLE;this.vertex_&&!this.edge_?(o=i.getPixelFromCoordinate(c[0]),s=i.getPixelFromCoordinate(c[1]),a=er(t,o),h=er(t,s),Math.sqrt(Math.min(a,h))<=this.pixelTolerance_&&(l=!0,u=a>h?c[1]:c[0],p=i.getPixelFromCoordinate(u))):this.edge_&&(u=d?function(t,e){var i=e.getRadius(),r=e.getCenter(),n=r[0],o=r[1],s=t[0]-n,a=t[1]-o;0===s&&0===a&&(s=1);var h=Math.sqrt(s*s+a*a);return[n+i*s/h,o+i*a/h]}(e,n[0].feature.getGeometry()):Zi(e,c),ir(t,p=i.getPixelFromCoordinate(u))<=this.pixelTolerance_&&(l=!0,this.vertex_&&!d&&(o=i.getPixelFromCoordinate(c[0]),s=i.getPixelFromCoordinate(c[1]),a=er(p,o),h=er(p,s),Math.sqrt(Math.min(a,h))<=this.pixelTolerance_&&(u=a>h?c[1]:c[0],p=i.getPixelFromCoordinate(u))))),l&&(p=[Math.round(p[0]),Math.round(p[1])])}return{snapped:l,vertex:u,vertexPixel:p}},e.prototype.updateFeature_=function(t){this.removeFeature(t,!1),this.addFeature(t,!1)},e.prototype.writeCircleGeometry_=function(t,e){for(var i=Pi(e).getCoordinates()[0],r=0,n=i.length-1;r=0;i--){var u=o[i][0],p=ot(new pi(u).getExtent(),new pi(h).getExtent());if(p){o[i].push(h),l=!0;break}}l||o.push([h.reverse()])}return o}(r.rings,n);1===o.length?(i=Nt.POLYGON,t.rings=o[0]):(i=Nt.MULTI_POLYGON,t.rings=o)}return dd((0,gd[i])(t),!1,e)}function md(t){var e=At.XY;return!0===t.hasZ&&!0===t.hasM?e=At.XYZM:!0===t.hasZ?e=At.XYZ:!0===t.hasM&&(e=At.XYM),e}function xd(t){var e=t.getLayout();return{hasZ:e===At.XYZ||e===At.XYZM,hasM:e===At.XYM||e===At.XYZM}}function Ed(t,e){return(0,yd[t.getType()])(dd(t,!0,e),e)}yd[Nt.POINT]=function(t,e){var i,r=t.getCoordinates(),n=t.getLayout();n===At.XYZ?i={x:r[0],y:r[1],z:r[2]}:n===At.XYM?i={x:r[0],y:r[1],m:r[2]}:n===At.XYZM?i={x:r[0],y:r[1],z:r[2],m:r[3]}:n===At.XY?i={x:r[0],y:r[1]}:Y(!1,34);return i},yd[Nt.LINE_STRING]=function(t,e){var i=t,r=xd(i);return{hasZ:r.hasZ,hasM:r.hasM,paths:[i.getCoordinates()]}},yd[Nt.POLYGON]=function(t,e){var i=t,r=xd(i);return{hasZ:r.hasZ,hasM:r.hasM,rings:i.getCoordinates(!1)}},yd[Nt.MULTI_POINT]=function(t,e){var i=t,r=xd(i);return{hasZ:r.hasZ,hasM:r.hasM,points:i.getCoordinates()}},yd[Nt.MULTI_LINE_STRING]=function(t,e){var i=t,r=xd(i);return{hasZ:r.hasZ,hasM:r.hasM,paths:i.getCoordinates()}},yd[Nt.MULTI_POLYGON]=function(t,e){for(var i=xd(t),r=t.getCoordinates(!1),n=[],o=0;o=0;s--)n.push(r[o][s]);return{hasZ:i.hasZ,hasM:i.hasM,rings:n}};var Sd=function(t){function e(e){var i=e||{};t.call(this),this.geometryName_=i.geometryName}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.readFeatureFromObject=function(t,e){var i=t,r=vd(i.geometry,e),n=new B;return this.geometryName_&&n.setGeometryName(this.geometryName_),n.setGeometry(r),e&&e.idField&&i.attributes[e.idField]&&n.setId(i.attributes[e.idField]),i.attributes&&n.setProperties(i.attributes),n},e.prototype.readFeaturesFromObject=function(t,e){var i=e||{};if(t.features){var r=[],n=t.features;i.idField=t.objectIdFieldName;for(var o=0,s=n.length;o0?i[0]:null},e.prototype.readFeatureFromNode=function(t,e){return null},e.prototype.readFeatures=function(t,e){if(t){if("string"==typeof t){var i=ru(t);return this.readFeaturesFromDocument(i,e)}return iu(t)?this.readFeaturesFromDocument(t,e):this.readFeaturesFromNode(t,e)}return[]},e.prototype.readFeaturesFromDocument=function(t,e){for(var i=[],r=t.firstChild;r;r=r.nextSibling)r.nodeType==Node.ELEMENT_NODE&&K(i,this.readFeaturesFromNode(r,e));return i},e.prototype.readFeaturesFromNode=function(t,e){return r()},e.prototype.readGeometry=function(t,e){if(t){if("string"==typeof t){var i=ru(t);return this.readGeometryFromDocument(i,e)}return iu(t)?this.readGeometryFromDocument(t,e):this.readGeometryFromNode(t,e)}return null},e.prototype.readGeometryFromDocument=function(t,e){return null},e.prototype.readGeometryFromNode=function(t,e){return null},e.prototype.readProjection=function(t){if(t){if("string"==typeof t){var e=ru(t);return this.readProjectionFromDocument(e)}return iu(t)?this.readProjectionFromDocument(t):this.readProjectionFromNode(t)}return null},e.prototype.readProjectionFromDocument=function(t){return this.dataProjection},e.prototype.readProjectionFromNode=function(t){return this.dataProjection},e.prototype.writeFeature=function(t,e){var i=this.writeFeatureNode(t,e);return this.xmlSerializer_.serializeToString(i)},e.prototype.writeFeatureNode=function(t,e){return null},e.prototype.writeFeatures=function(t,e){var i=this.writeFeaturesNode(t,e);return this.xmlSerializer_.serializeToString(i)},e.prototype.writeFeaturesNode=function(t,e){return null},e.prototype.writeGeometry=function(t,e){var i=this.writeGeometryNode(t,e);return this.xmlSerializer_.serializeToString(i)},e.prototype.writeGeometryNode=function(t,e){return null},e}(cd),Cd="http://www.opengis.net/gml",Rd=/^[\s\xa0]*$/,wd=function(t){function e(e){t.call(this);var i=e||{};this.featureType=i.featureType,this.featureNS=i.featureNS,this.srsName=i.srsName,this.schemaLocation="",this.FEATURE_COLLECTION_PARSERS={},this.FEATURE_COLLECTION_PARSERS[this.namespace]={featureMember:ou(this.readFeaturesInternal),featureMembers:su(this.readFeaturesInternal)}}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.readFeaturesInternal=function(t,e){var i=t.localName,r=null;if("FeatureCollection"==i)r=gu([],this.FEATURE_COLLECTION_PARSERS,t,e,this);else if("featureMembers"==i||"featureMember"==i){var n=e[0],o=n.featureType,s=n.featureNS;if(!o&&t.childNodes){o=[],s={};for(var a=0,h=t.childNodes.length;a0){n[a]={_content_:n[a]};for(var l=0;l1?o.Document=t:1==t.length&&(o.Placemark=t[0]);var s=o_[i.namespaceURI],a=du(o,s);return vu(n,s_,cu,a,[e],s,this),i},e}(Td);function g_(t,e){var i=null,r=[0,0],n="start";if(t.getImage()){var o=t.getImage().getImageSize();if(null===o&&(o=Bf),2==o.length){var s=t.getImage().getScale();r[0]=s*o[0]/2,r[1]=-s*o[1]/2,n="left"}}if(null!==t.getText()){var a=t.getText();(i=a.clone()).setFont(a.getFont()||c_.getFont()),i.setScale(a.getScale()||c_.getScale()),i.setFill(a.getFill()||c_.getFill()),i.setStroke(a.getStroke()||u_)}else i=c_.clone();return i.setText(e),i.setOffsetX(r[0]),i.setOffsetY(r[1]),i.setTextAlign(n),new Nu({text:i})}function y_(t){var e=eu(t,!1),i=/^\s*#?\s*([0-9A-Fa-f]{8})\s*$/.exec(e);if(i){var r=i[1];return[parseInt(r.substr(6,2),16),parseInt(r.substr(4,2),16),parseInt(r.substr(2,2),16),parseInt(r.substr(0,2),16)/255]}}function v_(t){for(var e,i=eu(t,!1),r=[],n=/^\s*([+\-]?\d*\.?\d+(?:e[+\-]?\d+)?)\s*,\s*([+\-]?\d*\.?\d+(?:e[+\-]?\d+)?)(?:\s*,\s*([+\-]?\d*\.?\d+(?:e[+\-]?\d+)?))?\s*/i;e=n.exec(i);){var o=parseFloat(e[1]),s=parseFloat(e[2]),a=e[3]?parseFloat(e[3]):0;r.push(o,s,a),i=i.substr(e[0].length)}if(""===i)return r}function m_(t){var e=eu(t,!1).trim(),i=t.baseURI;return i&&"about:blank"!=i||(i=window.location.href),i?new URL(e,i).href:e}function x_(t){return bd(t)}var E_=fu($f,{Pair:function(t,e){var i=gu({},q_,t,e);if(!i)return;var r=i.key;if(r&&"normal"==r){var n=i.styleUrl;n&&(e[e.length-1]=n);var o=i.Style;o&&(e[e.length-1]=o)}}});function S_(t,e){return gu(void 0,E_,t,e)}var T_=fu($f,{Icon:hu(function(t,e){var i=gu({},M_,t,e);return i||null}),heading:hu(bd),hotSpot:hu(function(t){var e,i=t.getAttribute("xunits"),r=t.getAttribute("yunits");return e="insetPixels"!==i?"insetPixels"!==r?Lu.BOTTOM_LEFT:Lu.TOP_LEFT:"insetPixels"!==r?Lu.BOTTOM_RIGHT:Lu.TOP_RIGHT,{x:parseFloat(t.getAttribute("x")),xunits:t_[i],y:parseFloat(t.getAttribute("y")),yunits:t_[r],origin:e}}),scale:hu(x_)});var C_=fu($f,{color:hu(y_),scale:hu(x_)});var R_=fu($f,{color:hu(y_),width:hu(bd)});var w_=fu($f,{color:hu(y_),fill:hu(Ld),outline:hu(Ld)});var I_=fu($f,{coordinates:su(v_)});function L_(t,e){return gu(null,I_,t,e)}var O_=fu(Qf,{Track:ou(b_)});var P_=fu($f,{when:function(t,e){var i=e[e.length-1].whens,r=eu(t,!1),n=Date.parse(r);i.push(isNaN(n)?0:n)}},fu(Qf,{coord:function(t,e){var i=e[e.length-1].flatCoordinates,r=eu(t,!1),n=/^\s*([+\-]?\d+(?:\.\d*)?(?:e[+\-]?\d*)?)\s+([+\-]?\d+(?:\.\d*)?(?:e[+\-]?\d*)?)\s+([+\-]?\d+(?:\.\d*)?(?:e[+\-]?\d*)?)\s*$/i.exec(r);if(n){var o=parseFloat(n[1]),s=parseFloat(n[2]),a=parseFloat(n[3]);i.push(o,s,a,0)}else i.push(0,0,0,0)}}));function b_(t,e){var i=gu({flatCoordinates:[],whens:[]},P_,t,e);if(i){for(var r=i.flatCoordinates,n=i.whens,o=0,s=Math.min(r.length,n.length);o0,u=h.href;u?r=u:l&&(r=Vf);var p,c=Lu.BOTTOM_LEFT,d=i.hotSpot;d?(n=[d.x,d.y],o=d.xunits,s=d.yunits,c=d.origin):r===Vf?(n=jf,o=Uf,s=Yf):/^http:\/\/maps\.(?:google|gstatic)\.com\//.test(r)&&(n=[.5,0],o=wu.FRACTION,s=wu.FRACTION);var f,_=h.x,g=h.y;void 0!==_&&void 0!==g&&(p=[_,g]);var y,v=h.w,m=h.h;void 0!==v&&void 0!==m&&(f=[v,m]);var x=i.heading;void 0!==x&&(y=Vt(x));var E=i.scale;if(l){r==Vf&&(f=Bf,void 0===E&&(E=Xf));var S=new Ou({anchor:n,anchorOrigin:c,anchorXUnits:o,anchorYUnits:s,crossOrigin:"anonymous",offset:p,offsetOrigin:Lu.BOTTOM_LEFT,rotation:y,scale:E,size:f,src:r});a.imageStyle=S}else a.imageStyle=h_}},LabelStyle:function(t,e){var i=gu({},C_,t,e);if(i){var r=e[e.length-1],n=new Rr({fill:new mr({color:"color"in i?i.color:kf}),scale:i.scale});r.textStyle=n}},LineStyle:function(t,e){var i=gu({},R_,t,e);if(i){var r=e[e.length-1],n=new Er({color:"color"in i?i.color:kf,width:"width"in i?i.width:1});r.strokeStyle=n}},PolyStyle:function(t,e){var i=gu({},w_,t,e);if(i){var r=e[e.length-1],n=new mr({color:"color"in i?i.color:kf});r.fillStyle=n;var o=i.fill;void 0!==o&&(r.fill=o);var s=i.outline;void 0!==s&&(r.outline=s)}}});function X_(t,e){var i=gu({},V_,t,e);if(!i)return null;var r,n="fillStyle"in i?i.fillStyle:a_,o=i.fill;void 0===o||o||(n=null),"imageStyle"in i?i.imageStyle!=h_&&(r=i.imageStyle):r=l_;var s="textStyle"in i?i.textStyle:c_,a="strokeStyle"in i?i.strokeStyle:p_,h=i.outline;return void 0===h||h||(a=null),[new Nu({fill:n,image:r,stroke:a,text:s,zIndex:void 0})]}function z_(t,e){var i,r,n,o=e.length,s=new Array(e.length),a=new Array(e.length),h=new Array(e.length);i=r=n=!1;for(var l=0;l0){var a=du(n,s);vu(r,wg,Lg,[{names:s,values:a}],i)}var h=e.getStyleFunction();if(h){var l=h(e,0);if(l){var u=Array.isArray(l)?l[0]:l;this.writeStyles_&&(n.Style=u);var p=u.getText();p&&(n.name=p.getText())}}var c=i[i.length-1].node,d=Ig[c.namespaceURI],f=du(n,d);vu(r,wg,cu,f,i,d);var _=i[0],g=e.getGeometry();g&&(g=dd(g,!0,_)),vu(r,wg,yg,[g],i)}var Pg=fu($f,["extrude","tessellate","altitudeMode","coordinates"]),bg=fu($f,{extrude:lu(Gd),tessellate:lu(Gd),altitudeMode:lu(jd),coordinates:lu(function(t,e,i){var r,n=i[i.length-1],o=n.layout,s=n.stride;o==At.XY||o==At.XYM?r=2:o==At.XYZ||o==At.XYZM?r=3:Y(!1,34);var a=e.length,h="";if(a>0){h+=e[0];for(var l=1;l>3)?i.readString():2===t?i.readFloat():3===t?i.readDouble():4===t?i.readVarint64():5===t?i.readVarint():6===t?i.readSVarint():7===t?i.readBoolean():null;e.values.push(r)}}function qg(t,e,i){if(1==t)e.id=i.readVarint();else if(2==t)for(var r=i.readVarint()+i.pos;i.pos>3}s--,1===o||2===o?(a+=t.readSVarint(),h+=t.readSVarint(),1===o&&l>u&&(r.push(l),u=l),i.push(a,h),l+=2):7===o?l>u&&(i.push(i[u],i[u+1]),l+=2):Y(!1,59)}l>u&&(r.push(l),u=l)},e.prototype.createFeature_=function(t,e,i){var r,n=e.type;if(0===n)return null;var o=e.id,s=e.properties;s[this.layerName_]=e.layer.name;var a=[],h=[];this.readRawGeometry_(t,e,a,h);var l=function(t,e){var i;1===t?i=1===e?Nt.POINT:Nt.MULTI_POINT:2===t?i=1===e?Nt.LINE_STRING:Nt.MULTI_LINE_STRING:3===t&&(i=Nt.POLYGON);return i}(n,h.length);if(this.featureClass_===Kg)r=new this.featureClass_(l,a,h,s,o);else{var u;if(l==Nt.POLYGON){for(var p=[],c=0,d=0,f=0,_=h.length;f<_;++f){var g=h[f];Si(a,c,g,2)||(p.push(h.slice(d,f)),d=f),c=g}u=p.length>1?new Fc(a,At.XY,p):new Ii(a,At.XY,h)}else u=l===Nt.POINT?new ci(a,At.XY):l===Nt.LINE_STRING?new hr(a,At.XY):l===Nt.POLYGON?new Ii(a,At.XY,h):l===Nt.MULTI_POINT?new bc(a,At.XY):l===Nt.MULTI_LINE_STRING?new Pc(a,At.XY,h):null;r=new(0,this.featureClass_),this.geometryName_&&r.setGeometryName(this.geometryName_);var y=dd(u,!1,this.adaptOptions(i));r.setGeometry(y),r.setId(o),r.setProperties(s)}return r},e.prototype.getLastExtent=function(){return this.extent_},e.prototype.getType=function(){return Hl.ARRAY_BUFFER},e.prototype.readFeatures=function(t,e){var i=this.layers_,r=new Xg.a(t),n=r.readFields(Hg,{}),o=[];for(var s in n)if(!i||-1!=i.indexOf(s)){for(var a=n[s],h=0,l=a.length;h>1):n>>1}return e}(t),n=0,o=r.length;n=32;)e=63+(32|31&t),i+=String.fromCharCode(e),t>>=5;return e=t+63,i+=String.fromCharCode(e)}var cy=function(t){function e(e){t.call(this);var i=e||{};this.dataProjection=Ee("EPSG:4326"),this.factor_=i.factor?i.factor:1e5,this.geometryLayout_=i.geometryLayout?i.geometryLayout:At.XY}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.readFeatureFromText=function(t,e){var i=this.readGeometryFromText(t,e);return new B(i)},e.prototype.readFeaturesFromText=function(t,e){return[this.readFeatureFromText(t,e)]},e.prototype.readGeometryFromText=function(t,e){var i=ze(this.geometryLayout_),r=hy(t,i,this.factor_);sy(r,0,r.length,i,r);var n=ri(r,0,r.length,i);return dd(new hr(n,this.geometryLayout_),!1,this.adaptOptions(e))},e.prototype.writeFeatureText=function(t,e){var i=t.getGeometry();return i?this.writeGeometryText(i,e):(Y(!1,40),"")},e.prototype.writeFeaturesText=function(t,e){return this.writeFeatureText(t[0],e)},e.prototype.writeGeometryText=function(t,e){var i=(t=dd(t,!0,this.adaptOptions(e))).getFlatCoordinates(),r=t.getStride();return sy(i,0,i.length,r,i),ay(i,r,this.factor_)},e}(zf),dy={Point:function(t,e,i){var r=t.coordinates;e&&i&&vy(r,e,i);return new ci(r)},LineString:function(t,e){var i=fy(t.arcs,e);return new hr(i)},Polygon:function(t,e){for(var i=[],r=0,n=t.arcs.length;r0&&n.pop(),r=i>=0?e[i]:e[~i].slice().reverse(),n.push.apply(n,r);for(var a=0,h=n.length;a=2,57)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e}(Ey),Ty=function(t){function e(e){t.call(this,"And",Array.prototype.slice.call(arguments))}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e}(Sy),Cy=function(t){function e(e,i,r){t.call(this,"BBOX"),this.geometryName=e,this.extent=i,this.srsName=r}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e}(Ey),Ry=function(t){function e(e,i,r,n){t.call(this,e),this.geometryName=i||"the_geom",this.geometry=r,this.srsName=n}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e}(Ey),wy=function(t){function e(e,i,r){t.call(this,"Contains",e,i,r)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e}(Ry),Iy=function(t){function e(e,i){t.call(this,e),this.propertyName=i}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e}(Ey),Ly=function(t){function e(e,i,r){t.call(this,"During",e),this.begin=i,this.end=r}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e}(Iy),Oy=function(t){function e(e,i,r,n){t.call(this,e,i),this.expression=r,this.matchCase=n}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e}(Iy),Py=function(t){function e(e,i,r){t.call(this,"PropertyIsEqualTo",e,i,r)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e}(Oy),by=function(t){function e(e,i){t.call(this,"PropertyIsGreaterThan",e,i)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e}(Oy),My=function(t){function e(e,i){t.call(this,"PropertyIsGreaterThanOrEqualTo",e,i)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e}(Oy),Fy=function(t){function e(e,i,r){t.call(this,"Intersects",e,i,r)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e}(Ry),Ay=function(t){function e(e,i,r){t.call(this,"PropertyIsBetween",e),this.lowerBoundary=i,this.upperBoundary=r}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e}(Iy),Ny=function(t){function e(e,i,r,n,o,s){t.call(this,"PropertyIsLike",e),this.pattern=i,this.wildCard=void 0!==r?r:"*",this.singleChar=void 0!==n?n:".",this.escapeChar=void 0!==o?o:"!",this.matchCase=s}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e}(Iy),Gy=function(t){function e(e){t.call(this,"PropertyIsNull",e)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e}(Iy),Dy=function(t){function e(e,i){t.call(this,"PropertyIsLessThan",e,i)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e}(Oy),ky=function(t){function e(e,i){t.call(this,"PropertyIsLessThanOrEqualTo",e,i)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e}(Oy),jy=function(t){function e(e){t.call(this,"Not"),this.condition=e}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e}(Ey),Uy=function(t){function e(e,i,r){t.call(this,"PropertyIsNotEqualTo",e,i,r)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e}(Oy),Yy=function(t){function e(e){t.call(this,"Or",Array.prototype.slice.call(arguments))}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e}(Sy),By=function(t){function e(e,i,r){t.call(this,"Within",e,i,r)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e}(Ry);function Vy(t){var e=[null].concat(Array.prototype.slice.call(arguments));return new(Function.prototype.bind.apply(Ty,e))}function Xy(t,e,i){return new Cy(t,e,i)}var zy={"http://www.opengis.net/gml":{boundedBy:hu(Id.prototype.readGeometryElement,"bounds")}},Wy={"http://www.opengis.net/wfs":{totalInserted:hu(Fd),totalUpdated:hu(Fd),totalDeleted:hu(Fd)}},Ky={"http://www.opengis.net/wfs":{TransactionSummary:hu(function(t,e){return gu({},Wy,t,e)},"transactionSummary"),InsertResults:hu(function(t,e){return gu([],ov,t,e)},"insertIds")}},Hy={"http://www.opengis.net/wfs":{PropertyName:lu(jd)}},Zy={"http://www.opengis.net/wfs":{Insert:lu(function(t,e,i){var r=i[i.length-1],n=r.featureType,o=r.featureNS,s=r.gmlVersion,a=tu(o,n);t.appendChild(a),2===s?Zd.prototype.writeFeatureElement(a,e,i):Vd.prototype.writeFeatureElement(a,e,i)}),Update:lu(function(t,e,i){var r=i[i.length-1];Y(void 0!==e.getId(),27);var n=r.featureType,o=r.featurePrefix,s=r.featureNS,a=av(o,n),h=e.getGeometryName();t.setAttribute("typeName",a),t.setAttributeNS(Jy,"xmlns:"+o,s);var l=e.getId();if(void 0!==l){for(var u=e.getKeys(),p=[],c=0,d=u.length;c="a"&&t<="z"||t>="A"&&t<="Z"},Ov.prototype.isNumeric_=function(t,e){return t>="0"&&t<="9"||"."==t&&!(void 0!==e&&e)},Ov.prototype.isWhiteSpace_=function(t){return" "==t||"\t"==t||"\r"==t||"\n"==t},Ov.prototype.nextChar_=function(){return this.wkt.charAt(++this.index_)},Ov.prototype.nextToken=function(){var t,e=this.nextChar_(),i=this.index_,r=e;if("("==e)t=Sv;else if(","==e)t=Rv;else if(")"==e)t=Tv;else if(this.isNumeric_(e)||"-"==e)t=Cv,r=this.readNumber_();else if(this.isAlpha_(e))t=Ev,r=this.readText_();else{if(this.isWhiteSpace_(e))return this.nextToken();if(""!==e)throw new Error("Unexpected character: "+e);t=wv}return{position:i,value:r,type:t}},Ov.prototype.readNumber_=function(){var t,e=this.index_,i=!1,r=!1;do{"."==t?i=!0:"e"!=t&&"E"!=t||(r=!0),t=this.nextChar_()}while(this.isNumeric_(t,i)||!r&&("e"==t||"E"==t)||r&&("-"==t||"+"==t));return parseFloat(this.wkt.substring(e,this.index_--))},Ov.prototype.readText_=function(){var t,e=this.index_;do{t=this.nextChar_()}while(this.isAlpha_(t));return this.wkt.substring(e,this.index_--).toUpperCase()};var Pv=function(t){this.lexer_=t,this.token_,this.layout_=At.XY};function bv(t){var e=t.getCoordinates();return 0===e.length?"":e.join(" ")}function Mv(t){for(var e=t.getCoordinates(),i=[],r=0,n=e.length;r0&&(e+=" "+r)}return 0===i.length?e+" "+vv:e+"("+i+")"}var Gv=function(t){function e(e){t.call(this);var i=e||{};this.splitCollection_=void 0!==i.splitCollection&&i.splitCollection}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.parse_=function(t){var e=new Ov(t);return new Pv(e).parse()},e.prototype.readFeatureFromText=function(t,e){var i=this.readGeometryFromText(t,e);if(i){var r=new B;return r.setGeometry(i),r}return null},e.prototype.readFeaturesFromText=function(t,e){for(var i=[],r=this.readGeometryFromText(t,e),n=[],o=0,s=(i=this.splitCollection_&&r.getType()==Nt.GEOMETRY_COLLECTION?r.getGeometriesArray():[r]).length;o.75*u||l>.75*p?this.resetExtent_():ot(o,r)||this.recenter_()}},e.prototype.resetExtent_=function(){var t=this.getMap(),e=this.ovmap_,i=t.getSize(),r=t.getView().calculateExtent(i),n=e.getView(),o=Math.log(7.5)/Math.LN2;Mt(r,1/(.1*Math.pow(2,o/2))),n.fit(r)},e.prototype.recenter_=function(){var t=this.getMap(),e=this.ovmap_,i=t.getView();e.getView().setCenter(i.getCenter())},e.prototype.updateBox_=function(){var t=this.getMap(),e=this.ovmap_;if(t.isRendered()&&e.isRendered()){var i=t.getSize(),r=t.getView(),n=e.getView(),o=r.getRotation(),s=this.boxOverlay_,a=this.boxOverlay_.getElement(),h=r.calculateExtent(i),l=n.getResolution(),u=Et(h),p=Lt(h),c=this.calculateCoordinateRotate_(o,u);s.setPosition(c),a&&(a.style.width=Math.abs((u[0]-p[0])/l)+"px",a.style.height=Math.abs((p[1]-u[1])/l)+"px")}},e.prototype.calculateCoordinateRotate_=function(t,e){var i,r=this.getMap().getView().getCenter();return r&&($i(i=[e[0]-r[0],e[1]-r[1]],t),Hi(i,r)),i},e.prototype.handleClick_=function(t){t.preventDefault(),this.handleToggle_()},e.prototype.handleToggle_=function(){this.element.classList.toggle(yo),this.collapsed_?Qn(this.collapseLabel_,this.label_):Qn(this.label_,this.collapseLabel_),this.collapsed_=!this.collapsed_;var t=this.ovmap_;this.collapsed_||t.isRendered()||(t.updateSize(),this.resetExtent_(),m(t,Rn,function(t){this.updateBox_()},this))},e.prototype.getCollapsible=function(){return this.collapsible_},e.prototype.setCollapsible=function(t){this.collapsible_!==t&&(this.collapsible_=t,this.element.classList.toggle("ol-uncollapsible"),!t&&this.collapsed_&&this.handleToggle_())},e.prototype.setCollapsed=function(t){this.collapsible_&&this.collapsed_!==t&&this.handleToggle_()},e.prototype.getCollapsed=function(){return this.collapsed_},e.prototype.getOverviewMap=function(){return this.ovmap_},e}(uo),ex="units",ix={DEGREES:"degrees",IMPERIAL:"imperial",NAUTICAL:"nautical",METRIC:"metric",US:"us"},rx=[1,2,5];function nx(t){var e=t.frameState;this.viewState_=e?e.viewState:null,this.updateElement_()}var ox=function(t){function e(e){var i=e||{},r=void 0!==i.className?i.className:"ol-scale-line";t.call(this,{element:document.createElement("div"),render:i.render||nx,target:i.target}),this.innerElement_=document.createElement("div"),this.innerElement_.className=r+"-inner",this.element.className=r+" "+fo,this.element.appendChild(this.innerElement_),this.viewState_=null,this.minWidth_=void 0!==i.minWidth?i.minWidth:64,this.renderedVisible_=!1,this.renderedWidth_=void 0,this.renderedHTML_="",v(this,G(ex),this.handleUnitsChanged_,this),this.setUnits(i.units||ix.METRIC)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.getUnits=function(){return this.get(ex)},e.prototype.handleUnitsChanged_=function(){this.updateElement_()},e.prototype.setUnits=function(t){this.set(ex,t)},e.prototype.updateElement_=function(){var t=this.viewState_;if(t){var e=t.center,i=t.projection,r=this.getUnits(),n=r==ix.DEGREES?$t.DEGREES:$t.METERS,o=Se(i,t.resolution,e,n);i.getUnits()!=$t.DEGREES&&i.getMetersPerUnit()&&n==$t.METERS&&(o*=i.getMetersPerUnit());var s=this.minWidth_*o,a="";if(r==ix.DEGREES){var h=Qt[$t.DEGREES];i.getUnits()==$t.DEGREES?s*=h:o/=h,s=this.minWidth_)break;++p}var c=l+" "+a;this.renderedHTML_!=c&&(this.innerElement_.innerHTML=c,this.renderedHTML_=c),this.renderedWidth_!=u&&(this.innerElement_.style.width=u+"px",this.renderedWidth_=u),this.renderedVisible_||(this.element.style.display="",this.renderedVisible_=!0)}else this.renderedVisible_&&(this.element.style.display="none",this.renderedVisible_=!1)},e}(uo),sx={VERTICAL:0,HORIZONTAL:1};function ax(t){if(t.frameState){this.sliderInitialized_||this.initSlider_();var e=t.frameState.viewState.resolution;e!==this.currentResolution_&&(this.currentResolution_=e,this.setThumbPosition_(e))}}var hx=function(t){function e(e){var i=e||{};t.call(this,{element:document.createElement("div"),render:i.render||ax}),this.dragListenerKeys_=[],this.currentResolution_=void 0,this.direction_=sx.VERTICAL,this.dragging_,this.heightLimit_=0,this.widthLimit_=0,this.previousX_,this.previousY_,this.thumbSize_=null,this.sliderInitialized_=!1,this.duration_=void 0!==i.duration?i.duration:200;var r=void 0!==i.className?i.className:"ol-zoomslider",n=document.createElement("button");n.setAttribute("type","button"),n.className=r+"-thumb "+fo;var o=this.element;o.className=r+" "+fo+" "+go,o.appendChild(n),this.dragger_=new Tn(o),v(this.dragger_,Gr.POINTERDOWN,this.handleDraggerStart_,this),v(this.dragger_,Gr.POINTERMOVE,this.handleDraggerDrag_,this),v(this.dragger_,Gr.POINTERUP,this.handleDraggerEnd_,this),v(o,M.CLICK,this.handleContainerClick_,this),v(n,M.CLICK,O)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.disposeInternal=function(){this.dragger_.dispose(),t.prototype.disposeInternal.call(this)},e.prototype.setMap=function(e){t.prototype.setMap.call(this,e),e&&e.render()},e.prototype.initSlider_=function(){var t=this.element,e=t.offsetWidth,i=t.offsetHeight,r=t.firstElementChild,n=getComputedStyle(r),o=r.offsetWidth+parseFloat(n.marginRight)+parseFloat(n.marginLeft),s=r.offsetHeight+parseFloat(n.marginTop)+parseFloat(n.marginBottom);this.thumbSize_=[o,s],e>i?(this.direction_=sx.HORIZONTAL,this.widthLimit_=e-o):(this.direction_=sx.VERTICAL,this.heightLimit_=i-s),this.sliderInitialized_=!0},e.prototype.handleContainerClick_=function(t){var e=this.getMap().getView(),i=this.getRelativePosition_(t.offsetX-this.thumbSize_[0]/2,t.offsetY-this.thumbSize_[1]/2),r=this.getResolutionForPosition_(i);e.animate({resolution:e.constrainResolution(r),duration:this.duration_,easing:Xn})},e.prototype.handleDraggerStart_=function(t){if(!this.dragging_&&t.originalEvent.target===this.element.firstElementChild&&(this.getMap().getView().setHint(jn,1),this.previousX_=t.clientX,this.previousY_=t.clientY,this.dragging_=!0,0===this.dragListenerKeys_.length)){var e=this.handleDraggerDrag_,i=this.handleDraggerEnd_;this.dragListenerKeys_.push(v(document,M.MOUSEMOVE,e,this),v(document,Gr.POINTERMOVE,e,this),v(document,M.MOUSEUP,i,this),v(document,Gr.POINTERUP,i,this))}},e.prototype.handleDraggerDrag_=function(t){if(this.dragging_){var e=this.element.firstElementChild,i=t.clientX-this.previousX_+parseFloat(e.style.left),r=t.clientY-this.previousY_+parseFloat(e.style.top),n=this.getRelativePosition_(i,r);this.currentResolution_=this.getResolutionForPosition_(n),this.getMap().getView().setResolution(this.currentResolution_),this.setThumbPosition_(this.currentResolution_),this.previousX_=t.clientX,this.previousY_=t.clientY}},e.prototype.handleDraggerEnd_=function(t){if(this.dragging_){var e=this.getMap().getView();e.setHint(jn,-1),e.animate({resolution:e.constrainResolution(this.currentResolution_),duration:this.duration_,easing:Xn}),this.dragging_=!1,this.previousX_=void 0,this.previousY_=void 0,this.dragListenerKeys_.forEach(E),this.dragListenerKeys_.length=0}},e.prototype.setThumbPosition_=function(t){var e=this.getPositionForResolution_(t),i=this.element.firstElementChild;this.direction_==sx.HORIZONTAL?i.style.left=this.widthLimit_*e+"px":i.style.top=this.heightLimit_*e+"px"},e.prototype.getRelativePosition_=function(t,e){return kt(this.direction_===sx.HORIZONTAL?t/this.widthLimit_:e/this.heightLimit_,0,1)},e.prototype.getResolutionForPosition_=function(t){return this.getMap().getView().getResolutionForValueFunction()(1-t)},e.prototype.getPositionForResolution_=function(t){return 1-this.getMap().getView().getValueForResolutionFunction()(t)},e}(uo),lx=function(t){function e(e){var i=e||{};t.call(this,{element:document.createElement("div"),target:i.target}),this.extent=i.extent?i.extent:null;var r=void 0!==i.className?i.className:"ol-zoom-extent",n=void 0!==i.label?i.label:"E",o=void 0!==i.tipLabel?i.tipLabel:"Fit to extent",s=document.createElement("button");s.setAttribute("type","button"),s.title=o,s.appendChild("string"==typeof n?document.createTextNode(n):n),v(s,M.CLICK,this.handleClick_,this);var a=r+" "+fo+" "+go,h=this.element;h.className=a,h.appendChild(s)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.handleClick_=function(t){t.preventDefault(),this.handleZoomToExtent()},e.prototype.handleZoomToExtent=function(){var t=this.getMap().getView(),e=this.extent?this.extent:t.getProjection().getExtent();t.fit(e)},e}(uo),ux={array:{},color:{},colorlike:{},control:{},coordinate:{},easing:{},events:{}};ux.events.condition={},ux.extent={},ux.featureloader={},ux.format={},ux.format.filter={},ux.geom={},ux.has={},ux.interaction={},ux.layer={},ux.loadingstrategy={},ux.proj={},ux.proj.Units={},ux.proj.proj4={},ux.render={},ux.render.canvas={},ux.renderer={},ux.renderer.canvas={},ux.renderer.webgl={},ux.size={},ux.source={},ux.sphere={},ux.style={},ux.style.IconImageCache={},ux.tilegrid={},ux.xml={},ux.Collection=U,ux.Feature=B,ux.Geolocation=zi,ux.Graticule=Or,ux.Kinetic=br,ux.Map=Ha,ux.Object=D,ux.Observable=F,ux.Observable.unByKey=function(t){if(Array.isArray(t))for(var e=0,i=t.length;e180)&&(i[0]=Xt(r+180,360)-180),i},ux.proj.transform=Pe,ux.proj.transformExtent=be,ux.render.VectorContext=Vs,ux.render.canvas.labelCache=Ps,ux.render.toContext=function(t,e){var i=t.canvas,r=e||{},n=r.pixelRatio||Di,o=r.size;o&&(i.width=o[0]*n,i.height=o[1]*n,i.style.width=o[0]+"px",i.style.height=o[1]+"px");var s=[0,0,i.width,i.height],a=je([1,0,0,1,0,0],n,n);return new Xs(t,n,s,a,0)},ux.renderer.canvas.ImageLayer=ra,ux.renderer.canvas.Map=Qs,ux.renderer.canvas.TileLayer=ha,ux.renderer.canvas.VectorLayer=Ba,ux.renderer.canvas.VectorTileLayer=Ka,ux.renderer.webgl.ImageLayer=gl,ux.renderer.webgl.Map=yl,ux.renderer.webgl.TileLayer=Xl,ux.renderer.webgl.VectorLayer=Wl,ux.size.toSize=ho,ux.source.BingMaps=tp,ux.source.CartoDB=ip,ux.source.Cluster=sp,ux.source.Image=dp,ux.source.ImageArcGISRest=gp,ux.source.ImageCanvas=yp,ux.source.ImageMapGuide=vp,ux.source.ImageStatic=mp,ux.source.ImageWMS=wp,ux.source.OSM=Lp,ux.source.OSM.ATTRIBUTION=Ip,ux.source.Raster=Vp,ux.source.Source=Il,ux.source.Stamen=Kp,ux.source.Tile=jl,ux.source.TileArcGISRest=Zp,ux.source.TileDebug=Jp,ux.source.TileImage=$u,ux.source.TileJSON=Qp,ux.source.TileWMS=tc,ux.source.UTFGrid=ic,ux.source.Vector=op,ux.source.VectorTile=ac,ux.source.WMTS=lc,ux.source.WMTS.optionsFromCapabilities=function(t,e){var i=H(t.Contents.Layer,function(t,i,r){return t.Identifier==e.layer});if(null===i)return null;var r,n=t.Contents.TileMatrixSet;(r=i.TileMatrixSetLink.length>1?J(i.TileMatrixSetLink,"projection"in e?function(t,i,r){var o=H(n,function(e){return e.Identifier==t.TileMatrixSet}).SupportedCRS,s=Ee(o.replace(/urn:ogc:def:crs:(\w+):(.*:)?(\w+)$/,"$1:$3"))||Ee(o),a=Ee(e.projection);return s&&a?Ie(s,a):o==e.projection}:function(t,i,r){return t.TileMatrixSet==e.matrixSet}):0)<0&&(r=0);var o=i.TileMatrixSetLink[r].TileMatrixSet,s=i.TileMatrixSetLink[r].TileMatrixSetLimits,a=i.Format[0];"format"in e&&(a=e.format),(r=J(i.Style,function(t,i,r){return"style"in e?t.Title==e.style:t.isDefault}))<0&&(r=0);var h=i.Style[r].Identifier,l={};"Dimension"in i&&i.Dimension.forEach(function(t,e,i){var r=t.Identifier,n=t.Default;void 0===n&&(n=t.Value[0]),l[r]=n});var u,p=H(t.Contents.TileMatrixSet,function(t,e,i){return t.Identifier==o}),c=p.SupportedCRS;if(c&&(u=Ee(c.replace(/urn:ogc:def:crs:(\w+):(.*:)?(\w+)$/,"$1:$3"))||Ee(c)),"projection"in e){var d=Ee(e.projection);d&&(u&&!Ie(d,u)||(u=d))}var f,_,g=i.WGS84BoundingBox;if(void 0!==g){var y=Ee("EPSG:4326").getExtent();_=g[0]==y[0]&&g[2]==y[2],f=be(g,"EPSG:4326",u);var v=u.getExtent();v&&(ot(v,f)||(f=void 0))}var m=Eu(p,f,s),x=[],E=e.requestEncoding;if(E=void 0!==E?E:"","OperationsMetadata"in t&&"GetTile"in t.OperationsMetadata)for(var S=t.OperationsMetadata.GetTile.DCP.HTTP.Get,T=0,C=S.length;T has to be removed, as well as the just before the W3 validation box. Unfortunately this then forces 600px width even when the window is small — thus eliminating the margin altogether.... + +I use it for now only in Diary/edited/1097/13A, 13B, 13C.html; and /0404/19.html +*/ + background-color: #e6fffb ! important; + width: 600px; + margin-left: auto; + margin-right: auto; + margin-top: 3em; +} + +BODY.gazetteer { +/* + background-color: #bdffde ! important; + */ + background-color: #c0ffe0 ! important; + margin-top: 30px; +} + +BODY.gazetteer_links { + background-color: #c5ffe2 ! important; + margin-top: 30px; +} + +BODY.home { + background-color: #ffff66 ! important; + margin-top: 30px; +/* +background as long as the Russian attack on Ukraine continues: + */ + background-image: url("https://penelope.uchicago.edu/Thayer/Images/Utility/Backgrounds/Ukraine.gif") ! important; + background-repeat: repeat-y; +} + +BODY.Roman_archaic { + background-color: #ffddcc ! important; + margin-top: 30px; +} + +BODY.Roman_imperial { + background-color: #ffccff ! important; + margin-top: 30px; +} + +BODY.Roman_Republican { + background-color: #ccddff ! important; + margin-top: 30px; +} + +BODY.Late_Antique { + background-color: #ecdaff ! important; + margin-top: 30px; +} + +BODY.fixed { + background-attachment: fixed; + background-repeat: repeat; +} + +BODY.help { + background-color: #ffcccc ! important; + margin-top: 30px; +} + +BODY.resources { + background-color: #f5ffff ! important; + color: #006600 ! important; + margin-top: 30px; +} + +BODY.WP { + background-color: #000000 ! important; + color: #ffffff ! important; + margin-top: 30px; +} + +/*Greek TEST*/ + BODY.WP DIV.default1 { + margin-left: 5em; + margin-right: 5em; + color: #ffffff ! important; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + } + BODY.WP .source { + color: #99ff99 ! important; + } + BODY.WP A { + color: #ccccff ! important; + } + BODY.WP TD.upcell A { + color: #0000ff ! important; + } + BODY.WP TD.alsocell A { + color: #0000ff ! important; + } + BODY.WP TD.diarycell A { + color: #0000ff ! important; + } + BODY.WP TD.offcell A { + color: #0000ff ! important; + } + +DIV.spacious { + width: 65vw; + margin-left: auto; + margin-right: auto; + color: #000066 ! important; /*color must match the background*/ + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; +} + +/* + +▸ Use names of countries only to define country-related styles. +▸ Use names of languages only to define language-related styles. + +*/ + +/*languages/scripts: +source, archaic, aboriginal; +Latin, Greek, Hebrew (Aramaic, Syriac), Runic, Gothic/Vandalic [same color: plain/italic]; +Russian/Slavic [identical]; +Coptic, Arabic (Punic, Turkish, Persian), Indian/Sanskrit [same color: plain/italic], Chinese/Japanese [same color: plain/italic]; +Catalan, Dutch, French, German, Italian, Portuguese, Provencal, Spanish +*/ + +/* +UNUSABLE FONTS: + +BECAUSE OF GREEK [search: ▸Greek TEST◂] : + Georgia: old tonos (wedge) + Verdana: old tonos (stroke) + Atavyros: ῥ rendered as ῤ + Minion Pro: no spaces before Greek capitals with rough breathings + +FOR OTHER REASONS: + Aroania: nulls the command-hyphen +*/ + +/* +COLORS + are in + https://penelope.uchicago.edu/Thayer/Utility/Styles/colors.css +*/ + +.black_letter { + text-transform: none; + font-family: Canterbury, "Cloister Black", Cimbrian, Raubtier, Lancaster, Augusta, Rochester, PaladinFLF, "Kleukens-Fraktur", "Palatino Linotype", Palatino, "Arial Unicode Ms", "Titus Cyberbit Basic", "Lucida Sans Unicode", serif, sans-serif ! important; +} + +.invisible { + visibility: hidden ! important; +} + +.error .Greek { + color: #ff0000 ! important; + font-weight: bold; + font-size: 120%; +} + +/* for modern geographical names, etc.: */ +.modern { + color: #5ebf20 ! important; +} + +.aboriginal { + color: #ff8f33 ! important; + font-family: Verdana, sans-serif; + font-size: 90%; +} + +/* same as Persian: */ +.Arabic { + color: #336644 ! important; +} + .Arabic .emend { + color: #444400 ! important; + } + + A SPAN.Arabic { + color: #669966 ! important; + } + +.Aramaic { + color: #555500 ! important; +} + .Aramaic .emend { + color: #664400 ! important; + } + + A SPAN.Aramaic { + color: #669966 ! important; + } + +.archaic { + color: #666600 ! important; +} + .archaic .emend { + color: #cccc00 ! important; + } + + A SPAN.archaic { + color: #669966 ! important; + } + +.Armenian { + color: #660099 ! important; +} + +SPAN LANG.be /* Belarusian */ { + font-size: 108%; +} + +.Belarusian { + color: #990000 ! important; + font-size: 108%; +} + +.book_Belarusian { + color: #990000 ! important; + font-size: 108%; + font-variant: small-caps; +} + +.translit_Belarusian { + color: #990000 ! important; +} + +.bland_Belarusian { + color: inherit ! important; + font-size: 108%; + line-height: 1.00; /* Belarusian fonts have more line-height built‑in, force smaller */ +} + +.Catalan { + color: #cc2200 ! important; +} + + .Catalan .emend { + color: #ee6633 ! important; + } + +.Dutch { + color: #006600 ! important; +} + + .Dutch .Dutch { + color: #002200 ! important; + } + + .Dutch .source { + color: #002200 ! important; + } + +BODY.gazetteer .Dutch { + color: #003300 ! important; +} + +.Egyptian { + color: #ff6600 ! important; +} + +.English/* use only in pages in other languages */ { + color: #009933 ! important; +} + + .English .emend { + color: #80cc4c ! important; + } + + .English .English { + color: #002200 ! important; + } + + .English .source { + color: #002200 ! important; + } + +French { + color: #009933 ! important; +} + + .French .emend { + color: #119955 ! important; + } + + .French .French { + color: #002200 ! important; + } + + .French .source { + color: #002200 ! important; + } + + .mynote .French { + color: #666633 ! important; + } + + .mynoteWide .French { + color: #666633 ! important; + } + +.Georgian { + color: #cc0099 ! important; +} + +.German { + color: #339999 ! important; +} + + .German .German { + color: #002200 ! important; + } + + .German .source { + color: #002200 ! important; + } + +.Gothic { + color: #660099 ! important; +} + +/*Greek TEST (settled)*/ +/*what I want here is a nice flowing slightly Byzantine look:*/ +/*Avdira: nice if somewhat mannered*/ +/*Alfios: nice but too small*/ +/*Quivira: ok but mannered: accents and breathings shifted*/ +/*Times New Roman: ok but circumflexes and diereses smooshed*/ +.Greek { + font-family: "Avdira", "Titus Cyberbit Basic", serif ! important; + color: #996600 ! important; +} + .Greek I { + font-style: italic; + letter-spacing: .2em; + /* a compromise: the traditional wide spacing, but also true italics */ + } + + .Greek .emend { + color: #dd8833 ! important; + } + + .Greek .emphasis { + color: #cc6600 ! important; + } + + .Greek .italic { + font-style: italic; + letter-spacing: .2em; + /* a compromise: the traditional wide spacing, but also true italics */ + } + + .Greek .outquote { + color: #dd8833 ! important; /* same as .Greek .emend */ + } + + .mynote .Greek { + color: #996600 ! important; + } + + .mynoteWide .Greek { + color: #996600 ! important; + } + +/* for use in Eboxes: */ + .EboxGreek { + font-weight: bold; + color: #996600 ! important; + } + +.translit_Greek { + color: #996600 ! important; +} + .translit_Greek .emend { + color: #dd8833 ! important; + } + + .translit_Greek .emphasis { + color: #cc6600 ! important; + } + + .mynote .translit_Greek { + color: #996600 ! important; + } + + .mynoteWide .translit_Greek { + color: #996600 ! important; + } + +.Greek2 { + font-family: "Palatino Linotype", "Lucida Grande", "Arial Unicode Ms", "Titus Cyberbit Basic", "Lucida Sans Unicode", sans-serif ! important; + color: #663300 ! important; + font-size: 95%; +} + .Greek2 .emend { + color: #dd8833 ! important; + } + + .Greek2 .emphasis { + color: #cc6600 ! important; + } + +.Greek_title { +/* OLD, KEEP FOR NOW: + font-family: "Lucida Grande", "Palatino Linotype", "Arial Unicode Ms", "Titus Cyberbit Basic", "Lucida Sans Unicode", sans-serif ! important; + */ + font-style: italic; + letter-spacing: .08em; +/* OLD, KEEP FOR NOW: + font-size: 95%; + */ +} + +.Hebrew { + direction: rtl ! important; + color: #666600 ! important; +} + .Hebrew .emend { + color: #774400 ! important; + } + + A SPAN.Hebrew { + color: #669966 ! important; + } + +.translit_Hebrew { + color: #666600 ! important; +} + .translit_Hebrew .emend { + color: #774400 ! important; + } + + A SPAN.translit_Hebrew { + color: #669966 ! important; + } + +.Indian { + color: #ff8f33 ! important; + font-family: Verdana, sans-serif; + font-size: 90%; +} + +.Italian { + color: #006600 ! important; +} + + .Italian .Italian { + color: #002200 ! important; + } + + .Italian .source { + color: #002200 ! important; + } + + .mynote .Italian { + color: #00b300 ! important; + } + +BODY.gazetteer .Italian { + color: #009922 ! important; +} + +.Chinese { +/* + color: #dcbd75 ! important; /* OLD + */ + color: #b88e2e ! important; + font-family: Verdana, sans-serif; + font-size: 90%; +} + +.Japanese { + color: #da5300 ! important; + font-family: Verdana, sans-serif; + font-size: 90%; + font-style: italic; +} + +.Latin { + color: #990000 ! important; +} + + .Latin .emend { + color: #ee6633 ! important; + } + + .mynote .Latin { + color: #990000 ! important; + } + +/* for use in Eboxes: */ + .EboxLatin { + font-weight: bold; + color: #990000 ! important; + } + +.Latin_addendum { + color: #993399 ! important; +} + +.Latin_emend { + color: #ee6633 ! important; +} + +.Latin_pale { + color: #ff6666 ! important; +} + +/* same as Arabic: */ +.Persian { + color: #336644 ! important; +} + .Persian .emend { + color: #444400 ! important; + } + + A SPAN.Persian { + color: #669966 ! important; + } + +.Portuguese { + color: #006600 ! important; +} + + .Portuguese .Portuguese { + color: #002200 ! important; + } + + .Portuguese .source { + color: #002200 ! important; + } + +BODY.gazetteer .Portuguese { + color: #003300 ! important; +} + + +.Provencal { + color: #e65c00 ! important; +} + + .Provencal .emend { + color: #ee6633 ! important; + } + +.Punic { + color: #336644 ! important; +} + .Punic .emend { + color: #444400 ! important; + } + + A SPAN.Punic { + color: #669966 ! important; + } + +.Runic { + font-family: "Quivira", "Apple Symbols", "Geneva", serif ! important; + color: #339999 ! important; +} + +.RunicQuivira { + font-family: "Quivira" ! important; + color: #339999 ! important; +} + +.RunicGeneva { + font-family: "Geneva" ! important; + color: #339999 ! important; +} + +.RunicApple { + font-family: "Apple Symbols" ! important; + color: #339999 ! important; +} + +.Russian { +/* WAS: + color: #ff7e24 ! important; + */ + color: #ffa114 ! important; + font-size: 108%; +} + +.translit_Russian { + color: #ffa114 ! important; +} + +.Sanskrit { + color: #ff8f33 ! important; + font-family: Verdana, sans-serif; + font-size: 90%; + font-style: italic; +} + +.translit_Sanskrit { + color: #ff8f33 ! important; + font-family: Verdana, sans-serif; + font-size: 90%; + font-style: italic; +} + +.Scandinavian { + color: #660099 ! important; +} + +.Slavic { + color: #e73659 ! important; +} + +.Syriac { + color: #666600 ! important; +} + .Syriac .emend { + color: #774400 ! important; + } + + A SPAN.Syriac { + color: #669966 ! important; + } + +.Turkish { + color: #336644 ! important; +} + .Turkish .emend { + color: #444400 ! important; + } + + A SPAN.Turkish { + color: #669966 ! important; + } + +SPAN LANG.uk /* Ukrainian */ { + font-size: 108%; +} + +.Ukrainian { + color: #f7c708 ! important; + font-size: 108%; +} + +.book_Ukrainian { + color: #f7c708 ! important; + font-size: 108%; + font-variant: small-caps; +} + +.translit_Ukrainian { + color: #f7c708 ! important; +} + +.bland_Ukrainian { + color: inherit ! important; + font-size: 108%; + line-height: 1.00; /* Ukrainian fonts have more line-height built‑in, force smaller */ +} + +.Vandalic { + font-family: Atavyros, "Lucida Grande", "Palatino Linotype", "Arial Unicode Ms", "Titus Cyberbit Basic", "Lucida Sans Unicode", sans-serif ! important; + color: #660099 ! important; + font-size: 95%; + font-style: italic; +} + + TABLE TR.odd { + background-color: #ccffff ! important; + } + + TABLE TR TD.odd { + background-color: #ccffff ! important; + } + + TABLE TR.even { + background-color: #99ffff ! important; + } + + TABLE TR TD.even { + background-color: #99ffff ! important; + } + +.odd .emend { + color: #33ccff ! important; + } + +.even .emend { + color: #00ccff ! important; + } + +/* THIS DOESN'T SEEM TO WORK: */ +/* +COLGROUP COL.grisaille { + background-color: #ff0000 ! important; + } + + */ + + +TABLE.prompt { +/* DO NOT DELETE: */ +/* used in Ebox.js */ + margin-bottom: 0em; +} + +TABLE.Ptolemy { + width: 600px; + border: 1px solid; + background-color: #eeffff ! important; + padding-left: 4px; + padding-right: 4px; + vertical-align: bottom; +} +TABLE.Ptolemy TD { + padding-left: 2px; + padding-right: 2px; + vertical-align: bottom; +} +TABLE.Ptolemy TD.text { + width: 420px; +} +TABLE.Ptolemy TD.text P { + margin-left: 1em; + text-indent: -1em; +} +TABLE.Ptolemy TR.alternate { + background-color: #ccffff ! important; +} +TABLE.Ptolemy TD.numbers { + width: 90px; +} + +TABLE.flexible { + table-layout: auto; + width: 100%; +} + +/*TABLE.padded: for making the table readable, cells not jammed together*/ +TABLE.padded TD { + padding-left: 12px; + padding-right: 12px; +} + +/*TABLE.rowspadded: separates the rows as well*/ +TABLE.rowspadded TD { + padding-top: 12px; + padding-left: 12px; + padding-right: 12px; +} + +TD.padded { + padding-left: 12px; + padding-right: 12px; +} + +TABLE.preface { + width: 600px; +/* WAS : + width: 576px; + ▸ If there's a reason for it, revert. . . + */ + background-color: #e9e9e9 ! important; + margin-left: auto; + margin-right: auto; + margin-top: 5em; + border-collapse: separate; + border-spacing: 1px; + border: 4px ridge #f6f6f6; + line-height: 1.5; +} + +TABLE.imageTEST { + border: 1px solid; + margin-left: auto; + margin-right: auto; + margin-top: 1em; + text-align: center; +} + + .imageTEST TR { + text-align: justify; + } + +TABLE.justify TD { + text-align: justify; +} + +TABLE.rubric { + width: 600px; + font-size: 85%; + margin-top: 2em; + margin-left: auto; + margin-right: auto; +} + + TABLE.rubric P.summary { + font-size: 85%; + margin-top: 3em; + margin-left: 0; + margin-right: 0; + text-indent: 0; + text-align: right; + } + + TABLE.rubric P.postsummary { + font-size: 85%; + margin-top: -.5em; + margin-left: 0; + margin-right: 0; + text-indent: 0; + text-align: right; + } + +.artist_catalog { + text-align: center; + background-color: #ffff66 ! important; + color: #00aaff ! important; + font-size: 80%; +} + + .artist_catalog A:link { + font-weight: bold; + color: #9922ff ! important; + } + + .artist_catalog H1 { + margin-top: .5em; + margin-bottom: .5em; + font-size: 120%; + font-weight: normal; + font-style: italic; + } + + .artist_catalog P { + margin-top: 0em; + margin-bottom: .7em; + } + + .artist_catalog .town { + color: #0040ff ! important; + } + + .artist_catalog .separator { + color: #ff3366 ! important; + } + +/* the "spaced" styles can be used for SPAN, and they will be uncentered*/ +/* if inside a justified class, they will also be uncentered */ +.slightly_condensed { + text-align: center; + letter-spacing: .05em; +} + +.condensed1 { + text-align: center; + letter-spacing: -.25em; +} + +.condensed2 { + text-align: center; + letter-spacing: -.5em; +} + +.slightly_spaced { + text-align: center; + letter-spacing: .25em; +} + +.spaced1 { + text-align: center; + letter-spacing: .5em; +} + +.spaced2 { + text-align: center; + letter-spacing: 1.0em; +} + +.spaced3 { + text-align: center; + letter-spacing: 1.5em; +} + +.spaced4 { + text-align: center; + letter-spacing: 2.0em; +} + +/* +The following style ("skipped") is used when I've temporarily skipped part of what ought to be a full webpage: + */ +.skipped { + margin-top: 5em; + text-align: center; + letter-spacing: 1.0em; + font-weight: bold; +} + +/* +The following style ("interlinear") is used to format running text with an interlinear translation. + +For explanation, see: +http://www.crosswire.org/~dmsmith/interlinear/ + +For use, see: +E/Gazetteer/Places/Europe/Italy/_Texts/HODIHI/2d_edition/1/NoteC*.html +and +E/Journals/ArtBulletin/41/1/Theodosius_or_Justinian*.html +*/ + +SPAN.interlinear SPAN { + float: left; + padding: 0 0.5em 0.5em 0; + text-align: center; +} +SPAN.interlinear SPAN SPAN { + float: none; + padding: 0; + display: block; +} +SPAN.interlinear SPAN SPAN SPAN { + display: inline; +} + +.Coptic { +/* Unicode range from 2C80 */ + font-family: Analecta, Aegyptus ! important; + color: #ff6600 ! important; /* matches .hieroglyphic */ + font-size: 100%; +} + .Coptic .emend { + color: #dd8833 ! important; + } + + .Coptic .emphasis { + color: #cc6600 ! important; + } + +.translit_Coptic { + color: #ff6600 ! important; /* matches .hieroglyphic */ +} + .translit_Coptic .emend { + color: #dd8833 ! important; + } + + .translit_Coptic .emphasis { + color: #cc6600 ! important; + } + +/* +The following style ("hieroglyphic") is STILL IN TEST based on "interlinear". +The sandbox is in + Thayer/hieroglyphic_sandbox.htm +altho also (imperfect and commented out) on + E/Gazetteer/Places/Africa/Egypt/_Topics/history/home.html + */ +SPAN.hieroglyphic { + color: #ff6600 ! important; /* matches .Coptic */ +} +SPAN.hieroglyphic SPAN { + float: left; + padding: 0; + text-align: center; +} +SPAN.hieroglyphic SPAN SPAN { + float: none; + padding: 0; + display: block; + line-height: 70%; +} +SPAN.hieroglyphic SPAN SPAN SPAN { + display: inline-block; +} + +SPAN.hieroglyphic SPAN SPAN.half1 { + line-height: 50%; +} +SPAN.hieroglyphic SPAN SPAN.half1 SPAN { + display: inline-block; +} + +SPAN.hieroglyphic SPAN SPAN.half1 SPAN .up1 { + vertical-align: 10%; +} +SPAN.hieroglyphic SPAN SPAN.half1 SPAN .up2 { + vertical-align: 20%; +} +SPAN.hieroglyphic SPAN SPAN.half1 SPAN .up3 { + vertical-align: 30%; +} +SPAN.hieroglyphic SPAN SPAN.half1 SPAN .up4 { + vertical-align: 40%; +} + +SPAN.hieroglyphic SPAN SPAN.half2 { + line-height: 50%; +} +SPAN.hieroglyphic SPAN SPAN.half2 SPAN { + display: inline-block; +} + +SPAN.hieroglyphic SPAN SPAN.third { + line-height: 33%; +} +SPAN.hieroglyphic SPAN SPAN.third SPAN { + display: inline-block; + padding-bottom: 50px; +} + + +/* +inline_hieroglyphic is used only one page, + E/Roman/Texts/Manetho/History_of_Egypt/1*.html +but successfully + (5 times: notes 2, 6, 49, 67, 72) +It has the advantage of returning correct search results in Google and on the displayed page: + */ + +SPAN.inline_hieroglyphic { + color: #ff6600 ! important; /* matches .Coptic */ + font-weight: bolder ! important; /* VERY important, else unreadable! */ + line-height: 1px; /* forces line height */ +} +SPAN.inline_hieroglyphic .up1 { + vertical-align: 3px; +} +SPAN.inline_hieroglyphic .up2 { + vertical-align: 6px; +} +SPAN.inline_hieroglyphic .up3 { + vertical-align: 9px; +} +SPAN.inline_hieroglyphic .up4 { + vertical-align: 12px; +} +SPAN.inline_hieroglyphic .up5 { + vertical-align: 15px; +} +SPAN.inline_hieroglyphic .up6 { + vertical-align: 18px; +} + +SPAN.inline_hieroglyphic .right1 { + position: relative; + right: -.4em; +} +SPAN.inline_hieroglyphic .right2 { + position: relative; + right: -.6em; +} +SPAN.inline_hieroglyphic .right3 { + position: relative; + right: -.8em; +} +SPAN.inline_hieroglyphic .right4 { + position: relative; + right: -1.0em; +} +SPAN.inline_hieroglyphic .right5 { + position: relative; + right: -1.2em; +} +SPAN.inline_hieroglyphic .right6 { + position: relative; + right: -1.4em; +} +SPAN.inline_hieroglyphic .right7 { + position: relative; + right: -1.6em; +} +SPAN.inline_hieroglyphic .left1 { + position: relative; + left: -.4em; +} +SPAN.inline_hieroglyphic .left2 { + position: relative; + left: -.6em; +} +SPAN.inline_hieroglyphic .left3 { + position: relative; + left: -.8em; +} +SPAN.inline_hieroglyphic .left4 { + position: relative; + left: -1.0em; +} +SPAN.inline_hieroglyphic .left5 { + position: relative; + left: -1.2em; +} +SPAN.inline_hieroglyphic .left6 { + position: relative; + left: -1.4em; +} +SPAN.inline_hieroglyphic .left7 { + position: relative; + left: -1.6em; +} +SPAN.inline_hieroglyphic .left8 { + position: relative; + left: -1.8em; +} +SPAN.inline_hieroglyphic .left9 { + position: relative; + left: -2.0em; +} +SPAN.inline_hieroglyphic .left10 { + position: relative; + left: -2.2em; +} + +/* +The following "quadrat" forms have not yet been used anywhere: + */ +SPAN.inline_hieroglyphic .quadrat { + display: inline-block; + text-align: center; +} + +SPAN.inline_hieroglyphic .quadrat .top { + line-height: 0.5; + vertical-align: text-top; +} + +SPAN.inline_hieroglyphic .quadrat .bottom { + line-height: 0.5; + vertical-align: baseline; +} + + + +/* +Semi-workaround for hieroglyphic used for now only in +E/Gazetteer/Places/Africa/Egypt/_Topics/history/home.html + */ +.hiero2 { + color: #ff6600 ! important; /* matches .Coptic */ +} +.hiero2 .all { + vertical-align: 0em; +} +.hiero2 .mid { + vertical-align: +.2em; +} +.hiero2 .half1 { + line-height: 0.5; + vertical-align: +.65em; +} +.hiero2 .half2 { + line-height: 0.5; + vertical-align: 0em; + position: relative; +/* + left: -0.55em; + */ +} +.skitter1 { + left: -0.55em; +} +.skitter2 { + left: -1.1em; +} + +.skitter3 { + left: -5em; +} + +.asterisks { + color: #0066cc ! important; + text-align: center; + letter-spacing: .5em; +} + +TR.gazetteer { + background-color: #99ffcc ! important; +} + +SPAN.map_callout { + font-family: Verdana, sans-serif; + text-transform: none; + background-color: #3300ff ! important; + color: #ffffff ! important; +} + +SPAN.map_callout_red { + font-family: Verdana, sans-serif; + text-transform: none; + background-color: #ff0000 ! important; + color: #ffffff ! important; +} + +SPAN.small_map_callout { + font-size: 60%; + font-family: Verdana, sans-serif; + text-transform: none; + vertical-align: +.2em; + background-color: #3300ff ! important; + color: #ffffff ! important; +} + +SPAN.small_map_callout_red { + font-size: 60%; + font-family: Verdana, sans-serif; + text-transform: none; + vertical-align: +.2em; + background-color: #ff0000 ! important; + color: #ffffff ! important; +} + +A { + text-decoration: none; + -webkit-hyphens: none; + -ms-hyphens: none; + hyphens: none; +} + +.verse_speaker { + position: absolute; + top: auto; + margin-left: -8.5em; + margin-bottom: .1em; + margin-top: .1em; + height: 0em; + font-size: .8rem; + font-style: italic; + font-family: Verdana, Ariel, Helvetica, sans-serif; + text-align: right; +} + +.speaker { + position: absolute; + top: auto; + margin-left: -4em; + margin-bottom: .1em; + margin-top: .1em; + height: 0em; + width: 3em; + font-size: .8rem; + font-style: italic; + font-family: Verdana, Ariel, Helvetica, sans-serif; + text-align: right; +} + .m1 .speaker { + position: absolute; + top: auto; + margin-left: -5em; + } + +.obelus { + position: absolute; + top: auto; + margin-left: -3.7em; + margin-bottom: 0em; + margin-top: .1em; + height: 0em; + width: 3em; + font-size: .7rem; + font-family: Verdana, Ariel, Helvetica, sans-serif; + text-align: right; +} + +.box { + width: 60%; + margin-left: auto; + margin-right: auto; + border: 1px solid; + padding: 2em; +} + +/* "multiline" styles are for creating multi-line brackets, parens, integrals, etc. */ +.multiline2 { + position: relative; +} + .multiline2 .sub { + position: absolute; + left: 0em; + bottom: -.4em; +} + .multiline2 .sup { + position: absolute; + left: 0em; + bottom: +.4em; +} + +.multiline3 { + position: relative; +} + + .multiline3 .sub { + position: absolute; + left: 0em; + bottom: -1em; +} + + .multiline3 .sup { + position: absolute; + left: 0em; + bottom: +1em; +} + +.multiline4 { + position: relative; +} + + .multiline4 .sup1 { + position: absolute; + left: 0em; + bottom: +1.5em; +} + + .multiline4 .sup2 { + position: absolute; + left: 0em; + bottom: +.6em; +} + + .multiline4 .sub3 { + position: absolute; + left: 0em; + bottom: -.6em; +} + + .multiline4 .sub4 { + position: absolute; + left: 0em; + bottom: -1.5em; +} + +.translation_flag { + position: absolute; + top: auto; + } + +.line1 { + margin-top: 0em; + margin-bottom: 0em; + margin-left: 2em; + margin-right: 1em; + text-indent: -1em; +} + + .line1 .translation_flag { + margin-left: -4em; + } + +.line2 { + margin-top: 0em; + margin-bottom: 0em; + margin-left: 3em; + margin-right: 2em; + text-indent: -1em; +} + + .line2 .translation_flag { + margin-left: -5em; + } + + .line2 .linenum { + margin-left: -6.4em; +} + + .line2 .obelus { + margin-left: -5.2em; +} + +.line3 { + margin-top: 0em; + margin-bottom: 0em; + margin-left: 4em; + margin-right: 3em; + text-indent: -1em; +} + + .line3 .translation_flag { + margin-left: -6em; + } + + .line3 .linenum { + margin-left: -7.8em; +} + + .line3 .obelus { + margin-left: -6.2em; +} + +.line4 { + margin-top: 0em; + margin-bottom: 0em; + margin-left: 5em; + margin-right: 4em; + text-indent: -1em; +} + + .line4 .translation_flag { + margin-left: -7em; + } + + .line4 .linenum { + margin-left: -8.5em; +} + + .line4 .obelus { + margin-left: -7.2em; +} + +.line5 { + margin-top: 0em; + margin-bottom: 0em; + margin-left: 6em; + margin-right: 5em; + text-indent: -1em; +} + + .line5 .translation_flag { + margin-left: -8em; + } + + .line5 .linenum { + margin-left: -9.5em; +} + + .line5 .obelus { + margin-left: -8.2em; +} + +.line6 { + margin-top: 0em; + margin-bottom: 0em; + margin-left: 7em; + margin-right: 6em; + text-indent: -1em; +} + + .line6 .translation_flag { + margin-left: -9em; + } + + .line6 .linenum { + margin-left: -10.5em; +} + + .line6 .obelus { + margin-left: -9.2em; +} + +.line7 { + margin-top: 0em; + margin-bottom: 0em; + margin-left: 8em; + margin-right: 7em; + text-indent: -1em; +} + + .line7 .translation_flag { + margin-left: -10em; + } + + .line7 .linenum { + margin-left: -11.5em; +} + + .line7 .obelus { + margin-left: -10.2em; +} + +.line8 { + margin-top: 0em; + margin-bottom: 0em; + margin-left: 9em; + margin-right: 8em; + text-indent: -1em; +} + + .line8 .translation_flag { + margin-left: -11em; + } + + .line8 .linenum { + margin-left: -12.5em; +} + + .line8 .obelus { + margin-left: -11.2em; +} + +.line9 { + margin-top: 0em; + margin-bottom: 0em; + margin-left: 10em; + margin-right: 9em; + text-indent: -1em; +} + + .line9 .translation_flag { + margin-left: -12em; + } + + .line9 .linenum { + margin-left: -13.5em; +} + + .line9 .obelus { + margin-left: -12.2em; +} + +.line10 { + margin-top: 0em; + margin-bottom: 0em; + margin-left: 11em; + margin-right: 10em; + text-indent: -1em; +} + + .line10 .translation_flag { + margin-left: -13em; + } + + .line10 .linenum { + margin-left: -14.5em; +} + + .line10 .obelus { + margin-left: -13.2em; +} + +.startline1 { + margin-top: 1.5em; + margin-bottom: 0em; + margin-left: 2em; + margin-right: 1em; + text-indent: -1em; +} + + .startline1 .translation_flag { + margin-left: -4em; + } + +.startline2 { + margin-top: 1.5em; + margin-bottom: 0em; + margin-left: 3em; + margin-right: 2em; + text-indent: -1em; +} + + .startline2 .translation_flag { + margin-left: -5em; + } + + .startline2 .linenum { + margin-left: -6.5em; +} + + .startline2 .obelus { + margin-left: -5.2em; +} + +.alert { + background-color: #ffff66 ! important; + color: #ff0000 ! important; + font-style: italic; +} + .alert A:link { + font-weight: bold; + color: #0000ff ! important; + } + .alert A:visited { + font-weight: bold; + color: #0000ff ! important; + } + .alert A:hover { + font-weight: bold; + color: #0000ff ! important; + } + .alert A:active { + font-weight: bold; + color: #0000ff ! important; + } + +.apparatus { + font-style: italic; +} + + .apparatus I { + font-style: normal; + font-size: 90%; + } + + .apparatus .Latin { + font-style: normal; + font-size: 95%; + } + + .apparatus .Greek { + font-style: normal; + } + + .apparatus .manuscript { + font-style: normal; + } + +.attention { + color: #ff0000 ! important; + font-style: italic; +} + +.center { + text-align: center; +} + +.crux { + background-color: #ffff66 ! important; + color: #ff0000 ! important; + vertical-align: top; + font-size: 80%; + font-style: normal; +} + .crux A:link { + font-weight: bold; + color: #0000ff ! important; + } + .crux A:visited { + font-weight: bold; + color: #0000ff ! important; + } + .crux A:hover { + font-weight: bold; + color: #0000ff ! important; + } + .crux A:active { + font-weight: bold; + color: #0000ff ! important; + } + + +.disordered_section { + text-align: center; + font-size: 85%; + font-style: italic; + background-color: #ccffff ! important; +} + +/* +syntax: 12 + */ +.stacked_fraction { + display: inline-block; + text-align: center; + font-size: 40%; + padding-left: 4px; +} + +.stacked_fraction .top { + padding-left: 4px; + text-decoration: underline; +} + +.stacked_fraction .bottom { + padding-left: 4px; + line-height: 0.6; + display: block; +} + +/* +syntax: 1/2 + */ +.fraction { + font-size: 60%; + vertical-align: middle; +} + +.fraction .top { + vertical-align: 25%; +} + +.fraction .bottom { + vertical-align: -10%; +} + +.inscription { + font-family: Verdana, sans-serif; + font-size: 80%; + line-height: 1.875; /* normal line height of 1.5 × (100%/80%) */ + -webkit-hyphens: none; + -ms-hyphens: none; + hyphens: none; +} + + .inscription .superscript { + font-size: 50%; + vertical-align: top; + } + +.kaput { + color: #666666 ! important; +} + +.lapis { + font-family: Verdana, sans-serif; + font-size: 80%; + color: #990000 ! important; + line-height: 1.5; +} + + .lapis .superscript { + font-size: 50%; + vertical-align: top; + } + + .lapis .emend { + color: #ee6633 ! important; + } + +.ligature { + color: #006666 ! important; +} + +.manuscript { + color: #000066 ! important; + font-family: Arial, sans-serif; + font-style: normal; + font-weight: bold; + font-size: 75%; +} + +.notice { + color: #003300 ! important; +} + +.offlinks { + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-size: 112%; + font-weight: bold; +} + +.Old_English { + text-transform: none; + font-family: Canterbury, "Cloister Black", Cimbrian, Raubtier, Lancaster, Augusta, Rochester, PaladinFLF, "Kleukens-Fraktur", "Palatino Linotype", Palatino, "Arial Unicode Ms", "Titus Cyberbit Basic", "Lucida Sans Unicode", serif, sans-serif ! important; +} + +.override_link { + color: #99ffff ! important; +} + +.overstrike { + text-decoration: line-through; +} + +.Palatino10 { + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-size: 69%; +} + +.bypass { +/* +same color as: poor_reading + */ + color: #999999 ! important; +} + + .Greek .bypass { + color: #ddc085 ! important; + } + + .Latin .bypass { + color: #999999 ! important; + } + +.poor_reading { +/* +same color as: bypass + */ + color: #999999 ! important; + text-decoration: line-through; +} + + .Greek .poor_reading { + color: #ddc085 ! important; + } + + .Latin .poor_reading { + color: #999999 ! important; + } + +.Roman { + color: #ff40c5 ! important; +} + +.site_summary { + font-family: sans-serif; + font-weight: normal; + font-size: 56%; +} + +.source { + color: #006600 ! important; +} + + .source .emend { + color: #119955 ! important; + } + + .source .Italian { + color: #002200 ! important; + } + + .source .source { + color: #002200 ! important; + } + +.Spanish { + color: #778800 ! important; +} + + .Spanish .emend { + color: #119955 ! important; + } + + .Spanish .source { + color: #002200 ! important; + } + +.superheading { + margin-top: 5em; + font-weight: bold; + text-transform: uppercase; + color: #009900 ! important; +} + +.two_links { +/* +for format, see +E/Gazetteer/Places/America/United_States/_Topics/history/_Texts/LESUSC/Bibliography*.html + */ + background-color: #f5d6e9 !important; + border-radius: 10% !important; + padding-top: 3px !important; + padding-bottom: 1px !important; + padding-left: 5px !important; + padding-right: 5px !important; + display: inline; + overflow: hidden; + white-space: nowrap; + + color: #00ff00 !important; + font-size: .6rem !important; + vertical-align: 1px; +} + .two_links A:link { + font-weight: bold; + color: #0000ff ! important; + } + .two_links A:visited { + font-weight: bold; + color: #ff0000 ! important; + } + .two_links A:hover { + font-weight: bold; + color: #ff00ff ! important; + } + +.whole { + -webkit-hyphens: none; + -ms-hyphens: none; + hyphens: none; +} + +.xURL { + font-family: Monaco, Consolas; +} + +.disclaimer_bar { + margin-top: 0em; + margin-bottom: 0em; + font-family: Verdana, Ariel, Helvetica, sans-serif; + font-size: 60%; + text-align: center; + background-color: #000000 ! important; + color: #ffff33 ! important; +} + + .disclaimer_bar P { + margin-top: 0em; + margin-bottom: 0em; + } + +.help_bar { + margin-top: 0em; + margin-bottom: 0em; + font-family: Verdana, Ariel, Helvetica, sans-serif; + font-size: 60%; + text-align: center; + background-color: #478acc ! important; + color: #ffffff ! important; +} + + .help_bar P { + margin-bottom: 1.5em; + } + + .help_bar A:link { + color: #ffff00 ! important; + font-style: italic; + font-weight: bold; + } + + .help_bar A:visited { + color: #ff6600 ! important; + font-style: italic; + font-weight: bold; + } + + .help_bar I { + line-height: .6; + font-size: 120%; + font-style: normal; + font-weight: bold; + color: #ff99cc ! important; + } + + .help_bar .asterisk { + line-height: .7; + font-size: 140%; + font-style: normal; + font-weight: bold; + color: #ff99cc ! important; + vertical-align: bottom; + } + +.high_alert { + background-color: #ffff33 ! important; + color: #ff0000 ! important; +} + +.left { + text-align: left; +} + +.right { + text-align: right; +} + +.a0 { + margin-bottom: 0em; +} + +.a1 { + margin-bottom: 1em; +} + +.a2 { + margin-bottom: 5em; +} + +.reduced_leading { + margin-top: -.7em; +} + +/* Jun 2017: used only in HALAHS */ +.strip { + margin-bottom: .3em; +} + +.b0 { + margin-top: 0em; +} + +.b1 { + margin-top: 1em; +} + +.nudge { + margin-top: 0.25em; +} + +.halfstart { + margin-top: 1.5em; +} + +.minirubric { + margin-top: 1.85em; +} + +.start { + margin-top: 3em; +} + +.start2 { + margin-top: 5em; +} + +.start3 { + margin-top: 7em; +} + +.halfafter { + margin-bottom: 1.5em; +} + +.after { + margin-bottom: 3em; +} + +.after2 { + margin-bottom: 5em; +} + +.after3 { + margin-bottom: 7em; +} + +.drop5 { + margin-top: 5px; +} + +.critical_note { + text-align: justify; + font-style: italic; +} + + .critical_note I { + font-style: normal; /*(don't italicize)*/ + } + + .critical_note .Latin { + font-style: normal; + color: #990000 ! important; + } + + .critical_note .Greek { + font-style: normal; + } + + .critical_note .manuscript { + font-style: normal; + } + +A.left_margin_ref { + position: absolute; + top: auto; + left: +6em; + text-align: right; + font-family: Verdana, sans-serif; + font-style: normal; + font-size: .58rem; + font-weight: bold; + text-transform: none; + color: #0000ff ! important; + vertical-align: super; +} +A.left_margin_ref:link { + text-decoration: none; + color: #0077cc ! important; +} +A.left_margin_ref:visited { + text-decoration: none; + color: #ff0000 ! important; +} +A.left_margin_ref:hover { + text-decoration: none; + color: #ff0000 ! important; + background-color: #ffff00 ! important; +} + +.running_title { + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + position: absolute; + top: auto; + width: 90px; + left: +65px; + text-align: center; + font-style: normal; + font-weight: normal; + text-transform: none; + font-variant: normal; + font-size: 15px; + line-height: 1.2; +} + +.my_running_title { + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + position: absolute; + top: auto; + width: 90px; + left: +65px; + text-align: center; + font-size: .60rem; + font-style: italic; + font-weight: normal; + text-transform: none; + font-variant: normal; + line-height: 1.4; + +/* + color matches .emend + */ + +/* +Inside the style, open with a command-space in style "larger", like this: +  +which drops the title down for appearance + */ +} + +.scribal_heading { + margin-top: 3.5em; + margin-left: 3em; + text-indent: -3em; + text-align: justify; + font-size: 90%; + font-style: italic; +} + +.i1 { + text-indent: 1em; +} + +.i1 .running_title { + text-indent: 0; +} + +.i2 { + text-indent: 2em; +} + +.i3 { + text-indent: 3em; +} + +.i4 { + text-indent: 4em; +} + +.i5 { + text-indent: 5em; +} + +.i6 { + text-indent: 6em; +} + +.i7 { + text-indent: 7em; +} + +.i8 { + text-indent: 8em; +} + +.i9 { + text-indent: 9em; +} + +.i10 { + text-indent: 10em; +} + +.i11 { + text-indent: 11em; +} + +.i12 { + text-indent: 12em; +} + +.i13 { + text-indent: 13em; +} + +.i14 { + text-indent: 14em; +} + +.i15 { + text-indent: 15em; +} + +.i16 { + text-indent: 16em; +} + +.i17 { + text-indent: 17em; +} + +.i18 { + text-indent: 18em; +} + +.justify { + text-align: justify; +} + +.justified { + text-align: justify; +} + +.L1 { + margin-left: 1em; +} + +.L2 { + margin-left: 2em; +} + +.L3 { + margin-left: 3em; +} + +.L4 { + margin-left: 4em; +} + +.L5 { + margin-left: 5em; +} + +.L6 { + margin-left: 6em; +} + +.L7 { + margin-left: 7em; +} + +.L8 { + margin-left: 8em; +} + +.L9 { + margin-left: 9em; +} + +.L10 { + margin-left: 10em; +} + +.L11 { + margin-left: 11em; +} + +.L12 { + margin-left: 12em; +} + +.L13 { + margin-left: 13em; +} + +.L14 { + margin-left: 14em; +} + +.L15 { + margin-left: 15em; +} + +.L16 { + margin-left: 16em; +} + +.L17 { + margin-left: 17em; +} + +.L18 { + margin-left: 18em; +} + +.L19 { + margin-left: 19em; +} + +.L20 { + margin-left: 20em; +} + +.r1 { + margin-right: 1em; + text-align: right; +} + +.r2 { + margin-right: 2em; + text-align: right; +} + +.r3 { + margin-right: 3em; + text-align: right; +} + +.r4 { + margin-right: 4em; + text-align: right; +} + +.r5 { + margin-right: 5em; + text-align: right; +} + +.r6 { + margin-right: 6em; + text-align: right; +} + +.r7 { + margin-right: 7em; + text-align: right; +} + +.r8 { + margin-right: 8em; + text-align: right; +} + +.r9 { + margin-right: 9em; + text-align: right; +} + +.r10 { + margin-right: 10em; + text-align: right; +} + +.r11 { + margin-right: 11em; + text-align: right; +} + +.r12 { + margin-right: 12em; + text-align: right; +} + +.r13 { + margin-right: 13em; + text-align: right; +} + +.r14 { + margin-right: 14em; + text-align: right; +} + +.r15 { + margin-right: 15em; + text-align: right; +} + +.r16 { + margin-right: 16em; + text-align: right; +} + +.r17 { + margin-right: 17em; + text-align: right; +} + +.r18 { + margin-right: 18em; + text-align: right; +} + +.r19 { + margin-right: 19em; + text-align: right; +} + +.r20 { + margin-right: 20em; + text-align: right; +} + +.pushright1j { + margin-left: 1em; + text-align: justify; +} + +.pushright2j { + margin-left: 2em; + text-align: justify; +} + +.pushright3j { + margin-left: 3em; + text-align: justify; +} + +.pushright4j { + margin-left: 4em; + text-align: justify; +} + +.pushright5j { + margin-left: 5em; + text-align: justify; +} + +.pushright6j { + margin-left: 6em; + text-align: justify; +} + +.pushright7j { + margin-left: 7em; + text-align: justify; +} + +.pushright8j { + margin-left: 8em; + text-align: justify; +} + +.m1 { + margin-left: 1em; + margin-right: 1em; +} + +.b0m1j { +/* used for "b0 m1 justify" inside overLib boxes where quotes can't be used, as in the signatures of Britannica articles. +The other workaround is to use quotes, calling them " */ + margin-top: 0em; + margin-left: 1em; + margin-right: 1em; + text-align: justify; +} + +.m2 { + margin-left: 2em; + margin-right: 2em; +} + +.m3 { + margin-left: 3em; + margin-right: 3em; +} + +.m4 { + margin-left: 4em; + margin-right: 4em; +} + +.m5 { + margin-left: 5em; + margin-right: 5em; +} + +.m6 { + margin-left: 6em; + margin-right: 6em; +} + +.m7 { + margin-left: 7em; + margin-right: 7em; +} + +.m8 { + margin-left: 8em; + margin-right: 8em; +} + +.m9 { + margin-left: 9em; + margin-right: 9em; +} + +.m10 { + margin-left: 10em; + margin-right: 10em; +} + +.m11 { + margin-left: 11em; + margin-right: 11em; +} + +.m12 { + margin-left: 12em; + margin-right: 12em; +} + +.m13 { + margin-left: 13em; + margin-right: 13em; +} + +.m14 { + margin-left: 14em; + margin-right: 14em; +} + +.m15 { + margin-left: 15em; + margin-right: 15em; +} + +.m16 { + margin-left: 16em; + margin-right: 16em; +} + +.m17 { + margin-left: 17em; + margin-right: 17em; +} + +.m18 { + margin-left: 18em; + margin-right: 18em; +} + +.m19 { + margin-left: 19em; + margin-right: 19em; +} + +.m20 { + margin-left: 20em; + margin-right: 20em; +} + +.x1 { + margin-left: 1em; + text-indent: -1em; +} + +.x2 { + margin-left: 2em; + text-indent: -2em; +} + +.x3 { + margin-left: 3em; + text-indent: -3em; +} + +.x4 { + margin-left: 4em; + text-indent: -4em; +} + +.x5 { + margin-left: 5em; + text-indent: -5em; +} + +.x6 { + margin-left: 6em; + text-indent: -6em; +} + +.x7 { + margin-left: 7em; + text-indent: -7em; +} + +.x8 { + margin-left: 8em; + text-indent: -8em; +} + +.x9 { + margin-left: 9em; + text-indent: -9em; +} + +.x10 { + margin-left: 10em; + text-indent: -10em; +} + +.m1x1 { + margin-left: 2em; + margin-right: 1em; + text-indent: -1em; +} + +.m1x2 { + margin-left: 3em; + margin-right: 1em; + text-indent: -2em; +} + +.m1x3 { + margin-left: 4em; + margin-right: 1em; + text-indent: -3em; +} + +.m1x4 { + margin-left: 5em; + margin-right: 1em; + text-indent: -4em; +} + +.m1x5 { + margin-left: 6em; + margin-right: 1em; + text-indent: -5em; +} + +.m1x6 { + margin-left: 7em; + margin-right: 1em; + text-indent: -6em; +} + +.m1x7 { + margin-left: 8em; + margin-right: 1em; + text-indent: -7em; +} + +.m1x8 { + margin-left: 8em; + margin-right: 1em; + text-indent: -9em; +} + +.m2x1 { + margin-left: 3em; + margin-right: 2em; + text-indent: -1em; +} + +.m2x2 { + margin-left: 4em; + margin-right: 2em; + text-indent: -2em; +} + +.m2x3 { + margin-left: 5em; + margin-right: 2em; + text-indent: -3em; +} + +.m2x4 { + margin-left: 6em; + margin-right: 2em; + text-indent: -4em; +} + +.m3x1 { + margin-left: 4em; + margin-right: 2em; + text-indent: -1em; +} + +.m3x2 { + margin-left: 5em; + margin-right: 2em; + text-indent: -2em; +} + +.m3x3 { + margin-left: 6em; + margin-right: 2em; + text-indent: -3em; +} + +.m3x4 { + margin-left: 7em; + margin-right: 2em; + text-indent: -4em; +} + +.m4x1 { + margin-left: 5em; + margin-right: 2em; + text-indent: -1em; +} + +.m4x2 { + margin-left: 6em; + margin-right: 2em; + text-indent: -2em; +} + +.m4x3 { + margin-left: 7em; + margin-right: 2em; + text-indent: -3em; +} + +.m4x4 { + margin-left: 8em; + margin-right: 2em; + text-indent: -4em; +} + +.m5x1 { + margin-left: 6em; + margin-right: 2em; + text-indent: -1em; +} + +.m5x2 { + margin-left: 7em; + margin-right: 2em; + text-indent: -2em; +} + +.m5x3 { + margin-left: 8em; + margin-right: 2em; + text-indent: -3em; +} + +.m6x1 { + margin-left: 7em; + margin-right: 2em; + text-indent: -1em; +} + +.m6x2 { + margin-left: 8em; + margin-right: 2em; + text-indent: -2em; +} + +.m6x3 { + margin-left: 9em; + margin-right: 2em; + text-indent: -3em; +} + +.m7x1 { + margin-left: 8em; + margin-right: 2em; + text-indent: -1em; +} + +.m7x2 { + margin-left: 9em; + margin-right: 2em; + text-indent: -2em; +} + +.m7x3 { + margin-left: 10em; + margin-right: 2em; + text-indent: -3em; +} + +.m8x1 { + margin-left: 9em; + margin-right: 2em; + text-indent: -1em; +} + +.m8x2 { + margin-left: 10em; + margin-right: 2em; + text-indent: -2em; +} + +.m8x3 { + margin-left: 11em; + margin-right: 2em; + text-indent: -3em; +} + +.m9x1 { + margin-left: 10em; + margin-right: 2em; + text-indent: -1em; +} + +.m9x2 { + margin-left: 11em; + margin-right: 2em; + text-indent: -2em; +} + +.m9x3 { + margin-left: 12em; + margin-right: 2em; + text-indent: -3em; +} + +.m10x1 { + margin-left: 11em; + margin-right: 2em; + text-indent: -1em; +} + +.m10x2 { + margin-left: 12em; + margin-right: 2em; + text-indent: -2em; +} + +.m10x3 { + margin-left: 13em; + margin-right: 2em; + text-indent: -3em; +} + +.m11x1 { + margin-left: 12em; + margin-right: 2em; + text-indent: -1em; +} + +.m11x2 { + margin-left: 13em; + margin-right: 2em; + text-indent: -2em; +} + +.m11x3 { + margin-left: 14em; + margin-right: 2em; + text-indent: -3em; +} + +.m12x1 { + margin-left: 13em; + margin-right: 2em; + text-indent: -1em; +} + +.m12x2 { + margin-left: 14em; + margin-right: 2em; + text-indent: -2em; +} + +.m12x3 { + margin-left: 15em; + margin-right: 2em; + text-indent: -3em; +} + +.m13x1 { + margin-left: 14em; + margin-right: 2em; + text-indent: -1em; +} + +.m13x2 { + margin-left: 15em; + margin-right: 2em; + text-indent: -2em; +} + +.m13x3 { + margin-left: 16em; + margin-right: 2em; + text-indent: -3em; +} + +.m14x1 { + margin-left: 15em; + margin-right: 2em; + text-indent: -1em; +} + +.m14x2 { + margin-left: 16em; + margin-right: 2em; + text-indent: -2em; +} + +.m14x3 { + margin-left: 17em; + margin-right: 2em; + text-indent: -3em; +} + +.m15x1 { + margin-left: 16em; + margin-right: 2em; + text-indent: -1em; +} + +.m15x2 { + margin-left: 17em; + margin-right: 2em; + text-indent: -2em; +} + +.m15x3 { + margin-left: 18em; + margin-right: 2em; + text-indent: -3em; +} + +.linenum0 { + font-size: 70%; + font-family: Verdana, Ariel, Helvetica, sans-serif; +} + +.linenum { + position: absolute; + top: auto; + margin-left: -5em; + margin-bottom: 0em; + margin-top: .1em; + height: 0em; + width: 3em; + font-size: .70rem; + font-family: Verdana, Ariel, Helvetica, sans-serif; + text-align: right; +} + +.verse1 { + margin-top: 0em; + margin-bottom: 0em; + margin-left: 2em; + text-indent: -2em; +} + +.verse2 { + margin-top: 0em; + margin-bottom: 0em; + margin-left: 4em; + text-indent: -2em; +} + +.verse3 { + margin-top: 0em; + margin-bottom: 0em; + margin-left: 6em; + text-indent: -2em; +} + +.verse4 { + margin-top: 0em; + margin-bottom: 0em; + margin-left: 8em; + text-indent: -2em; +} + +.verse5 { + margin-top: 0em; + margin-bottom: 0em; + margin-left: 10em; + text-indent: -2em; +} + +.verse6 { + margin-top: 0em; + margin-bottom: 0em; + margin-left: 12em; + text-indent: -2em; +} + +.verse7 { + margin-top: 0em; + margin-bottom: 0em; + margin-left: 14em; + text-indent: -2em; +} + +.verse8 { + margin-top: 0em; + margin-bottom: 0em; + margin-left: 16em; + text-indent: -2em; +} + +.verse9 { + margin-top: 0em; + margin-bottom: 0em; + margin-left: 18em; + text-indent: -2em; +} + +.verse10 { + margin-top: 0em; + margin-bottom: 0em; + margin-left: 20em; + text-indent: -2em; +} + +.verse11 { + margin-top: 0em; + margin-bottom: 0em; + margin-left: 22em; + text-indent: -2em; +} + +.verse12 { + margin-top: 0em; + margin-bottom: 0em; + margin-left: 24em; + text-indent: -2em; +} + +.bland { + color: #000066 ! important; +} + + .mynote .bland { + color: #000066 ! important; + } + +.bland I { + color: #000066 ! important; +} + +.bland A I { + color: #ff0000 ! important; +} + +.blank { + border-bottom: 1px solid; + white-space:pre; +} + +.blank1 { + width: 20px; + height: 15px; + border-bottom: 1px solid; + white-space:pre; +} + +.blank2 { + width: 50px; + height: 15px; + border-bottom: 1px solid; + white-space:pre; +} + +.empty { + white-space:pre; +} + +.caps { + text-transform: uppercase; +} + +.lowcaps { + font-size: 85%; + text-transform: uppercase; +} + .prose .lowcaps { + word-spacing: 5px; + } + +.lowercase { + text-transform: lowercase; +} + +.no_transform { + text-transform: none; +} + +.telegram { + font-family: Verdana, sans-serif; + font-size: 80%; + line-height: 1.875; /* normal line-height (1.5) divided by font-size 80%: this keeps the line spacing even */ + text-transform: uppercase; +} + .telegram .outquote { + text-transform: none; + } + +.constrained { + line-height: 100%; +} + +.constrained110 { + line-height: 110%; +} + +.constrained90 { + line-height: 90%; +} + +.constrained80 { + line-height: 80%; +} + +.bold { + font-weight: bold; +} + +.italic { + font-style: italic; +} + + .italic I { + font-style: normal; + font-size: 90%; + } + +.normal { + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-size: 100%; + font-style: normal; + font-weight: normal; + text-transform: none; + font-variant: normal; +} + +.thin { + font-weight: normal; +} + +.usual { + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; +} + +.exergue { + margin-top: 6em; + margin-bottom: 3em; + margin-left: 200px; + font-size: 85%; + text-align: justify; +} + +.exergue_left { + margin-top: 6em; + margin-bottom: 3em; + margin-right: 300px; + font-size: 85%; + text-align: justify; +} + +.synopsis { + margin-top: -1.5em; + margin-bottom: 3em; + font-size: 85%; + font-style: italic; + text-align: justify; +} + +/* After the signature block, insert

: See +E/Gazetteer/People/Holden_Evans/Fight_for_a_Better_Navy/2/8*.html#signature_block_example + */ +.signature_block { + float: right; +/* + margin-right: 0px; + */ +} + +.no_float { + clear: both; +} + +.signature_nonce { /* used on only 2 pages */ + position: absolute; + width: 20em; + right: +7em; +} + +/*the "pagenum" styles are linked to the style "poppy"*/ +.pagenum { + position: absolute; +/* +It is positioned relative to the ancestor block, so for style "verse/exquotemark" it requires "PAGENUM WORKAROUND", below. +*/ + top: auto; + right: +1.5em; + width: 70px; + text-align: right; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-style: normal; + font-weight: normal; + text-transform: none; + font-variant: normal; + letter-spacing: normal; + font-size: small; + color: #ff3300 ! important; +} + + .pagenum .Latin { + color: #990000 ! important; + } + + +/* +"pagenum_right" is identical with "pagenum"; Cullum's "pagenum" defaults to LEFT +*/ +.pagenum_right { + position: absolute; + top: auto; + right: +1.5em; + text-align: right; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-style: normal; + font-weight: normal; + text-transform: none; + font-variant: normal; + font-size: small; + color: #ff3300 ! important; +} + +.pagenum_left { + position: absolute; + top: auto; + left: +4.5em; + text-align: left; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-style: normal; + font-weight: normal; + text-transform: none; + font-variant: normal; + font-size: small; + color: #ff3300 ! important; +} + +.i1 .pagenum_left { + left: +3.5em; +} + +.pagenum1 { + position: absolute; + top: auto; + right: +1.5em; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-style: italic; + font-weight: normal; + text-transform: none; + font-variant: normal; + font-size: small; + color: #ff3300 ! important; +} + +.pagenumPassed { + position: absolute; + top: auto; + right: +1.5em; + width: 70px; + text-align: right; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-style: normal; + font-weight: normal; + text-transform: none; + font-variant: normal; + font-size: .75rem; + color: #ff3300 ! important; +} + +/*the color of "poppy" style should be the same as that of the main "pagenum" styles*/ +.poppy { + color: #ff3300 ! important; +} + +.pagenum_doc { + position: absolute; + top: auto; + left: +1.5em; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-style: italic; + font-weight: normal; + text-transform: none; + font-variant: normal; + font-size: .81rem; + color: #ff6666 ! important; +} + +.blankpage { + position: absolute; + top: auto; + right: +1.5em; + width: 120px; + text-align: right; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-size: 60%; + font-style: normal; + font-weight: normal; + text-transform: none; + font-variant: normal; + letter-spacing: normal; + font-size: small; + color: #ff3300 ! important; +} + +.versenum { + position: absolute; + top: auto; + right: 25%; + text-align: right; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-style: normal; + font-variant: normal; + font-size: .70rem; + text-transform: none; + font-weight: normal; + letter-spacing: normal; + color: #bf0000 ! important; +} + +.sourceverse { + line-height: 1.5; + margin-left: 2em; + margin-right: 2em; +} + +.sourceverse P { + margin-top: 0em; + margin-bottom: 0em; + margin-left: 3em; + margin-right: 3em; + text-indent: -3em; +} + +.sourceverse P.i1 { + margin-left: 4em; +} + +.question { + margin-top: 2em; + text-align: justify; + font-style: italic; +} + +.answer { + text-align: justify; + margin-left: 3em; +} + +.searchand { + color: #006600 ! important; + font-weight: bold; +} + +.searchandGreek { + font-family: "Lucida Grande", "Palatino Linotype", "Arial Unicode Ms", "Titus Cyberbit Basic", "Lucida Sans Unicode", sans-serif ! important; + color: #996600 ! important; + font-weight: bold; +} + +.searchandLatin { + color: #990000 ! important; + font-weight: bold; +} + +.citation { + font-family: Verdana, sans-serif; + font-size: 75%; + font-variant: normal; +} + +.editor { + color: #000066 ! important; + font-family: Arial, sans-serif; + font-style: normal; + font-weight: bold; + font-size: 75%; + font-variant: small-caps; +} + +.editor_comment { + color: #000066 ! important; + font-family: Arial, sans-serif; + font-style: italic; +} + +.error { + color: #ff0000 ! important; + font-weight: bold; +} + +.entry { + font-weight: bold; + font-variant: small-caps; +} + +P.excerptor { + margin-top:-1.3em; + margin-bottom:2em; + text-align: right; + font-size: 75%; +} + +/* keep LVHA order: */ +/* A:link, A:visited, A:hover, A:active */ +A.fort:link { + color: #5555cc !important; + border-bottom: dotted #ffff99; +} + +A.fort:visited { + color: #CC4400 !important; + border-bottom: dotted #edddcc; +} + .mynote A.fort:visited { + color: #990000 ! important; + border-bottom: dotted #990000; + } + .mynoteWide A.fort:visited { + color: #990000 ! important; + border-bottom: dotted #990000; + } + +A.fort:hover { + color: #edddcc !important; + border-bottom: dotted #edddcc; +} + .mynote A.fort:hover { + color: #edddcc ! important; + border-bottom: dotted #edddcc; + } + .mynoteWide A.fort:hover { + color: #edddcc ! important; + border-bottom: dotted #edddcc; + } + +A.fort:active { + color: #edddcc !important; + border-bottom: dotted #edddcc; +} + .mynote A.fort:active { + color: #edddcc ! important; + border-bottom: dotted #edddcc; + } + .mynoteWide A.fort:active { + color: #edddcc ! important; + border-bottom: dotted #edddcc; + } + +.Greek_entry { + font-family: "Avdira", "Titus Cyberbit Basic", serif ! important; + font-weight: bold; +} + +.entry0 { +/* used only in NEW */ + text-align: justify; + font-size: 120%; + font-weight: bold; +} + + .entry0 .start { +/* THIS DOESN'T WORK. "start" only works because the style is defined elsewhere, as I can see if I rename it. Renaming "entry0" to something without the terminal number doesn't help. The CSS checked out at W3C. + + THIS IS WHY I HAVE THE STYLE "entry00", which does work. +*/ + color: #339900 ! important; + margin-top: 3em; + } + +.entry00 { +/* used only in NEW */ + text-align: justify; + font-size: 120%; + font-weight: bold; + color: #339900 ! important; + margin-top: 3em; +} + .entry00 A { + color: #00FF00 ! important; /* THIS DOESN'T WORK. */ + } + +.entry1 { + color: #cc6633 ! important; + font-weight: bold; + font-family: Verdana, Ariel, Helvetica, sans-serif; +} + +.goof { + color: #ff0000 ! important; + font-weight: bold; +} + +.nocaps { + font-variant: normal; +} + +.railroad_symbol { + color: #990000 ! important; + font-family: Arial, sans-serif; + font-style: normal; + font-weight: bold; +} + +.smallcaps { + font-variant: small-caps; +} + +.larger .smallcaps { + font-variant: normal; + text-transform: uppercase; +} + +.prose .smallcaps { + font-family: Fontin_Sans_SC, sans-serif; + letter-spacing: .06em; +/* FOR DEBUG, TOGGLE THE NEXT LINE ON/OFF: */ + +/* color: #ff6600 ! important; */ +} + +/* used rather little so far: see for example +E/Gazetteer/Places/Europe/Italy/Umbria/Terni/Acquasparta/Acquasparta/home.html*/ +.gazetteer_link { + font-variant: small-caps; +} + +.WebRef { + font-family: Verdana, sans-serif; + font-size: 90%; + color: #ff6600 ! important; +} + +/* keep LVHA order: */ +/* A:link, A:visited, A:hover, A:active */ +A:link { + color: #0000ff ! important; +} +/* + A:link I { + color: #0000ff ! important; + } + */ + + A:link IMG { + border-width: 1px; + } + +A:visited { + color: #cc0000 ! important; +} + +A:hover { + color: #ff00ff ! important; +} + +A:active { + color: #ff00ff ! important; +} + +A:link IMG.alias0 { + border-width: 1px; + border-style: dotted; + width: 279px; + height: 186px; + margin: 5px; +} + +A:link IMG.alias1 { + border-width: 1px; + border-style: solid; + width: 279px; + height: 186px; + margin: 5px; +} + +A:link IMG.alias2 { + border-width: 2px; + border-style: solid; + width: 279px; + height: 186px; + margin: 4px; +} + +A:link IMG.alias4 { + border-width: 4px; + border-style: solid; + width: 279px; + height: 186px; + margin: 2px; +} + +A:link IMG.icon0 { + border-width: 1px; + border-style: dotted; + width: 132px; + height: 88px; + margin-top: 10px; + margin-bottom: 5px; + margin-left: 5px; + margin-right: 5px; +} + +A:link IMG.icon1 { + border-width: 1px; + border-style: solid; + width: 132px; + height: 88px; + margin-top: 10px; + margin-bottom: 5px; + margin-left: 5px; + margin-right: 5px; +} + +A:link IMG.icon2 { + border-width: 2px; + border-style: solid; + width: 132px; + height: 88px; + margin-top: 11px; + margin-bottom: 4px; + margin-left: 4px; + margin-right: 4px; +} + +A:link IMG.icon4 { + border-width: 4px; + border-style: solid; + width: 132px; + height: 88px; + margin-top: 13px; + margin-bottom: 2px; + margin-left: 2px; + margin-right: 2px; +} + +A:link IMG.rubric0 { + border-width: 1px; + border-style: dotted; + width: 132px; + height: 88px; + margin-left: 15px; + margin-right: 15px; +} + +A:link IMG.rubric1 { + border-width: 1px; + border-style: solid; + width: 132px; + height: 88px; + margin-left: 15px; + margin-right: 15px; +} + +A:link IMG.rubric2 { + border-width: 2px; + border-style: solid; + width: 132px; + height: 88px; + margin-left: 14px; + margin-right: 14px; +} + +A:link IMG.rubric4 { + border-width: 4px; + border-style: solid; + width: 132px; + height: 88px; + margin-left: 12px; + margin-right: 12px; +} + +A:link IMG.minirubric1 { + border-width: 1px; + border-style: solid; + width: 60px; + height: 40px; + margin-left: 87px; + margin-right: 15px; +} + +A:link IMG.minirubric2 { + border-width: 2px; + border-style: solid; + width: 60px; + height: 40px; + margin-left: 86px; + margin-right: 14px; +} + +A:link IMG.minirubric4 { + border-width: 4px; + border-style: solid; + width: 60px; + height: 40px; + margin-left: 84px; + margin-right: 12px; +} + +A:link IMG.thumb0 { + border-width: 1px; + border-style: dotted; + width: 60px; + height: 40px; + margin-top: 5px; + margin-bottom: 5px; +} + +A:link IMG.thumb1 { + border-width: 1px; + border-style: solid; + width: 60px; + height: 40px; + margin-top: 5px; + margin-bottom: 5px; +} + +A:link IMG.thumb2 { + border-width: 2px; + border-style: solid; + width: 60px; + height: 40px; + margin-top: 4px; + margin-bottom: 4px; +} + +A:link IMG.thumb4 { + border-width: 4px; + border-style: solid; + width: 60px; + height: 40px; + margin-top: 2px; + margin-bottom: 2px; +} + +A.help:hover { + text-decoration: none; + color: #0000ff ! important; + cursor: help; +} + +.added_link { + font-size: 80%; + font-weight: bold; + text-decoration: none; + font-style: italic; + color: #666666 ! important; +} + + .added_link A:link { + color: #5555ff ! important; + } + +A.added_link { + color: #ff6666 ! important; +} + +A.added_link:link { + color: #5555ff ! important; +} + + A .manuscript { + color: #0000ff ! important; +} + + A:hover .manuscript { + color: #ff00ff ! important; +} + +BODY.default A.Cullum { + color: #998500 ! important; + background-color: transparent ! important; /*must match BODY*/ +} + +A.Cullum { + color: #ffdd00 ! important; + background-color: transparent ! important; /*must match BODY*/ + -webkit-hyphens: none; + -ms-hyphens: none; + hyphens: none; /* their names are not to be hyphenated */ +} + + A.Cullum .normal { + color: #0000ff ! important; +} + A.Cullum .emend { + color: #fff199 ! important; +} + A.Cullum .keep { + display: inline; + white-space: nowrap; +} + +A.discreet { + color: #5555cc ! important; +} + + A.discreet:visited { + text-decoration: none; + color: #cc5555 ! important; + } + + A.discreet:hover { + text-decoration: none; + color: #cc55cc ! important; + } + +A:link SPAN.discreet { + color: #7777cc ! important; +} + +A:visited SPAN.discreet { + text-decoration: none; + color: #cc7777 ! important; +} + +A:hover SPAN.discreet { + text-decoration: none; + color: #cc77cc ! important; +} + +A.quiet { + color: inherit ! important; +} + +A.quiet:hover { + text-decoration: none; + color: #0077cc ! important; + background-color: #ffff00 ! important; +} + +.offsite_link { + text-decoration: none; + font-style: italic; + color: #0000ff ! important; +} + +A.offsite_link { + font-weight: bold; + text-decoration: none; + font-style: italic; + color: #0000ff ! important; +} + +A.offsite_link:link { + color: #0000ff ! important; +} + +A.sec { + font-family: "Palatino Linotype", Palatino, "Arial Unicode Ms", "Titus Cyberbit Basic", "Lucida Sans Unicode", serif ! important; + font-size: 70%; + text-transform: none; + font-weight: normal; + color: #bf0000 ! important; + vertical-align: 10%; +} + +A.sec_for_proofing { + font-family: "Palatino Linotype", Palatino, "Arial Unicode Ms", "Titus Cyberbit Basic", "Lucida Sans Unicode", serif ! important; + font-size: 200%; + text-transform: none; + font-weight: normal; + color: #00aa00 ! important; + vertical-align: 10%; +} + +A/* keep the space that follows*/ .Latin { + color: #0066cc ! important; +} + +A:hover/* keep the space that follows*/ .Latin { + color: #ff00ff ! important; +} + +A/* keep the space that follows*/ .Greek { + color: #0066cc ! important; +} + +A:hover/* keep the space that follows*/ .Greek { + color: #ff00ff ! important; +} + +A.chapter { + font-size: 1.3em; + color: #bf0000 ! important; + text-decoration: none; + font-style: normal; + line-height: .5; +} + +A.GridRef:link { + font-family: Verdana, sans-serif; + color: #ff6600 ! important; +} + +A.GridRef:visited { + font-family: Verdana, sans-serif; + color: #cc0000 ! important; +} + +A.GridRef:hover { + font-family: Verdana, sans-serif; + color: #ff00ff ! important; +} + +A.GridRef:active { + font-family: Verdana, sans-serif; + color: #ff00ff ! important; +} + +A.Britannica_signature { + cursor: crosshair; + font-weight: normal; + color: #0000ff ! important; + vertical-align: top; +} + + A.Britannica_signature:link { + text-decoration: none; + color: #0000ff ! important; + } + +A.comment { + cursor: crosshair; + font-family: Verdana, sans-serif; + font-size: 53%; + font-style: normal; + font-weight: normal; + color: #0000ff ! important; + vertical-align: top; +} + + A.comment:link { + text-decoration: none; + color: #0000ff ! important; + } + + A.comment .center { + margin-top: 0em; + margin-bottom: 0em; + } + + A.comment SPAN.source { + font-weight: bold; + color: #006600! important; + } + +SPAN.promptsource { + font-weight: bold; + color: #009900 ! important; +} + +.correction { + cursor: crosshair; + font-family: Verdana, sans-serif; + font-size: 53%; + font-style: normal; + font-weight: normal; + color: #ff0000 ! important; + vertical-align: top; +} + + A.correction:link { + text-decoration: none; + color: #ff0000 ! important; + } + +SPAN.conversion { + color: #0099ff ! important; +} + +.white A.conversion { + color: #00ccff ! important; + vertical-align: super; + line-height: .3; +} + +.white .outquote { + color: #8533ad ! important; +} + +A.conversion { + cursor: crosshair; + font-family: Verdana, sans-serif; + font-size: 100%; + font-weight: normal; + color: #0099ff ! important; + vertical-align: super; + line-height: .3; +} + + A.conversion:link { + text-decoration: none; + color: #0099ff ! important; + } + +A.glossary { + cursor: crosshair; + font-family: Verdana, sans-serif; + font-size: 100%; + font-weight: normal; + color: #ff3366 ! important; + vertical-align: super; + line-height: .3; +} + +A.glossary:link { + text-decoration: none; + color: #ff3366 ! important; +} + +A.offpage { + font-size: 100%; + font-weight: normal; + color: #009900 ! important; + vertical-align: super; + line-height: .3; +} + +A.offpage:link { + text-decoration: none; + color: #009900 ! important; +} + +A.note { + font-family: Verdana, sans-serif; + font-style: normal; + font-size: 58%; + font-weight: bold; + text-transform: none; + color: #0000ff ! important; + vertical-align: super; +} +A.note:link { + text-decoration: none; + color: #0077cc ! important; +} +A.note:visited { + text-decoration: none; + color: #ff0000 ! important; +} +A.note:hover { + font-size: 81%; + text-decoration: none; + color: #ff0000 ! important; + background-color: #ffff00 ! important; +} + + A.note .Greek { + font-family: "Avdira", "Titus Cyberbit Basic", serif ! important; + color: #ff0000 ! important; + } + +A.guest_note { + font-family: "Avdira", "Titus Cyberbit Basic", serif ! important; + font-style: normal; + font-size: 58%; + font-weight: bold; + text-transform: none; + color: #0000ff ! important; + vertical-align: super; +} +A.guest_note:link { + text-decoration: none; + color: #0077cc ! important; +} +A.guest_note:visited { + text-decoration: none; + color: #ff0000 ! important; +} +A.guest_note:hover { + font-size: 81%; + text-decoration: none; + color: #ff0000 ! important; + background-color: #ffff00 ! important; +} + +A.note_for_proofing { + font-family: Verdana, sans-serif; + font-style: normal; + font-size: 200%; + font-weight: bold; + text-transform: none; + color: #0000ff ! important; + vertical-align: super; +} + +A.note_for_proofing:hover { + font-family: Verdana, sans-serif; + font-style: normal; + font-size: 200%; + font-weight: bold; + text-transform: none; + color: #ff0000 ! important; + background-color: #ffff00 ! important; + vertical-align: super; +} + +A.note_for_proofing:visited { + text-decoration: none; + color: #ff0000 ! important; +} + +.paragraph_summary { + position: absolute; + top: auto; + text-align: right; + left: +10px; + width: 70px; + font-family: "Palatino Linotype", Palatino, "Arial Unicode Ms", "Titus Cyberbit Basic", "Lucida Sans Unicode", serif ! important; + font-size: .60rem; + text-transform: none; + font-weight: normal; + color: #660000 ! important; +} + +A.ref { + font-family: Verdana, sans-serif; + font-style: normal; + font-size: 58%; + font-weight: bold; + font-variant: normal; + padding: .2em; + text-transform: none; + color: #0000ff ! important; + vertical-align: super; +} +A.ref:link { + text-decoration: none; + color: #0077cc ! important; +} +A.ref:visited { + text-decoration: none; + color: #ff0000 ! important; +} +A.ref:hover { + text-decoration: none; + color: #ff0000 ! important; + background-color: #ffff00 ! important; +} + + A.ref .Greek { + font-family: "Avdira", "Titus Cyberbit Basic", serif ! important; + color: #ff0000 ! important; + } + +H1 H2 H3 A.ref { + font-size: 75%; +} + +H3.apparatus { + margin-top: 2em; + margin-bottom: 1em; + font-weight: normal; + font-style: italic; + /* font-size: 70%; DOESN'T SEEM TO WORK? */ +} + +A.ref_for_proofing { + font-family: Verdana, sans-serif; + font-style: normal; + font-size: 200%; + font-weight: bold; + text-transform: none; + color: #0000ff ! important; + vertical-align: super; +} + +A.ref_for_proofing:hover { + font-family: Verdana, sans-serif; + font-style: normal; + font-size: 200%; + font-weight: bold; + text-transform: none; + color: #ff0000 ! important; + background-color: #ffff00 ! important; + vertical-align: super; +} +A.ref_for_proofing:visited { + text-decoration: none; + color: #ff0000 ! important; +} + +A.ref1 { + font-family: Verdana, sans-serif; + font-style: normal; + font-size: 58%; + font-weight: bold; + text-transform: none; + color: #0099ff ! important; + vertical-align: super; +} + +A.ref_in_text { + font-family: Verdana, sans-serif; + font-style: italic; + font-size: 62%; + font-weight: bold; + text-transform: none; + color: #5555ff ! important; +} + +A.ref_in_text:link { + text-decoration: none; + color: #5555ff ! important; +} + +A.ref_in_text:visited { + text-decoration: none; + color: #ff0000 ! important; +} + +A.ref_in_text:hover { + text-decoration: none; + color: #0077cc ! important; + background-color: #ffff00 ! important; +} + +A.guest_ref { + font-family: "Avdira", "Titus Cyberbit Basic", serif ! important; + font-style: normal; + font-size: 58%; + font-weight: bold; + font-variant: normal; + padding: .2em; + text-transform: none; + color: #0000ff ! important; + vertical-align: super; +} +A.guest_ref:link { + text-decoration: none; + color: #0077cc ! important; +} +A.guest_ref:visited { + text-decoration: none; + color: #ff0000 ! important; +} +A.guest_ref:hover { + text-decoration: none; + color: #ff0000 ! important; + background-color: #ffff00 ! important; +} + +.inline_note { + font-style: italic; + color: #cc0000 ! important; + font-family: Verdana, sans-serif; + font-size: 90%; +} + +INS.slip { + cursor: crosshair; + text-decoration: none; + border-bottom: dotted green; + border-bottom-width: thin; +} +/* +INS.slip1 { + cursor: URL(https://penelope.uchicago.edu/Thayer/Images/Utility/Cursors/arrowleft3.png), auto; + text-decoration: none; + border-bottom: dotted green; + border-bottom-width: thin; +} + */ + +INS.divergence { + cursor: crosshair; + text-decoration: none; + border-bottom: dotted red; + border-bottom-width: medium; +} + +.TextHas { + color: #009900 ! important; + font-weight: bold; +} + +SPAN.ref { + font-family: Verdana, sans-serif; + text-transform: none; + color: #000066 ! important; + font-weight: bold; + font-size: 58%; + vertical-align: super; +} + +SPAN.ref_for_proofing { + font-family: Verdana, sans-serif; + text-transform: none; + font-weight: bold; + font-size: 200%; + vertical-align: super; +} + +/* +The purpose of the following styles (quotemark, exquotemark) is to put the initial quotation mark outside the centered quote (verse). The CSS standards explicitly state that the following box is calculated as though the preceding box were not offset + (https://www.w3.org/TR/REC-CSS2/visuren.html#propdef-position) +thus requiring the "exquotemark" workaround. + +PAGENUM WORKAROUND: +To get pagenums to insert correctly at a line in the middle of a poem, follow this format: +

 p585  +

+ +To get pagenums to insert correctly at the beginning of a poem that starts a page, follow the same format (but if "start" is needed, "start" goes in BOTH

declarations), as for example: +

 p383  +

+ +Sometimes this latter workaround doesn't seem to work, either, as in p156 and p158 of +▸ E/Gazetteer/Places/America/United_States/Navy/_Texts/MERLIF/30*.html#Lament +where I substitute another method, not altogether satisfactorily. + +*/ +.quotemark { + position: relative; + left: -.1em; + text-transform: none; + font-weight: normal; +} + +P.exquotemark { + position: relative; + left:.2em; + text-transform: none; + font-weight: normal; +} + +.verse .quoted P { + position: relative; + left: .2em; + text-transform: none; + font-weight: normal; +} + +.verse .quoted P.first { + position: relative; + left: 0em; + text-transform: none; + font-weight: normal; +} + + +/* +.verse A.sec { + position: absolute; + top: auto; + left: +12.5em; + text-align: left; +} + */ + +A.subsec { + font-size: 70%; + font-weight: normal; + font-style: normal; + text-transform: uppercase; + color: #bf0000 ! important; + vertical-align: 20%; +} + +/*The following 2 are completely synonymous, for convenience:*/ +.underscore { + text-decoration: underline; +} +.underline { + text-decoration: underline; +} + +A.Tsec { + position: absolute; + top: auto; + left: +2em; + text-align: right; + font-family: Courier, serif ! important; + font-size: .70rem; + text-transform: uppercase; + font-style: normal; + font-weight: normal; + font-variant: normal; + color: #006600 ! important; +} + +TABLE.verse A.Tsec { + position: absolute; + top: auto; + left: +3.8em; /* basic margin + 1.8 */ + text-align: right; + font-family: Courier, serif ! important; + font-size: .70rem; + text-transform: uppercase; + font-style: normal; + font-weight: normal; + font-variant: normal; + color: #006600 ! important; +} + +A.Tsubsec { + position: absolute; + top: auto; + left: +3.85em; + font-family: Courier, serif ! important; + font-size: .70rem; + text-transform: uppercase; + font-style: normal; + font-weight: normal; + font-variant: normal; + color: #006600 ! important; +} + +A.Tsubsec_correction { + position: absolute; + top: auto; + left: +5.8em; + font-family: Verdana, sans-serif; + font-size: .53rem; + font-weight: normal; + font-style: normal; + color: #ff0000 ! important; + vertical-align: top; +} + + A.correction:link { + text-decoration: none; + color: #ff0000 ! important; + } + +/* used at first only in E/Roman/Texts/secondary/journals/TAPA/43/The_Ferentinum_of_Horace*.html +It must be used OUTSIDE any */ +.citation_left { + position: absolute; + top: auto; + left: +7.5em; + font-size: .70rem; + font-weight: normal; + font-style: normal; + color: #000066 ! important; +} + +TABLE.verse A.Tsubsec { + left: +8.85em; /* basic margin +5.0 */ +} + +P.stars { + margin-top: 1.5em; + font-size: 140%; + letter-spacing: 1.0em; + text-align: center; +} + +P.topstars { + text-align: center; + margin-top: 1.5em; + margin-bottom: 0em; +} + +P.bottomstars { + text-align: center; + margin-top: -1em; +} + +P.verse A.Tsubsec { + left: +7.4em; /* basic margin +3.3 */ +} + +P.verse1 A.Tsubsec { + left: +3.85em; /* basic margin +3.3 -2+2+ adjustment 3.9 */ +} + +P.verse2 A.Tsubsec { + left: +1.65em; /* basic margin +3.3 -4+2 */ +} + +P.verse3 A.Tsubsec { + left: -0.7em; /* basic margin +3.3 -6+2 */ +} + +P.verse4 A.Tsubsec { + left: -2.95em; /* basic margin +3.3 -8+2 */ +} + +P.verse5 A.Tsubsec { + left: -5.2em; /* basic margin +3.3 -10+2 */ +} + +P.verse6 A.Tsubsec { + left: -7.5em; /* basic margin +3.3 -12+2 */ +} + +P.verse7 A.Tsubsec { + left: -9.75em; /* basic margin +3.3 -14+2 */ +} + +P.verse8 A.Tsubsec { + left: -12em; /* basic margin +3.3 -14+2 */ +} + +A.Latin { + color: #cc6633 ! important; +} + +A.entry1 { + color: #3366ff ! important; + font-variant: normal; + font-weight: bold; + font-size: 90%; + font-family: Verdana, Ariel, Helvetica, sans-serif; +} + +DIV.further { + position: absolute; + top: auto; + font-size: .50rem; /* necessary to produce correct right margin*/ + right: +4em; +} + +DIV.default { + color: #000066 ! important; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; +} + +DIV.default1 { /* has now been replaced thruout by DIV.spacious */ + margin-left: 5em; + margin-right: 5em; + color: #000066 ! important; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; +} + +DIV.alert { /* mynote with background-color and color changed */ + background-color: #ffff66 ! important; + text-align: justify; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-size: 85%; + color: #ff0000 ! important; + margin-top: 1.6em; + margin-left: 100px; + margin-right: 100px; + padding-top: 0.4em; + padding-bottom: 0.4em; + padding-left: 1.3em; + padding-right: 1.3em; + border-style: double +} + +DIV.alert400 { /* mynoteNarrow with background-color and color changed */ + background-color: #ffff66 ! important; + text-align: justify; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-size: 85%; + color: #ff0000 ! important; + margin-top: 1.6em; + margin-bottom: 1.6em; + width: 400px; + margin-left: auto; + margin-right: auto; + padding-top: 0.4em; + padding-bottom: 0.4em; + padding-left: 1.3em; + padding-right: 1.3em; + border-style: double +} + +DIV.alert600 { +/* +mynote with background-color and color changed, +WIDTH matches TABLE.headerbox +*/ + background-color: #ffff66 ! important; + text-align: justify; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-size: 85%; + color: #ff0000 ! important; + font-style: italic; + margin-top: 10em; + margin-bottom: 1.6em; + width: 600px; + margin-left: auto; + margin-right: auto; + padding-top: 0.4em; + padding-bottom: 0.4em; + padding-left: 1.3em; + padding-right: 1.3em; + border-style: double +} + +DIV.slimBox { + background-color: #ccffff ! important; + text-align: justify; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-size: 85%; + color: #000066 ! important; +/* + margin-top: 1.6em; + */ + margin-left: 100px; + margin-right: 100px; +/* + padding-top: 0.4em; + padding-bottom: 0.4em; + */ + padding-left: 1.3em; + padding-right: 1.3em; + border-style: double +} + + .slimBox A:link { + color: #0000ff ! important; + } + .slimBox A:visited { + color: #ff0000 ! important; + } + .slimBox A:hover { + color: #ff00ff ! important; + } + .slimBox A:active { + color: #ff00ff ! important; + } + .slimBox P { + margin-bottom: 0em; + margin-top: 0em; + } + +DIV.mynote { + background-color: #ccffff ! important; + text-align: justify; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-size: 85%; + color: #000066 ! important; + margin-top: 1.6em; + margin-left: 100px; + margin-right: 100px; + padding-top: 0.4em; + padding-bottom: 0.4em; + padding-left: 1.3em; + padding-right: 1.3em; + border-style: double +} + + .mynote A:link { + font-weight: bold; + color: #0000ff ! important; + } + .mynote A:visited { + font-weight: bold; + color: #ff0000 ! important; + } + .mynote A:hover { + font-weight: bold; + color: #ff00ff ! important; + } + .mynote A:active { + font-weight: bold; + color: #ff00ff ! important; + } + .mynoteWide A:link { + font-weight: bold; + color: #0000ff ! important; + } + .mynoteWide A:visited { + font-weight: bold; + color: #ff0000 ! important; + } + .mynoteWide A:hover { + font-weight: bold; + color: #ff00ff ! important; + } + .mynoteWide A:active { + font-weight: bold; + color: #ff00ff ! important; + } + .mynoteNarrow A:link { + font-weight: bold; + color: #0000ff ! important; + } + .mynoteNarrow A:visited { + font-weight: bold; + color: #ff0000 ! important; + } + .mynoteNarrow A:hover { + font-weight: bold; + color: #ff00ff ! important; + } + .mynoteNarrow A:active { + font-weight: bold; + color: #ff00ff ! important; + } + .mynoteNarrowest A:link { + font-weight: bold; + color: #0000ff ! important; + } + .mynoteNarrowest A:visited { + font-weight: bold; + color: #ff0000 ! important; + } + .mynoteNarrowest A:hover { + font-weight: bold; + color: #ff00ff ! important; + } + .mynoteNarrowest A:active { + font-weight: bold; + color: #ff00ff ! important; + } + + DIV.mynote .Latin { + color: #990000 ! important; + } + + .mynote .source { + color: #00AA00 ! important; + } + + .mynote .outquote { + color: #7700b3 ! important; + } + + +DIV.mynote0 { + background-color: #ccffff ! important; + text-align: justify; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-size: 85%; + color: #000066 ! important; + margin-top: 0em; + margin-left: 100px; + margin-right: 100px; + padding-top: 0.4em; + padding-bottom: 0.4em; + padding-left: 1.3em; + padding-right: 1.3em; + border-style: double +} + .mynote0 .outquote { + color: #7700b3 ! important; + } + + +.mynote A.Cullum { + color: #907d45 ! important; + background-color: #ccffff ! important; +} +.mynoteWide A.Cullum { + color: #907d45 ! important; + background-color: #ccffff ! important; +} + +DIV.mynoteNarrow { + background-color: #ccffff ! important; + text-align: justify; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-size: 85%; + color: #000066 ! important; + margin-top: 1.6em; + margin-bottom: 1.6em; + width: 50%; + margin-left: auto; + margin-right: auto; + padding-top: 0.4em; + padding-bottom: 0.4em; + padding-left: 1.3em; + padding-right: 1.3em; + border-style: double +} + .mynoteNarrow .outquote { + color: #7700b3 ! important; + } + +DIV.mynoteNarrowest { + background-color: #ccffff ! important; + text-align: justify; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-size: 85%; + color: #000066 ! important; + margin-top: 1.6em; + margin-bottom: 1.6em; + width: 30%; + margin-left: auto; + margin-right: auto; + padding-top: 0.4em; + padding-bottom: 0.4em; + padding-left: 1.3em; + padding-right: 1.3em; + border-style: double +} + .mynoteNarrowest .outquote { + color: #7700b3 ! important; + } + +DIV.mynoteWide { + background-color: #ccffff ! important; + text-align: justify; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-size: 85%; + color: #000066 ! important; + margin-top: 1.6em; + margin-bottom: 1.6em; + width: 85%; + margin-left: auto; + margin-right: auto; + padding-top: 0.4em; + padding-bottom: 0.4em; + padding-left: 1.3em; + padding-right: 1.3em; + border-style: double +} + DIV.mynoteWide .Latin { + color: #990000 ! important; + } + + +DIV.mynoteBasicH { + background-color: #ccffff ! important; + text-align: justify; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-size: 85%; + color: #000066 ! important; + margin-top: 1.6em; + margin-bottom: 1.6em; + width: 574px; + margin-left: auto; + margin-right: auto; + padding-top: 0.4em; + padding-bottom: 0.4em; + padding-left: 1.3em; + padding-right: 1.3em; + border-style: double +} + +DIV.mynoteBasicH1 { + background-color: #ccffff ! important; + text-align: justify; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-size: 85%; + color: #000066 ! important; + margin-top: 1.6em; + margin-bottom: 1.6em; + width: 574px; + margin-left: auto; + margin-right: auto; + padding-top: 0.4em; + padding-bottom: 0.4em; + border-style: double +} + +DIV.specialBox { +/* Omit + background-color: #ccffff ! important; + color: #000066 ! important; +so that the font+background combination can be further specified (colors stylesheet) +*/ + text-align: justify; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-size: 85%; + margin-top: 1.6em; + margin-left: 100px; + margin-right: 100px; + padding-top: 0.4em; + padding-bottom: 0.4em; + padding-left: 1.3em; + padding-right: 1.3em; + border-style: double +} + +DIV.caption-centered { + margin: .35em; + font-size: 85%; + text-align: center; +} + +DIV.margin2 { + margin-left: 65px; + margin-right: 65px; + font-size: 90%; +} + +DIV.padall { + margin: 10px; +} + +.padall { + margin: 10px; +} + +DIV.reference { + color: #660066 ! important; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-size: 75%; + font-weight: bold; + text-align: center; +} + +DIV.diary_summary { + margin-left: .6em; + margin-right: 1.2em; + text-align: justify; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-size: 85%; +} + +DIV.diary_summary_date { + margin-right: 0.4em; + text-align: right; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-size: 85%; +} + +DIV.no_diary { + margin-left: .6em; + margin-right: 1.2em; + text-align: justify; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-size: 85%; + color: #666666 ! important; +} + +DIV.no_diary_date { + margin-right: 0.4em; + text-align: right; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-size: 85%; + color: #666666 ! important; +} + +.noScript { + text-align: center; + font-family: Verdana, sans-serif; + font-size: 112%; + font-weight: bold; + color: #ff0000 ! important; +} + +.PlaceDescriptor { /* used in GoogleMaps.js*/ + margin-top: 1.5em; + text-align: justify; +} + +DIV.MapBubble { /* used in GoogleMaps.js*/ + width: 200px; /* I'd like it smaller, but Google doesn't allow it, setting a purported minimum width of 204, but in fact it's about 250. */ + margin-top: 0; + margin-left: 0; + margin-right: 0; + font-family: Verdana, sans-serif; + font-style: normal; + text-transform: none; + font-variant: normal; + text-align: justify; + font-size: 50%; + font-weight: normal; +} + +DIV.MapBubbleHeading { /* used in GoogleMaps.js*/ + width: 200px; /* I'd like it smaller, but Google doesn't allow it, setting a purported minimum width of 204, but in fact it's about 250. */ + margin-left: 0; + margin-right: 0; + font-family: Verdana, sans-serif; + font-style: normal; + text-transform: none; + font-variant: normal; + text-align: left; + font-size: 60%; + font-weight: bold; +} + +.map_blue { + color: #7eb3ff ! important; +} + +.map_green { + color: #8cff77 ! important; +} + +.map_orange { + color: #ffa82c ! important; +} + +.map_pink { + color: #ffb4b1 ! important; +} + +.map_purple { + color: #df87ff ! important; +} + +.map_red { + color: #ff7a78 ! important; +} + +.map_yellow { + color: #fdff78 ! important; +} + +.emphasis { + color: #003399 ! important; +} + +.emend { + color: #0066cc ! important; +} + + A:hover .emend { + color: #ff00ff ! important; + } + + .emend .Greek { + color: #dd8833 ! important; + } + + .emend .Latin { + color: #cc3399 ! important; + } + .emend:lang(la) { + color: #cc3399 ! important; + } + +.transcription .emend { + color: #ff6699 ! important; +} + +/* used to render digammas better: */ +.Geneva { + font-family: Geneva; +} + +.Courier { + font-family: Courier, monospace; +} + +I I { /* i.e., within */ + font-style: normal; + font-size: 90%; +} + +SPAN.star { + font-family: Verdana, Ariel, Helvetica, sans-serif; + font-size: 90%; + color: #8800cc ! important; + font-style: italic; +} + + A SPAN.star { + color: #3366ff ! important; + } + + A:hover SPAN.star { + color: #ff00ff ! important; + } + +.fondbleu { + border-top: 0px !important; + border-bottom: 0px !important; + border-left: 0px !important; + border-right: 0px !important; + background-color: #ccffff ! important; + color: #555555 ! important; + border-radius: 8px; + padding-top: 2px !important; + padding-left: 5px !important; + padding-right: 5px !important; + display: inline; + overflow: hidden; + white-space: nowrap; +} + +.fondrose { + border-top: 0px !important; + border-bottom: 0px !important; + border-left: 0px !important; + border-right: 0px !important; + background-color: #ffcccc ! important; + color: #555555 ! important; + border-radius: 8px; + padding-top: 2px !important; + padding-left: 5px !important; + padding-right: 5px !important; + display: inline; + overflow: hidden; + white-space: nowrap; +} + +.fondviolet { + border-top: 0px !important; + border-bottom: 0px !important; + border-left: 0px !important; + border-right: 0px !important; + background-color: #d9e6ff ! important; + color: #555555 ! important; + border-radius: 8px; + padding-top: 2px !important; + padding-left: 5px !important; + padding-right: 5px !important; + display: inline; + overflow: hidden; + white-space: nowrap; +} + +.fondjaune { + border-top: 0px !important; + border-bottom: 0px !important; + border-left: 0px !important; + border-right: 0px !important; + background-color: #ffffcc ! important; + color: #555555 ! important; + border-radius: 8px; + padding-top: 2px !important; + padding-left: 5px !important; + padding-right: 5px !important; + display: inline; + overflow: hidden; + white-space: nowrap; +} + +SPAN.proofread { + color: #28cccc ! important; +} + +SPAN.unproofread { + color: #ff6666 ! important; +} + +SPAN.proof { + color: #009933 ! important; + font-weight: bold; +} + +SPAN.GridRef { + font-family: Verdana, sans-serif; + color: #ff6600 ! important; +} + +.overline { + text-decoration: overline; +} + +.Fraktur { + font-family: TypographerFraktur, "Lucida Blackletter", serif; +} + +.sanserif { + font-family: Verdana, Ariel, Helvetica, sans-serif; +} + +.double { + font-size: 200%; +} + +.large { + font-size: 120%; +} + +.larger { + font-size: 140%; +} + +.largest { + font-size: 160%; +} + +.small { + font-size: 85%; +} + + .small .smaller { + font-size: 88%; + } + +.smaller { + font-size: 75%; +} + +.smallest { + font-size: 60%; +} + +.minuscule { + font-size: 50%; +} + +.sourcecode { + font-family: Courier, monospace; + color: #006600 ! important; + font-size: 85%; +} + +.primary_source { + color: #339900 ! important; +} + +.up215 { + margin-top: -2.15em; +} + +SPAN.subscript { + font-family: Verdana, Ariel, Helvetica, sans-serif; + font-size: 65%; + vertical-align: bottom; +} + +SPAN.superscript { + font-family: Verdana, Ariel, Helvetica, sans-serif; + font-size: 60%; + vertical-align: top; +} + +SPAN.ordinal { + font-family: Verdana, Ariel, Helvetica, sans-serif; + font-size: 60%; + vertical-align: top; + font-variant: none; +} + +SPAN.raised { + vertical-align: 10%; + line-height: 100%; +} + +SPAN.manuscript .superscript { + font-family: Verdana, Ariel, Helvetica, sans-serif; + font-size: 60%; + vertical-align: 70%; +} + +.midalign { + vertical-align: middle; +} + +.ten { + font-size: 62%; +} + +.eleven { + font-size: 69%; +} + +.twelve { + font-size: 75%; +} + +.teensy { + font-size: 37%; +} + +H1 { + font-size: 150%; + text-align: center; + hyphens: none; +} + +H2 { + font-size: 120%; + text-align: center; + hyphens: none; +} + +H3 { + margin-top: 3.5em; + margin-bottom: 2em; + font-size: 100%; + text-align: left; + hyphens: none; +} + +H4 { + font-size: 85%; + hyphens: none; +} + +H5 { + font-size: 60%; + hyphens: none; +} + +H6 { + hyphens: none; +} + +H1, H2, H4.default { + margin-top: 3.5em; + margin-bottom: 2em; +} + +H1.small { + font-size: 120%; + text-align: center; +} + +H1.small_default { + font-size: 120%; + text-align: center; + margin-top: 3.5em; + margin-bottom: 2em; +} + +H2.large_default { + font-size: 150%; + text-align: center; + margin-top: 3.5em; + margin-bottom: 2em; +} + +H2.left { + margin-left: -50px; + font-size: 120%; + text-align: left; +} + +H2.diary { + margin-left: -50px; + margin-top: 6em; + margin-bottom: 2em; + font-size: 120%; + text-align: left; +} + +H3.boxed { + margin-top: 1em; + margin-bottom: 1.5em; + text-align: center; +} + +H3.center { +/* + font-size: 100%; + */ + text-align: center; +} + +H3.start { + margin-top: 3.5em; + margin-bottom: 2em; +} + +H3.start2 { + margin-top: 7.5em; + margin-bottom: 2em; +} + +H3.center-start { + text-align: center; + margin-top: 3.5em; + margin-bottom: 2em; +} + +H4.lowcaps { + font-size: 72%; + text-transform: uppercase; +} + +H4.halfstart { + margin-top: 2.7em; + margin-bottom: 2em; +} + +H4.start { + margin-top: 3.5em; + margin-bottom: 2em; +} + +H5.start { + margin-top: 3.5em; + margin-bottom: 2em; +} + +H6.start { + margin-top: 3.5em; + margin-bottom: 2em; +} + +H4.center-start { + text-align: center; + margin-top: 3.5em; + margin-bottom: 2em; +} + +H3.document { + font-size: 90%; + text-align: center; + font-weight: 300; + font-style: italic; +} + +H4.center { + font-size: 85%; + text-align: center; +} + +H4.interTitle { + margin-top:0; + font-size: 85%; + text-align: center; +} + +H5.center { + font-size: 60%; + text-align: center; +} + +HR { + text-align: center; +} + +HR.endnotes { + text-align: center; + width: 60%; + margin-top:4em; + margin-bottom:2.5em; +} + +HR.default { + text-align: center; + width: 60%; + margin-top:2.5em; + margin-bottom:2.5em; +} + +HR.small { + text-align: center; + width: 15%; + margin-top:2.5em; + margin-bottom:2.5em; +} + +HR.blip { + text-align: center; + width: 50px; + margin-top:.5em; + margin-bottom:.5em; +} + +HR.left { + text-align: left; + margin-top: 0.5em; + margin-bottom: 0.5em; +} + +IMG { + border-width: 0; +/* The hyphenation and alignment specs are for the ALTs, to prevent hyphenation and justify them: */ + text-align: justify; + -webkit-hyphens: none; + -ms-hyphens: none; + hyphens: none; +} + +IMG.setPageWidth { + width: 608px; + height: 20px; +} + +IMG.hedera { + width: 15px; + height: 13px; + margin-top: 1.3em; + margin-bottom: 0.3em; +} + +IMG.rue { + width: 24px; + height: 24px; + margin-top: 1.3em; + margin-bottom: 0.3em; +} + +IMG.WP_grad { + width: 15px; + height: 13px; + border-width: 0; + vertical-align: top; +} + +/* the following is required to make "TR.topBorder" (etc.) work: */ +TABLE.noBorders { + border-collapse: collapse; + border-left: 0px; + border-right: 0px; +} + +TABLE TR.topBorder{ + border-collapse: collapse; + border-top: 1px solid; +} + +TABLE TR.bottomBorder{ + border-collapse: collapse; + border-bottom: 1px solid; +} + +TABLE TR.topandbottomBorder{ + border-collapse: collapse; + border-top: 1px solid; + border-bottom: 1px solid; +} + +TABLE TR.topBorderBold{ + border-collapse: collapse; + border-top: 2px solid; +} + +.leftBorder{ + border-collapse: collapse; + border-left: 1px solid; +} + +.rightBorder{ + border-collapse: collapse; + border-right: 1px solid; +} + +TABLE TR.discreetly_separated{ + border: 3px; + border-style: solid none none; +} + +TABLE.TOC TR.discreetly_separated{ + border-color: #ffffff; +} + +TABLE TR.bottomBorderBold{ + border-collapse: collapse; + border-bottom: 2px solid; +} + +TABLE.columnBorders { + border-collapse: collapse; + border-left: 1px solid; + border-right: 1px solid; +} + + TABLE.columnBorders TR TD { + border-left: 1px solid; + border-right: 1px solid; + } + +TABLE.basicH { + width: 567px; +} + +IMG.basicH { + width: 567px; + height: 378px; +} + +TABLE.iPhoneLargeH { + width: 800px; +} + +IMG.iPhoneLargeH { + width: 800px; + height: 600px; +} + +TABLE.iPhoneH { + width: 567px; +} + +IMG.iPhoneH { + width: 567px; + height: 425px; +} + +TABLE.basicV { + width: 252px; +} + +IMG.basicV { + width: 252px; + height: 378px; +} + +IMG.largeV { + width: 378px; + height: 567px; +} + +IMG.largeS { + width: 567px; + height: 567px; +} + +IMG.H320 { + width: 567px; + height: 320px; +} + +TABLE.V270 { + width: 270px; +} + +IMG.V270 { + width: 270px; + height: 378px; +} + +TABLE.V280 { + width: 280px; +} + +IMG.V280 { + width: 280px; + height: 378px; +} + +TABLE.V300 { + width: 300px; +} + +IMG.V300 { + width: 300px; + height: 378px; +} + +IMG.GoogleLogo { + width: 64px; + height: 26px; +} + +TABLE.leadoff { + border-style: outset; + border-color: #cccccc; + border-width: 12px; + margin-top: 5em; + margin-left: auto; + margin-right: auto; + font-size: 80%; +} + +TABLE.leadoff P{ + margin-left: 15px; + margin-right: 15px; +} + +P.photocredit { + text-align: right; + font-size: 69%; +} + +TABLE.photocreditX { +/* for odd widths; the table width should be set at the photo width + 23 */ + border: 0; + margin: auto; + text-align: right; + font-size: 69%; +} + +TABLE.photocreditH { + width: 590px; /* 567 + 23 */ + border: 0; + margin: auto; + text-align: right; + font-size: 69%; +} + +TABLE.photocreditV { + width: 275px; /* 252 + 23 */ + border: 0; + margin: auto; + text-align: right; + font-size: 69%; +} + +TABLE.photocreditS { + width: 401px; /* 378 + 23 */ + border: 0; + margin: auto; + text-align: right; + font-size: 69%; +} + +/* THIS IS JUST A TEMP PATCH TO PREVENT THE OPERATION OF "contents" INSIDE "leadoff" WHILE I REMOVE THE HUNDREDS OF INSTANCES: */ +TABLE.leadoff .contents{ + font-size: 100%; +} + +IMG.aliasS { + width: 279px; + height: 279px; +} + +TABLE.aliasS { + width: 279px; +} + +IMG.smallS { + width: 252px; + height: 252px; +} + +TABLE.smallS { + width: 252px; +} + +IMG.basicS { + width: 378px; + height: 378px; +} + +TABLE.basicS { + width: 378px; +} + +IMG.b1 { + margin-top: 0; + border-width: 1px; + border-style: solid; +} + +IMG.b2 { + border-width: 2px; + border-style: solid; +} + +IMG.b4 { + border-width: 4px; + border-style: solid; +} + +IMG.flag { + border-width: 1px; + border-style: solid; + width: 30px; + height: 20px; + margin-top: 2px; + margin-bottom: 2px; +} + +TABLE.verse A.flag { + float: left; + margin-left: -4em; +} + +.verse A.sec { + position: relative; + float: left; + left: -2.5em; + vertical-align: 10%; +} + +IMG.map_marker { + width: .6em; + height: .9em; +} + +IMG.miniflag { + border-width: 1px; + border-style: solid; + width: 12px; + height: 8px; +} + +IMG.small_flag { + border-width: 1px; + border-style: solid; + width: 18px; + height: 12px; +} + +IMG.small_flag_in_margin { + border-width: 0; + width: 18px; + height: 20px; +} + +IMG.inline { + margin-right: 2px; +} + +/* Jun 2017: not yet used */ +IMG.behind { + position: absolute; + z-index: -1; +} + +.caduceus { + text-align: center; + font-size: 187%; +} + +.ivy { + text-align: center; + font-size: 137%; + font-style: normal; + color: #008400 ! important; +} + +.ivy1 { + text-align: center; + font-size: 137%; + font-style: normal; + color: #008400 ! important; + margin-top: 2em; +} + +IMG.badge { + width: 16px; + height: 16px; + vertical-align: -2px; +} + +IMG.image0 { + border-width: 1px; + border-style: dotted; +} + +IMG.image1 { + border-width: 1px; + border-style: solid; +} + +IMG.image2 { + border-width: 2px; + border-style: solid; +} + +IMG.image4 { + border-width: 4px; + border-style: solid; +} + +IMG.alias0 { + border-width: 1px; + border-style: dotted; + width: 279px; + height: 186px; + margin: 5px; +} + +IMG.alias1 { + border-width: 1px; + border-style: solid; + width: 279px; + height: 186px; + margin: 5px; +} + +IMG.alias2 { + border-width: 2px; + border-style: solid; + width: 279px; + height: 186px; + margin: 4px; +} + +IMG.alias4 { + border-width: 4px; + border-style: solid; + width: 279px; + height: 186px; + margin: 2px; +} + +IMG.icon { + border-width: 0; + width: 132px; + height: 88px; +} + +IMG.icon0 { + border-width: 1px; + border-style: dotted; + width: 132px; + height: 88px; + margin-top: 10px; + margin-bottom: 5px; + margin-left: 5px; + margin-right: 5px; +} + +IMG.icon1 { + border-width: 1px; + border-style: solid; + width: 132px; + height: 88px; + margin-top: 10px; + margin-bottom: 5px; + margin-left: 5px; + margin-right: 5px; +} + +IMG.icon2 { + border-width: 2px; + border-style: solid; + width: 132px; + height: 88px; + margin-top: 11px; + margin-bottom: 4px; + margin-left: 4px; + margin-right: 4px; +} + +IMG.icon4 { + border-width: 4px; + border-style: solid; + width: 132px; + height: 88px; + margin-top: 13px; + margin-bottom: 2px; + margin-left: 2px; + margin-right: 2px; +} + +IMG.rubric0 { + border-width: 1px; + border-style: dotted; + width: 132px; + height: 88px; + margin-left: 15px; + margin-right: 15px; +} + +IMG.rubric1 { + border-width: 1px; + border-style: solid; + width: 132px; + height: 88px; + margin-left: 15px; + margin-right: 15px; +} + +IMG.rubric2 { + border-width: 2px; + border-style: solid; + width: 132px; + height: 88px; + margin-left: 14px; + margin-right: 14px; +} + +IMG.rubric4 { + border-width: 4px; + border-style: solid; + width: 132px; + height: 88px; + margin-left: 12px; + margin-right: 12px; +} + +IMG.minirubric1 { + border-width: 1px; + border-style: solid; + width: 60px; + height: 40px; + margin-left: 87px; + margin-right: 15px; +} + +IMG.minirubric2 { + border-width: 2px; + border-style: solid; + width: 60px; + height: 40px; + margin-left: 86px; + margin-right: 14px; +} + +IMG.minirubric4 { + border-width: 4px; + border-style: solid; + width: 60px; + height: 40px; + margin-left: 84px; + margin-right: 12px; +} + +IMG.start { + margin-top: 1.5em; +} + +IMG.thumb { + border-width:0; + width: 60px; + height: 40px; + margin-top: 6px; + margin-bottom: 6px; +} + +IMG.thumb0 { + border-width: 1px; + border-style: dotted; + width: 60px; + height: 40px; + margin-top: 5px; + margin-bottom: 5px; +} + +IMG.thumb1 { + border-width: 1px; + border-style: solid; + width: 60px; + height: 40px; + margin-top: 5px; + margin-bottom: 5px; +} + +IMG.thumb2 { + border-width: 2px; + border-style: solid; + width: 60px; + height: 40px; + margin-top: 4px; + margin-bottom: 4px; +} + +IMG.thumb4 { + border-width: 4px; + border-style: solid; + width: 60px; + height: 40px; + margin-top: 2px; + margin-bottom: 2px; +} + +IMG.W3C { + border-width: 0; + width: 88px; + height: 31px; +} + +P.W3C { + margin-top: 36em; + margin-right: 1em; + text-align: right; +} + +P.UCFooter { + margin-top: 3em; + margin-bottom: 0em; + background-color: #403f3f; + color: #d6d6cf; + font-family: Verdana, Arial, Helvetica, sans-serif; + font-size: 70%; + text-align: center; +} + .UCFooter A:link { + border-style: dotted; + border-top-width: 0px; + border-bottom-width: 1px; + border-left-width: 0px; + border-right-width: 0px; + color: #d6d6cf ! important; + } + .UCFooter A:visited { + color: #d6d6cf ! important; + } + .UCFooter A:hover { + color: #d6d6cf ! important; + } + .UCFooter A:active { + color: #d6d6cf ! important; + } + +LI.default { + margin-top: 1em; + margin-bottom: 1em; + text-align: justify; +} + +SPAN.default { + color: #000066 ! important; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; +} + +P.photo_credits { + text-align: right; + font-size: 75%; + margin-top: 0em; +} + +P.photo_credits_center { + text-align: center; + font-size: 75%; + margin-top: 0em; +} + +P.further { + text-align: center; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-style: normal; + font-weight: normal; + text-transform: none; + font-variant: normal; + font-size: 50%; + color: #cc00ff ! important; +} + +P.signature { + position: relative; + top: auto; + right: -6em; + text-align: right; + font-size: 85%; + color: #000066 ! important; +} + +P.default { + color: #000066 ! important; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; +} + +P.closing50 { + text-align: left; + margin-left: 50%; + margin-top: 0em; + margin-bottom: 0em; +} + +P.closing60 { + text-align: left; + margin-left: 60%; + margin-top: 0em; + margin-bottom: 0em; +} + +P.closing-b0-a0 { + text-align: right; + margin-right: 8em; + margin-top: 0em; + margin-bottom: 0em; +} + +P.closing-b1-a0 { + text-align: right; + margin-right: 8em; + margin-top: 3em; + margin-bottom: 0em; +} + +P.closing-b0-a1 { + text-align: right; + margin-right: 8em; + margin-top: 0em; + margin-bottom: 3em; +} + +P.closing-b1-a1 { + text-align: right; + margin-right: 8em; + margin-top: 3em; + margin-bottom: 3em; +} + +P.biblio1 { + margin-top: 0em; + margin-bottom: .5em; + text-align: right; + font-family: Verdana, sans-serif; + font-size: 69%; +} + +P.biblio { + margin-top: 0em; + margin-bottom: 3em; + text-align: right; + font-family: Verdana, sans-serif; + font-size: 69%; +} + +P.biblioA { + margin-top: 0em; + margin-bottom: 0em; + text-align: right; + font-family: Verdana, sans-serif; + font-size: 69%; +} + +P.biblio_intro { + margin-top: 0em; + margin-bottom: 0em; + text-align: right; + font-size: 69%; +} + +P.default { + color: #000066 ! important; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; +} + +P.summary { + font-size: 85%; + margin-top: 3em; + margin-left: 2em; + margin-right: 1em; + text-indent: -1em; + text-align: justify; +} + +P.postsummary { + font-size: 85%; + margin-top: .5em; + margin-left: 2em; + margin-right: 1em; + text-indent: -1em; + text-align: justify; +} + +P.summary_item { + font-size: 85%; + margin-top: 0em; + margin-bottom: 0em; + margin-left: 2em; + margin-right: 1em; + text-indent: -1em; + text-align: justify; +} + +.x1-b0-a0 { + text-align: justify; + margin-left: 30px; + text-indent: -30px; + margin-top: 0em; + margin-bottom: 0em; +} +.x2-b0-a0 { + text-align: justify; + margin-left: 60px; + text-indent: -60px; + margin-top: 0em; + margin-bottom: 0em; +} + +P.justify_indent { + text-align: justify; + margin-top: 0em; + margin-bottom: 0em; + text-indent: 1em; +} + +P.omitted_article { + text-align: justify; + font-weight: bold; + text-transform: uppercase; + color: #999999 ! important; +} + P.omitted_article .Greek { + text-align: justify; + font-weight: bold; + text-transform: none; + color: #999999 ! important; + } + +P.riassunto { + text-align: right; + font-family: Verdana, sans-serif; + font-size: 85%; + color: #ff9900 ! important; + margin-bottom: 40px; + font-weight: bold; +} + +P.riassunto0 { + text-align: right; + font-family: Verdana, sans-serif; + font-size: 85%; + color: #ff9900 ! important; + margin-bottom: 0em; +} + +P.temporarily_omitted { + margin-top: 3em; + text-align: center; + font-size: 160%; + font-weight: bold; + color: #009900 ! important; +} + +TABLE { + margin-bottom: 1em; +} + +TABLE.bodyheight { + line-height: 1.5; +} + +TABLE.GoogleMap { + color: #000099 ! important; + background-color: #ffffff ! important; + font-size: 80%; + margin-bottom: 2em; +} + + TABLE.GoogleMap P { + margin-top: 1em; + margin-bottom: 0em; + margin-left: 10px; + margin-right: 10px; + } + +TABLE.standard { + background-color: #ffffff ! important; + color: #000066 ! important; + font-size: 80%; +} + + TABLE.standard .outquote { + color: #8533ad ! important; + } + + TABLE.standard .bland { + color: #000066 ! important; + } + + TABLE.standard TR.neutral { + background-color: #b2ffff ! important; + } + + TABLE.standard TR TD.neutral { + background-color: #b2ffff ! important; + } + + TABLE.standard P { + margin-top: 0em; + margin-bottom: 0em; + margin-left: 20px; + margin-right: 10px; + text-indent: -10px; + } + + TABLE.standard P.nodent { + text-indent: 0px; + } + + TABLE.standard P.indent { + text-indent: 20px; + } + + TABLE.standard P.start { + margin-top: 1em; + } + + TABLE.standard P.halfstart { + margin-top: .5em; + } + + TABLE.standard A:link { + color: #0000ff ! important; + } + TABLE.standard A:visited { + color: #cc0000 ! important; + } + TABLE.standard A:hover { + color: #ff00ff ! important; + } + TABLE.standard A:active { + color: #ff00ff ! important; + } + + TABLE.standard .Latin { + color: #990000 ! important; + } + TABLE.standard .Latin .emend { + color: #ee6633 ! important; + } + + TABLE.standard .Greek { +/* + color: #994d00 ! important; + */ + color: #8d5c00 ! important; + } + +TR TD.grisaille { + background-color: #eeeeee ! important; + } +TR.odd TD.grisaille { + background-color: #c2f2f2 ! important; + } +TR.even TD.grisaille { + background-color: #92f2f2 ! important; + } + + +/*TABLE.rowspadded: separates the rows as well*/ +TABLE.rowspadded TD { + padding-top: 6px; + padding-bottom: 6px; + padding-left: 12px; + padding-right: 12px; +} + +TABLE.stats { + border-collapse: collapse; +} + + TABLE.stats TD.left { + border-left: 1px; + } + + TABLE.stats TD.right { + border-right: 1px; + } + +TD.b1 { + margin-top: 0; + border-width: 1px; + border-style: solid; +} + +TABLE.b1 { + border-width: 1px; + border-style: solid; +} + +TABLE.b2 { + border-collapse: separate; + border-spacing: 1px; + border: 4px ridge #f6f6f6; +} + + TABLE.b2 TD { + border: 1px solid gray; + } + + TABLE.b2 TD TD { + border: 0; + } + +TABLE.header { + margin: auto; + border-collapse: separate; + border-spacing: 2px; + width: 500px; + border: 0; +} + + TABLE.header TR { + vertical-align: bottom; + } + +/* If the width of headerbox is changed, change also the width of DIV.alert600: */ +TABLE.headerbox { + margin: auto; + border-collapse: separate; + border-spacing: 2px; + width: 600px; + border: 4px ridge #eeeeee; + background-color: #ffffff ! important; + line-height: 1.5; + -webkit-hyphens: none; + -ms-hyphens: none; + hyphens: none; +} + + TABLE.headerbox TD { + border: 1px solid gray; + } + + TABLE.headerbox TD TD { + border: 0; + } + + TABLE.headerbox A:link { + color: #0000ff ! important; + } + TABLE.headerbox A:visited { + color: #cc0000 ! important; + } + TABLE.headerbox A:hover { + color: #ff00ff ! important; + } + TABLE.headerbox A:active { + color: #ff00ff ! important; + } + +/*keep superchapter immediately after headerbox:*/ +H3.superchapter { + width: 588px; /*headerbox minus 12*/ + margin-top: 8em; + margin-left: auto; + margin-right: auto; + font-size: 85%; + text-transform: uppercase; + text-align: center; + font-weight: bold; + letter-spacing: .5em; + border-style: solid; + border-top-width: 1px; + border-bottom-width: 1px; + border-left-width: 0px; + border-right-width: 0px; +} + +TABLE.start { + margin-top: 2.5em; +} + +TABLE.footer { + margin: auto; + margin-top: 5em; + width: 576px; + table-layout: fixed ! important; + column-width: 78px ! important; + padding: 0; + border: 0em; + border-spacing: 0; + empty-cells: show; + background-color: #ffffcc ! important; + -webkit-hyphens: none; + -ms-hyphens: none; + hyphens: none; +} + +TABLE.transparent_image { + margin-left: auto; + margin-right: auto; + margin-top: 1em; + background-color: transparent ! important; +} + +TD.transparent { + background-color: transparent ! important; +} + + + +/* 4/14/11: Used only on homepages for MassaMartana, Monteleone di Spoleto, Trevi, Cannaiola */ +/* NOTE: Their own .js states that modification and hosting are allowed, in case I want to have a stab at my own better formatting */ +TABLE.TweetFeed { + margin: auto; + margin-top: 4em; + margin-bottom: -5em; + width: 576px; + padding: 0; + border: 0em; + border-spacing: 0; + background-color: transparent ! important; +} + +TABLE.twitter { + margin: auto; + margin-top: 5em; + margin-bottom: -5em; + width: 576px; + padding: 0; + border: 0em; + border-spacing: 0; + background-color: transparent ! important; +} + +TABLE.photo { + margin-top: 40px; +} + +TABLE.vertical_pair { + width: 567px; + margin-left: auto; + margin-right: auto; + border-collapse: separate; + border-spacing: 2px; +} + + TABLE.vertical_pair TR { + text-align: justify; + } + + TABLE.vertical_pair TD { + padding: 15px; + } + +TABLE.odd_vertical_pair { + margin-left: auto; + margin-right: auto; + border-collapse: separate; + border-spacing: 2px; +} + + TABLE.odd_vertical_pair TR { + text-align: justify; + } + + TABLE.odd_vertical_pair TD { + vertical-align: middle; + padding: 15px; + } + +TABLE.text_and_vertical { + margin: auto; + border-collapse: separate; + border-spacing: 2px; + width: 581px; +} + + TABLE.text_and_vertical TR { + text-align: justify; + } + + TABLE.text_and_vertical TD { + vertical-align: middle; + padding: 15px; + } + + TABLE.text_and_vertical TD.squeeze { + vertical-align: middle; + padding: 3px; + } + +TABLE.text_and_vertical0 { + margin: auto; + border-collapse: separate; + border-spacing: 0; + width: 573px; +} + + TABLE.text_and_vertical0 TR { + text-align: justify; + } + + TABLE.text_and_vertical0 TD { + vertical-align: middle; + } + + TABLE.text_and_vertical0 TD.squeeze { + vertical-align: middle; + padding: 3px; + } + +TABLE.center { + width: auto; + margin-left: auto; + margin-right: auto; +} + +TABLE.imageF { + border-collapse: separate; + border-spacing: 1px; + border: 4px ridge #f6f6f6; + margin-left: auto; + margin-right: auto; + margin-top: 1em; +} + + TABLE.imageF TD { + border: 1px solid gray; + margin-left: 10px; + margin-right: 10px; + text-align: justify; + font-size: 80%; + } + + TABLE.imageF TD TD { + border: 0; + } + +TABLE.image { + border: 1px solid; + margin-left: auto; + margin-right: auto; + margin-top: 1em; +} + +TABLE.image0 { + border: 1px solid; + margin-top: .30em; + margin-left: auto; + margin-right: auto; +} + +TABLE.startimage { + border: 1px solid; + margin-left: auto; + margin-right: auto; + margin-top: 3em; +} + +TABLE.logo { + border: 0; + margin-left: auto; + margin-right: auto; + width: 132px; +} + +TABLE.embed_left { + border: 1px solid; + float: left; + margin-top: 8px; + margin-right: 8px; +} + +.prose TABLE.embed_left { + border: 1px solid; + float: left; + margin-top: 8px; + margin-right: 16px; +} + +TABLE.embed_left_noborder { + border: 0; + float: left; + margin-top: 8px; + margin-right: 8px; +} + +.prose TABLE.embed_left_noborder { + border: 0; + float: left; + margin-top: 8px; + margin-right: 16px; +} + +TABLE.embed_right { + border: 1px solid; + float: right; + margin-top: 8px; + margin-left: 8px; +} + +.prose TABLE.embed_right { + border: 1px solid; + float: left; + margin-top: 8px; + margin-left: 16px; +} + +TABLE.embed_right_noborder { + border: 0; + float: right; + margin-top: 8px; + margin-left: 8px; +} + +.prose TABLE.embed_right_noborder { + border: 0; + float: left; + margin-top: 8px; + margin-left: 16px; +} + +/* THE FOLLOWING ALIGNMENTS DON'T WORK IN SAFARI OR EXPLORER: */ + +/* TD.decimal { */ +/* text-align: "."; */ +/* } */ + +/* TD.middot { */ +/* text-align: "°§"; */ +/* } */ + +TD.sidepadded { + padding: 0 1em; +} + +.sidebar { + margin-left: 2em; + margin-right: 2em; + font-size: 85%; + font-style: italic; + padding: 0 .5em; + border-style: solid; + border-top-width: 1px; + border-bottom-width: 1px; + border-left-width: 0; + border-right-width: 0; +} + +.arithmetic { + font-family: Courier, monospace; + padding: 0 .5em; + text-align: right; + margin-top: 0em; + margin-bottom: 0em; +} + +.arithmetic .underscore { + color: #ff0000 ! important; + border-style: solid; + border-bottom-width: 1px; +} + +TD.lineunder { + font-family: Courier, monospace; + padding: 0 .5em; + text-align: right; + border-style: solid; + border-top-width: 0px; + border-bottom-width: 1px; + border-left-width: 0px; + border-right-width: 0px; + margin-top: 0em; + margin-bottom: 0em; +} + +.total { + font-family: Courier, monospace; + padding: 0 .5em; + text-align: right; + border-style: solid; + border-top-width: 1px; + border-bottom-width: 0px; + border-left-width: 0px; + border-right-width: 0px; + margin-top: 0em; + margin-bottom: 0em; +} + +.totalwithleftBorder { + font-family: Courier, monospace; + padding: 0 .5em; + text-align: right; + border-style: solid; + border-top-width: 1px; + border-bottom-width: 0px; + border-left-width: 1px; + border-right-width: 0px; + margin-top: 0em; + margin-bottom: 0em; +} + +.totalwithrightBorder { + font-family: Courier, monospace; + padding: 0 .5em; + text-align: right; + border-style: solid; + border-top-width: 1px; + border-bottom-width: 0px; + border-left-width: 0px; + border-right-width: 1px; + margin-top: 0em; + margin-bottom: 0em; +} + +/* +double underscores, see: +E/Gazetteer/Places/Europe/Italy/_Texts/HODIHI/2d_edition/6/NoteF*.html + */ +.double_underscored_total { + font-family: Courier, monospace; + padding: 0 .5em; + text-align: right; + border-style: double; + border-top-width: 0px; + border-bottom-width: 4px; + border-left-width: 0px; + border-right-width: 0px; + margin-top: 0em; + margin-bottom: 0em; +} + +.doubleunder { + border-bottom-style: double; + border-bottom-width: 3px; +} + +.top_border { + border-style: solid; + border-top-width: 1px; +} + +.top_and_bottom_border { + border-style: solid; + border-top-width: 1px; + border-bottom-width: 1px; + border-left-width: 0px; + border-right-width: 0px; +} + +TD.alias { + width: 292px; + text-align: center; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-weight: bold; +} + +TD.quietalias { + width: 292px; + font-size: 80%; +} + +TD.right { + text-align: right; +} + +TD.cell { + text-align: center; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-size: 50%; +/* font-size was originally 9.1px */ +} + +TD.midcell { + vertical-align: middle; + text-align: center; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-size: 50%; +} + +TD.upcell1 { + width: 78px; + vertical-align: middle; + text-align: center; + font-family: Verdana, sans-serif; + font-size: 55%; + font-weight: bold; + color: #0000ff ! important; + background-color: #ffffcc ! important; +} + +TD.upcell { + width: 78px; + text-align: center; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-size: 50%; + background-color: #ffffcc ! important; + color: #cccccc ! important; /* grey only if no link; otherwise, overridden*/ +} + +/* The following is used for upcells, etc. that are just a text anchor, in order to line them up right. See examples in AOG Reunions. */ +.no_image { + vertical-align: middle; + margin-top: 24px; + margin-bottom: 24px; +} + +TD.alsocell1 { + vertical-align: middle; + text-align: center; + font-family: Verdana, sans-serif; + font-size: 55%; + font-weight: bold; + color: #0000ff ! important; + background-color: #ffff99 ! important; +} + +TD.alsocell { + width: 78px; + text-align: center; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-size: 50%; + background-color: #ffff99 ! important; + color: #cccccc ! important; /* grey only if no link; otherwise, overridden*/ +} + +TD.alsocell2 { + width: 156px; + text-align: center; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-size: 50%; + background-color: #ffff99 ! important; +} + +TD.offcell1 { + vertical-align: middle; + text-align: center; + font-family: Verdana, sans-serif; + font-size: 55%; + font-weight: bold; + color: #0000ff ! important; + background-color: #ffff66 ! important; +} + +TD.offcell { + width: 78px; + text-align: center; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-size: 50%; + color: #0000ff ! important; + background-color: #ffff66 ! important; +} + +TD.previouscell { + width: 100px; + vertical-align: middle; + text-align: center; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-size: 50%; +} + +TD.nextcell { + width: 100px; + vertical-align: middle; + text-align: center; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-size: 50%; +} + +TD.pinkcell { + width: 78px; + text-align: center; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-size: 50%; + background-color: #ffcccc ! important; +} + +TD.toughcell { + width: 78px; + text-align: center; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-size: 50%; + background-color: #ffff33 ! important; +} + +TD.churchcell { + width: 78px; + text-align: center; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-size: 50%; + background-color: #ecdaff ! important; +} + +TD.churchcell1 { + vertical-align: middle; + text-align: center; + font-family: Verdana, sans-serif; + font-size: 55%; + font-weight: bold; + color: #0000ff ! important; + background-color: #ecdaff ! important; +} + +TD.diarycell { + width: 78px; + text-align: center; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-size: 50%; + background-color: #99ffcc ! important; +} + +TD.diarycell1 { + vertical-align: middle; + text-align: center; + font-family: Verdana, sans-serif; + font-size: 55%; + font-weight: bold; + color: #0000ff ! important; + background-color: #99ffcc ! important; +} + +.transcription { + font-family: Verdana, sans-serif; + font-size: 90%; + color: #990000 ! important; + background-color: #ffffff ! important; +} + +.expansion { + font-family: Verdana, sans-serif; + font-size: 90%; + color: #990000 ! important; + background-color: #ffffcc ! important; +} + +.interpretation { + font-family: Verdana, sans-serif; + font-size: 90%; + color: #000033 ! important; + background-color: #ffcccc ! important; +} + +/* + the widths of "flag" and "mail" work together to add to 100%: + [1* the width of "mailN"] + [(N-1) * the width of "flagN"] add to 100% + + where "100%" is the width of TABLE.header or TABLE.headerbox +*/ + +TD.USMA_flag { + text-align: right; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-size: 50%; +} + +TD.flag { + text-align: center; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-size: 80%; +} + +TD.flagcell { + vertical-align: bottom; + text-align: center; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; +} + +TD.flagcell .Greek { + font-size: 95%; + line-height: 1.15; /* Greek fonts have more line-height built‑in, force smaller */ +} + +TD.flagcell .Ukrainian { + line-height: 1.00; /* Ukrainian fonts have more line-height built‑in, force smaller */ + color: #000066; /* to prevent Ukrainian-language color */ +} + +TD.mailcell { + vertical-align: bottom; + text-align: center; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; +} + +TR.header2 { + font-size: 80%; +} + TR.header2 .mailcell { + width: 75%; + } + TR.header2 .flagcell { + width: 25%; + } + +TR.header3 { + font-size: 80%; +} + TR.header3 .mailcell { + width: 40%; + } + TR.header3 .flagcell { + width: 30%; + } + +TR.header4 { + font-size: 80%; +} + TR.header4 .mailcell { + width: 28%; + } + TR.header4 .flagcell { + width: 24%; + } + +TR.header5 { + font-size: 80%; +} + TR.header5 .mailcell { + width: 28%; + } + TR.header5 .flagcell { + width: 18%; + } + +TR.header6 { + font-size: 75%; +} + TR.header6 .mailcell { + width: 20%; + } + + TR.header6 .flagcell { + width: 16%; + } + +TR.header7 { + font-size: 70%; +} + TR.header7 .mailcell { + width: 16%; + } + TR.header7 .flagcell { + width: 14%; + } + +TR.header7 { + font-size: 70%; +} + TR.header8 .mailcell { + font-size: 70%; + width: 16%; + } + TR.header8 .flagcell { + font-size: 70%; + width: 12%; + } + +TD.flag4 { + text-align: center; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-size: 80%; + width: 24%; +} + +TD.flag5 { + text-align: center; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-size: 80%; + width: 18%; +} + +TD.flag6 { + text-align: center; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-size: 75%; + width: 16%; +} + +TD.flag7 { + text-align: center; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-size: 70%; + width: 14%; +} + +TD.flag8 { + text-align: center; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-size: 70%; + width: 12%; +} + +TD.incipit { + text-align: center; + font-family: "Times New Roman", serif; + font-size: 85%; +} + +TD.mail { + width: 100px; + vertical-align: bottom; + text-align: center; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-size: 80%; +} + +TD.mail4 { + vertical-align: bottom; + text-align: center; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-size: 80%; + width: 28%; +} + +TD.mail5 { + vertical-align: bottom; + text-align: center; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-size: 80%; + width: 28%; +} + +TD.mail6 { + vertical-align: bottom; + text-align: center; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-size: 75%; + width: 20%; +} + +TD.mail7 { + vertical-align: bottom; + text-align: center; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-size: 70%; + width: 16%; +} + +TD.mail8 { + vertical-align: bottom; + text-align: center; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-size: 70%; + width: 16%; +} + +TD.icon { + width: 146px; + text-align: center; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-size: 69%; +} + TD.icon IMG.icon0 { + margin-top: 16px; + } + TD.icon IMG.icon1 { + margin-top: 16px; + } + TD.icon IMG.icon2 { + margin-top: 15px; + } + +/* PHASE OUT "TD.rubric": From now on, use TABLE.rubric (which specifies the 85% font); and each time, immediately delete all TD class attributes "CLASS="rubric" — leaving, however, any "TD CLASS="rubricB". When all "rubric" tables have been switched over, delete this style: it isn't needed at all. The model page is the main Umbertide page. */ +TD.rubric { + text-align: justify; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + margin-left: 10px; + margin-right: 10px; + font-size: 85%; +} + +TD.rubricTEMP { + text-align: justify; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + margin-left: 10px; + margin-right: 10px; +} + +TD.rubricB { + text-align: justify; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + margin-left: 10px; + margin-right: 10px; + vertical-align: bottom; +} + +TD.rubricT { + text-align: justify; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + margin-left: 10px; + margin-right: 10px; + vertical-align: top; +} + +TD.banner { + background-color: #ccffff ! important; + text-align: center; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-size: 100%; + color: #cc0066 ! important; + font-weight: bold; +} + +TD.update { + text-align: center; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + color: #cc0066 ! important; +} + +TR { + vertical-align: top; +} + +TR.down { + vertical-align: bottom; +} + +TR.middle { + vertical-align: middle; +} + +TR.up { + background-color: #ffffcc ! important; + empty-cells: show; + vertical-align: top; +} + +TR.also { + background-color: #ffff99 ! important; + empty-cells: show; + vertical-align: top; +} + +TR.church { + background-color: #ecdaff ! important; + empty-cells: show; + vertical-align: top; +} + +TR.diary { + background-color: #99ffcc ! important; + empty-cells: show; + vertical-align: top; +} + +TR.off { + background-color: #ffff66 ! important; + empty-cells: show; + vertical-align: top; +} + +TR.lapidary { + font-family: Verdana, sans-serif; + font-size: 90%; + color: #990000 ! important; + background-color: #ffffff ! important; +} + +.translation { + font-family: Verdana, sans-serif; + font-size: 90%; + color: #000066 ! important; + background-color: #ffff99 ! important; +} + +.sandstone .translation { + color: #000066 ! important; + background-color: #f0d9c7 ! important; +} + +TR.interpretation { + font-family: Verdana, sans-serif; + font-size: 90%; + color: #000033 ! important; + background-color: #ffcccc ! important; +} + +TABLE P.x1 { + margin-top: 0em; + margin-bottom: 0em; + margin-left: 20px; + margin-right: 10px; + text-indent: -10px; + } + +TABLE P.x2 { + margin-top: 0em; + margin-bottom: 0em; + margin-left: 30px; + margin-right: 30px; + text-indent: -30px; + } + +DIV.TOCbox { + width: 527px ! important; /* TOC minus 49 */ + background-color: #ccffff ! important; + text-align: justify; + font-size: 85%; + color: #000066 ! important; + margin: auto; + padding-top: 0.4em; + padding-bottom: 0.4em; + padding-left: 1.3em; + padding-right: 1.3em; + border-style: ridge +} + + .TOCbox H3 { + margin-top: 1.5em; /* same as halfstart */ + } + +TABLE.TOC { + background-color: #ffffff ! important; + color: #000066 ! important; + border-width: 5px; + border-collapse: collapse; + border-style: double; + font-size: 80%; +} + +TABLE.with_dividers { + border-collapse: collapse; +} + +TABLE.with_dividers TR.discreetly_separated{ + border-color: #ffffff; +} + + .TOC A { + color: #0000ff ! important; + } + .TOC A:link { + color: #0077cc ! important; + } + .TOC A:visited { + color: #ff0000 ! important; + } + .TOC A:hover { + color: #ff00ff ! important; + } + .TOC TD { + vertical-align: middle; + } + + .TOC P { + margin-top: 0em; + margin-bottom: 0em; + margin-left: 20px; + margin-right: 10px; + text-indent: -10px; + } + + .TOC P.center { + text-align: center; + margin-top: 0em; + margin-bottom: 0em; + margin-left: 0em; + margin-right: 0em; + text-indent: 0; + } + + .TOC P.white { + color: #000066; + } + + .TOC P.m1 { + margin-top: 0em; + margin-bottom: 0em; + margin-left: 30px; + margin-right: 20px; + text-indent: 0; + } + + .TOC P.m1x1 { + margin-top: 0em; + margin-bottom: 0em; + margin-left: 2em; + margin-right: 1em; + text-indent: -1em; + } + + .TOC P.m1x2 { + margin-top: 0em; + margin-bottom: 0em; + margin-left: 3em; + margin-right: 1em; + text-indent: -2em; + } + + .TOC P.m2 { + margin-top: 0em; + margin-bottom: 0em; + margin-left: 2em; + margin-right: 2em; + text-indent: 0; + } + + .TOC P.m2x1 { + margin-top: 0em; + margin-bottom: 0em; + margin-left: 3em; + margin-right: 2em; + text-indent: -1em; + } + + .TOC P.m2x2 { + margin-top: 0em; + margin-bottom: 0em; + margin-left: 4em; + margin-right: 2em; + text-indent: -2em; + } + + .TOC P.m3 { + margin-top: 0em; + margin-bottom: 0em; + margin-left: 3em; + margin-right: 3em; + text-indent: 0; + } + + .TOC P.m3x1 { + margin-top: 0em; + margin-bottom: 0em; + margin-left: 4em; + margin-right: 2em; + text-indent: -1em; + } + + .TOC P.m3x2 { + margin-top: 0em; + margin-bottom: 0em; + margin-left: 5em; + margin-right: 2em; + text-indent: -2em; + } + + .TOC P.m4 { + margin-top: 0em; + margin-bottom: 0em; + margin-left: 4em; + margin-right: 4em; + text-indent: 0; + } + + .TOC P.x2 { + margin-left: 50px; + text-indent: -40px; + } + +TABLE.TOC1 { + background-color: #ffffff ! important; + border-width: 5px; + border-style: double; + font-size: 80%; +} + + .TOC1 TD { + vertical-align: middle; + } + + .TOC1 P { + margin-top: 0.24em; + margin-bottom: 0.24em; + margin-left: 20px; + margin-right: 10px; + text-indent: -10px; + } + + .TOC1 .m1 { + margin-left: 30px; + margin-right: 30px; +} + +TABLE.newpages { + margin-top: 5em; + font-size: 85%; +} + + TABLE.newpages .m2x1 { + margin-left: 4em; + margin-right: 2em; + text-indent: -1em; + } + + TABLE.newpages .m3x1 { + margin-left: 5em; + margin-right: 3em; + text-indent: -1em; + } + + TABLE.newpages B { + color: #444444 ! important; + } + TABLE.newpages .bold { + color: #444444 ! important; + } + TABLE.newpages A.bold { + color: #0000ff ! important; + } + TABLE.newpages A:link { + color: #0000ff ! important; + } + TABLE.newpages A:visited { + color: #cc0000 ! important; + } + TABLE.newpages A:hover { + color: #ff00ff ! important; + } + TABLE.newpages A:active { + color: #ff00ff ! important; + } + +TABLE.dotpoints { + width: 90%; + margin: auto; + line-height: 1.5; + text-align: justify; +} + + TABLE.dotpoints TD { + padding-left: 10px; + padding-right: 10px; + } + +.TOCitem { + text-align: justify; + font-size: 80%; + margin-left: 2em; + margin-right: 1em; + text-indent: -1em; +} + +.TOCpagenum { + vertical-align: middle; + font-family: Courier, monospace; + text-align: right; + padding-right: 10px; + margin-left: 10px; +} + +.TOCchapnum { + vertical-align: middle; + text-align: center; + font-weight: bold; + font-size: 190%; +} + +TD.leadoff_summary { + background-color: #ccffff ! important; + font-family: Verdana, Arial, Helvetica, sans-serif; + font-size: 53%; + color: #000066 ! important; + text-align: center; + border-style: solid; + border-color: #990000; + border-width: 1px; +} + +TD.Roman_summary { + background-color: #ff99ff ! important; + font-family: Verdana, Arial, Helvetica, sans-serif; + font-size: 53%; + text-align: center; +} + +.big_caption { + text-align: center; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-weight: bold; +} + +.caption { + text-align: center; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-size: 80%; +} + + .caption .photo_credits { + margin-top: .5em; + margin-right: 0; +} + +.low_caption { + text-align: center; + font-size: 85%; + text-transform: uppercase; + margin-bottom: 0; +} + +.image_title { + text-align: center; + margin-top: 0.5em; + hyphens: none; +} + +TD.contents { + margin-left: 10px; + margin-right: 10px; + font-size: 80%; +} + +.contents { + margin-left: 10px; + margin-right: 10px; + font-size: 80%; +} + + .contents .inscription { + font-family: Verdana, sans-serif; + font-size: 80%; + line-height: 1.2; /* line-height of ".inscription" (1.5) multiplied by font-size of ".contents" */ +} + + .contents .small_inscription { + font-family: Verdana, sans-serif; + font-size: 80%; +} + + .contents .Ukrainian { + font-size: 80%; + line-height: 1.08; +} + + .contents .lapis { + font-family: Verdana, sans-serif; + font-size: 80%; + line-height: 1.2; +} + + .contents .nummus { + color: #990000 ! important; + font-family: Verdana, sans-serif; + font-size: 80%; + text-transform: uppercase; + line-height: 1.2; +} + + .contents P { + margin-left: 10px; + margin-right: 10px; +} + +.ecru1 { + background-color: #ffffcc ! important; +} + +.ecru2 { + background-color: #ffff99 ! important; +} + +.ecru3 { + background-color: #ffff66 ! important; +} + +.ex { + text-align: justify; + margin-left: 30px; + text-indent: -30px; +} + +.exdent { + text-align: justify; + margin-left: 30px; + text-indent: -30px; + font-family: Verdana, sans-serif; + font-size: 75%; + line-height: 120%; +} + +.exdent_quote { + text-align: justify; + margin-top: 0em; + margin-bottom: 0em; + margin-left: 30px; + text-indent: -30px; + font-family: Verdana, sans-serif; + font-size: 85%; + color: #990000 ! important; + line-height: 100%; +} + +.index { + text-align: justify; + margin-left: 30px; + text-indent: -30px; + font-size: 75%; +} + +.index-start { + margin-top: 3em; + text-align: justify; + margin-left: 30px; + text-indent: -30px; + font-size: 75%; +} + +.margin { + margin-left: 40px; + margin-right: 40px; +} + +.nomargin { + margin-left: -40px; + margin-right: -40px; +} + +.not_online1 { + background-color: #e0e0e0 ! important; + font-size: 90%; + color: #666666 ! important; +} + +.not_online2 { + background-color: #d0d0d0 ! important; + font-size: 90%; + color: #555555 ! important; +} + +.offsite1 { + background-color: #ccffe5 ! important; +} + +.offsite2 { + background-color: #99ffcc ! important; +} + +.pad { + margin-left: 10px; + margin-right: 10px; +} + +TABLE.padsides TD { + padding-left: 10px; + padding-right: 10px; + font-size: 90%; +} + +.proofread0 { + background-color: #b2ffff ! important; +} + +.proofread1 { /* 90% white */ + background-color: #ccffff ! important; +} + TR.proofread1 TD.not_online { + background-color: #e0e0e0 ! important; + font-size: 90%; + color: #555555 ! important; + } + + .proofread1 .comment { + font-weight: bold; + color: #990099! important; + } + + .proofread1 .emend { + color: #339933 ! important; + } + + .proofread1 .primary_source { + color: #2AA22A ! important; + } + + .proofread1 .source { + font-weight: bold; + color: #006600! important; + } + + TR.proofread1 TD A { + color: #0000ff! important; + } + TR.proofread1 TD A:link { + color: #0000ff ! important; + } + TR.proofread1 TD A:visited { + color: #ff0000 ! important; + } + TR.proofread1 TD A:hover { + color: #ff00ff ! important; + } + TR.proofread1 TD A:active { + color: #ff00ff ! important; + } + +.proofread2 { /* 80% white */ + background-color: #99ffff ! important; +} + TR.proofread2 TD.not_online { + background-color: #d0d0d0 ! important; + font-size: 90%; + color: #555555 ! important; + } + + .proofread2 .comment { + font-weight: bold; + color: #990099! important; + } + + .proofread2 .emend { + color: #339933 ! important; + } + + .proofread2 .source { + font-weight: bold; + color: #006600! important; + } + + TR.proofread2 TD A { + color: #0000ff! important; + } + + TR.proofread2 TD A:link { + color: #0000ff ! important; + } + TR.proofread2 TD A:visited { + color: #ff0000 ! important; + } + TR.proofread2 TD A:hover { + color: #ff00ff ! important; + } + TR.proofread2 TD A:active { + color: #ff00ff ! important; + } + +.needs_images0 { + background-color: #c6d9ff ! important; +} + +.needs_images1 { /* 90% white, and closer to proofread1 than to unproofread1 */ + background-color: #ccddff ! important; +} + TR.needs_images1 TD A { + color: #0000ff! important; + } + + TR.needs_images1 TD A:link { + color: #0000ff ! important; + } + TR.needs_images1 TD A:visited { + color: #ff0000 ! important; + } + TR.needs_images1 TD A:hover { + color: #ff00ff ! important; + } + TR.needs_images1 TD A:active { + color: #ff00ff ! important; + } + +.needs_images2 { /* 85% white, and closer to proofread2 than to unproofread2 */ + background-color: #b2ccff ! important; +} + TR.needs_images2 TD A { + color: #0000ff! important; + } + + TR.needs_images2 TD A:link { + color: #0000ff ! important; + } + TR.needs_images2 TD A:visited { + color: #ff0000 ! important; + } + TR.needs_images2 TD A:hover { + color: #ff00ff ! important; + } + TR.needs_images2 TD A:active { + color: #ff00ff ! important; + } + + +.gloss { + font-family: Verdana, sans-serif; + font-size: 90%; + color: #660099 ! important; + } + +/* An imperfect workaround used for pulling text up one line in order to superimpose two lines: the second line is the one that gets the style. */ +/* +Used in +E/Gazetteer/People/Robert_Edward_Coontz/From_the_Mississippi_to_the_Sea/Appendices/C*.html + */ +.up1line { + margin-top: -2.5em; +} + +.unindented_prose { + font-family: "Myriad Web Pro", Helvetica, Geneva, "Lucida Grande", sans-serif; + line-height: 1.5; + font-size: 85%; + text-align: justify; +} + +.allcaps { + text-transform: uppercase; + letter-spacing: .05em; +} + +.prose { + font-family: "Myriad Web Pro", Helvetica, Geneva, "Lucida Grande", sans-serif; + line-height: 1.5; + font-size: 85%; + margin-left: 2em; + margin-right: 2em; + text-align: justify; +} + + .prose .normal { + font-family: Verdana, sans-serif; + font-size: 90%; + color: #660099 ! important; + } + + .prose .citation { + font-weight: bold; + font-size: 85%; + font-variant: normal; + } + + .prose .manuscript { + font-size: 90%; + } + + .prose .Greek { + color: #996600 ! important; + font-family: "Lucida Grande", "Palatino Linotype", "Arial Unicode Ms", "Titus Cyberbit Basic", "Lucida Sans Unicode", sans-serif ! important; + font-size: 95%; + } + + .prose TABLE { + font-family: "Myriad Web Pro", Helvetica, Geneva, "Lucida Grande", sans-serif; + margin-left: -.2em; + margin-right: -.2em; + line-height: 1.5; + font-size: 100%; + text-align: justify; + } + +.outquote { + color: #7700b3 ! important; +} + +.quote { + font-family: Verdana, sans-serif; + font-size: 85%; +} + +.quote1 { + font-family: Verdana, sans-serif; + font-size: 85%; + margin-left: 2em; + margin-right: 2em; +} + + .quote1 P { + margin-top: 0em; + margin-bottom: 0em; + text-indent: 1em; + text-align: justify; + } + + .quote1 P.right { + margin-top: 0em; + margin-bottom: 0em; + text-align: right; + } + + .quote1 P.center { + margin-top: 0em; + margin-bottom: 0em; + text-align: center; + } + + .quote1 P.in{ + margin-top: 0em; + margin-bottom: 0em; + text-indent: 0em; + text-align: justify; + } + +.verseTEST { + font-family: Verdana, sans-serif; + font-size: 85%; + position: relative; + margin: auto; + height: 50%; + top: 25%; +} + +.verseTEST P { + margin: auto; + margin-top: 0em; + margin-bottom: 0em; + margin-left: 3em; + text-indent: -3em; +} + +/*Greek TEST (settled)*/ +.verse { + font-family: "Myriad Web Pro", Helvetica, Geneva, "Lucida Grande", sans-serif; + line-height: 1.5; + font-size: 85%; + letter-spacing: .06em; + margin-left: 2em; + margin-right: 2em; +} + + .mynote .verse { + color: #000066 ! important; + } + + .mynoteWide .verse { + color: #000066 ! important; + } + + +.verse .right { + font-family: "Myriad Web Pro", Helvetica, Geneva, "Lucida Grande", sans-serif; + font-size: 85%; + margin-left: 2em; + margin-right: 2em; +} + +.verse P { + margin-top: 0em; + margin-bottom: 0em; + margin-left: 3em; + margin-right: 3em; + text-indent: -3em; +} + +.verse P.nopad { + margin-top: 0em; + margin-bottom: 0em; + margin-left: 0em; + margin-right: 0em; + color: #ff6600 ! important;} + +/* +TABLE.verse P.center { + margin-top: 0em; + margin-bottom: 0em; + margin-left: 3em; + margin-right: 3em; +} +*/ + +.verse P.start { + margin-top: 1em; + margin-bottom: 0em; +} + +.verse P.start2 { + margin-top: 5em; + margin-bottom: 0em; +} + +.verse .verse { + font-size: 100%; + text-indent: -2em; +} + +.verse .verse1 { + text-indent: 0em; +} + +.verse .verse2 { + text-indent: 2em; +} + +.verse .verse3 { + text-indent: 4em; +} + +.verse .verse4 { + text-indent:6em; +} + +.verse .verse5 { + text-indent: 8em; +} + +.verse .verse6 { + text-indent: 10em; +} + +.verse .verse7 { + text-indent: 12em; +} + +.verse .verse8 { + text-indent: 14em; +} + +.verse .verse9 { + text-indent: 16em; +} + +.verse .verse10 { + text-indent: 18em; +} + +.verse .verse11 { + text-indent: 20em; +} + +.verse .verse12 { + text-indent: 22em; +} + +.unproofread0 { + background-color: #ffb2b2 ! important; +} + +.unproofread1 { /* 90% white */ + background-color: #ffcccc ! important; +} + TR.unproofread1 TD.not_online { + background-color: #e0e0e0 ! important; + font-size: 90%; + color: #555555 ! important; + } + + TR.unproofread1 TD A { + color: #0000ff! important; + } + + TR.unproofread1 TD A:link { + color: #0000ff ! important; + } + TR.unproofread1 TD A:visited { + color: #ff0000 ! important; + } + TR.unproofread1 TD A:hover { + color: #ff00ff ! important; + } + TR.unproofread1 TD A:active { + color: #ff00ff ! important; + } + +.unproofread2 { /* 80% white */ + background-color: #ff9999 ! important; +} + TR.unproofread2 TD.not_online { + background-color: #d0d0d0 ! important; + font-size: 90%; + color: #555555 ! important; + } + + TR.unproofread2 TD A { + color: #0000ff! important; + } + + TR.unproofread2 TD A:link { + color: #0000ff ! important; + } + TR.unproofread2 TD A:visited { + color: #ff0000 ! important; + } + TR.unproofread2 TD A:hover { + color: #ff00ff ! important; + } + TR.unproofread2 TD A:active { + color: #ff00ff ! important; + } + + +.unproofread3 { + background-color: #ff6666 ! important; +} + +.unproofread4 { + background-color: #ff3333 ! important; +} + +TR.thanks { + background-color: #ccffff ! important; +} + +.thanks { + margin-left: 10em; + font-size: 85%; + background-color: #ccffff ! important; + vertical-align: middle; + text-align: center; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + color: #cc3300 ! important; +} + +.thanks A:visited { + color: #00ff00 ! important; /* THIS DOESN'T WORK. */ +} + +.thanks A { + font-weight: bold; + font-size: 120%; + color: #0000ff ! important; +} + +P.thanks { + margin: 1em; +} + +/* COMPOUND SCHEMES: */ + +.callout1 { + font-family: sans-serif; + color: #8800cc ! important; +} + +.sans { + font-family: sans-serif; +} + +.callout-red { + font-family: sans-serif; + color: #cc0033 ! important; +} + +.callout-orange { + font-family: sans-serif; + color: #cc9900 ! important; +} + +.epitome { + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + color: #660066 ! important; +} + +.Tzetzes { + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + color: #003333 ! important; +} + +.nummus { + color: #990000 ! important; + font-family: Verdana, sans-serif ! important; + font-size: 80% ! important; + text-transform: uppercase ! important; +} + + .nummus .emend { + color: #ee6633 ! important; + } + + .nummus .superscript { + font-size: 50%; + vertical-align: top; + } + +.Tiny { + font-family: Tiny, sans-serif; + font-size: 62%; +} + +/* THIS SEEMS NOT TO BE USED. I COMMENTED IT OUT BECAUSE IT CONFLICTS WITH TR.up, CAUSING A MINOR BUT UNAESTHETIC GLITCH IN FOOTERS. IF IT NEEDS TO BE RESTORED, RENAME IT. +.up { + position: relative; + top: -4px; +} + */ + +.Verdana { + font-family: Verdana, sans-serif; + font-size: 85%; +} + +/* COLOR SCHEMES:*/ + /* for table columns and rows:*/ + +.green1 { + background-color: #ccffcc ! important; +} + +.green2 { + background-color: #99ff99 ! important; +} + +.beige1 { + background-color: #fff7f2 ! important; +} + +.beige2 { + background-color: #ffe7d9 ! important; +} + +.blue1 { + background-color: #ccffff ! important; +} + +.blue2 { + background-color: #99ffff ! important; +} + +.purple1 { + background-color: #ffddff ! important; +} + +.purple2 { + background-color: #ffaaff ! important; +} + +.red1 { + background-color: #ffbbbb ! important; +} + +.red2 { + background-color: #ff8888 ! important; +} + +.orange1 { + background-color: #ffddbb ! important; +} + +.orange2 { + background-color: #ffbb88 ! important; +} + +.yellow1 { + background-color: #ffffaa ! important; +} + +.yellow2 { + background-color: #ffff55 ! important; +} + +.grey0 { + background-color: #f6f6f6 ! important; +} + +.grey1 { + background-color: #e9e9e9 ! important; +} + +.grey2 { + background-color: #e3e3e3 ! important; +} + +.road1 { + background-color: #ffffcc ! important; +} + +.road2 { + background-color: #ffff99 ! important; +} + +.land1 { + background-color: #ccffcc ! important; +} + +.land2 { + background-color: #99ff99 ! important; +} + +.sandstone1 { + background-color: #ffeedd ! important; +} + +.sandstone2 { + background-color: #eeddcc ! important; +} + +.sea1 { + background-color: #ccffff ! important; +} + +.sea2 { + background-color: #99ffff ! important; +} + +.row1cell1 { + background-color: #ffffcc ! important; +} + +.row1cell2 { + background-color: #ccffff ! important; +} + +.row2cell1 { + background-color: #ffff99 ! important; +} + +.row2cell2 { + background-color: #99ffff ! important; +} + +.addendum { + color: #003399 ! important; +} + +.callout { + color: #8800cc ! important; +} + + +DIV.boxlinksprompt { + background-color: #E8E8E8 !important; + text-align: center; + font-size: 65%; + color: #061CBE !important; + width: 42em; + margin-left: auto; + margin-right: auto; + margin-top: 3em; + padding-top: 0.4em; + padding-bottom: 0.4em; + padding-left: 0.6em; + padding-right: 0.6em; + border: .25em ridge #ffffff !important; +} + +.GazetteerPrompt { + background-color: #ebebff ! important; + color: #0066ff ! important; +} + + .GazetteerPrompt .title { + margin-bottom: 0em; + text-align: center; + color: #0000ff ! important; +} + + .GazetteerPrompt P { + margin-top: 0em; +} + +.HistoryPrompt { + background-color: #ffebeb ! important; + color: #993333 ! important; +} + + .HistoryPrompt .title { + margin-bottom: 0em; + text-align: center; + color: #ff0000 ! important; +} + + .HistoryPrompt P { + margin-top: 0em; +} + +.MixedPrompt { + background-color: #ffe5ff ! important; + color: #663399 ! important; +} + + .MixedPrompt .title { + margin-bottom: 0em; + text-align: center; + color: #cc00ff ! important; +} + + .MixedPrompt P { + margin-top: 0em; +} + +.recommended { + background-color: #ccffcc ! important; +} + +.not_recommended { + background-color: #ffeedd ! important; +} + +/* +TABLE COLORS: use country name nouns, reserving adjectives for font styles +*/ +.France { + color: #001099 ! important; + border: 1px solid #cc0000 ! important; +} + +.Italy { + color: #309900 ! important; + border: 1px solid #cc0000 ! important; +} + +.Symbola{ + font-family: Symbola; +} diff --git a/sources/book_2_files/up.gif b/sources/book_2_files/up.gif new file mode 100644 index 0000000..526a178 Binary files /dev/null and b/sources/book_2_files/up.gif differ diff --git a/sources/book_3.html b/sources/book_3.html new file mode 100644 index 0000000..2643117 --- /dev/null +++ b/sources/book_3.html @@ -0,0 +1,2523 @@ + + + + + + + + + + +LacusCurtius • Ad Herennium — Book III + + + + + + + + + + + + + + + +

+ + + + +
+
+ 
+[image ALT: Much of my site will be useless to you if you've got the images turned off!]
+
+ + + + + + + + + + + + + + + + + +
+mail: +
+Bill Thayer + +
+ + 
+[image ALT: Cliccare qui per una pagina di aiuto in Italiano.]
+
+Italiano +
+
+ + 
+[Link to a series of help pages]
+
+Help +
+
+ + [Link to the next level up]
+Up +
+
+ + [Link to my homepage]
+Home +
+
+ + + + + +
+ previous: +
+ 
+[image ALT: link to previous section]
+
+Book II +
+
+

+This webpage reproduces part of +
+a complete English translation of the +
+ +Rhetorica ad Herennium + +
+published in the +Loeb Classical Library, +
+1954 +

+The text is in the public domain. + +

+This page has been carefully proofread +
+and I believe it to be free of errors. +
+If you find a mistake though, +
+ +please let me know! + +

+ next: +
+ 
+[image ALT: link to next section]
+
+IV.1‑18 +
+
+
+ + +

+ +Rhetorica ad Herennium + +

+ +

+  p157  +Book III +

+ + +

+ 1 +1 In the preceding Books I have, +as I believe, shown amply enough how to apply the Invention of +topics to any judicial cause. The method of finding causes I now +carry over to the present Book,​1 in order that I may as speedily as possible discharge my task of explaining to you all the rules of Invention. + +

+Four departments of rhetoric are left us to consider. Three are treated in the present Book: Arrangement,​2 Delivery,​3 and Memory.​4 Style, because it seems to require a fuller treatment, I prefer to discuss in Book IV,​5 + which I hope to complete quickly and send to you, so that you may +not lack anything on the art of rhetoric. Meanwhile you will learn all +the principles I first set forth,​6 + with me, when you wish, and at times without me, by reading, so that +you may in no way be kept from equal progress with me towards the +mastery of this useful art. It is now for you to give attention, while +I resume progress towards our goal. + +

+ 2 +2 Deliberative​7 + speeches are either of the kind in which the question concerns a choice + between two courses of action, or of the kind in which a choice among +several is considered. An example of a + + + p159 choice between two courses of action: Does it seem better to destroy Carthage, or to leave her standing?​8 + An example of a choice among several: If Hannibal, when recalled to +Carthage from Italy, should deliberate whether to remain in Italy, or +return home, or invade Egypt and seize Alexandria.9 + +

+Again, a question under deliberation is sometimes to be examined on its +own account; for example, if the Senate should deliberate whether or not + to redeem the captives from the enemy.​10 + Or sometimes a question becomes one for deliberation and inquiry on +account of some motive extraneous to the question itself; for example, +if the Senate should deliberate whether to exempt Scipio from the law so + as to permit him to become consul while under age.​11 + And sometimes a question comes under deliberation on its own account +and then provokes debate even more because of an extraneous motive; for +example, if in the Italic War the Senate should deliberate + + + p161 whether or not to grant citizen­ship to the Allies.​12 + In causes in which the subject of itself engenders the deliberation, +the entire discourse will be devoted to the subject itself. In those in +which an extraneous motive gives rise to the deliberation, it is this +motive which will have to be emphasized or depreciated. + +

+3 The orator who gives counsel will through his speech properly set up Advantage​13 as his aim,​14 so that the complete economy of his entire speech may be directed to it. + +

+Advantage in political deliberation has two aspects: Security​15 and Honour.16 + +

+To consider Security is to provide some plan or other for ensuring the +avoidance of a present or imminent danger. Subheads under Security are +Might and Craft, which we shall consider either separately or +conjointly. Might is determined by armies, fleets, arms, engines of war, + recruiting of man power, and the like. Craft is exercised by means of +money, promises, dissimulation, accelerated speed, deception, and the +other means, topics which + + + p163 I shall discuss at a more appropriate time, if ever I attempt to write on the art of war or on state administration.17 + +

+The Honourable is divided into the Right and the Praiseworthy.​18 The Right​19 is that which is done in accord with Virtue and Duty. Subheads under the Right are Wisdom, Justice, Courage, and Temperance.​20 + Wisdom is intelligence capable, by a certain judicious method, of +distinguishing good and bad; likewise the knowledge of an art is called +Wisdom; and again, a well-furnished memory, +or experience in diverse matters, is termed Wisdom. Justice is equity, +giving to each thing what it is entitled to in proportion to its worth.​21 + Courage is the reaching for great things and contempt for what is mean; + also the endurance of hardship in expectation of profit.​22 Temperance is self-control that moderates our desires.23 + +

+ 3 +4 We shall be using the topics of +Wisdom in our discourse if we compare advantages and disadvantages, +counselling the pursuit of the one and the avoidance of the other; if we + urge a course in a field in which we + + + p165 have a +technical knowledge of the ways and means whereby each detail should be +carried out; or if we recommend some policy in a matter whose history we + can recall either from direct experience or hearsay — in this instance +we can easily persuade our hearers to the course we wish by addu­cing +the precedent. + +

+We shall be using the topics of Justice if we say that we ought to pity +innocent persons and suppliants; if we show that it is proper to repay +the well-deserving with gratitude; if we +explain that we ought to punish the guilty; if we urge that faith ought +zealously to be kept; if we say that the laws and customs​24 + of the state ought especially to be preserved; if we contend that +alliances and friendships should scrupulously be honoured; if we make it + clear that the duty imposed by nature toward parents, gods, and +fatherland must be religiously observed; if we maintain that ties of +hospitality, clientage, kinship, and relation­ +ship by marriage must inviolably be cherished; if we show that neither +reward nor favour nor peril nor animosity ought to lead us astray from +the right path; if we say that in all cases a principle of dealing alike + with all should be established. With these and like topics of Justice +we shall demonstrate that an action of which we are sponsors in Assembly + or council is just, and by their contraries we shall demonstrate that +an action is unjust. As a result we shall be provided with the same +commonplaces for both persuasion and dissuasion. + +

+5 When we invoke as motive for a course + of action steadfastness in Courage, we shall make it clear that men +ought to follow and strive after noble and lofty + + + p167 actions, +and that, by the same token, actions base and unworthy of the brave +ought therefore to be despised by brave men and considered as beneath +their dignity. Again, from an honourable act no peril or toil, however +great, should divert us; death ought to be preferred to disgrace; no +pain should force an abandonment of duty; no man's enmity should be +feared in defence of truth; for country, for parents, guest-friends, +intimates, and for the things justice commands us to respect, it behoves + us to brave any peril and endure any toil. + +

+We shall be using the topics of Temperance if we censure the inordinate +desire for office, money, or the like; if we restrict each thing to its +definite natural bounds; if we show how much is enough in each case, +advise against going too far, and set the due limit to every matter. + +

+6 Virtues of this kind are to be +enlarged upon if we are recommending them, but depreciated if we are +urging that they be disregarded, so that the points which I have +made above​25 + will be belittled. To be sure, no one will propose the abandonment of +virtue, but let the speaker say that the affair is not of such a sort +that we can put any extraordinary virtue to the test; or that the virtue + consists rather of qualities contrary to those here evinced. Again, if +it is at all possible, we shall show that what our opponent calls +justice is cowardice, and sloth, and perverse generosity; what he has +called wisdom we shall term impertinent, babbling, and offensive +cleverness; what he declares to be temperance we shall declare to be +inaction and lax indifference; what he has named + + + p169 courage we shall term the reckless temerity of a gladiator.26 + +

+ 4 +7 The Praiseworthy is what produces an +honourable remembrance, at the time of the event and afterwards. +I have separated the Praiseworthy from the Right, not because the +four categories which I list under the appellative Right usually +fail to engender this honourable remembrance, but because, although the +praiseworthy has its source in the right, we must nevertheless in +speaking treat one apart from the other. Indeed we should pursue the +right not alone for the sake of praise; but if praise accrues, the +desire to strive after the right is doubled. When, therefore, a thing is + shown to be right, we shall show that it is also praiseworthy, whether +in the opinion of qualified persons (if, for example, something should +please a more honourable class of men, and be disapproved by a lower +class), or of certain allies, or all our fellow citizens, or foreign +nations, or our descendants. + +

+Such being the division of topics in deliberative speaking, I must briefly explain how to develop the cause as a whole. + +

+The Introduction may be made by means of the Direct Opening or of the +Subtle Approach, or by the same means as in a judicial cause. If there +happens to be a Statement of Facts, the same method will properly be +followed in the narrative. + +

+8 Since in causes of this kind the end +is Advantage, and Advantage is divided into the consideration of +Security and the consideration of Honour, if we can prove that both ends + will be served, we shall promise + + + p171 to make +this twofold proof in our discourse; if we are going to prove that one +of the two will be served, we shall indicate simply the one thing we +intend to affirm. If, now, we say that our aim is Security, we shall use + its subdivisions, Might and Strategy. For that which, in instructing, +I have, in order to give clarity and emphasis called Craft, we +shall in speaking call by the more honourable name of Strategy. If we +say that our counsel aims at the Right, and all four categories of Right + apply, we shall use them all. If these categories do not all apply, we +shall in speaking set forth as many as do. + +

+We shall use Proof and Refutation when we establish in our favour the +topics explained above, and refute the contrary topics. The rules for +developing an argument artistically will be found in Book II.​27 5 But + if it happens that in a deliberation the counsel of one side is based +on the consideration of security and that of the other on honour, as in +the case of those who, surrounded by Carthaginians, deliberate on a +course of action,​28 + then the speaker who advocates security will use the following topics: +Nothing is more useful than safety; no one can make use of his virtues +if he has not based his plans upon safety; not even the gods help those +who thoughtlessly commit themselves to danger; nothing ought to be +deemed honourable which does not produce safety. 9 One + who prefers the considerations of honour to security will use the +following topics: Virtue ought never to be renounced; either pain, if +that is feared, or death, if that is dreaded, is more + + + p173 tolerable +than disgrace and infamy; one must consider the shame which will ensue — + indeed neither immortality nor a life everlasting is achieved, nor is +it proved that, once this peril is avoided, another will not be +encountered; fortune, though, habitually favours the brave;​29 + not he who is safe in the present, but he who lives honourably, lives +safely — whereas he who lives shamefully cannot be secure for ever. + +

+As a general rule we employ virtually the same Conclusions in these as +in judicial causes, except that here especially it is useful to present +examples from the past in the greatest possible number. + +

+ 6 +10 Let us now turn to the Epideictic kind of cause.​30 + Since epideictic includes Praise and Censure, the topics on which +praise is founded will, by their contraries, serve us as the bases for +censure. The following, then, can be subject to praise: External + + + p175 Circumstances, Physical Attributes, and Qualities of Character.31 + +

+To External Circumstances​32 belong such as can happen by chance, or by fortune, favourable or adverse: descent,​33 education,​34 wealth,​35 kinds of power,​36 titles to fame,​37 citizen­ship,​38 friendships,​39 and the like, and their contraries. Physical Attributes​40 are merits or defect bestowed upon the body by nature: agility,​41 strength,​42 beauty,​43 health,​44 and their contraries. Qualities of Character​45 rest upon our judgement and thought: wisdom, justice, courage, temperance, and their contraries. 11 Such, then, in a cause of this kind, will be our Proof and Refutation. + +

+The Introduction​46 is drawn from our own person, or the person we are discussing, or the person of our hearers, or from the subject-matter itself. + +

 p177  +From our own person: if we speak in praise, we shall say that we are +doing so from a sense of duty, because ties of friendship exist; or from + goodwill, because such is the virtue of the person under discussion +that every one should wish to call it to mind; or because it is +appropriate to show, from the praise accorded him by others, what his +character is.​47 + If we speak in censure, we shall say that we are justified in doing so, + because of the treatment we have suffered; or that we are doing so from + goodwill, because we think it useful that all men should be apprised of + a wickedness and a worthlessness without parallel; or because it is +pleasing to show by our censure of others what conduct is pleasing to +ourselves. + +

+When we draw our Introduction from the person being discussed: if we +speak in praise, we shall say that we fear our inability to match his +deeds with words;​48 + all men ought to proclaim his virtues; his very deeds transcend the +eloquence of all eulogists. If we speak in censure, we shall, as +obviously we can by the change of a few words, and as I have +demonstrated just above, express sentiments to the contrary effect. + +

+12 When the Introduction is drawn from + the person of the hearers: if we speak in praise, we shall say that +since we are not delivering an encomium amongst people unacquainted with + the man, we shall speak but briefly, to refresh their memories; or if +they do not know him, we shall try to make them desire to know a man of +such excellence; since the hearers of our eulogy have the same zeal for +virtue as the subject of the eulogy had or now has, we hope easily to +win the approval of his deeds from those whose approval we desire. The +opposite, if it is censure: we shall say that since + + + p179 our +hearers know the man, we shall confine ourselves to a few words on +the subjects of his worthlessness; but if they do not, we shall try to +make them know him, in order that they may avoid his wickedness; since +our hearers are unlike the subject of our censure, we express the hope +that they will vigorously disapprove his way of life. + +

+When the Introduction is drawn from the subject-matter + itself: we shall say that we do not know what to praise in particular; +we fear that in discussing a number of things we shall pass by even + more; and add whatever will carry like sentiments. The sentiments +opposite to these are drawn upon, if we censure. + +

+ 7 +13 If the Introduction has been +developed in accordance with any of the methods just mentioned, there +will be no need for a Statement of Facts to follow it; but if there is +occasion for one, when we must recount with either praise or censure +some deed of the person discussed, the instructions for Stating the +Facts will be found in Book I.49 + +

+The Division we shall make is the following: we shall set forth the +things we intend to praise or censure; then recount the events, +observing their precise sequence and chronology, so that one may +understand what the person under discussion did and with what prudence +and caution. But it will first be necessary to set forth his virtues or +faults of character, and then to explain how, such being his character, +he has used the advantages or disadvantages, physical or external +circumstances. The following is the order we must keep when portraying a + life: +

 p181  +(1) External Circumstances: Descent — in praise: the ancestors of +whom he is sprung; if he is of illustrious descent, he has been their +peer or superior; if of humble descent, he had had his support, not in +the virtues of his ancestors, but in his own. In censure: if he is of +illustrious descent, he has been a disgrace to his forebears; if of low +descent, he is none the less a dishonour even to these. Education — in +praise: that he was well and honourably trained in worthy studies +throughout his boyhood. In censure: . . . +

+14 (2) Next we must pass to the +Physical Advantages: if by nature he has impressiveness and beauty, +these have served him to his credit, and not, as in the case of others, +to his detriment and shame; if he has exceptional strength and agility, +we shall point out that these were acquired by worthy and diligent +exercise; if he has continual good health, that was acquired by care and + by control over his passions. In censure, if the subject has this +physical advantages, we shall declare that he has abused what, like the +meanest gladiator, he has had by chance and nature. If he lacks them, we + shall say that to his own fault and want of self-control is his lack of every physical advantage, beauty apart, attributable. +

+(3) Then we shall return to External Circumstances and consider his + virtues and defects of Character evinced with respect to these: Has he +been rich or poor? What kinds of power has he wielded? What have been +his titles to fame? What his friendships? Or what his private feuds, and + what act of bravery has he performed in conducting these feuds? With +what motive has he entered into feuds? With what loyalty, goodwill, and +sense of duty has he + + + p183 conducted +his friendships? What character of man has he been in wealth, or in +poverty? What has been his attitude in the exercise of his prerogatives? + If he is dead, what sort of death did he die,​50 and what sort of consequences followed upon it? 8 15 In all circumstances, moreover, in which human character is chiefly studied, those four above-mentioned + virtues of character will have to be applied. Thus, if we speak in +praise, we shall say that one act was just, another courageous, another +temperate, and another wise; if we speak in censure, we shall declare +that one was unjust, another intemperate, another cowardly, and another +stupid. + +

+From this arrangement it is now no doubt clear how we are to treat the +three categories of praise and censure — with the added proviso that we +need not use all three for praise or for censure, because often not all +of them even apply, and often, too, when they do, the application is so +slight that it is unnecessary to refer to them. We shall therefore need +to choose those categories which seem to provide the greatest force. + +

+Our Conclusions will be brief, in the form of a Summary at the end of +the discourse; in the discourse itself we shall by means of commonplaces + frequently insert brief amplifications. + +

+Nor should this kind of cause​51 + be the less strongly recommended just because it presents itself only +seldom in life. Indeed when a task may present itself, be it only +occasionally, the ability to perform it as skilfully as possible must +seem desirable. And if epideictic is only seldom employed by itself +independently, still in judicial and deliberative causes extensive +sections are often devoted to praise or + + + p185 censure. Therefore let us believe that this kind of cause also must claim some measure of our industry. + +

+Now that I have completed the most difficult part of rhetoric — +thoroughly treating Invention and applying it to every kind of cause — +it is time to proceed to the other parts. I shall therefore next​52 discuss the Arrangement. + +

+ 9 +16 Since it is through the Arrangement​53 + that we set in order the topics we have invented so that there may be a + definite place for each in the delivery, we must see how kind of method + one should follow in the process of arranging. The kinds of Arrangement + are two: one arising from the principles of rhetoric, the other +accommodated to particular circumstances. + +

+Our Arrangement will be based on the principles of rhetoric when we +observe instructions that I have set forth in Book I​54 + — to use the Introduction, Statement of Facts, Division, Proof, +Refutation, and Conclusion, and in speaking to follow the order enjoined + above. It is likewise on the principles of the art that we shall be +basing our Arrangement, not only of the whole case throughout the +discourse, but also of the individual arguments, according to +Proposition, Reason, Proof of the Reason, Embellishment, and Résumé, as +I have explained in Book II.​55 17 This Arrangement, then, is twofold — one for the whole speech, and the other for the individual + + + p187 arguments — and is based upon the principles of rhetoric. + +

+But there is also another Arrangement, which, when we must depart from +the order imposed by the rules of the art, is accommodated to +circumstance in accordance with the speaker's judgement;​56 + for example, if we should begin our speech with the Statement of Facts, + or with some very strong argument, or the reading of some documents; or + if straightway after the Introduction we should use the Proof and then +the Statement of Facts; or if we should make some other change of this +kind in the order. But none of these changes ought to be made except +when our cause demands them. For if the ears of the audience seem to +have been deafened and their attention wearied by the wordiness of our +adversaries, we can advantageously omit the Introduction,​57 + and begin the speech with either the Statement of Facts or some strong +argument. Then, if it is advantageous — for it is not always necessary — + one may recur to the idea intended for the Introduction. 10 If + our cause seems to present so great a difficulty that no one can listen + to the Introduction with patience, we shall begin with the Statement of + Facts and then recur to the idea intended for the Introduction. If the +Statement of Facts is not quite plausible, we shall begin with some +strong argument. It is often necessary to employ such changes and +transpositions when the cause itself obliges us to modify with art the +Arrangement prescribed by the rules of the art. + +

 p189  +18 In the Proof and Refutation of +arguments it is appropriate to adopt an Arrangement of the following +sort: (1) the strongest arguments should be placed at the beginning + and at the end of the pleading; (2) those of medium force, and +also those that are neither useless to the discourse nor essential to +the proof, which are weak if presented separately and individually, but +become strong and plausible when conjoined with the others, should be +placed in the middle.​58 For immediately after the facts have been stated + the hearer waits to see whether the cause can by some means be proved, +and that is why we ought straightway to present some strong argument. +(3) And as for the rest, since what has been said last is easily +committed to memory, it is useful, when ceasing to speak, to leave some +very strong argument fresh in the hearer's mind. This arrangement of +topics in speaking, like the arraying of soldiers in battle, can readily + bring victory. + +

+ 11 +19 Many have said that the faculty of +greatest use to the speaker and the most valuable for persuasion is +Delivery. For my part, I should not readily say that any one of the + five faculties​59 is the most important; that an exceptionally great usefulness resides in the delivery I should boldly affirm.​60 For + + + p191 skilful +invention, elegant style, the artistic management of the parts +comprising the case, and the careful memory of all these will be of no +more value without delivery, than delivery alone and independent of +these. Therefore, because no one has written carefully on this subject​61 — all have thought it scarcely possible for voice, mien, and gesture to be lucidly described, as appertaining to our sense-experience + — and because the mastery of delivery is a very important requisite for + speaking, the whole subject, as I believe, deserves serious +consideration. + +

+Delivery, then, includes Voice Quality and Physical Movement.​62 Voice Quality​63 has a certain character of its own, acquired by method and application. 20 It has three aspects: Volume, Stability, and Flexibility. Vocal volume is primarily the gift of nature; cultivation​64 augments it somewhat, but chiefly conserves it. + + + p193 Stability +is primarily gained by cultivation; declamatory exercise augments it +somewhat, but chiefly conserves it. Vocal flexibility — the ability in +speaking to vary the intonations of the voice at pleasure — is primarily + achieved by declamatory exercise.​65 + Thus with regard to vocal volume, and in a degree also to stability, +since one is the gift of nature and the other is acquired by +cultivation, it is pointless to give any other advice than that the +method of cultivating the voice should be sought from those skilled in +this art.​66 12 It + seems, however, that I must discuss stability in the degree that +it is conserved by a system of declamation, and also vocal flexibility +(this is especially necessary to the speaker), because it too is +acquired by the discipline of declamation. + +

+21 We can, then, in speaking conserve +stability mainly by using for the Introduction a voice as calm and +composed as possible. For the windpipe is injured if filled with a +violent outburst of sound before it has been soothed by soft +intonations. And it is appropriate to use rather long pauses — the voice + is refreshed by respiration and the windpipe is rested by silence. We +should also relax from continual use of the full voice and pass to the +tone of conversation; for, as the result of changes, no one kind of tone + is spent, and we are complete in the entire range. Again, we ought to +avoid piercing exclamations, for a shock that wounds the windpipe is +produced by shouting which is excessively sharp and shrill,​67 + and the brilliance of the voice is altogether used up by one outburst. +Again, at the end of the speech it is proper to deliver long periods in +one unbroken + + + p195 breath,​68 + for then the throat becomes warm, the windpipe is filled, and the +voice, which has been used in a variety of tones, is restored to a kind +of uniform and constant tone. How often must we be duly thankful to +nature, as here! Indeed what we declare to be beneficial for conserving +the voice applies also to agreeableness of delivery, and, as a result, +what benefits our voice likewise finds favour in the hearer's taste. 22 A useful thing for stability is a calm tone in the Introduction.​69 + What is more disagreeable than the full voice in the Introduction to a +discourse? Pauses strengthen the voice. They also render the thoughts +more clear-cut by separating them, and leave the hearer time to think. +Relaxation from a continuous full tone conserves the voice, and the +variety gives extreme pleasure to the hearer too, since now the +conversational tone holds the attention and now the full voice rouses +it. Sharp exclamation injures the voice and likewise jars the hearer, +for it has about it something ignoble, suited rather to feminine outcry +than to manly dignity in speaking. At the end of the speech a sustained +flow is beneficial to the voice. And does not this, too, most vigorously + stir the hearer at the Conclusion of the entire discourse? Since, then, + the same means serve stability of the voice and agreeableness of +delivery, my present discussion will have dealt with both at once, +offering as it does the observations that have seemed appropriate on +stability, and the related observations on agreeableness. The rest +I shall set forth somewhat later, in its proper place.70 + +

 p197  + 13 +23 Now the flexibility of the voice, +since it depends entirely on rhetorical rules, deserves our more careful + consideration. The aspects of Flexibility are Conversational Tone, Tone + of Debate, and Tone of Amplification. The Tone of Conversation is +relaxed,​71 and is closest to daily speech. The Tone of Debate is energetic, and is suited to both proof and refutation.​72 The Tone of Amplification either rouses the hearer to wrath or moves him to pity. + +

+Conversational Tone comprises four kinds: the Dignified,​73 + The Explicative, the Narrative, and the Facetious. The Dignified, or +Serious, Tone of Conversation is marked by some degree of impressiveness + and by vocal restraint. The Explicative in a calm voice explains how +something could or could not have been brought to pass. The Narrative +sets forth events that have occurred or might have occurred.​74 The Facetious can on the basis of some circumstance elicit a laugh which is modest and refined.75 + +

+In the Tone of Debate are distinguishable the Sustained and the Broken. The Sustained is full-voiced + and accelerated delivery. The Broken Tone of Debate is punctuated +repeatedly with short, intermittent pauses, and is vociferated sharply. + +

+24 The Tone of Amplification includes the Hortatory and the Pathetic. The Hortatory, by amplifying + + + p199 some fault, incites the hearer to indignation. The Pathetic, by amplifying misfortunes, wins the hearer over to pity.76 + +

+Since, then, vocal flexibility is divided into three tones, and these in + turn subdivide into eight others, it appears that we must explain what +delivery is appropriate to each of these eight subdivisions. + +

+ 14 +(1) For the Dignified Conversational Tone it will be proper to use +the full throat but the calmest and most subdued voice possible, yet not + in such a fashion that we pass from the practice of the orator to that +of the tragedian.​77 + (2) For the Explicative Conversational Tone one ought to use a +rather thin-toned voice, and frequent pauses and intermissions, so that +we seem by means of the delivery itself to implant and engrave in the +hearer's mind the points we are making in our explanation. (3) For +the Narrative Conversational Tone varied intonations are necessary, so +that we seem to recount everything just as it took place. Our delivery +will be somewhat rapid when we narrate what we wish to show was done +vigorously, and it will be slower when we narrate something else done in + leisurely fashion. Then, corresponding to the content of the words, we +shall modify the delivery in all the kinds of tone, now to sharpness, +now to kindness, or now to sadness, and now to gaiety. If in the +Statement of Facts there occur any declarations, demands, replies, or +exclamations of astonishment concerning the facts we are narrating, we +shall give careful attention to expressing with the voice the + + + p201 feelings and thoughts of each personage. 25  +(4) For the Facetious Conversational Tone, with a gentle quiver in +the voice, and a slight suggestion of a smile, but without any trace of +immoderate laughter, one ought to shift one's utterance smoothly from +the Serious Conversational Tone to the tone of gentlemanly jest. + +

+Since the Tone of Debate is to be expressed either through the Sustained + or the Broken, when the (5) Sustained Tone of Debate is required, +one ought moderately to increase the vocal volume, and, in maintaining +an uninterrupted flow of words, also to bring the voice into harmony +with them, to inflect the tone accordingly, and to deliver the words +rapidly in a full voice, so that the voice production can follow the +fluent energy of the speech. (6) For the Broken Tone of Debate we +must with deepest chest tones produce the clearest possible +exclamations, and I advise giving as much time to each pause as to +each exclamation. + +

+For (7) the Hortatory Tone of Amplification we shall use a very +thin-toned voice, moderate loudness, an even flow of sound, frequent +modulations, and the utmost speed. (8) For the Pathetic Tone of +Amplification we shall use a restrained voice, deep tone, frequent +intermissions, long pauses, and marked changes. + +

+ 15 +On Voice Quality enough has been said. Now it seems best to discuss Physical Movement. + +

+26 Physical Movement78 + consists in a certain control of gesture and mien which renders what is + delivered more plausible. Accordingly the facial expression should show + modesty and animation, and the gestures should not be conspicuous for +either elegance or + + + p203 grossness,​79 + lest we give the impression that we are either actors or day labourers. + It seems, then, that the rules regulating bodily movement ought to +correspond to the several divisions of tone comprising voice. To +illustrate: (1) For the Dignified Conversational Tone, the speaker +must stay in position when he speaks, lightly moving his right hand, his + countenance expressing an emotion corresponding to the sentiments of +the subject — gaiety or sadness or an emotion intermediate. (2) For + the Explicative Conversational Tone, we shall incline the body forward a + little from the shoulders, since it is natural to bring the face as +close as possible to our hearers when we wish to prove a point and +arouse them vigorously. (3) For the Narrative Conversational Tone, +the same physical movement as I have just set forth for the +Dignified will be appropriate. (4) For the Facetious Conversational + Tone, we should by our countenance express a certain gaiety, without +changing gestures. + +

+27 (5) For the Sustained Tone of +Debate, we shall use a quick gesture of the arm, a mobile countenance, +and a keen glance. (6) For the Broken Tone of Debate, one must +extend the arm very quickly, walk up and down, occasionally stamp the +right foot, and adopt a keen and fixed look. + +

+(7) For the Hortatory Tone of Amplification, it will be appropriate + to use a somewhat slower and more deliberate gesticulation, but +otherwise to follow the procedure for the Sustained Tone of Debate. +(8) For the Pathetic Tone of Amplification, + + + p205 one ought to slap one's thigh​80 and beat one's head, and sometimes to use a calm and uniform gesticulation and a sad and disturbed expression. + +

+I am not unaware how great a task I have undertaken in trying +to express physical movements in words and portray vocal intonations in +writing. True, I was not confident that it was possible to treat +these matters adequately in writing. Yet neither did I suppose +that, if such a treatment were impossible, it would follow that what +I have done here would be useless, for it has been my purpose +merely to suggest what ought to be done. The rest I shall leave to +practice. This, nevertheless, one must remember: good delivery ensures +that what the orator is saying seems to come from his heart. 16 28 Now let me turn to the treasure-house of the ideas supplied by Invention, to the guardian of all the parts of rhetoric, the Memory.81 + +

+The question whether memory has some artificial quality, or comes +entirely from nature, we shall have another, more favourable, +opportunity to discuss. At present I shall accept as proved that in + this matter art and method are of great importance, and shall treat the + subject accordingly. For my part, I am + + + p207 satisfied that there is an art of memory — the grounds of my belief I shall explain elsewhere.​82 For the present I shall disclose what sort of thing memory is. + +

+There are, then, two kinds of memory: one natural, and the other the +product of art. The natural memory is that memory which is imbedded in +our minds, born simultaneously with thought. The artificial memory is +that memory which is strengthened by a kind of training and system of +discipline. But just as in everything else the merit of natural +excellence often rivals acquired learning, and art, in its turn, +reinforces and develops the natural advantages,​83 so does it happen in this instance. The natural memory, if a person is endowed with an exceptional one, 29 is + often like this artificial memory, and this artificial memory, in its +turn, retains and develops the natural advantages by a method of +discipline. Thus the natural memory must be strengthened by discipline +so as to become exceptional, and, on the other hand, this memory +provided by discipline requires natural ability. It is neither more nor +less true in this instance than in the other arts that science strives +by the aid of innate ability, and nature by the aid of the rules of art. + The training here offered will therefore also be useful to those who by + nature have a good memory, as you will yourself soon come to +understand.​84 + But even if these, relying on their natural talent, did not need our +help, we should still be justified in wishing to aid the less well-endowed. Now I shall discuss the artificial memory. + +

 p209  +The artificial memory includes backgrounds and images. By backgrounds +I mean such scenes as are naturally or artificially set off on a +small scale, complete and conspicuous, so that we can grasp and embrace +them easily by the natural memory — for example, a house, an +intercolumnar space, a recess, an arch, or the like. An image is, as it +were, a figure, mark, or portrait of the object we wish to remember; for + example, if we wish to recall a horse, a lion, or an eagle, we must +place its image in a definite background. 30 Now + I shall show what kind of backgrounds we should invent and how we +should discover the images and set them therein. + +

+ 17 +Those who know the letters of the alphabet can thereby write out what is + dictated to them and read aloud what they have written. Likewise, those + who have learned mnemonics can set in backgrounds what they have heard, + and from these backgrounds deliver it by memory. For the backgrounds +are very much like wax tablets​85 + or papyrus, the images like letters, the arrangement and disposition of + the images like the script, and the delivery is like the reading. We +should therefore, if we desire to memorize a large number of items, +equip ourselves with a large number of backgrounds, so that in these we +may set a large number of images. I likewise think it obligatory to + have these backgrounds in a series, so that we never by confusion in +their order be prevented from following the images — + + + p211 proceeding + from any background we wish, whatsoever its place in the series, and +whether we go forwards or backwards — nor from delivering orally what +has been committed to the backgrounds. 18 For + example, if we should see a great number of our acquaintances standing +in a certain order, it would not make any difference to us whether we +should tell their names beginning with the person standing at the head +of the line or at the foot or in the middle. So with respect to the +backgrounds. If these have been arranged in order, the result will be +that, reminded by the images, we can repeat orally what we committed to +the backgrounds, proceeding in either direction from any background we +please. 31 That is why it also seems best to arrange the backgrounds in a series. + +

+We shall need to study with special care the backgrounds we have adopted + so that they may cling lastingly in our memory, for the images, like +letters, are effaced when we make no use of them, but the backgrounds, +like wax tablets, should abide. And that we may by no chance err in the +number of backgrounds, each fifth background should be marked. For +example, if in the fifth we should set a golden hand, and in the tenth +some acquaintance whose first name is Decimus, it will then be easy to +station like marks in each successive fifth background. 19 Again, + it will be more advantageous to obtain backgrounds in a deserted than +in a populous region, because the crowding and passing to and fro of +people confuse and weaken the impress of the images, while solitude +keeps their outlines sharp. Further, backgrounds differing in form and +nature must be secured, so that, thus distinguished, they + + + p213 may be +clearly visible; for if a person has adopted many intercolumnar spaces, +their resemblance to one another will so confuse him that he will no +longer know what he has set in each background. And these backgrounds +ought to be of moderate size and medium extent, for when excessively +large they render the images vague, and when too small often seem +incapable of receiving an arrangement of images. 32 Then + the backgrounds ought to be neither too bright nor too dim, so that the + shadows may not obscure the images nor the lustre make them glitter. +I believe that the intervals between backgrounds should be of +moderate extent, approximately thirty feet; for, like the external eye, +so the inner eye of thought is less power­ful when you have moved the object of sight too near or too far away. + +

+Although it is easy for a person with a relatively large experience to +equip himself with as many and as suitable backgrounds as he may desire, + even a person who believes that he finds no store of backgrounds that +are good enough, may succeed in fashioning as many such as he wishes. +For the imagination can embrace any region whatsoever and in it at will +fashion and construct the setting of some background. Hence, if we are +not content with our ready-made supply of +backgrounds, we may in our imagination create a region for ourselves and + obtain a most serviceable distribution of appropriate backgrounds. + +

+On the subject of backgrounds enough has been said; let me now turn to the theory of images. + +

+ 20 +33 Since, then, images must resemble +objects, we ought ourselves to choose from all objects likenesses for +our use. Hence likenesses are bound to + + + p215 be of two kinds, one of subject-matter,​86 + the other of words. Likenesses of matter are formed when we enlist +images that present a general view of the matter with which we are +dealing; likenesses of words are established when the record of each +single noun or appellative is kept by an image. + +

+Often we encompass the record of an entire matter by one notation, a +single image. For example, the prosecutor has said that the defendant +killed a man by poison, has charged that the motive for the crime was an + inheritance, and declared that there are many witnesses and accessories + to this act. If in order to facilitate our defence we wish to remember +this first point, we shall in our first background form an image of the +whole matter. We shall picture the man in question as lying ill in bed, +if we know his person. If we do not know him, we shall yet take some one + to be our invalid, but a man of the lowest class, so that he may come +to mind at once. And we shall place the defendant at the bedside, +holding in his right hand a cup, and in his left tablets, and on the +fourth finger​87 a ram's testicles. In this way we can record the man who was poisoned, the inheritance, and the witnesses. 34 In + like fashion we shall set the other counts of the charge in backgrounds + successively, following their order, and whenever we wish to remember a + point, by properly arranging the patterns of the backgrounds​88 and carefully imprinting the images, we shall easily succeed in calling back to mind what we wish. + +

 p217  + 21 +When we wish to represent by images the likenesses of words, we shall be + undertaking a greater task and exercising our ingenuity the more. This +we ought to effect in the following way: + +

+ + + +
+

+Iam domum itionem reges Atridae arant.​89 +

+ +
+ + + +
+

+"And now their home-coming the kings, the sons of Atreus, are making ready." +

+ +

+If we wish to remember this verse, in our first background we should put + Domitius, raising hands to heaven while he is lashed by the Marcii +Reges​90 — that will represent "Iam domum itionem reges" ("And now their home-coming the kings,"); in the second background, Aesopus and Cimber,​91 being dressed as for the rôles of Agamemnon and Menelaüs in Iphigenia — that will represent "Atridae parant" + ("the sons of Atreus, making ready"). By this method all the words will + be represented. But such an arrangement of images succeeds only if we +use our notation to stimulate the natural memory, so that we first go +over a given verse twice or three times to ourselves and then represent +the words by means of images. In this way art will supplement nature. +For neither by itself will be strong enough, though we must note that +theory and technique are much the more reliable. I should not +hesitate to + + + p219 demonstrate + this in detail, did I not fear that, once having departed from my +plan, I should not so well preserve the clear conciseness of my +instruction. + +

+35 Now, since in normal cases some +images are strong and sharp and suitable for awakening recollection, and + others so weak and feeble as hardly to succeed in stimulating memory, +we must therefore consider the cause of these differences, so that, by +knowing the cause, we may know which images to avoid and which to seek. + +

+ 22 +Now nature herself teaches us what we should do. When we see in everyday + life things that are petty, ordinary, and banal, we generally fail to +remember them, because the mind is not being stirred by anything novel +or marvellous. But if we see or hear something exceptionally base, +dishonourable, extraordinary, great, unbelievable, or laughable, that we + are likely to remember a long time. Accordingly, things immediate to +our eye or ear we commonly forget; incidents of our childhood we often +remember best.​92 + Nor could this be so for any other reason than that ordinary things +easily slip from the memory while the striking and novel stay longer in +mind. 36 A sunrise, the sun's course, a sunset, are marvellous to no one because they occur daily.​93 + But solar eclipses are a source of wonder because they occur seldom, +and indeed are more marvellous than lunar eclipses, because these are +more frequent. Thus nature shows that she is not aroused by the common, +ordinary event, but is moved by a new or + + + p221 striking occurrence. Let art, then, imitate nature,​94 + find what she desires, and follow as she directs. For in invention +nature is never last, education never first; rather the beginnings of +things arise from natural talent, and the ends are reached by +discipline. + +

+37 We ought, then, to set up images of + a kind that can adhere longest in the memory. And we shall do so if we +establish likenesses as striking as possible; if we set up images that +are not many or vague, but doing something; if we assign to them +exceptional beauty or singular ugliness; if we dress some of them with +crowns or purple cloaks, for example, so that the likeness may be more +distinct to us; or if we somehow disfigure them, as by introdu­cing one +stained with blood or soiled with mud or smeared with red paint, so that + its form is more striking, or by assigning certain comic effects to our + images, for that, too, will ensure our remembering them more readily. +The things we easily remember when they are real we likewise remember +without difficulty when they are figments, if they have been carefully +delineated. But this will be essential — again and again to run over +rapidly in the mind all the original backgrounds in order to refresh the + images. + +

+ 23 +38 I know that most of the Greeks who have written on the memory​95 + have taken the course of listing images that correspond to a great many + words, so that persons who wished to learn these images by heart would +have them ready without expending effort on a search for them. +I disapprove of their method on several grounds. First, among the + + + p223 innumerable + multitude of words it is ridiculous to collect images for +a thousand. How meagre is the value these can have, when out of the + infinite store of words we shall need to remember now one, and now +another? Secondly, why do we wish to rob anybody of his initiative, so +that, to save him from making any search himself, we deliver to him +everything searched out and ready? Then again, one person is more struck + by one likeness, and another more by another. Often in fact when we +declare that some one form resembles another, we fail to receive +universal assent, because things seem different to different persons. +The same is true with respect to images: one that is well-defined to us appears relatively inconspicuous to others. 39 Everybody, + therefore, should in equipping himself with images suit his own +convenience. Finally, it is the instructor's duty to teach the proper +method of search in each case, and, for the sake of greater clarity, to +add in illustration some one or two examples of its kind, but not all. +For instance, when I discuss the search for Introductions, +I give a method of search and do not draught a thousand kinds +of Introductions. The same procedure I believe should be followed +with respect to images. + +

+ 24 +Now, lest you should perchance regard the memorizing of words either as +too difficult or as of too little use, and so rest content with the +memorizing of matter, as being easier and more useful, I must +advise you why I do not disapprove of memorizing words. +I believe that they who wish to do easy things without trouble and +toil must previously have been trained in more difficult things. Nor +have I included memorization of words to enable us to get + + + p225 verse by +rote, but rather as an exercise whereby to strengthen that other kind of + memory, the memory of matter, which is of practical use. Thus we may +without effort pass from this difficult training to ease in that other +memory. 40 In every discipline +artistic theory is of little avail without unremitting exercise, but +especially in mnemonics theory is almost valueless unless made good by +industry, devotion, toil, and care. You can make sure that you have as +many backgrounds as possible and that these conform as much as possible +to the rules; in pla­cing the images you should exercise every day. +While an engrossing preoccupation may often distract us from our other +pursuits, from this activity nothing whatever can divert us. Indeed +there is never a moment when we do not wish to commit something to +memory, and we wish it most of all when our attention is held by +business of special importance. So, since a ready memory is a useful +thing, you see clearly with what great pains we must strive to acquire +so useful a faculty. Once you know its uses you will be able to +appreciate this advice. To exhort you further in the matter of memory is + not my intention, for I should appear either to have lacked +confidence in your zeal or to have discussed the subject less fully than + it demands. + +

+I shall next discuss the fifth part of rhetoric. You might rehearse + in your mind each of the first four divisions, and — what is especially + necessary — fortify your knowledge of them with exercise. + + + +


+

+The Loeb Editor's Notes: +

+ +

+ 1 + +3.ii.2‑v.9, + +vi.10‑viii.15. + + +

+ + +

+ 2 + +3.ix.16‑x.18 + +below. + + +

+ + +

+ 3 + +3.xi.19‑xv.27 + +below. + + +

+ + +

+ 4 + +3.xvi.28‑xxiv.40 + +below. + + +

+ + +

+ 5 +Style would ordinarily have preceded Delivery and Memory; cf. 1.ii.3 + +above. + + +

+ + +

+ 6 +Of judicial oratory, the most difficult and important kind; cf. 2.i.1 + +above. + + +

+ + +

+ 7 +See note on the epideictic kind, + +3.vi.10 + +below. + + +

+ + +

+ 8 +Cato the Elder and Publius Scipio Nasica always ended their speeches, on + no matter what question, the one with "In my opinion, Carthage must be +destroyed," and the other with "In my opinion, Carthage must be spared"; + see + +Plutarch, Marcus Cato 27 (352), and + +Appian, Pun. 8(1).10.69. This suasoria was common among the rhetoricians; cf. Cicero, De Inv. 1.viii.11 + +and + +1.xii.17. + + +

+ + +

+ 9 +When, in 203 B.C., the Carthaginians were in danger from Scipio, they summoned Hannibal at once to Africa. + +Appian, Hann. 7.9.58, reports Hannibal's fear of the +perfidy and ingratitude of his countrymen. Alexandria, once captured, +might have appeared to him as a safe refuge from the Romans and his +enemies at home. Egypt had been weakened by the war with Antiochus the +Great. The deliberations are not referred to in any historical account +that has come down to us; the source may have been L. Coelius +Antipater. + + +

+ + +

+ 10 +A suasoria referring to the aftermath of Cannae in 216 B.C., as described in + +Livy 22.60 ff. + +Some wished to ransom + + +the prisoners at public cost; others opposed the +disbursement of money by the state, but not ransoming at the expense of +individuals, and would have granted, on surety, loans from the treasury +to those who needed money. T. Manlius Torquatus spoke against the +proposal, which failed. This suasoria was popular with the rhetoricians; cf. Cicero, + +De Oratore 3.28.109, De Offic. 1.13.40 + +and + +3.32.113. + + +

+ + +

+ 11 +Although Scipio Aemilianus was in fact seeking the aedile­ship, and not the consul­ship, for 147 B.C., he was exempted from the law requiring a candidate for the consul­ +ship to have been praetor (and at least two years previously); +at 36 (or 37) he was also well under the age required (in +Cicero's day 43 years) for holding the consul­ship. He was elected consul in order to deal with Carthage. +

+Our author's consistent rule is to refer to the younger Scipio simply as Scipio (see also + +4.v.7, + +4.xiii.19, +and + +4.xxxi.43 + +below) and to the elder as Africanus (see + +4.xv.22, + +4.xxv.34, +and + +4.xxxi.42). + + +

+ + +

+ 12 +When examined on its own account, this question might, for example, be +considered as involving a radical change in Roman institutions; +a motive "extraneous" to the question itself might be the effect of + the measure upon other allies now threatening defection. +In 90 B.C., L. Julius Caesar put through his law offering full Roman citizen­ship to all corporate communities in Italy that had not revolted; in the next year the lex Plautia-Papiria was passed, granting citizen­ +ship to any individual who (a) belonged to a city of Italy allied +with Rome, and (b) resided permanently in Italy, and +(c) applied for citizen­ship within sixty days. + + +

+ + +

+ 13 +τὸ συμφέρον (and Injury, τὸ βλαβερόν) in Aristotle, Rhet. 1.3 (1358B). Cf. Cicero, De Oratore 2.82.334: Thus in an advisory speech there is nothing more desirable than Worth (dignitas) . . . but Advantage generally gains the upper hand." + + +

+ + +

+ 14 +τέλος. In Aristotle, Rhet. 1.6 (1362A), σκοπός. The topics drawn from the "ends" of the three different branches of oratory were later called τελικὰ κεφάλαια. Volkmann, pp299 ff., discusses the treatment of these by different rhetoricians. Cf. Cicero, De Inv. 2.li.156 ff. + + +

+ + +

+ 15 +τὸ χρήσιμον, ἀναγκαῖον, ἀκίνδυνον. + + +

+ + +

+ 16 +τὸ καλόν. Aristotle, Rhet. 1.3 (1358B), makes Honour (and Justice) subsidiary to Advantage, but Cicero in + +De Inv. 2.li.156 + +sets forth Honour and Advantage as coördinate aims, and Antonius in + +De Oratore 2.82.335 + +considers the situation in which Advantage and Honour oppose each other. + The Stoics believed a conflict between Honour and Advantage to be +impossible; see + +Cicero, De Offic. 3.2.9 ff. + +Perhaps because of Stoic influence, Cicero makes Advantage the sole aim in + +Part. Orat. 24.83. + + +

+ + +

+ 17 +Whether our author ever wrote on these subjects we do not know. See notes on + +3.xvi.28 + +and + +4.xii.17 + +below. + + +

+ + +

+ 18 +ὀρθόν and ἐπαινετόν (Aristotle, Eth. Nic. 2.7.11, 1108A). + + +

+ + +

+ 19 +To be distinguished from ius + +(2.xiii.19). + + +

+ + +

+ 20 +σοφία (and φρόνησις — the definition shows that prudentia partakes of the nature of both), δικαιοσύνη, ἀνδρεία, σωφροσύνη. Here rhetoric draws upon philosophy for a catalogue of the virtues; see Plato, Republic 4.428 ff. After Plato's example, the Stoics treated these as the primary virtues; see e.g., the Epitome of Didymus in Stobaeus, 2.7.5 b 2 (ed. Wachsmuth, 2.60), and + +Diogenes Laertius 7.92. Cf. also Hippolytus, Ref. Omn. Haer. 1.20. Aristotle, Rhet. 1.9 (1366B), + lists Prudence as well as Wisdom among the elements of Virtue, and adds + Magnificence, Magnanimity, Liberality, and Gentleness. See + +note on 3.vi.10 + +below, and Kroll, Philologus 90 (1935), 206 ff. + + +

+ + +

+ 21 +Cf. 3.iii.4 + +below; Cicero, + +De Inv. 2.liii.160, + +De Nat. Deor. 3.15.38, + +De Offic. 1.5.15, + +De Leg. 1.6.19; Ulpian in + + + +Justinian, Dig. 1.1.10. On this concept (which was Greek in origin; cf.e.g., Aristotle, Top. 6.5 [143 A16], 6.7 [145 B36], Eth. Nic. 5.9 [1133B], Rhet. 1.9 [1366 B9], and the Stoic definition in Stobaeus, loc. cit.), see Leopold Wenger, "Suum Cuique in antiken Urkunden," in Aus der Geisteswelt des Mittelalters (Grabmann Festschrift), Münster, 1935, 1.1415‑25, and Felix Senn, De la justice et du droit, Paris, 1927, pp1‑54. + + +

+ + +

+ 22 +Cf. 3.iii.6 + +and + +4.xxv.35 + +below, and the definition in + +Cicero, De Inv. 2.liv.163. + + +

+ + +

+ 23 +Cf. Plutarch, De virt. mor. 2 (441A): "Virtue, when it moderates our desires (ἐπιθυμίαν κοσμοῦσα) and defines the mean and the seasonable in our pleasures, is called Temperance." + + +

+ + +

+ 24 +ἤθη καὶ νόμοι, ἔθη καὶ νόμιμα. Cf. 1.ii.2 + +and + +2.xii.19 + +above. + + +

+ + +

+ 25 + +3.iii.4‑5. + + +

+ + +

+ 26 + +Thucydides, 3.82, describing the moral effects of the revolutions in + the Hellenic world during the fifth year of the Peloponnesian war +(427‑6 B.C.), tells how men changed as +they thought fit the accepted value of words in their relation to +things: "For reckless audacity came to be regarded as the courage of self-sacrifice for party, cautious delay as fair-seeming cowardice, moderation as a screen for unmanliness, + + +and sagacity in all things as general fecklessness;" see also Cato in + +Sallust, Cat. 52.11. Our author here uses the figure distinctio (παραδιασστολή); see + +note on 4.xxv.35 + +below. + + +

+ + +

+ 27 + +2.xviii.28 ff. + + +

+ + +

+ 28 +A suasoria used also by Cicero, in + +De Inv. 2.lvii.171, concerning the inhabitants of Casilinum in Campania, after the heroic defence of 216 B.C. against Hannibal. + + +

+ + +

+ 29 +The proverb was extremely common in Greek and Latin literature; see Otto, s.v. "fortuna" 9, p144. + + +

+ + +

+ 30 +Cf. Cicero, De Inv. 2.lix.177‑8. The epideictic kind, like the deliberative (3.ii.2‑v.19 + +above), receives only a sketchy treatment from our author — evidence of the dominant position which the judicial kind, with its status + system, held in Hellenistic rhetoric. Despite the Epicurean notion that + only epideictic was amenable to rules, the judicial kind was in fact +the easiest to systematize, even as it was by far the most often +employed in Hellenistic times. The Greek term "epideictic" did not +primarily emphasize the speaker's virtuosity, nor was the Latin +equivalent demonstrativum intended to imply logical demonstration. Whereas in both + + +deliberative and judicial causes the speaker seeks to +persuade his hearers to a course of action, in epideictic his primary +purpose is by means of his art to impress his ideas upon them, without +action as a goal. On the scope and purpose of epideictic, and on the +discrepancies between our author's treatment and that of Aristotle (Rhet. 1.3, 1358B), see D. A. G. Hinks, Class. Quart. 30 (1936), 170‑6; cf. also + +Quintilian, 3.4.1 ff., and Volkmann, pp19 ff. In the Stoic scheme "encomiastic" was used instead of "epideictic"; see + +Diogenes Laertius 7.42. This term, for which laudativum (see + +Cicero, Part. Orat. 3.10, and Quintilian, + +3.3.14, + +3.4.12) would be the Latin equivalent, actually corresponds more closely to our author's definition of the genus than does demonstrativum. Doxapatres (Rabe, Proleg. Syll., + pp149 ff.) argues for the primacy of the deliberative kind, +setting the judicial in the second place, and the epideictic (panegyric) + last; cf. Isocrates, Paneg. 4, Antid. 46 ff., Panath. 271. See also Stanley Wilcox, Harvard Studies in Class. Philol. 53 (1942), 121‑155. + + +

+ + +

+ 31 +The classification is Platonic and Aristotelian; see, e.g., Plato, Gorgias 477C, Euthyd. 279, Philebus 48E, Laws 697B, 727A ff., Epist. 8.355B (cf. also Phaedrus 241C); Aristotle, Eth. Nic. 1.8, 1098B ("an ancient classification and one accepted by philosophers") Magna Moral. 1.3 (1184B), Protrepticus (see Oxyrh. Pap. 4.82 ff.). It also appears early in rhetorical theory; see Rhet. ad Alex. 1 (1422A). Cf. also Areius Didymus in Stobaeus, 2.7.14; + +Diogenes Laertius 5.30 ff.; Clemens Alex., Paedagogus 2.10.102; Hippolytus, Ref. Omn. Haer. 1.20; Sextus Empiricus, Adv. Ethic. 3.45; Aelius Aristides 45.17; Cicero, + +De Fin. 3.14.43, De Inv. + +1.liii.101 + +and + +2.lix.177, + +De Oratore 3.29.115, + +Part. Orat. 11.38, + +Top. 23.89; Apsines, Ars Rhet., in Spengel-Hammer 1(2).312.7 ff.; and see Claus Peters, pp71‑83. + + +

+ + +

+ 32 +τὰ ἐκτὸς ἀγαθά, τὰ ἐπίκτητα. + + +

+ + +

+ 33 +εὐγένεια. + + +

+ + +

+ 34 +παιδεία. + + +

+ + +

+ 35 +πλοῦτος, χρήματα, κτήματα. + + +

+ + +

+ 36 +δυνάμεις, δυναστεία. + + +

+ + +

+ 37 +εὐδοξία, τιμή. + + +

+ + +

+ 38 +πατρίς, πόλις, ἔθνος, πολιτεία. + + +

+ + +

+ 39 +φίλοι. Cf. Eutychus in + +Plautus, Mercator 845‑6: "What I kept seeking was +at home. There I found six companions: life, friendship, native +land, gladness, fun, and sport." + + +

+ + +

+ 40 +σῶμα. + + +

+ + +

+ 41 +ποδώκεια. + + +

+ + +

+ 42 +ἰσχύς, ῥώμη. + + +

+ + +

+ 43 +κάλλος. + + +

+ + +

+ 44 +ὑγίεια, εὐεξία. + + +

+ + +

+ 45 +ἀρεταὶ ψυχῆς — properly, Virtues of the Soul. See + +note on 3.ii.3 + +above. Our author and Cicero in De Inv. differ from the Rhet. ad Alex., Aristotle, and Theon in including only the "primary" virtues; see Georg Reichel, Quaestiones Progymnasm., diss. Leipzig, 1909, pp90 ff. + + +

+ + +

+ 46 +The tractatio is based upon the parts of the discourse, and thus follows the pre-Aristotelian rhetorical theory. +

+Note that unlike judicial (see + +1.iv.6) and deliberative + +(3.iv.7) + +oratory, epideictic lacks the Subtle Approach (insinuatio). + + +

+ + +

+ 47 +Or perhaps: "from one's praise of others what one's own character is." + + +

+ + +

+ 48 +Cf. Isocrates, Paneg. 13: "For + I notice that the other speakers in their Introductions mollify +their audience and make excuses for what they are going to say +. . . some saying that it is hard to find words to match the +greatness of the deeds", and Panath. 36; Demosthenes, Phil. 2.11; and also + +4.viii.12 + +and + +4.xxxix.51 + +below. + + +

+ + +

+ 49 + +1.viii.12‑ix.16. + + +

+ + +

+ 50 +If a noble death, εὐθανασία. + + +

+ + +

+ 51 +I.e., the epideictic. As a progymnasma it is the type περὶ ἐγκωμίου καὶ ψόγου. + + +

+ + +

+ 52 +In the Peripatetic order of the officia oratoris Style followed Invention in second place, Arrangement being third; cf. 1.ii.3 + +above, and + +the note on 3.i.1. + + +

+ + +

+ 53 +τάξις, οἰκονομία. + Corax and Tisias were the first to set up a theory of Arrangement. +Sulpitius Victor 14 (Halm, p320) distinguishes between the Natural +Arrangement (ordo naturalis) and the Artistic (ordo artificiosus, οἰκονομία), the former corresponding to our author's ordo artificiosus (see + +3.ix.17 + +below), the genus ab institutione artis profectum, and + + +the latter to our author's genus ad casum temporis adcommodatum. Cf. Quintilian's oeconomica dispositio in + +7.10.11. Athanasius (probably fourth Christian century), in Rabe, Proleg. Syll., p176, distinguishes τάξις from οἰκονομία on the same principle. + + +

+ + +

+ 54 + +1.iii.4. + + +

+ + +

+ 55 + +2.xviii.28. Conclusio is there called complexio. + + +

+ + +

+ 56 +On the principle of "anomaly" rather than "analogy." + + +

+ + +

+ 57 +But in + +1.vi.10 + +our author advises us in such circumstances to use the Subtle Approach, and to open with something that may provoke laughter. + + +

+ + +

+ 58 +Quintilian, + +5.12.14, calls this the Homeric disposition, from Il. 4.297‑9: "And first he [Nestor] arrayed the horsemen with horses and chariots, and behind them the foot-soldiers, many and valiant, to be a bulwark of battle. But the weaklings he drove into the midst." Cf. also Longinus, in Spengel-Hammer 1(2).185.16 ff. + + +

+ + +

+ 59 +Cf. 1.ii.3 + +above. + + +

+ + +

+ 60 +Cf. Quintilian, 11.3.2: "But delivery itself has a marvellously power­ful effect in oratory; for the nature of the material we have composed in our minds is not so important + + +as how we deliver it;" + +11.3.7: "Cicero also thinks action to be the dominant element in oratory;" + +11.3.5‑6: "For my part I would affirm that a mediocre speech +supported by all the power of delivery will have more force than the +best speech devoid of that power. That is why Demosthenes, asked what +was primary in the whole task of oratory, gave the palm to delivery, and + gave it second and third place as well. . . . So that we may +assume that he thought it to be not merely the first, but the only +virtue of oratory" (cf. also Philodemus, Rhet., ed. Sudhaus, 1.196; Cicero, + +Brutus 37.142, + + +Orator 17.56; + +Plutarch, Vitae Dec. Orat. 845B; Longinus, in Spengel-Hammer 1(2).195; Theon 5, in Spengel 2.104 f.). Our author is probably following Theophrastus; Athanasius (Rabe, Proleg. Syll., p177) says that to Theophrastus "the most important thing for persuasion in rhetoric is delivery." Cf. Philodemus, Rhet., ed. Sudhaus 1.93 (I use Gomperz' restoration): "Of the six, or as some hold, seven parts of rhetoric, Athenaeus [second century B.C.] said that the most important is delivery;" Longinus, in Spengel-Hammer + 1(2).194: "Delivery is of greatest importance for proof." Thrasymachus +maintained that delivery is given us by nature, not by art + +(Quintilian, 3.3.4). + + +

+ + +

+ 61 + +Diogenes Laertius, 5.48, lists a work on delivery by Theophrastus. +L. Plotius Gallus, friend of Marius, wrote about Gesture as +practised in his day + +(Quintilian, 11.3.143); whether this work antedated our treatise we do not know. Theophrastus was probably the first to make Delivery a + + +fourth officium oratoris (adding to it Invention, Style, and Arrangement, Aristotle's scheme in the Rhetoric); Aristotle (see Rhet. 3.1, 1403B) did not fully develop the theory of delivery. The Stoics followed Theophrastus; for their scheme see + +note on 1.ii.3 + +above. See also Philodemus on delivery, in H. M. Hubbell, The Rhetorica of Philodemus, New Haven, 1920, pp300‑1. + + +

+ + +

+ 62 +The divisions are probably Theophrastan (ἡ κίνησις τοῦ σώματος καὶ ὁ τόνος τῆς φωνῆς); see Athanasius, in Rabe, Proleg. Syll., p177. Cf. Longinus, in Spengel-Hammer 1(2).194: διάθεσις σώματός τε καὶ τόνου φωνῆς, and Dionysius Halic., De Demosth. 53: τὰ πάθη τὰ τῆς φωνῆς καὶ τὰ σχήματα τοῦ σώματος. + + +

+ + +

+ 63 +Cf. Cicero's study of Voice in De Oratore + +3.56.213‑58.219, + +3.60.224‑61.227, and + +Orator 17.55‑18.60; Quintilian's in + +11.3.14‑65. + + +

+ + +

+ 64 +Cura comprised methods derived from + rhetoric, music, and acting, but was in part also dietetic and medical +in nature; see Armin Krumbacher, Die Stimmbildung der Redner im Altertum bis auf die Zeit Quintilians, Paderborn, 1920, esp. pp101‑7. + + +

+ + +

+ 65 +Note that these references to declamatio, the earliest in extant Latin literature, appear in connection with delivery. Declamatio = probably ἀναφώνησις. See S. F. Bonner, Roman Declamation in the Late Republic and Early Empire, Liverpool 1949, p20, note 3. + + +

+ + +

+ 66 +The phonasci, teachers of singing and declamation. + + +

+ + +

+ 67 +The Rhodian school opposed the overloud delivery of the Asiatic orators. + + +

+ + +

+ 68 +Cf. Dionysius Halic., De Composit. Verb., +ch. 23, on the smooth mode of composition: "It limits +. . . the measure of the period so that a man's full breath +will be able to encompass it;" + +Cicero, Brutus 8.34. + + +

+ + +

+ 69 +Our author repeats the thought of the first sentence of Sect. 21 immediately above. + + +

+ + +

+ 70 +He proceeds at once to do so; see 3.xiii.23‑xiv.25. The detailed rules that follow belong to a rhetoric later than that of Theophrastus, who apparently did not hand down many + + +precepts of delivery. See Johannes Stroux, De Theophrasti virtutibus dicendi, Leipzig, 1912, p70; Maximilian Schmidt, Commentatio de Theophrasto rhetore, Halle, 1839, p61. + + +

+ + +

+ 71 +ἀνειμένη. + + +

+ + +

+ 72 +Contentio (ἐναγώνιος λόγος) represents the impassioned, vehement address of formal debate, sermo the informal language of ordinary conversation (Cicero, De Offic. 1.37.132: sermo in circulis, disputationibus, congressionibus familiarium versetur, sequatur etiam convivia). Our author's treatment seems to have a Peripatetic cast; see Aristotle, Rhet. 3.12 (1413B). Cf. Cicero, l.c. (in De Offic., Bk. 1, he follows the Stoic philosopher Panaetius): "Rules for contentio we have from the rhetoricians. There are none for sermo; yet I do not know why there cannot be for sermo, too." + + +

+ + +

+ 73 +Cf. the definition of dignitas, + +4.xiii.18 + +below. + + +

+ + +

+ 74 +The same definition of narratio as in + +1.iii.4 + +above. + + +

+ + +

+ 75 +The Facetious belongs naturally to sermo; see + +note on contentio + +above. The definition recalls the difference (e.g., Aristotle, Eth. Nic. 4.14, 1128) between the wit whose jests are in good taste (εὐτράπελος), and the buffoon (βωμολόχος). + + +

+ + +

+ 76 +Amplification and Appeal to Pity are separated in + +2.xxx.47 + +and + +2.xxxi.50 + +above; cf. 4.viii.11 + +(the Grand Style), + +4.xxviii.38 + +(Reduplication), + +4.liii.66 + +(Personification), and also + +4.xxxix.51 + +(Vivid Description) below. + + +

+ + +

+ 77 +On the speaker's delivery as against the actor's see + +3.xv.26 + +below; + +Cicero, Orator 25.86; Quintilian, 11.3.57, + +181 ff. + + +

+ + +

+ 78 +For the fullest extant treatment of gesture in ancient rhetoric see + +Quintilian, Bk. 11, ch. 3. + + +

+ + +

+ 79 +Here doubtless is the Theophrastan tradition of τὸ πρέπον (see + +note on 4.x.15 + +below); yet Athenaeus, + +1.20, says that Theophrastus gave free play to gestures in his own delivery. Cf. 3.xiv.24 + +above; also Cicero, De Oratore + +2.59.242, + +3.59.220; + +Quintilian, 11.3.89; + +Gellius 1.5. + + +

+ + +

+ 80 +Cf. Quintilian, 11.3.123: "Slapping the thigh, which, it is believed, Cleon [see + +Plutarch, Nicias 8] was the first to introduce at +Athens, is in common use; it is becoming as a sign of indignation and +also excites the hearer. Cicero + +[Brutus 80.278] + +misses this in Calidius." In Lucian, Rhetor. Praeceptor 19, the young learner is satirically encouraged to make use of this gesture. + + +

+ + +

+ 81 +On ancient mnemonics see Helga Hajdu, Das mnemotechnische Schrifttum des Mittelalters (Vienna, Amsterdam, and Leipzig, 1936), pp11‑23, and L. A. Post, Class. Weekly 25 (1932), 105‑110; on Memory in oral literature, J. A. Notopoulos, Trans. A. Philo. Assn. 69 (1938), 465‑493. The rhetorical interest in memoria + appears early, among the sophists, who valued its uses in the learning +of commonplaces and for improvisation. Our author's mnemonic system is +the oldest extant. Whether such pictorial methods were widely used by +the orators we do not know, but the theory persists to this day. See +also Longinus, in Spengel-Hammer 1(2).197‑206; + +Cicero, De Oratore 2.85.350‑88.360; and esp. Quintilian's historical and critical treatment, + +11.2.1‑51. + + +

+ + +

+ 82 +Whether our author ever published such an explanation we do not know. See notes on + +3.ii.3 + +and + +4.xii.17. + + +

+ + +

+ 83 +For the commonplace cf. Isocrates, Adv. Soph. 14 ff., Antid. 189 ff.; Plato, Phaedrus 269D; Cicero, + +Pro Archia 7.15, + +Tusc. Disp. 2.13, Crassus in + +De Oratore 1.25.113 ff.; + +Horace, Ars Poet. 408‑11; the comic (?) poet Simylus, in Stobaeus, 4.18 α 4; + +Longinus, De Sublim. 36.4; Quintilian, + +2.19.1 ff., and (on Delivery) + +11.3.11 ff.; and for its application + + +to memoria Antonius in + +Cicero, De Oratore 2.88.360, and Longinus, in Spengel-Hammer 1(2).204. + + +

+ + +

+ 84 +Cf. 3.xxii.36 + +below. + + +

+ + +

+ 85 +Cf. "the table of my memory," + +Shakespeare, Hamlet 1.5.98. For the analogy with wax cf. Socrates in Plato, Theaet. 191CD; Cicero, + +Part. Orat. 6.26, and in + +De Oratore 2.88.360, Charmadas (fl. 107 B.C.) and Metrodorus (born c. 150 B.C.); and the seal-ring in Aristotle, De Mem. et Recollect. + + +450AB. Cf. also, in Theophrastus, De Sens. 51‑2, + Democritus' theory that in vision the air is moulded like wax, and see +the interpretation of this passage by Paul Friedländer, Die platonischen Schriften, Berlin and Leipzig, 1930, p448, note 1. + + +

+ + +

+ 86 +Thus memoria embraces the speaker's command of his material as well as of the words. + + +

+ + +

+ 87 +According to + +Macrobius, Sat. 7.13.7‑8, the anatomists spoke of a nerve which extends from the heart to the fourth finger of the left hand (the digitus medicinalis), where it interlaces into the other nerves of that finger; the finger was therefore ringed, as with a crown. Testiculi suggests testes + + +(witnesses). Of the scrotum of the ram purses were +made; thus the money used for bribing the witnesses may perhaps also be +suggested. + + +

+ + +

+ 88 +At + +3.xvi.29 + +above formae is used to describe the images. + + +

+ + +

+ 89 +An iambic senarius, whether our author's own creation or from a tragedy by an unknown author (the Iphigenia + mentioned below?) is uncertain. Note that here the play is upon the +form of word, not its meaning, and that no special provision is made for + the adverb iam. Quintilian, + +11.2.25, doubts the efficacy of symbols to record a series of +connected words; "I do not mention the fact that some things, +certainly conjunctions, for example, cannot be represented by images." + + +

+ + +

+ 90 +The scene is doubtless our author's own creation. Rex was the name of one of the most distinguished families of the Marcian gens; the Domitian (of plebeian origin) was likewise a celebrated gens. + + +

+ + +

+ 91 +Clodius Aesopus (a friend of Cicero) was the greatest tragic actor of the first half of the first century B.C.; Cimber, mentioned only here, was no doubt also a favourite of the day. See Otto Ribbeck, Die römische Tragödie im Zeitalter der Republik, Leipzig, 1875, pp674‑6. + + +

+ + +

+ 92 +Cf. Jerome, Apol. adv. libr. Rufini 1.30. + + +

+ + +

+ 93 +Cf. Lucretius 2.1037‑8: + "So wondrous would this sight have been. Yet, wearied as all are with +satiety of seeing, how truly no one now deigns to gaze up at the bright +quarters of heaven!" + + +

+ + +

+ 94 +The idea is a commonplace in a variety of schools of thought: e.g., Democritus, fragm. 154, in Diels-Kranz, Die Fragmente der Vorsokratiker, 6th ed., 2.173, and Lucretius 5.1102, + +1354, + +1361 ff., + +1379; Aristotle, Physica 2.2 (194A) and 2.8 (199A), Meteor. 4.3 (381B), De mundo 5 (396B, in Diels-Kranz 1.153); Theophrastus, De Caus. Plant. 2.18.2; Dionysius Halic., Isaeus, ch. 16; + +Seneca, Epist. 65.3; + +Marcus Aurelius, Medit. 11.10; Plotinus, Enn. 5.8.1; + +Cicero, Orator 18.58, + +Quintilian, 8.3.71; + +Dante, Inferno 11.97 ff. + + +

+ + +

+ 95 +Precisely who these predecessors were we do not know. + + + +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+ 
+[image ALT: Valid HTML 4.01.]
+	+

+Page updated: +23 Feb 18 +

+ + \ No newline at end of file diff --git a/sources/book_3_files/401.png b/sources/book_3_files/401.png new file mode 100644 index 0000000..c010842 Binary files /dev/null and b/sources/book_3_files/401.png differ diff --git a/sources/book_3_files/Ebox.js b/sources/book_3_files/Ebox.js new file mode 100644 index 0000000..0c57824 --- /dev/null +++ b/sources/book_3_files/Ebox.js @@ -0,0 +1,2921 @@ +//\//////////////////////////////// +//\ overLIB 3.33 -- This notice must remain untouched at all times. +//\ Copyright Erik Bosrup 1998-2001. All rights reserved. +//\ +//\ By Erik Bosrup (erik@bosrup.com). Last modified 2001-01-26. +//\ Portions by Dan Steinman (dansteinman.com). Additions by other people are +//\ listed on the overLIB homepage. +//\ +//\ Get the latest version at http://www.bosrup.com/web/overlib/ +//\ +//\ This script is published under an open source license. Please read the license +//\ agreement online at: http://www.bosrup.com/web/overlib/license.html +//\ If you have questions regarding the license please contact erik@bosrup.com. +//\ +//\ This script library was originally created for personal use. By request it has +//\ later been made public. This is free software. Do not sell this as your own +//\ work, or remove this copyright notice. For full details on copying or changing +//\ this script please read the license agreement at the link above. +//\ +//\ Please give credit on sites that use overLIB and submit changes of the script +//\ so other people can use them as well. This script is free to use, don't abuse. +//\//////////////////////////////// +//\mini + +//\//////////////////////////////// +//\ ▸ the URLs above, at "bosrup.com", are dead: the entire site went belly-up. +//\//////////////////////////////// + + +//\//////////////////////////////// +//\ Thayer flavor: +//\ I've renamed "overlib" to "Ebox", "Fbox", etc. +//\ to save 3 characters on each call +//\ while specifying the language (English, French, etc.) +//\//////////////////////////////// + + +//////////////////////////////////// +// CONSTANTS +// Don't touch these. :) +//////////////////////////////////// +var INARRAY = 1; +var CAPARRAY = 2; +var STICKY = 3; +var BACKGROUND = 4; +var NOCLOSE = 5; +var CAPTION = 6; +var LEFT = 7; +var RIGHT = 8; +var CENTER = 9; +var OFFSETX = 10; +var OFFSETY = 11; +var FGCOLOR = 12; +var BGCOLOR = 13; +var TEXTCOLOR = 14; +var CAPCOLOR = 15; +var CLOSECOLOR = 16; +var WIDTH = 17; +var BORDER = 18; +var STATUS = 19; +var AUTOSTATUS = 20; +var AUTOSTATUSCAP = 21; +var HEIGHT = 22; +var CLOSETEXT = 23; +var SNAPX = 24; +var SNAPY = 25; +var FIXX = 26; +var FIXY = 27; +var FGBACKGROUND = 28; +var BGBACKGROUND = 29; +var PADX = 30; +var PADY = 31; +var PADX2 = 32; +var PADY2 = 33; +var FULLHTML = 34; +var ABOVE = 35; +var BELOW = 36; +var CAPICON = 37; +var TEXTFONT = 38; +var CAPTIONFONT = 39; +var CLOSEFONT = 40; +var TEXTSIZE = 41; +var CAPTIONSIZE = 42; +var CLOSESIZE = 43; +var FRAME = 44; +var TIMEOUT = 45; +var FUNCTION = 46; +var DELAY = 47; +var HAUTO = 48; +var VAUTO = 49; + + +//////////////////////////////////// +// DEFAULT CONFIGURATION +// You don't have to change anything here if you don't want to. All of this can be +// changed on your html page or through an overLIB call. +//////////////////////////////////// + +// Main background color (the large area) +// Usually a bright color (white, yellow etc) +if (typeof ol_fgcolor == 'undefined') { var ol_fgcolor = "#FFFFDD";} + +// Border color and color of caption +// Usually a dark color (black, brown etc) +if (typeof ol_bgcolor == 'undefined') { var ol_bgcolor = "#333399";} + +// Text color +// Usually a dark color +if (typeof ol_textcolor == 'undefined') { var ol_textcolor = "#000066";} + +// Color of the caption text +// Usually a bright color +if (typeof ol_capcolor == 'undefined') { var ol_capcolor = "#FFFFFF";} + +// Color of "Close" when using Sticky +// Usually a semi-bright color +if (typeof ol_closecolor == 'undefined') { var ol_closecolor = "#9999FF";} + +// Font face for the main text +if (typeof ol_textfont == 'undefined') { var ol_textfont = "Courier, Courier New, serif";} + +// Font face for the caption +if (typeof ol_captionfont == 'undefined') { var ol_captionfont = "Courier, Courier New";} + +// Font face for the close text +if (typeof ol_closefont == 'undefined') { var ol_closefont = "Courier, Courier New";} + +// Font size for the main text +if (typeof ol_textsize == 'undefined') { var ol_textsize = "1";} + +// Font size for the caption +if (typeof ol_captionsize == 'undefined') { var ol_captionsize = "1";} + +// Font size for the close text +if (typeof ol_closesize == 'undefined') { var ol_closesize = "1";} + +// Width of the popups in pixels +// 100-300 pixels is typical +if (typeof ol_width == 'undefined') { var ol_width = "225";} + +// How thick the ol_border should be in pixels +// 1-3 pixels is typical +if (typeof ol_border == 'undefined') { var ol_border = "2";} + +// How many pixels to the right/left of the cursor to show the popup +// Values between 3 and 12 are best +if (typeof ol_offsetx == 'undefined') { var ol_offsetx = 10;} + +// How many pixels below the cursor to show the popup +// Values between 3 and 12 are best +if (typeof ol_offsety == 'undefined') { var ol_offsety = 10;} + +// Default text for popups +// Should you forget to pass something to overLIB this will be displayed. +if (typeof ol_text == 'undefined (but the link is good !)') { var ol_text = "Default Text"; } + +// Default caption +// You should leave this blank or you will have problems making non caps popups. +if (typeof ol_cap == 'undefined') { var ol_cap = ""; } + +// Decides if sticky popups are default. +// 0 for non, 1 for stickies. +if (typeof ol_sticky == 'undefined') { var ol_sticky = 0; } + +// Default background image. Better left empty unless you always want one. +if (typeof ol_background == 'undefined') { var ol_background = ""; } + +// Text for the closing sticky popups. +// Normal is "Close". +if (typeof ol_close == 'undefined') { var ol_close = "Close"; } + +// Default vertical alignment for popups. +// It's best to leave RIGHT here. Other options are LEFT and CENTER. +if (typeof ol_hpos == 'undefined') { var ol_hpos = RIGHT; } +// TO CHANGE THIS WITHIN A PAGE: see syntax on +// E/Gazetteer/Places/Asia/Russia/_Topics/history/_Texts/SMANPS/Appendices/C*.html +// (search for "ol_hpos") + +// Default status bar text when a popup is invoked. +if (typeof ol_status == 'undefined') { var ol_status = ""; } + +// If the status bar automatically should load either text or caption. +// 0=nothing, 1=text, 2=caption +if (typeof ol_autostatus == 'undefined') { var ol_autostatus = 0; } + +// Default height for popup. Often best left alone. +if (typeof ol_height == 'undefined') { var ol_height = -1; } + +// Horizontal grid spacing that popups will snap to. +// 0 makes no grid, anything else will cause a snap to that grid spacing. +if (typeof ol_snapx == 'undefined') { var ol_snapx = 0; } + +// Vertical grid spacing that popups will snap to. +// 0 makes no grid, anything else will cause a snap to that grid spacing. +if (typeof ol_snapy == 'undefined') { var ol_snapy = 0; } + +// Sets the popups horizontal position to a fixed column. +// Anything above -1 will cause fixed position. +if (typeof ol_fixx == 'undefined') { var ol_fixx = -1; } + +// Sets the popups vertical position to a fixed row. +// Anything above -1 will cause fixed position. +if (typeof ol_fixy == 'undefined') { var ol_fixy = -1; } + +// Background image for the popups inside. +if (typeof ol_fgbackground == 'undefined') { var ol_fgbackground = ""; } + +// Background image for the popups frame. +if (typeof ol_bgbackground == 'undefined') { var ol_bgbackground = ""; } + +// How much horizontal left padding text should get by default when BACKGROUND is used. +if (typeof ol_padxl == 'undefined') { var ol_padxl = 1; } + +// How much horizontal right padding text should get by default when BACKGROUND is used. +if (typeof ol_padxr == 'undefined') { var ol_padxr = 1; } + +// How much vertical top padding text should get by default when BACKGROUND is used. +if (typeof ol_padyt == 'undefined') { var ol_padyt = 1; } + +// How much vertical bottom padding text should get by default when BACKGROUND is used. +if (typeof ol_padyb == 'undefined') { var ol_padyb = 1; } + +// If the user by default must supply all html for complete popup control. +// Set to 1 to activate, 0 otherwise. +if (typeof ol_fullhtml == 'undefined') { var ol_fullhtml = 0; } + +// Default vertical position of the popup. Default should normally be BELOW. +// ABOVE only works when HEIGHT is defined. +if (typeof ol_vpos == 'undefined') { var ol_vpos = BELOW; } + +// Default height of popup to use when placing the popup above the cursor. +if (typeof ol_aboveheight == 'undefined') { var ol_aboveheight = 50; } + +// Default icon to place next to the popups caption. +if (typeof ol_caption == 'undefined') { var ol_capicon = ""; } + +// Default frame. We default to current frame if there is no frame defined. +if (typeof ol_frame == 'undefined') { var ol_frame = self; } + +// Default timeout. By default there is no timeout. +if (typeof ol_timeout == 'undefined') { var ol_timeout = 0; } + +// Default javascript function. By default there is none. +if (typeof ol_function == 'undefined') { var ol_function = Function(); } + +// Default timeout. By default there is no timeout. +if (typeof ol_delay == 'undefined') { var ol_delay = 0; } + +// If overLIB should decide the horizontal placement. +if (typeof ol_hauto == 'undefined') { var ol_hauto = 0; } + +// If overLIB should decide the vertical placement. +if (typeof ol_vauto == 'undefined') { var ol_vauto = 0; } + + +//////////////////////////////////// +// ARRAY CONFIGURATION +// You don't have to change anything here if you don't want to. The following +// arrays can be filled with text and html if you don't wish to pass it from +// your html page. +//////////////////////////////////// + +// THAYER'S BOILERPLATES: +var CClickHere = "

Feu clic aquí per
"; +var EClickHere = "

Click here for
"; +var FClickHere = "

Faire clic ici pour
"; +var IClickHere = "

Cliccare qui per
"; +var NClickHere = "

Klik hier voor
"; +var PClickHere = "

Clique aqui para
"; +var SClickHere = "

Haga clic aquí para
"; +var CZero = "

La pàgina s\'obre en
AQUESTA finestra
"; +var EZero = "

Page opens
in THIS window
"; +var FZero = "

S\'ouvre dans
CETTE fenêtre
"; +var IZero = "

Si apre in
QUESTO pannello
"; +var PZero = "

A página abre
NESTA janela
"; +var SZero = "

La página abre
en ESTA ventana
"; +var CThisWindow = "
La pàgina s\'obre
en AQUESTA finestra
"; +var EThisWindow = "
Page opens
in THIS window
"; +var FThisWindow = "
S\'ouvre dans
CETTE fenêtre
"; +var IThisWindow = "
Si apre in
QUESTO pannello
"; + +// THAYER'S ARRAYS: +// Array with texts. FOR SIMPLICITY, KEEP THIS AT LINE 280 (Number is then linenum minus 285) +// LANGUAGE ORDER: E:0 - F:10 - I:20 - L:30 - S:40 - P:90 (…0-4: EFILS) +// AFTER THE COMMA AT THE END OF EACH LINE: THERE MUST BE A SPACE! +// EXCEPT THE LAST LINE HAS NO COMMA, NO SPACE: FOR SIMPLICITY, KEEP IT AS A BLANK LINE. +var ol_texts = new Array( +EZero, +"

(Page opens in another window)", +"

Link is offsite:
page opens in
another window.
", +"

(This photo or a related one, opens in another window)", +"

(The photo will open in another window)", +"

(Elsewhere on this page)", +EClickHere+"the author\'s note at the bottom of this page.", +EClickHere+"my note at the bottom of this page.", +"

Click here
to go back
to the reference
in the text.", +"

If you don\'t know what this is about,
the explanation is only a click away.
(Opens in another window)", +FZero, +"

(La page s\'ouvre dans une autre fenêtre)", +"

Le lien est hors site :
la page s\'ouvre
dans une autre fenêtre
", +"

(Cette photo ou une photo apparentée, s\'ouvre dans une autre fenêtre)", +"

(Cette photo s\'ouvre dans une autre fenêtre)", +"

(Ailleurs sur cette page)", +FClickHere+"la note de l\'auteur au bas de la page.", +FClickHere+"ma note au bas de la page.", +FClickHere+"retourner au renvoi dans le texte.", +"

Si vous ne savez pas ce de quoi il s\'agit, il n\'y a qu\'à faire clic pour l\'explication.
(S'ouvre dans une autre fenêtre)", +"

(Die Seite öffnet sich in DIESEM Fenster)", +"

(Die Seite öffnet sich in einem anderen Fenster)", +"

(Auf externe Site: die Seite öffnet sich in einem anderen Fenster)", +"

(Dieses Foto oder ein Ähnliches Foto öffnet sich in einem anderen Fenster)", +"

(Die Foto öffnet sich in einem anderen Fenster)", +" ", +" ", +" ", +" ", +" ", +IZero, +"

(La pagina si apre in un altro pannello)", +"

Il link è fuori sito:
la pagina si apre
in un altro pannello
", +"

(Questa foto o una foto connessa, si apre in un altro pannello)", +"

(La foto si apre in un altro pannello)", +"

(Altrove su questa pagina)", +IClickHere+"la nota
dell\' autore a piè di pagina.", +IClickHere+"la mia nota a piè di pagina.", +IClickHere+"tornare al riferimento nel testo.", +"

Se questo non vi dice nulla, basta cliccare per la spiegazione.
(La pagina si apre in un altro pannello)", +"

(HAC in fenestra aperietur pagina)", +"

(Altera in fenestra aperietur pagina)", +"

(In alio situ: altera in fenestra aperietur pagina)", +"

(Altera in fenestra aperietur haec seu conexa photo)", +"

(Altera in fenestra aperietur photo)", +"

(Alibi in hac pagina)", +"

Cliccare hic
ad auctoris sive editoris
adnotationem legendam
in ima pagina", +"

Cliccare hic
ad adnotationem meam
in ima pagina legendam", +"

Cliccare hic
ad revertendum in textum", +" ", +SZero, +"

(La página abre en una otra ventana)", +"

(Fuera del sitio: la página abre en una otra ventana)", +"

(Esta foto o una foto relacionada, abre en una otra ventana)", +"

(La foto abre en una otra ventana)", +"

(Otra parte en esta página)", +SClickHere+"la nota del autor en bajo de la página.", +SClickHere+"mi nota en bajo de la página.", +SClickHere+"volver a la referencia en el texto.", +" ", +EClickHere+"the article in Smith\'s Dictionary."+EThisWindow, +FClickHere+"l\' article de Smith\'s Dictionary."+FThisWindow, +IClickHere+"
l\' articolo
di Smith\'s Dictionary."+IThisWindow, +" ", +SClickHere+"el artículo de Smith\'s Dictionary.
(Abre en ESTA ventana)", +EClickHere+"the article in Smith\'s Dictionary.
(Page opens in another window)", +FClickHere+"l\' article de Smith\'s Dictionary.
(S'ouvre dans une autre fenêtre)", +IClickHere+"l\' articolo di Smith\'s Dictionary.
(Si apre in un altro pannello)", +" ", +SClickHere+"el artículo de Smith\'s Dictionary.
(Abre en una otra ventana)", +"

If you don\'t know what this is about,
the explanation is only a click away."+EThisWindow, +"

Si vous ne savez pas ce de quoi il s\'agit,
il n\'y a qu\'à faire clic pour l\'explication."+FThisWindow, +"

Se non sapete che cosa è,
basta cliccare qui per la spiegazione."+IThisWindow, +" ", +" ", +"

If you don\'t know what this is about,
the explanation is only a click away.
(Offsite: opens in another window)", +"

Si vous ne savez pas ce de quoi il s\'agit,
il n\'y a qu\'à faire clic pour l\'explication.
(Hors site: s\'ouvre dans une autre fenêtre)", +"

Se non sapete che cosa è,
basta cliccare qui per la spiegazione.
(Fuori sito: si apre in un altro pannello)", +" ", +" ", +EClickHere+"the relevant section
of an article
in Smith\'s Dictionary."+EThisWindow, +FClickHere+"le passage ou le chapitre de l\' article
de Smith\'s Dictionary."+FThisWindow, +IClickHere+"la parte corrispettiva di un articolo
di Smith\'s Dictionary."+IThisWindow, +" ", +SClickHere+"la parte relativa del artículo de Smith\'s Dictionary.
(Abre en ESTA ventana)", +EClickHere+"the relevant section
of an article
in Smith\'s Dictionary.
(Page opens
in another window)
", +FClickHere+"le passage ou le chapitre de l\' article
de Smith\'s Dictionary.
(S'ouvre dans une autre fenêtre)", +IClickHere+"la parte corrispettiva di un articolo
di Smith\'s Dictionary.
(Si apre in un altro pannello)", +" ", +SClickHere+"la parte relativa del artículo de Smith\'s Dictionary.
(Abre en una otra ventana)", +PZero, +"

(A página abre em uma outra janela)", +"

(Offsite: a página abre em uma outra janela)", +"

(Esta foto ou uma foto relacionada, abre em uma outra janela)", +"

(A foto abre em uma outra janela)", +"

(Em outro lugar desta página)", +PClickHere+"a anotação do autor no fim da página.", +PClickHere+"a minha anotação no fim da página.", +PClickHere+"voltar para a referência no texto.", +" ", +EClickHere+"the main index page of Smith\'s Dictionary.
(Opens in a separate index window)", +FClickHere+"la page principale de Smith\'s Dictionary.
(S\'ouvre dans une autre fenêtre-index)", +IClickHere+"la pagina principale di Smith\'s Dictionary.
(Si apre in un altro pannello-indice)", +" ", +SClickHere+"la página principal de Smith\'s Dictionary.
(Abre en una otra ventana-indice)", +" ", +"

Click here
for the text discussion.
(Elsewhere on this page)", +EClickHere+"the main index page of Smith\'s Dictionary."+EThisWindow, +EClickHere+"the main index page of Daremberg & Saglio\'s Dictionary.
(Opens in a separate index window)", +EClickHere+"the main index page of Daremberg & Saglio\'s Dictionary."+EThisWindow, +EClickHere+"the article in Platner\'s Topographical Dictionary of Ancient Rome.
(Page opens in THIS window)", +FClickHere+"l\'article dans le Topographical Dictionary of Ancient Rome de Platner.
(La page s\'ouvre dans CETTE fenêtre)", +IClickHere+"l\' articolo nel Topographical Dictionary of Ancient Rome del Platner."+IThisWindow, +"

Cliccare hic ad articulum legendum
in Platneri Topographical Dictionary of Ancient Rome.
(Anglice, HANC in fenestram aperietur pagina)", +SClickHere+"el artículo en el Topographical Dictionary of Ancient Rome de Platner.
(Abre en ESTA ventana)", +EClickHere+"the article in Platner\'s Topographical Dictionary of Ancient Rome.
(Page opens in another window)", +FClickHere+"l\'article dans le Topographical Dictionary of Ancient Rome de Platner.
(La page s\'ouvre dans une autre fenêtre)", +IClickHere+"l\' articolo nel Topographical Dictionary of Ancient Rome del Platner.
(Si apre in un altro pannello)", +"

Cliccare hic ad articulum legendum
in Platneri Topographical Dictionary of Ancient Rome.
(Anglice, altera in fenestra aperietur pagina)", +SClickHere+"el artículo en el Topographical Dictionary of Ancient Rome de Platner.
(Abre en una otra ventana)", +EClickHere+"the article in Platner\'s Topographical Dictionary of Ancient Rome, with one or more photos.
(Page opens in THIS window)", +FClickHere+"l\'article dans le Topographical Dictionary of Ancient Rome de Platner, avec une ou plusieurs photos.
(La page s\'ouvre dans CETTE fenêtre)", +IClickHere+"l\' articolo nel Topographical Dictionary of Ancient Rome del Platner, con una o parecchie foto."+IThisWindow, +"

Cliccare hic ad articulum legendum
in Platneri Topographical Dictionary of Ancient Rome,
una pluribusve cum photographiis.
(Anglice, HANC in fenestram aperietur pagina)", +" ", +EClickHere+"the article in Platner\'s Topographical Dictionary of Ancient Rome, with one or more photos.
(Page opens in another window)", +FClickHere+"l\'article dans le Topographical Dictionary of Ancient Rome de Platner, avec une ou plusieurs photos.
(La page s\'ouvre dans une autre fenêtre)", +IClickHere+"l\' articolo nel Topographical Dictionary of Ancient Rome del Platner, con una o parecchie foto.
(Si apre in un altro pannello)", +"

Cliccare hic ad articulum legendum
in Platneri Topographical Dictionary of Ancient Rome,
una plurisve photographiis.
(Anglice, altera in fenestra aperietur pagina)", +" ", +EClickHere+"the relevant section of an article in Platner\'s Topographical Dictionary of Ancient Rome.
(Page opens in THIS window)", +FClickHere+"la partie relative à ce sujet dans l\'article du Topographical Dictionary of Ancient Rome de Platner.
(La page s\'ouvre dans CETTE fenêtre)", +IClickHere+"la parte pertinente di un articolo nel Topographical Dictionary of Ancient Rome del Platner."+IThisWindow, +" ", +SClickHere+"la parte pertinente de un artículo en el Topographical Dictionary of Ancient Rome de Platner.
(Abre en ESTA ventana)", +EClickHere+"the relevant section of an article in Platner\'s Topographical Dictionary of Ancient Rome.
(Page opens in another window)", +FClickHere+"la partie relative à ce sujet dans l\'article du Topographical Dictionary of Ancient Rome de Platner.
(La page s\'ouvre dans une autre fenêtre)", +IClickHere+"la parte pertinente di un articolo nel Topographical Dictionary of Ancient Rome del Platner.
(Si apre in un altro pannello)", +" ", +SClickHere+"la parte pertinente de un artículo en el Topographical Dictionary of Ancient Rome de Platner.
(Abre en una otra ventana)", +EClickHere+"the complete work(s), onsite.
(Page opens in THIS window)", +" ", +" ", +" ", +" ", +EClickHere+"the complete work(s), onsite.
(Page opens in another window)", +" ", +" ", +" ", +" ", +EClickHere+"Armellini\'s
Chiese di Roma,
to this passage.
(In Italian;
page opens in THIS window)
", +FClickHere+"Chiese di Roma de Mariano Armellini, à ce passage.
(en italien; la page s\'ouvre dans CETTE fenêtre)", +IClickHere+"le Chiese di Roma dell\' Armellini, a questo passo."+IThisWindow, +" ", +" ", +EClickHere+"Armellini\'s
Chiese di Roma,
to this passage.
(In Italian;
page opens
in another window)
", +FClickHere+"Chiese di Roma de Mariano Armellini, à ce passage.
(en italien; la page s\'ouvre dans une autre fenêtre)", +IClickHere+"le Chiese di Roma dell\' Armellini, a questo passo.
(Si apre in un altro pannello)", +" ", +" ", +EClickHere+"Christian Hülsen\'s
Chiese di Roma nel Medio Evo,
to this passage or section.
(In Italian;
page opens in THIS window)", +FClickHere+"Chiese di Roma nel Medio Evo de Christian Hülsen, à ce passage.
(en italien; la page s\'ouvre dans CETTE fenêtre)", +IClickHere+"le Chiese di Roma nel Medio Evo di Christian Hülsen, a questo passo."+IThisWindow, +" ", +" ", +EClickHere+"Christian Hülsen\'s
Chiese di Roma nel Medio Evo,
to this passage or section.
(In Italian;
page opens in another window)
", +FClickHere+"Chiese di Roma nel Medio Evo de Christian Hülsen, à ce passage.
(en italien; la page s\'ouvre dans une autre fenêtre)", +IClickHere+"le Chiese di Roma nel Medio Evo di Christian Hülsen, a questo passo.
(Si apre in un altro pannello)", +" ", +" ", +EClickHere+"my homepage for this church,
with the texts of Armellini, Hülsen, and Titi,
plus photos and offsite links.
(Page opens in THIS window)", +FClickHere+"mon site sur cette église,
avec les textes d\'Armellini, de Hülsen, et de Titi,
ainsi que des photos et des liens hors site."+FThisWindow, +IClickHere+"il mio sito sulla chiesa,
con i testi dell\' Armellini, del Hülsen, e/o del Titi;
e con fotografie e links fuori sito."+IThisWindow, +" ", +SClickHere+"mi sitio sobre esta iglesia, con los textos de Armellini, de Hülsen, y de Titi; y con fotos y enlaces externos.
(Abre en ESTA ventana)", +EClickHere+"my homepage for this church, with the texts of Armellini, Hülsen, and Titi, plus photos and offsite links.
(Page opens in another window)", +FClickHere+"mon site sur cette église, avec les textes d\'Armellini, de Hülsen, et de Titi, ainsi que des photos et des liens hors site.
(S\'ouvre dans une autre fenêtre)", +IClickHere+"il mio sito sulla chiesa, con i testi dell\' Armellini, del Hülsen, e/o del Titi; e con fotografie e links fuori sito.
(Si apre in un altro pannello)", +" ", +SClickHere+"mi sitio sobre esta iglesia, con los textos de Armellini, de Hülsen, y de Titi; y con fotos y enlaces externos.
(Abre en una otra ventana)", +EClickHere+"the article in Daremberg & Saglio\'s Dictionary.
(Page opens in THIS window)", +FClickHere+"l\' article du Dictionnaire de Daremberg & Saglio."+FThisWindow, +IClickHere+"l\' articolo del Dizionario di Daremberg e Saglio."+IThisWindow, +" ", +SClickHere+"el artículo del Diccionario de Daremberg y Saglio.
(Abre en ESTA ventana)", +EClickHere+"the article in Daremberg & Saglio\'s Dictionary.
(Page opens in another window)", +FClickHere+"l\' article du Dictionnaire de Daremberg & Saglio.
(S'ouvre dans une autre fenêtre)", +IClickHere+"l\' articolo del Dizionario di Daremberg e Saglio.
(Si apre in un altro pannello)", +" ", +SClickHere+"el artículo del Diccionario de Daremberg y Saglio.
(Abre en una otra ventana)", +EClickHere+"my page."+EThisWindow, +FClickHere+"ma page."+FThisWindow, +IClickHere+"la mia pagina."+IThisWindow, +" ", +SClickHere+"mi página.
(Abre en ESTA ventana)", +EClickHere+"my page.
(Opens in another window)", +FClickHere+"ma page.
(S'ouvre dans une autre fenêtre)", +IClickHere+"la mia pagina.
(Si apre in un altro pannello)", +" ", +SClickHere+"mi página.
(Abre en una otra ventana)", +EClickHere+"my pages.
(Orientation page opens in THIS window)", +FClickHere+"mes pages.
(La page d\'orientation s\'ouvre dans CETTE fenêtre)", +IClickHere+"le mie pagine.
(La pagina di orientazione si apre in QUESTO pannello)", +" ", +SClickHere+"mis páginas.
(La página de orientación abre en ESTA ventana)", +EClickHere+"my pages.
(Orientation page opens in another window)", +FClickHere+"mes pages.
(La page d\'orientation s\'ouvre dans une autre fenêtre)", +IClickHere+"le mie pagine.
(La pagina di orientazione si apre in un altro pannello)", +" ", +SClickHere+"mis páginas.
(La página de orientación abre en una otra ventana)", +EClickHere+"my page on this church, with photos."+EThisWindow, +FClickHere+"ma page sur cette église, avec photos."+FThisWindow, +IClickHere+"la mia pagina su questa chiesa, con delle foto."+IThisWindow, +" ", +SClickHere+"mi página sobre esta iglesia, con fotos.
(Abre en ESTA ventana)", +EClickHere+"my page on this church, with photos.
(Opens in another window)", +FClickHere+"ma page sur cette église, avec photos.
(S'ouvre dans une autre fenêtre)", +IClickHere+"la mia pagina su questa chiesa, con delle foto.
(Si apre in un altro pannello)", +" ", +SClickHere+"mi página sobre esta iglesia, con fotos.
(Abre en una otra ventana)", +EClickHere+"my pages on this church, with photos.
(Orientation page
opens in THIS window)
", +FClickHere+"mes pages sur cette église, avec photos.
(La page d\'orientation s\'ouvre dans CETTE fenêtre)", +IClickHere+"le mie pagine su questa chiesa, con delle foto.
(La pagina di orientazione si apre in QUESTO pannello)", +" ", +SClickHere+"mis páginas sobre esta iglesia, con fotos.
(La página de orientación abre en ESTA ventana)", +EClickHere+"my pages on this church, with photos.
(Orientation page
opens in another window)
", +FClickHere+"mes pages sur cette église, avec photos.
(La page d\'orientation s\'ouvre dans une autre fenêtre)", +IClickHere+"le mie pagine su questa chiesa, con delle foto.
(La pagina di orientazione si apre in un altro pannello)", +" ", +SClickHere+"mis páginas sobre esta iglesia, con fotos.
(La página de orientación abre en una otra ventana)", +EClickHere+"my site on this town,
with photos and links.
(Orientation page opens in THIS window)", +FClickHere+"mes pages sur cette ville,
avec photos et liens.
(La page d\'orientation s\'ouvre dans CETTE fenêtre)", +IClickHere+"le mie pagine su questa città,
con fotografie e un elenco di link.
(La pagina di orientazione si apre in QUESTO pannello)", +" ", +SClickHere+"mis páginas sobre esta ciudad,
con fotos y enlaces.
(La página de orientación abre en ESTA ventana)", +EClickHere+"my site on this town,
with photos and links.
(Orientation page opens in another window)", +FClickHere+"mes pages sur cette ville,
avec photos et liens.
(La page d\'orientation s\'ouvre dans une autre fenêtre)", +IClickHere+"le mie pagine su questa città,
con fotografie e un elenco di link.
(La pagina di orientazione si apre in un altro pannello)", +" ", +SClickHere+"mis páginas sobre esta ciudad,
con fotos y enlaces.
(La página de orientación abre en una otra ventana)", +EClickHere+"the passage
in an English translation
linked to the original Latin.
(Opens in another window)

", //"THIS IS WHAT REALLY BELONGS IN 520:
Click here for the passage
in the Latin text of Suetonius,
linked to an English translation.
(Opens in another window)", +FClickHere+"le passage
en traduction anglaise
lié au texte latin.
(S'ouvre dans une autre fenêtre)", +IClickHere+"il passo
in una traduzione inglese
collegato al testo latino.
(Si apre in un altro pannello)
", //"THIS IS WHAT REALLY BELONGS IN 522:
Cliccare qui per il passo
nel testo latino di Svetonio,
collegato a traduzioni in inglese e francese.
(Si apre in un altro pannello)", +"

Cliccare hic ad legendum
in anglica versione
ad Latinum textum conexum.
(Altera in fenestra aperietur pagina)", +SClickHere+"este pasaje
en una traducción inglesa
con enlace al texto latino.
(Abre en una otra ventana)", +EClickHere+"the passage
in an English translation
linked to the original Latin.
(Offsite, opens in another window)

", //"THIS IS WHAT REALLY BELONGS IN 525:
Click here for the passage
in the Latin text of Suetonius,
linked to an English translation.
(Opens in another window)", +FClickHere+"le passage
en traduction anglaise
lié au texte latin.
(Hors site, s\'ouvre dans une autre fenêtre)", +IClickHere+"il passo
in una traduzione inglese
collegato al testo latino.
(Fuori sito, si apre in un altro pannello)
", //"THIS IS WHAT REALLY BELONGS IN 507:
Cliccare qui per il passo
nel testo latino di Svetonio,
collegato a traduzioni in inglese e francese.
(Si apre in un altro pannello)", +"

Cliccare hic ad legendum
in anglica versione
ad Latinum textum conexum.
(Apud alios, altera in fenestra aperietur pagina)", +SClickHere+"este pasaje
en una traducción inglesa
con enlace al texto latino.
(Fuera del sitio, abre en una otra ventana)", +EClickHere+"the passage
in the original Latin
linked to an English translation.
(Opens in another window)

", //"THIS IS WHAT REALLY BELONGS IN 510:
Click here for the passage
in the Latin text of Suetonius,
linked to an English translation.
(Opens in another window)", +FClickHere+"le passage
dans le texte latin
lié à une traduction anglaise.
(S'ouvre dans une autre fenêtre)", +IClickHere+"il passo
nel testo latino
collegato ad una traduzione inglese.
(Si apre in un altro pannello)
", //"THIS IS WHAT REALLY BELONGS IN 512:
Cliccare qui per il passo
nel testo latino di Svetonio,
collegato a traduzioni in inglese e francese.
(Si apre in un altro pannello)", +"

Cliccare hic ad legendum
Latinum textum
ad anglicam versionem conexum.
(Altera in fenestra aperietur pagina)", +SClickHere+"este pasaje
en el texto latino
con enlace a una traducción inglesa.
(Abre en una otra ventana)", +EClickHere+"the passage
in the original Latin
linked to an English translation.
(Offsite, opens in another window)

", //"THIS IS WHAT REALLY BELONGS IN 515:
Click here for the passage
in the Latin text of Suetonius,
linked to an English translation.
(Opens in another window)", +FClickHere+"le passage
dans le texte latin
lié à une traduction anglaise.
(Hors site, s\'ouvre dans une autre fenêtre)", +IClickHere+"il passo
nel testo latino
collegato ad una traduzione inglese.
(Fuori sito, si apre in un altro pannello)
", //"THIS IS WHAT REALLY BELONGS IN 517:
Cliccare qui per il passo
nel testo latino di Svetonio,
collegato a traduzioni in inglese e francese.
(Si apre in un altro pannello)", +"

Cliccare hic ad legendum
Latinum textum
ad anglicam versionem conexum.
(Apud alios, altera in fenestra aperietur pagina)", +SClickHere+"este pasaje
en el texto latino
con enlace a una traducción inglesa.
(Fuera del sitio, abre en una otra ventana)", +EClickHere+"the passage
in Pliny the Elder\'s Natural History.
(Latin, opens in another window)", +FClickHere+"le passage
dans l\'Histoire Naturelle de Pline l\'ancien.
(En latin; s\'ouvre dans une autre fenêtre)", +IClickHere+"il passo
nella Storia Naturale di Plinio il Vecchio.
(In latino; si apre in un altro pannello)", +" ", +SClickHere+"el pasaje
en la Historia Natural de Plinio el Viejo.
(En latín; abre en una otra ventana)", +EClickHere+"the passage
in Ptolemy\'s Geography.
(English, opens in another window)", +FClickHere+"le passage
dans la Géographie de Ptolémé.
(En anglais; s\'ouvre dans une autre fenêtre)", +IClickHere+"il passo
nella Geografia di Tolomeo.
(In inglese; si apre in un altro pannello)", +"

Cliccare hic ad textum legendum
in Geographia Ptolemaei.
(Anglice, altera in fenestra aperietur pagina)", +" ", +EClickHere+"the passage
in Ammian
in an English translation
linked to the original Latin.
(Opens in another window)", +FClickHere+"le passage
dans Ammien
en traduction anglaise
liée au texte latin.(S'ouvre dans une autre fenêtre)", +"

Cliccare qui per il passo
in Ammiano
in una traduzione inglese
collegato al testo latino.
(Si apre in un altro pannello)", +" ", +" ", +EClickHere+"the passage
in Appian.
(English, opens in another window)", +FClickHere+"le passage
dans Appien.
(En anglais; s\'ouvre dans une autre fenêtre)", +IClickHere+"il passo
in Appiano.
(In inglese; si apre in un altro pannello)", +" ", +" ", +EClickHere+"the passage
in Cassius Dio\'s History.
(English, opens in another window)", +FClickHere+"le passage
dans l\'Histoire de Dion Cassius.
(En anglais; s\'ouvre dans une autre fenêtre)", +IClickHere+"il passo
nella Storia di Cassio Dione.
(In inglese; si apre in un altro pannello)", +" ", +SClickHere+"el pasaje
en Dion Cásio.
(en inglés, abre en una otra ventana)", +EClickHere+"the passage
in Plutarch.
(English, opens in another window)", +FClickHere+"le passage
dans Plutarque.
(En anglais; s\'ouvre dans une autre fenêtre)", +IClickHere+"il passo
in Plutarco.
(In inglese; si apre in un altro pannello)", +" ", +SClickHere+"el pasaje
en Plutarco.
(en inglés, abre en una otra ventana)", +EClickHere+"the passage
in Polybius\' Histories.
(English, opens in another window)", +FClickHere+"le passage
dans les Histoires de Polybe.
(En anglais; s\'ouvre dans une autre fenêtre)", +IClickHere+"il passo
nelle Storie di Polibio.
(In inglese; si apre in un altro pannello)", +"

Cliccare hic ad textum legendum
in Historiis Polybii.
(Anglice, altera in fenestra aperietur pagina)", +" ", +EClickHere+"the passage
in Strabo\'s Geography.
(English, opens in another window)", +FClickHere+"le passage
dans la Géographie de Strabon.
(En anglais; s\'ouvre dans une autre fenêtre)", +IClickHere+"il passo
nella Geografia di Strabone.
(In inglese; si apre in un altro pannello)", +"

Cliccare hic ad textum legendum
in Geographia Strabonis.
(Anglice, altera in fenestra aperietur pagina)", +" ", +IClickHere+"la scheda di questa chiesa.
(Rimane in questo pannello)", +IClickHere+"la scheda di questa chiesa.
(Un\' altra pagina si apre in QUESTO pannello)", +IClickHere+"la scheda di quest\' artista nell\' indice."+IThisWindow, +IClickHere+"la scheda di quest\' artista nell\' indice.
(Si apre in un altro pannello)", +IClickHere+"il catalogo,
al passo preciso.
(Si aprirà nel pannello dei cataloghi)", +IClickHere+"questo quadro della pianta.
(Si aprirà nel pannello delle piante)", +IClickHere+"QUESTO QUADRO ADIACENTE.
(Rimane in questo pannello)", +IClickHere+"questa chiesa.
(Si apre nel pannello principale del testo)", +EClickHere+"this artist\'s entry in the index.
(Open in THIS window)", +EClickHere+"this artist\'s entry in the index.
(Open in another window)", +EClickHere+"my site or page."+EThisWindow, +FClickHere+"mon site ou ma page."+FThisWindow, +IClickHere+"il mio sito o la mia pagina."+IThisWindow, +" ", +SClickHere+"mi sitio o página.
(Abre en ESTA ventana)", +EClickHere+"my site or page.
(Opens in another window)", +FClickHere+"mon site ou ma page.
(S'ouvre dans une autre fenêtre)", +IClickHere+"il mio sito o la mia pagina.
(Si apre in un altro pannello)", +" ", +SClickHere+"mi sitio o página.
(Abre en una otra ventana)", +EClickHere+"my subsite,
with several pages, photos, etc."+EThisWindow, +FClickHere+"mon sous-site,
qui comporte plusieurs pages, photos, etc."+FThisWindow, +IClickHere+"il mio sotto-sito,
con parecchie pagine e immagini, ecc."+IThisWindow, +" ", +SClickHere+"mi sub-sitio,
con varias páginas, imágenes, etc.
(Abre en ESTA ventana)", +EClickHere+"my subsite,
with several pages, photos, etc.
(Opens in another window)", +FClickHere+"mon sous-site,
qui comporte plusieurs pages, photos, etc.
(S'ouvre dans une autre fenêtre)", +IClickHere+"il mio sotto-sito,
con parecchie pagine e immagini, ecc.
(Si apre in un altro pannello)", +" ", +SClickHere+"mi sub-sitio,
con varias páginas, imágenes, etc.
(Abre en una otra ventana)", +EClickHere+"my subsite,
with many pages, photos, links."+EThisWindow, +FClickHere+"mon sous-site,
qui comporte de nombreux pages, photos, et liens."+FThisWindow, +IClickHere+"il mio sotto-sito,
con molti pagine, immagini, link."+IThisWindow, +" ", +SClickHere+"mi sub-sitio,
con muchas páginas, imágenes, y enlaces.
(Abre en ESTA ventana)", +EClickHere+"my subsite,
with many pages, photos, links.
(Opens in another window)", +FClickHere+"mon sous-site,
qui comporte de nombreuses pages et photos, et de nombreux liens.
(S'ouvre dans une autre fenêtre)", +IClickHere+"il mio sotto-sito,
con molte pagine e immagini, e molti link.
(Si apre in un altro pannello)", +" ", +SClickHere+"mi sub-sitio,
con muchas páginas y imagenes, y muchos enlaces.
(Abre en una otra ventana)", +"

The entire book is onsite.
(Orientation page opens in THIS window)", +"

Le livre entier se trouve sur le site.
(La page d\'orientation s\'ouvre dans CETTE fenêtre)", +"

Il libro intero si trova sul sito.
(La pagina di orientazione si apre in QUESTO pannello)", +" ", +"

El libro entero es reproducido en este sitio.
(La página de orientación abre en ESTA ventana)", +"

The entire book is onsite.
(Orientation page opens in another window)", +"

Le livre entier se trouve sur le site.
(La page d\'orientation s\'ouvre dans une autre fenêtre)", +"

Il libro intero si trova sul sito.
(La pagina di orientazione si apre in un altro pannello)", +" ", +"

El libro entero es reproducido en este sitio.
(La página de orientación abre en una otra ventana)", +EClickHere+"their website or page.
(Offsite, so it opens in another window)", +FClickHere+"leur site ou page.
(Hors site, s\'ouvrira donc dans une autre fenêtre)", +IClickHere+"loro sito o pagina.
(Fuori sito, si apre quindi in un altro pannello)", +" ", +SClickHere+"su sitio o página.
(Sitio externo: abre en una otra ventana)", +" ", +" ", +" ", +" ", +" ", +EClickHere+"the original Latin.
(Opens in another window)", +FClickHere+"le latin original.
(S'ouvre dans une autre fenêtre)", +IClickHere+"il latino originale.
(Si apre in un altro pannello)", +" ", +SClickHere+"el latino originale.
(Abre en una otra ventana)", +" ", +" ", +" ", +" ", +" ", +EClickHere+"the passage
in the Latin text.
(Opens in another window)", +FClickHere+"le passage du texte latin.
(S'ouvre dans une autre fenêtre)", +IClickHere+"il passo dell\' autore latino.
(Si apre in un altro pannello)", +" ", +SClickHere+"el pasaje del autor latino.
(Abre en una otra ventana)", +EClickHere+"the passage
in a Latin translation.
(Opens in another window)", +FClickHere+"le passage dans une traduction latine.
(S'ouvre dans une autre fenêtre)", +IClickHere+"il passo del testo tradotto in latino.
(Si apre in un altro pannello)", +" ", +SClickHere+"el pasaje del autor latino.
(Abre en una otra ventana)", +EClickHere+"the passage
in the Latin text.
(Offsite: opens in another window)", +FClickHere+"le passage du texte latin.
(Hors site: s\'ouvre dans une autre fenêtre)", +IClickHere+"il passo del testo latino.
(Fuori sito: si apre in un altro pannello)", +" ", +SClickHere+"el pasaje del texto latino.
(Fuera del sitio: abre en una otra ventana)", +EClickHere+"the passage
in the Latin text,
linked to a translation
(Offsite: opens in another window)", +FClickHere+"le passage du texte latin.
liée à une traduction(Hors site: s\'ouvre dans une autre fenêtre)", +IClickHere+"il passo del testo latino.
collegato ad una traduzione
(Fuori sito: si apre in un altro pannello)", +" ", +SClickHere+"el pasaje del texto latino.
con enlace a una traducción(Fuera del sitio: abre en una otra ventana)", +EClickHere+"the passage
in the Latin text,
linked to one or more translations.
(Opens in another window)", +FClickHere+"le passage du texte latin,
lié à une ou plusieurs traductions.
(S'ouvre dans une autre fenêtre)", +IClickHere+"il passo dell\' autore latino,
collegato ad una o più traduzioni.
(Si apre in un altro pannello)", +" ", +SClickHere+"el pasaje del autor latino,
con enlace a una o mas traducciones.
(Abre en una otra ventana)", +EClickHere+"the passage in the Latin text,
linked to one or more translations.
(Offsite: opens in another window)", +FClickHere+"le passage du texte latin,
lié à une ou plusieurs traductions.
(Hors site: s\'ouvre dans une autre fenêtre)", +IClickHere+"il passo dell\' autore latino,
collegato ad una o più traduzioni.
(Fuori sito: si apre in un altro pannello)", +" ", +SClickHere+"el pasaje del autor latino,
con enlace a una o mas traducciones.
(Fuera del sitio: abre en una otra ventana)", +EClickHere+"the text of this passage
in the original language.
(Opens in another window)", +FClickHere+"le texte de ce passage
dans la langue originale.
(S'ouvre dans une autre fenêtre)", +IClickHere+"il testo di questo passo
nella lingua originaria.
(Si apre in un altro pannello)", +"

Cliccare hic ad legendum textum
in lingua originali.
(Altera in fenestra aperietur pagina)", +SClickHere+"el texto de este pasaje
en la lingua original.
(Abre en una otra ventana)", +EClickHere+"the text of this passage
in the original language.
(Offsite: opens in another window)", +FClickHere+"le texte de ce passage
dans la langue originale.
(Hors site: s\'ouvre dans une autre fenêtre)", +IClickHere+"il testo di questo passo
nella lingua originaria.
(Fuori sito: si apre in un altro pannello)", +"

Cliccare hic ad legendum textum
in lingua originali.
(In situ externo: altera in fenestra aperietur pagina)", +SClickHere+"el texto de este pasaje
en la lingua original.
(Fuera del sitio: abre en una otra ventana)", +EClickHere+"an English translation
of this passage.
(Opens in another window)", +FClickHere+"une traduction en français de ce passage.
(S'ouvre dans une autre fenêtre)", +IClickHere+"una traduzione italiana di questo passo.
(Si apre in un altro pannello)", +" ", +SClickHere+"una traducción en castellano de este parágrafo.
(Abre en una otra ventana)", +EClickHere+"an English translation.
(Offsite: opens in another window)", +FClickHere+"une traduction en français.
(Hors site: s\'ouvre dans une autre fenêtre)", +IClickHere+"una traduzione italiana.
(Fuori sito: si apre in un altro pannello)", +" ", +SClickHere+"una traducción en castellano.
(Fuera del sitio: abre en una otra ventana)", +CZero, +"

(La pàgina s\'obre en una altra finestra)", +"

(Fora d\'aquest lloc: la pàgina s\'obre en una altra finestra)", +"

(Aquesta foto o una foto relacionada, s\'obre en una altra finestra)", +"

(La foto s\'obre en una altra finestra)", +"

(En una altra part d\'aquesta pàgina)", +CClickHere+"la nota de l'autor a peu de la pàgina.", +CClickHere+"la meva nota a peu de la pàgina.", +CClickHere+"torna a la referència en el text.", +" ", +"

(Offsite page
opens in another window)

Warning: PDF file.", +" ", +"

(La pagina, fuori sito,
si apre in un altro pannello)

Attenzione: documento PDF.", +" ", +" ", +"

(Page opens in another window)
JSTOR (limited access)", +" ", +" ", +" ", +" ", +"

(Page opens in another window)
Warning: The page contains coding errors and may not be visible in all browsers.", +" ", +"

(Si apre in un altro pannello)
Avvertimento: La pagina contiene errori di codaggio e può darsi che non sia visibile in tutti i navigatori.", +" ", +" ", +"

(Page opens in another window)
Warning: loud soundfile; you may want to turn down your volume level before going there.", +" ", +" ", +" ", +" ", +EClickHere+"the solution!
(Opens in another window)", +FClickHere+"la solution!
(S'ouvre dans une autre fenêtre)", +IClickHere+"la soluzione!
(Si apre in un altro pannello)", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +EClickHere+"the passage
in Diodorus\' Library of History.
(English, opens in another window)", +FClickHere+"le passage
dans l\'Histoire de Diodore.
(En anglais; s\'ouvre dans une autre fenêtre)", +IClickHere+"il passo
nella Storia di Diodoro.
(In inglese; si apre in un altro pannello)", +"

Cliccare hic ad textum legendum
in Historia Diodori.
(Anglice, altera in fenestra aperietur pagina)", +" ", +EClickHere+"the passage of Herodotus
(English, linked to the Greek original: opens in another window)", +FClickHere+"le passage d\'Hérodote
(En anglais, lié à l'original grec : s\'ouvre dans une autre fenêtre)", +IClickHere+"il passo di Erodoto
(In inglese, collegato all' originale greco; si apre in un altro pannello)", +" ", +" ", +EClickHere+"the passage of Pausanias
(Offsite: opens in another window)", +FClickHere+"le passage de Pausanias
(Hors site: s\'ouvre dans une autre fenêtre)", +IClickHere+"il passo di Pausania
(Fuori sito: si apre in un altro pannello)", +" ", +" ", +EClickHere+"the passage of Thucydides
(Offsite: opens in another window)", +FClickHere+"le passage de Thucydide
(Hors site: s\'ouvre dans une autre fenêtre)", +IClickHere+"il passo di Tucidide
(Fuori sito: si apre in un altro pannello)", +" ", +" ", +EClickHere+"the passage
in the Latin text of Frontinus,
linked to an English translation.
(Opens in another window)", +FClickHere+"le passage
dans le texte latin de Frontin,
lié à une traduction anglaise.
(S'ouvre dans une autre fenêtre)", +IClickHere+"il passo
nel testo latino di Frontino,
collegato ad una traduzione in inglese.
(Si apre in un altro pannello)", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +EClickHere+"the passage
in an English translation of Frontinus,
linked to the Latin text.
(Opens in another window)", +FClickHere+"le passage
dans une traduction anglaise de Frontin,
lié au texte latin.
(S'ouvre dans une autre fenêtre)", +" ", +" ", +" ", +EClickHere+"the passage
in Dionysius in English translation
(Opens in another window)", +" ", +IClickHere+"il passo
di Dionisio in traduzione inglese
(Si apre in un altro pannello)", +" ", +" ", +"

If you don\'t know what this is about,
the explanation is only a click away."+EThisWindow, +"

Si vous ne savez pas ce de quoi il s\'agit,
il n\'y a qu\'à faire clic pour l\'explication."+FThisWindow, +"

Se questo non vi dice nulla,
basta cliccare per la spiegazione.
(La pagina si apre in QUESTO pannello)", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +EClickHere+"the Latin original
of this passage.
(Opens in another window)", +FClickHere+"l\'original latin
de ce passage.
(S'ouvre dans une autre fenêtre)", +IClickHere+"l\' originale latino
di questo passo.
(Si apre in un altro pannello)", +" ", +" ", +EClickHere+"the Greek original
of this passage.
(Opens in another window)", +FClickHere+"l\'original grec
de ce passage.
(S'ouvre dans une autre fenêtre)", +IClickHere+"l\' originale greco
di questo passo.
(Si apre in un altro pannello)", +" ", +" ", +"

This site comprises roughly 15,000 pages of text and photos, mostly about American history, ancient Rome, classical Antiquity, and central Italy.
CLICK ON THE LINK FOR THE HOMEPAGE.
(Opens in THIS window.)", +"

Ce site comporte environ 15.000 pages de texte et de photos, surtout sur Rome antique et médiévale et l\'Italie centrale.
FAIRE CLIC SUR LE LIEN POUR LA PAGE D\'ACCUEIL.
(S\'ouvre dans CETTE fenêtre.)", +"

Questo sito contiene circa 15.000 pagine di testo e di foto, innanzitutto sulla Roma antica e medioevale e l\'Italia centrale.
CLICCARE SUL LINK PER LA PAGINA HOME.
(Si apre in QUESTO pannello.)", +"

Hic situs milia paginarum
textus photographiarumque
continet, plerumque
de historia Americana,
Roma antiqua et medievali,
antiquitate classica, et Italia centrali.
CLICCARE SUPER VINCULAM
AD PAGINAM PRINCIPALEM
VIDENDAM.

(HAC in fenestra
aperietur pagina.)
", +"

Deze site omvat ongeveer 15.000 pagina's tekst en foto's, meestal over de Amerikaanse geschiedenis, het oude Rome, de klassieke oudheid, en Midden-Italië.
KLIK OP DE LINK VOOR DE HOMEPAGE.
(Opent in DIT venster.)", +"

Este site contém cerca de 15.000 páginas de texto e fotos, especialmente sobre a história das Américas, a Roma antiga e medieval, e o centro da Itália.
CLIQUE NO LINK PARA A PÁGINA DE ACOLHIMENTO.
(A página abre NESTA janela.)", +"

Este sitio contiene aproximadamente 15.000 páginas de texto e fotos, sobre todo sobre la história de las Américas, Roma antigua y medieval, y el centro de Italia.
CLIC EN EL ENLACE PARA LA PÁGINA PRINCIPAL.
(La página abre en ESTA ventana.)", +" ", +" ", +" ", +"

This site comprises roughly 15,000 pages of text and photos, mostly about American history, ancient Rome, classical Antiquity, and central Italy.
CLICK HERE FOR THE HOMEPAGE.
(Opens in another window.)", +"

Ce site comporte environ 15.000 pages de texte et de photos, surtout sur Rome antique et médiévale et l\'Italie centrale.
FAIRE CLIC ICI POUR LA PAGE D\'ACCUEIL.
(S\'ouvre dans une autre fenêtre.)", +"

Questo sito contiene circa 15.000 pagine di testo e di foto, innanzitutto sulla Roma antica e medioevale e l\'Italia centrale.
CLICCARE QUI PER LA PAGINA HOME.
(Si apre in un altro pannello.)", +"

Hic situs milia paginarum
textus photographiarumque
continet, plerumque
de historia Americana,
Roma antiqua et medievali,
antiquitate classica, et Italia centrali.
CLICCARE HIC
AD PAGINAM PRINCIPALEM
VIDENDAM.

(In altera fenestra
aperietur pagina.)", +"

Deze site omvat ongeveer 15.000 pagina's tekst en foto's, meestal over de Amerikaanse geschiedenis, het oude Rome, de klassieke oudheid, en Midden-Italië.
KLIK OP DE LINK VOOR DE HOMEPAGE.
(Opent in DIT venster.)", +"

Este site contém cerca de 15.000 páginas de texto e fotos, especialmente sobre a Roma antiga e medieval, a história das Américas, e o centro da Itália.
CLIQUE NO LINK PARA A PÁGINA DE ACOLHIMENTO.
(A página abre em outra janela.)", +"

Este sitio contiene aproximadamente 15.000 páginas de texto e fotos, sobre todo sobre la história de las Américas, Roma antigua y medieval, y el centro de Italia.
HAGA CLIC AQUÍ PARA LA PÁGINA PRINCIPAL.
(La página abre en una otra ventana.)", +" ", +" ", +" ", +"

Click here to send me an e-mail; you\'ll first get a FAQ covering some of the commoner questions.
(Opens in another window)", +FClickHere+"m\'envoyer une e-mail; vous verrez d\'abord un FAQ traitant de quelques questions couramment posées.
(S'ouvre dans une autre fenêtre)", +IClickHere+"mandarmi un\' e-mail; vedrete prima un FAQ trattando di alcune frequenti questioni.
(Si apre in un altro pannello)", +"

Click here to send me an e-mail; you\'ll first get a FAQ covering some of the commoner things people write me about.
(Altera in fenestra aperietur)", +" ", +" ", +" ", +" ", +" ", +" ", +EClickHere+"the appropriate section of this page.
LET THE PAGE LOAD COMPLETELY BEFORE CLICKING.", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +EClickHere+"the author\'s note at the bottom of this page.", +" ", +IClickHere+"la nota
dell\' autore a piè di pagina.", +" ", +" ", +EClickHere+"the editor\'s note at the bottom of this page.", +FClickHere+"la note de l\'éditeur au bas de cette page.", +IClickHere+"la nota
dell\' editore a piè di pagina.", +"

Cliccare hic ad editoris notam legendam in ima pagina.", +" ", +EClickHere+"a textual note at the bottom of this page.", +" ", +IClickHere+"una nota testuale
a piè di pagina.", +" ", +" ", +EClickHere+"the Italian original
of this passage.
(Opens in another window)", +" ", +" ", +" ", +" ", +"

Click here to go one level up:
Opens in THIS window.", +"

Faire clic ici
pour remonter d\'un niveau
(S\'ouvre dans CETTE fenêtre.)", +"

Fare clic qui per risalire un livello
(Si apre in QUESTO pannello.)", +"

Cliccare hic ad paginam superiorem ingrediendam
(HAC in fenestra aperietur.)", +SClickHere+"ir al nivel superior
(Abre en ESTA ventana)", +" ", +" ", +" ", +" ", +" ", +"

Click here to go one level up
(Opens in another window.)", +FClickHere+"remonter d\'un niveau
(S\'ouvre dans une autre fenêtre.)", +"

Fare clic qui per risalire un livello
(Si apre in un altro pannello.)", +"

Cliccare hic ad paginam superiorem ingrediendam
(Altera in fenestra aperietur.)", +PClickHere+"subir um nivel
(Abre em uma outra janela)", +SClickHere+"ir al nivel superior
(Abre en una otra ventana)", +" ", +" ", +" ", +" ", +EClickHere+"the passage
in an English translation of Sallust,
linked to the Latin text.
(Opens in another window)", +FClickHere+"le passage
dans une traduction anglaise de Salluste,
lié au texte latin.
(S'ouvre dans une autre fenêtre)", +IClickHere+"il passo
in una traduzione inglese di Sallustio,
collegato al testo latino.
(Si apre in un altro pannello)", +" ", +" ", +EClickHere+"the passage
in the Latin text of Sallust,
linked to an English translation.
(Opens in another window)", +FClickHere+"le passage
dans le texte latin de Salluste,
lié à une traduction anglaise.
(S'ouvre dans une autre fenêtre)", +IClickHere+"il passo
nel testo latino di Sallustio,
collegato ad una traduzione in inglese.
(Si apre in un altro pannello)", +" ", +" ", +EClickHere+"the passage
in an English translation of Tacitus.
(Opens in another window)", +FClickHere+"le passage
dans une traduction anglaise de Tacite.
(S'ouvre dans une autre fenêtre)", +IClickHere+"il passo
in una traduzione inglese di Tacito.
(Si apre in un altro pannello)", +" ", +"

Haga clic aquí por el pasaje
en una traducción inglesa de Tacito.
(Abre en una otra ventana)", +EClickHere+"the passage
in the Latin text of Tacitus,
linked to an English translation.
(Opens in another window)", +FClickHere+"le passage
dans le texte latin de Tacite,
lié à une traduction anglaise.
(S'ouvre dans une autre fenêtre)", +IClickHere+"il passo
nel testo latino di Tacito,
collegato ad una traduzione in inglese.
(Si apre in un altro pannello)", +" ", +"

Haga clic aquí por el pasaje
en el texto latino de Tacito.
(Abre en una otra ventana)", +EClickHere+"the Bible verse
in Greek, Latin, English facing columns.
(Offsite, opens in another window)", +" ", +" ", +" ", +PClickHere+"o versículo da Bíblia
em colunas enfrentadas: grego, latim, inglês.
(Offsite: a página abre em uma outra janela)", +"

CULLUM NUMBER
(If you don\'t know what this is,
click here for an explanation
on the Cullum\'s Register homepage:
opens in another window.)
", +"

CLASS RANK
From 1818 to 1977, within each Class graduates are listed in order of their general merit: academic and military standing combined.", +" ", +" ", +" ", +"

(De pagina opent in DIT venster)", +"

(De pagina opent in een ander venster)", +"

(Offsite: de pagina opent in een ander venster)", +"

(Deze foto of een verwante foto, opent in een ander venster)", +"

(De foto wordt geopend in een ander venster)", +"

(Elders op deze pagina)", +NClickHere+"de nota van de auteur aan de onderkant van deze pagina.", +NClickHere+"mijn nota aan de onderkant van deze pagina.", +"

Klik hier om terug te gaan
de verwijzing in de tekst.", +"

Als je niet weet waar dit over gaat,
je alleen maar een klik verwijderd van de uitleg.
(Opent in een ander venster)", +"

Klik hier om een niveau omhoog gaan.
(Opent in DIT venster)
", +"

Klik hier om een niveau omhoog gaan.
(Opent in een ander venster)
", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +EClickHere+"the passage
in a Latin translation of Aelian.
(Opens in another window)", +FClickHere+"le passage
dans une traduction latine d\'Elien.
(S'ouvre dans une autre fenêtre)", +IClickHere+"il passo
in una traduzione latina di Eliano.
(Si apre in un altro pannello)", +" ", +SClickHere+"el pasaje
en una traducción latina de Eliano.
(Abre en una otra ventana)", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +EClickHere+"the passage
in the Greek text.
(Opens in another window)", +FClickHere+"le passage du texte grec.
(S'ouvre dans une autre fenêtre)", +IClickHere+"il passo dell\' autore greco.
(Si apre in un altro pannello)", +" ", +SClickHere+"el pasaje del autor griego.
(Abre en una otra ventana)", +EClickHere+"the passage
in the Greek text,
linked to a translation
(Opens in another window)", +FClickHere+"le passage du texte grec.
liée à une traduction(S'ouvre dans une autre fenêtre)", +IClickHere+"il passo dell\' autore greco.
collegato ad una traduzione
(Si apre in un altro pannello)", +" ", +SClickHere+"el pasaje del autor griego.
con enlace a una traducción(Abre en una otra ventana)", +EClickHere+"the passage
in the Greek text.
(Offsite: opens in another window)", +FClickHere+"le passage du texte grec.
(Hors site: s\'ouvre dans une autre fenêtre)", +IClickHere+"il passo dell\' autore greco.
(Fuori sito: si apre in un altro pannello)", +" ", +SClickHere+"el pasaje del autor griego.
(Fuera del sitio: abre en una otra ventana)", +EClickHere+"the passage
in the Greek text,
linked to a translation
(Offsite: opens in another window)", +FClickHere+"le passage du texte grec.
liée à une traduction(Hors site: s\'ouvre dans une autre fenêtre)", +IClickHere+"il passo dell\' autore greco.
collegato ad una traduzione
(Fuori sito: si apre in un altro pannello)", +" ", +SClickHere+"el pasaje del autor griego.
con enlace a una traducción(Fuera del sitio: abre en una otra ventana)", +EClickHere+"the passage
in an English translation
linked to the original Greek.
(Opens in another window)

", +FClickHere+"le passage
en traduction anglaise
lié au texte grec.
(S'ouvre dans une autre fenêtre)", +IClickHere+"il passo
in una traduzione inglese
collegato al testo greco.
(Si apre in un altro pannello)
", +"

Cliccare hic ad legendum
in anglica versione
ad Graecum textum conexum.
(Altera in fenestra aperietur pagina)", +SClickHere+"este pasaje
en una traducción inglesa
con enlace al texto greco.
(Abre en una otra ventana)", +EClickHere+"the passage
in an English translation
linked to the original Greek.
(Offsite, opens in another window)

", +FClickHere+"le passage
en traduction anglaise
lié au texte grec.
(Hors site, s\'ouvre dans une autre fenêtre)", +IClickHere+"il passo
in una traduzione inglese
collegato al testo greco.
(Fuori sito, si apre in un altro pannello)
", +"

Cliccare hic ad legendum
in anglica versione
ad Graecum textum conexum.
(Apud alios, altera in fenestra aperietur pagina)", +SClickHere+"este pasaje
en una traducción inglesa
con enlace al texto greco.
(Fuera del sitio, abre en una otra ventana)", +EClickHere+"the passage
in the original Greek
linked to an English translation.
(Opens in another window)

", +FClickHere+"le passage
dans le texte grec
lié à une traduction anglaise.
(S'ouvre dans une autre fenêtre)", +IClickHere+"il passo
nel testo greco
collegato ad una traduzione inglese.
(Si apre in un altro pannello)
", +"

Cliccare hic ad legendum
Graecum textum
ad anglicam versionem conexum.
(Altera in fenestra aperietur pagina)", +SClickHere+"este pasaje
en el texto greco
con enlace a una traducción inglesa.
(Abre en una otra ventana)", +EClickHere+"the passage
in the original Greek
linked to an English translation.
(Offsite, opens in another window)", +FClickHere+"le passage
dans le texte grec
lié à une traduction anglaise.
(Hors site, s\'ouvre dans une autre fenêtre)", +IClickHere+"il passo
nel testo greco
collegato ad una traduzione inglese.
(Fuori sito, si apre in un altro pannello)", +"

Cliccare hic ad legendum
Graecum textum
ad anglicam versionem conexum.
(Apud alios, altera in fenestra aperietur pagina)", +SClickHere+"este pasaje
en el texto greco
con enlace a una traducción inglesa.
(Fuera del sitio, abre en una otra ventana)", +EClickHere+"the passage in Plutarch
in an English translation
linked to the original Greek
(Opens in another window)", +FClickHere+"le passage dans Plutarque
en traduction anglaise
lié au texte grec(S\'ouvre dans une autre fenêtre)", +IClickHere+"il passo in Plutarco

in una traduzione inglese
collegato al testo greco.
(Si apre in un altro pannello)", +" ", +SClickHere+"el pasaje en Plutarco
en una traducción inglesa
con enlace al texto greco.
(en inglés, abre en una otra ventana)", +EClickHere+"the passage in the Res Gestae
— parallel texts:
Latin, Greek, English
(Opens in another window)", +" ", +" ", +" ", +" ", +"

Link is to the Livius.Org website:
page opens in
another window.
", +EClickHere+"Jona Lendering\'s note at the bottom of this page.", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +EClickHere+"the passage
in the original Latin
linked to a French translation.
(Opens in another window)", //"THIS IS WHAT REALLY BELONGS IN 510:

Click here for the passage
in the Latin text of Suetonius,
linked to an English translation.
(Opens in another window)", +FClickHere+"le passage
dans le texte latin
lié à une traduction française.
(S'ouvre dans une autre fenêtre)", +IClickHere+"il passo
nel testo latino
collegato ad una traduzione francese.
(Si apre in un altro pannello)
", //"THIS IS WHAT REALLY BELONGS IN 512:
Cliccare qui per il passo
nel testo latino di Svetonio,
collegato a traduzioni in inglese e francese.
(Si apre in un altro pannello)", +"

Cliccare hic ad legendum
Latinum textum
ad anglicam versionem conexum.
(Altera in fenestra aperietur pagina)", +SClickHere+"este pasaje
en el texto latino
con enlace a una traducción francesa.
(Abre en una otra ventana)", +EClickHere+"the passage
in the original Latin
linked to a French translation.
(Offsite, opens in another window)

", //"THIS IS WHAT REALLY BELONGS IN 515:
Click here for the passage
in the Latin text of Suetonius,
linked to an English translation.
(Opens in another window)", +FClickHere+"le passage
dans le texte latin
lié à une traduction française.
(Hors site, s\'ouvre dans une autre fenêtre)", +IClickHere+"il passo
nel testo latino
collegato ad una traduzione francese.
(Fuori sito, si apre in un altro pannello)
", //"THIS IS WHAT REALLY BELONGS IN 517:
Cliccare qui per il passo
nel testo latino di Svetonio,
collegato a traduzioni in inglese e francese.
(Si apre in un altro pannello)", +"

Cliccare hic ad legendum
Latinum textum
ad Francogallicam versionem conexum.
(Apud alios, altera in fenestra aperietur pagina)", +SClickHere+"este pasaje
en el texto latino
con enlace a una traducción francesa.
(Fuera del sitio, abre en una otra ventana)", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +"

THIS IS THE PAGE YOU\'RE ON.", +"

C\'EST LA PAGE QUE VOUS AVEZ DEVANT LES YEUX.", +"

QUESTA È LA PAGINA CHE AVETE DAVANTI AGLI OCCHI.", +" ", +" ", +"

ACTIVE AREAS:
WHEREVER THIS PROMPT
IS REPLACED BY ANOTHER", +"

ZONES ACTIVES :
PARTOUT OU CE MESSAGE EST REMPLACE PAR UN AUTRE", +"

AREE ATTIVE:
OVUNQUE QUESTO MESSAGGIO VIENE SOSTITUITO DA UN\' ALTRO", +"

Click here for the homepage of the
U. S. MILITARY ACADEMY.
(Offsite: opens in another window.)", +"

Click here for the homepage of the
U. S. NAVAL ACADEMY.
(Offsite: opens in another window.)", +"

Click here for the homepage of the
U. S. COAST GUARD ACADEMY.
(Offsite: opens in another window.)", + +" " //THIS LAST LINE MUST NOT END WITH A COMMA +); + +// Array with captions. +var ol_caps = new Array("Array Caption 0", "Array Caption 1"); + + +//\//////////////////////////////// +//\ Thayer CONSTANTS: +//\//////////////////////////////// + +var CarelessLoeb50 = "

The Loeb edition —
thru 50 years of reprintings! —
has "; +var CarelessLoeb60 = "
The Loeb edition —
thru 60 years of reprintings! —
has "; +var CarelessLoeb70 = "
The Loeb edition —
thru 70 years of reprintings! —
has "; +var CarelessLoeb80 = "
The Loeb edition —
thru 80 years of reprintings! —
has "; +var CarelessLoeb90 = "
The Loeb edition —
thru 90 years of reprintings! —
has "; +var CarelessLoebX = "
The Loeb edition —
thru many years of reprintings! —
has "; +var Cullum0 = ":
This is a link
to another entry
in Cullum\'s Register.
(Opens in THIS window)
"; +var Cullum1 = "
USMA, Class of "; +var Cullum2 = ":
This is a link to the biographical summary
in Cullum\'s Register.
(Opens in another window)
"; +var CullumR1 = "

CLASS RANK
— of "; +var CullumR2 = " in the Class"; + + +// ENGLISH: +var Eng2 = "
(English, opens in another window)"; +var EngSearch = "
then search for
"; + + +// FRENCH: +// var Fr0 = "

(La page s\'ouvre dans CETTE fenêtre)"; +// var Fr1 = "

(La page s\'ouvre dans une autre fenêtre)"; +// var Fr2 = "

Le lien est hors site :
la page s\'ouvre
dans une autre fenêtre
"; +// var Fr5 = "

(Ailleurs sur cette page)"; +var FrCullum0 = " :
Ceci est un lien à la notice biographique
dans Cullum\'s Register.
(S\'ouvre dans CETTE fenêtre)

"; +var FrCullum1 = "
USMA, Promotion de "; +var FrCullum2 = " :
Ceci est un lien à la notice biographique
dans Cullum\'s Register.
(S\'ouvre dans une autre fenêtre)
"; +var FrCullumR1 = "

CLASS RANK
— sur "; +var FrCullumR2 = " dans la Promotion"; +var FrGk2 = "
(Grec s\'ouvre dans une autre fenêtre)"; +var FrGkSearch = "
puis chercher
"; +var FrLat2 = "
(Latin, s\'ouvre dans une autre fenêtre)"; +var FrLatSearch = "
puis chercher
"; + + +// GREEK: +var Gk2 = "
(Greek, opens in another window)"; +var GkSearch = "
then search for
"; + + +// ITALIAN: +var It5 = "

(Altrove su questa pagina)"; +var ItGk2 = "
(in Greco, apre in un altro pannello)"; +var ItGkSearch = "
poi cercare
"; +var ItLat2 = "
(in Latino, apre in un altro pannello)"; +var ItLatSearch = "
poi cercare
"; + + +// LATIN: +var Lat2 = "
(Latin, opens in another window)"; +var LatSearch = "
then search for
"; +var RedSearch = "
then search for the word or passage in red"; + + +// SPANISH: +var SpGk2 = "
(Griego, abre en una otra ventana)"; +var SpGkSearch = "
pues buscar
"; +var SpLat2 = "
(Latín, abre en una otra ventana)"; +var SpLatSearch = "
pues buscar
"; + +//////////////////////////////////// +// END CONFIGURATION +//////////////////////////////////// + + + +//////////////////////////////////// +// INIT +//////////////////////////////////// + + +// Runtime variables init. Used for runtime only, don't change, not for config! +var o3_text = ""; +var o3_cap = ""; +var o3_sticky = 0; +var o3_background = ""; +var o3_close = "Close"; +var o3_hpos = RIGHT; +var o3_offsetx = 2; +var o3_offsety = -3; +var o3_fgcolor = ""; +var o3_bgcolor = ""; +var o3_textcolor = ""; +var o3_capcolor = ""; +var o3_closecolor = ""; +var o3_width = 100; +var o3_border = 1; +var o3_status = ""; +var o3_autostatus = 0; +var o3_height = -1; +var o3_snapx = 0; +var o3_snapy = 0; +var o3_fixx = -1; +var o3_fixy = -1; +var o3_fgbackground = ""; +var o3_bgbackground = ""; +var o3_padxl = 0; +var o3_padxr = 0; +var o3_padyt = 0; +var o3_padyb = 0; +var o3_fullhtml = 0; +var o3_vpos = ABOVE; +var o3_aboveheight = 3; +var o3_capicon = ""; +var o3_textfont = "Verdana,Arial,Helvetica"; +var o3_captionfont = "Verdana,Arial,Helvetica"; +var o3_closefont = "Verdana,Arial,Helvetica"; +var o3_textsize = "1"; +var o3_captionsize = "1"; +var o3_closesize = "1"; +var o3_frame = self; +var o3_timeout = 0; +var o3_timerid = 0; +var o3_allowmove = 0; +var o3_function = Function(); +var o3_delay = 0; +var o3_delayid = 0; +var o3_hauto = 0; +var o3_vauto = 0; + +// OTHER THAYER VARIABLES +var BadF = "
"; +var GreekF = "
"; +var LatinF = "
"; +var SearchF = "
"; + + + +var SourceErr = "

The printed text has
"; +var SourceOm = "

The printed text omits
"; +var SourceOmL = "

The printed text omits
"; +var SourceOmG = "

The printed text omits
"; +var SourceOm0 = "

The printed text
omits this."; +var SourceOm1 = "

The printed text
omits this word."; +var SourceOm2 = "

The printed text
omits these words."; + + + +var FrSourceErr = "

Le texte imprimé porte
"; +var FrSourceOm = "

Le texte imprimé omet
"; +var FrSourceOmL = "

Le texte imprimé omet
"; +var FrSourceOmG = "

Le texte imprimé omet
"; + +var FrSourceOm1 = "

Le texte imprimé omet ce mot."; +var FrSourceOm2 = "

Le texte imprimé omet ces mots."; + + + +var ItSourceErr = "

Il testo stampato reca
"; +var ItSourceOm = "

Il testo stampato omette
"; +var ItSourceOmL = "

Il testo stampato omette
"; +var ItSourceOmG = "

Il testo stampato omette
"; +var ItSourceOm0 = "

Il testo stampato
omette questo."; +var ItSourceOm1 = "

Il testo stampato
omette questa parola."; +var ItSourceOm2 = "

Il testo stampato
omette queste parole."; + + + +var NeSourceErr = "

In de gedrukte tekst leest
"; +var NeSourceOm = "

De gedrukte tekst weglaat
"; + + + + + + + + +var PgSourceOm0 = "

O texto impresso omite isso."; +var PgSourceErr = "

No texto impresso lê‑se
"; +var PgSourceOm = "

O texto impresso omite
"; +var PgSourceOmL = "

O texto impresso omite
"; +var PgSourceOmG = "

O texto impresso omite
"; + + + + + +var SpSourceErr = "

En el texto imprimido
se lee
"; +var SpSourceOm = "

El texto imprimido omite
"; +var SpSourceOmL = "

El texto imprimido omite
"; +var SpSourceOmG = "

El texto imprimido omite
"; + +var MyDiaryErr = "

In my diary, I wrote
"; + + + + +var SourceErrMe = "

I actually wrote
"; +var SourceOmMe = "

I omitted
"; + +var DivergenceFromLatin = "

The Latin text onsite is not the one on which this translation is based. It reads
"; +var DivergenceFromGreek = "

The Latin text onsite is not the one on which this translation is based. It reads
"; +var DivergenceInEnglish = "

The English translation onsite is not based on this text. It reads
"; + +var CloseF = ""; +var USMAPromptWidth = 205; +var USNAPromptWidth = 205; +var USCGAPromptWidth = 205; +var PDFPromptWidth = 216; +var DiaryErr = "

The diary actually reads
"; +var DiaryOm = "

The diary omits
"; + +var Ru2 = "

Ссылка выключен сайт:
страница открывается в другом окне
"; + + + +// THAYER'S ARRAY. (add 285 for the linenum of the corresponding text) +var ThisPhoto = 3; +var Photo = 4; +var OnPage = 5; +var Note = 6; +var MyNote = 7; +var BackRef = 8; +var Glossary = 9; + +var Ca0 = 420; var CaWidth0 = 210; +var Ca1 = 421; var CaWidth1 = 210; +var Ca2 = 422; var CaWidth2 = 140; +var CaThisPhoto = 423; var CaThisPhotoWidth = 180; +var CaPhoto = 424; +var CaOnPage = 425; var CaOnPageWidth = 150; +var CaNote = 426; +var CaMyNote = 427; +var CaBackRef = 428; +var CaGlossary = 429; + +var Fr0 = 10; var FrWidth0 = 180; +var Fr1 = 11; var FrWidth1 = 210; +var Fr2 = 12; +var FrThisPhoto = 13; +var FrPhoto = 14; +var FrOnPage = 15; +var FrNote = 16; +var FrMyNote = 17; +var FrBackRef = 18; +var FrGlossary = 19; + +var Ge0 = 20; +var Ge1 = 21; +var Ge2 = 22; +var GeThisPhoto = 23; +var GePhoto = 24; +var GeOnPage = 25; +var GeNote = 26; +var GeMyNote = 27; +var GeBackRef = 28; +var GeGlossary = 29; + +var It0 = 30; var ItWidth0 = 210; +var It1 = 31; var ItWidth1 = 210; +var It2 = 32; var ItWidth2 = 210; +var ItThisPhoto = 33; var ItThisPhotoWidth = 180; +var ItPhoto = 34; +var ItOnPage = 35; var ItOnPageWidth = 150; +var ItNote = 36; +var ItMyNote = 37; +var ItBackRef = 38; +var ItGlossary = 39; + +var La0 = 40; +var La1 = 41; +var La2 = 42; +var LaThisPhoto = 43; +var LaPhoto = 44; +var LaOnPage = 45; +var LaNote = 46; +var LaMyNote = 47; +var LaGlossary = 49; + +var Sp0 = 50; var SpWidth0 = 210; +var Sp1 = 51; var SpWidth1 = 210; +var Sp2 = 52; var SpWidth2 = 140; +var SpThisPhoto = 53; var SpThisPhotoWidth = 180; +var SpPhoto = 54; +var SpOnPage = 55; var SpOnPageWidth = 150; +var SpNote = 56; +var SpMyNote = 57; +var SpBackRef = 58; +var SpGlossary = 59; + +var Pt0 = 90; var PtWidth0 = 210; +var Pt1 = 91; var PtWidth1 = 210; +var Pt2 = 92; var PtWidth2 = 140; +var PtThisPhoto = 93; var PtThisPhotoWidth = 180; +var PtPhoto = 94; +var PtOnPage = 95; var PtOnPageWidth = 190; +var PtNote = 96; +var PtMyNote = 97; +var PtBackRef = 98; +var PtGlossary = 99; + +var Smith0 = 60; var SmithWidth0 = 200; +var FrSmith0 = 61; +var ItSmith0 = 62; +var SpSmith0 = 64; +var Smith1 = 65; var SmithWidth1 = 200; +var FrSmith1 = 66; +var ItSmith1 = 67; +var SpSmith1 = 69; + +var Glossary0 = 70; +var FrGlossary0 = 71; +var ItGlossary0 = 72; + +var Glossary2 = 75; +var FrGlossary2 = 76; +var ItGlossary2 = 77; + +var SmithSub0 = 80; +var FrSmithSub0 = 81; +var ItSmithSub0 = 82; +var SpSmithSub0 = 84; + +var SmithSub1 = 85; var SmithSubWidth1 = 190; +var FrSmithSub1 = 86; +var ItSmithSub1 = 87; +var SpSmithSub1 = 89; + +var XMarksTheSpot = 790; +var FrXMarksTheSpot = 791; +var ItXMarksTheSpot = 792; + +var ActiveAreas = 795; +var FrActiveAreas = 796; +var ItActiveAreas = 797; + +var USMA = 798; +var USNA = 799; +var USCGA = 800; + +var SmithHome = 100; +var FrSmithHome = 101; +var ItSmithHome = 102; +var SpSmithHome = 104; +var TextOnPage = 106; +var SmithHome0 = 107; +var DarembergHome = 108; +var DarembergHome0 = 109; + +var Platner0 = 110; +var FrPlatner0 = 111; +var ItPlatner0 = 112; +var LaPlatner0 = 113; +var SpPlatner0 = 114; +var Platner1 = 115; +var FrPlatner1 = 116; +var ItPlatner1 = 117; +var LaPlatner1 = 118; +var SpPlatner1 = 119; + +var PlatnerPhoto0 = 120; +var FrPlatnerPhoto0 = 121; +var ItPlatnerPhoto0 = 122; +var LaPlatnerPhoto0 = 123; +var SpPlatnerPhoto0 = 124; +var PlatnerPhoto1 = 125; +var FrPlatnerPhoto1 = 126; +var ItPlatnerPhoto1 = 127; +var LaPlatnerPhoto1 = 128; +var SpPlatnerPhoto1 = 129; + +var PlatnerSub0 = 130; +var FrPlatnerSub0 = 131; +var ItPlatnerSub0 = 132; +var SpPlatnerSub0 = 134; +var PlatnerSub1 = 135; +var FrPlatnerSub1 = 136; +var ItPlatnerSub1 = 137; +var SpPlatnerSub1 = 139; + +var CompleteWork0 = 140; +var FrCompleteWork0 = 141; +var ItCompleteWork0 = 142; +var SpCompleteWork0 = 144; +var CompleteWork1 = 145; +var FrCompleteWork1 = 146; +var ItCompleteWork1 = 147; +var SpCompleteWork1 = 149; + +var Armellini0 = 150; +var FrArmellini0 = 151; +var ItArmellini0 = 152; +var SpArmellini0 = 154; +var Armellini1 = 155; +var FrArmellini1 = 156; +var ItArmellini1 = 157; +var SpArmellini1 = 159; + +var Huelsen0 = 160; +var FrHuelsen0 = 161; +var ItHuelsen0 = 162; +var SpHuelsen0 = 164; +var Huelsen1 = 165; +var FrHuelsen1 = 166; +var ItHuelsen1 = 167; +var SpHuelsen1 = 169; + +var RomeChurch0 = 170; +var FrRomeChurch0 = 171; +var ItRomeChurch0 = 172; +var SpRomeChurch0 = 174; +var RomeChurch1 = 175; +var FrRomeChurch1 = 176; +var ItRomeChurch1 = 177; +var SpRomeChurch1 = 179; + +var Daremberg0 = 180; +var FrDaremberg0 = 181; +var ItDaremberg0 = 182; +var SpDaremberg0 = 184; +var Daremberg1 = 185; +var FrDaremberg1 = 186; +var ItDaremberg1 = 187; +var SpDaremberg1 = 189; + +var Page0 = 190; +var FrPage0 = 191; +var ItPage0 = 192; +var LaPage0 = 193; +var SpPage0 = 194; +var Page1 = 195; +var FrPage1 = 196; +var ItPage1 = 197; +var LaPage1 = 198; +var SpPage1 = 199; + +var Pages0 = 200; +var FrPages0 = 201; +var ItPages0 = 202; +var LaPages0 = 203; +var SpPages0 = 204; +var Pages1 = 205; +var FrPages1 = 206; +var ItPages1 = 207; +var LaPages1 = 208; +var SpPages1 = 209; + +var ChurchPage0 = 210; +var FrChurchPage0 = 211; +var ItChurchPage0 = 212; +var LaChurchPage0 = 213; +var SpChurchPage0 = 214; +var ChurchPage1 = 215; +var FrChurchPage1 = 216; +var ItChurchPage1 = 217; +var LaChurchPage1 = 218; +var SpChurchPage1 = 219; + +var ChurchPages0 = 220; +var FrChurchPages0 = 221; +var ItChurchPages0 = 222; +var LaChurchPages0 = 223; +var SpChurchPages0 = 224; +var ChurchPages1 = 225; +var FrChurchPages1 = 226; +var ItChurchPages1 = 227; +var LaChurchPages1 = 228; +var SpChurchPages1 = 229; + +var Town0 = 230; +var FrTown0 = 231; +var ItTown0 = 232; +var LaTown0 = 233; +var SpTown0 = 234; +var Town1 = 235; +var FrTown1 = 236; +var ItTown1 = 237; +var LaTown1 = 238; +var SpTown1 = 239; + +var EPlusL = 240; +var FrEPlusL = 241; +var ItEPlusL = 242; +var SpEPlusL = 244; +var EPlusL2 = 245; +var FrEPlusL2 = 246; +var ItEPlusL2 = 247; +var LaEPlusL2 = 248; +var SpEPlusL2 = 249; + +var LPlusE = 250; +var FrLPlusE = 251; +var ItLPlusE = 252; +var SpLPlusE = 254; +var LPlusE2 = 255; +var FrLPlusE2 = 256; +var ItLPlusE2 = 257; +var SpLPlusE2 = 259; + +var Pliny = 260; +var FrPliny = 261; +var ItPliny = 262; +var SpPliny = 264; + +var Ptolemy = 265; +var FrPtolemy = 266; +var ItPtolemy = 267; +var LaPtolemy = 268; + +var Ammian = 270; +var FrAmmian = 271; +var ItAmmian = 272; + +var Appian = 275; +var FrAppian = 276; +var ItAppian = 277; + +var Dio = 280; +var FrDio = 281; +var ItDio = 282; +var SpDio = 284; + +var Plutarch = 285; var PlutarchWidth = 230; +var FrPlutarch = 286; +var ItPlutarch = 287; +var SpPlutarch = 289; + +var Polybius = 290; +var FrPolybius = 291; +var ItPolybius = 292; +var LaPolybius = 293; + +var Strabo = 295; +var FrStrabo = 296; +var ItStrabo = 297; +var LaStrabo = 298; + +var Chiesa0 = 300; +var Chiesa1 = 301; +var Artista0 = 302; +var Artista = 303; +var Catalogo = 304; +var Pianta = 305; +var QuadroPianta = 306; +var ChiesaNelTesto = 307; +var ETitiArtista0 = 308; +var ETitiArtista = 309; + +var MySite0 = 310; +var FrMySite0 = 311; +var ItMySite0 = 312; +var SpMySite0 = 314; +var MySite1 = 315; +var FrMySite1 = 316; +var ItMySite1 = 317; +var SpMySite1 = 319; + +var MyMidSite0 = 320; +var FrMyMidSite0 = 321; +var ItMyMidSite0 = 322; +var SpMyMidSite0 = 324; +var MyMidSite1 = 325; +var FrMyMidSite1 = 326; +var ItMyMidSite1 = 327; +var SpMyMidSite1 = 329; + +var MyBigSite0 = 330; +var FrMyBigSite0 = 331; +var ItMyBigSite0 = 332; +var SpMyBigSite0 = 334; +var MyBigSite1 = 335; +var FrMyBigSite1 = 336; +var ItMyBigSite1 = 337; +var SpMyBigSite1 = 339; + +var MyBook0 = 340; +var FrMyBook0 = 341; +var ItMyBook0 = 342; +var LaMyBook0 = 343; +var SpMyBook0 = 344; +var MyBook1 = 345; +var FrMyBook1 = 346; +var ItMyBook1 = 347; +var LaMyBook1 = 348; +var SpMyBook1 = 349; + +var TheirSite = 350; +var FrTheirSite = 351; +var ItTheirSite = 352; +var SpTheirSite = 357; + +var LatinText = 360; +var FrLatinText = 361; +var ItLatinText = 362; +var SpLatinText = 367; + +var LatinRef1 = 370; +var FrLatinRef1 = 371; +var ItLatinRef1 = 372; +var SpLatinRef1 = 374; +var LatinTrans1 = 375; +var FrLatinTrans1 = 376; +var ItLatinTrans1 = 377; +var SpLatinTrans1 = 379; + +var LatinRef2 = 380; +var FrLatinRef2 = 381; +var ItLatinRef2 = 382; +var SpLatinRef2 = 384; +var LatinRef2PlusTranslation = 385; //KEEP. Use for texts with translations into languages other than English +var FrLatinRef2PlusTranslation = 386; +var ItLatinRef2PlusTranslation = 387; +var SpLatinRef2PlusTranslation = 389; + +var LatinPlus1 = 390; +var FrLatinPlus1 = 391; +var ItLatinPlus1 = 392; +var SpLatinPlus1 = 394; +var LatinPlus2 = 395; +var FrLatinPlus2 = 396; +var ItLatinPlus2 = 397; +var SpLatinPlus2 = 399; + +var Original1 = 400; +var FrOriginal1 = 401; +var ItOriginal1 = 402; +var LaOriginal1 = 403; +var SpOriginal1 = 404; +var Original2 = 405; +var FrOriginal2 = 406; +var ItOriginal2 = 407; +var LaOriginal2 = 408; +var SpOriginal2 = 409; + +var Translation1 = 410; +var FrTranslation1 = 411; +var ItTranslation1 = 412; +var SpTranslation1 = 414; +var Translation2 = 415; +var FrTranslation2 = 416; +var ItTranslation2 = 417; +var SpTranslation2 = 419; + +var PDF = 430; +var FrPDF = 431; +var ItPDF = 432; +var SpPDF = 434; + +var JSTOR = 435; +var FrJSTOR = 436; +var ItJSTOR = 437; +var SpJSTOR = 438; + +var BadCoding = 440; +var FrBadCoding = 441; +var ItBadCoding = 442; +var SpBadCoding = 444; +var Loud = 445; +var FrLoud = 446; +var ItLoud = 447; +var SpLoud = 448; + +var Solution = 450; +var FrSolution = 451; +var ItSolution = 452; +var SpSolution = 454; + +var Diodorus = 460; +var FrDiodorus = 461; +var ItDiodorus = 462; +var SpDiodorus = 464; + +var Herodotus = 465; +var FrHerodotus = 466; +var ItHerodotus = 467; +var SpHerodotus = 469; + +var Pausanias = 470; +var FrPausanias = 471; +var ItPausanias = 472; +var SpPausanias = 474; + +var Thucydides = 475; +var FrThucydides = 476; +var ItThucydides = 477; +var SpThucydides = 479; + +var FrontinusL = 480; +var FrFrontinusL = 481; +var ItFrontinusL = 482; +var SpFrontinusL = 484; + +var FrontinusE = 490; +var FrFrontinusF = 491; + +var Dionysius = 495; +var FrDionysius = 496; +var ItDionysius = 497; +var LaDionysius = 498; +var SpDionysius = 499; + +var Glossary0 = 500; +var FrGlossary0 = 501; +var ItGlossary0 = 502; +var SpGlossary0 = 507; + +var LatinOriginal = 510; +var FrLatinOriginal = 511; +var ItLatinOriginal = 512; +var SpLatinOriginal = 513; + +var GreekOriginal = 515; +var FrGreekOriginal = 516; +var ItGreekOriginal = 517; +var SpGreekOriginal = 518; + +var Home = 520; +var FrHome = 521; +var ItHome = 522; +var LaHome = 524; +var SpHome = 527; +var Home1 = 530; +var FrHome1 = 531; +var ItHome1 = 532; +var LaHome1 = 533; +var NeHome1 = 534; +var PtHome1 = 535; +var SpHome1 = 536; + +var Mail = 540; +var FrMail = 541; +var ItMail = 542; +var LaMail = 543; +var SpMail = 544; + +var LetLoad = 550; +var FrLetLoad = 551; +var ItLetLoad = 552; +var LaLetLoad = 553; +var SpLetLoad = 554; + +var AuNote = 560; +var ItAuNote = 562; + +var EdNote = 565; +var FrEdNote = 566; +var ItEdNote = 567; var ItEdNoteWidth = 230; + +var CritNote = 570; +var ItCritNote = 572; + +var ItalianOriginal = 575; +var FrItalianOriginal = 576; +var ItItalianOriginal = 577; +var SpItalianOriginal = 578; + +var Up = 580; +var FrUp = 581; +var ItUp = 582; +var LaUp = 583; +var SpUp = 584; +var Up1 = 590; +var FrUp1 = 591; +var ItUp1 = 592; +var LaUp1 = 593; +var PtUp1 = 594; +var SpUp1 = 595; + +var SallustE = 600; +var FrSallustE = 601; +var ItSallustE = 602; + +var SallustL = 605; +var FrSallustL = 606; +var ItSallustL = 607; + +var Tacitus = 610; +var FrTacitusE = 611; +var ItTacitusE = 612; +var SpTacitusE = 614; + +var TacitusL = 615; +var FrTacitusL = 616; +var ItTacitusL = 617; +var SpTacitusL = 619; + +var Bible = 620; +var FrBible = 621; +var ItBible = 622; +var PtBible = 624; +// var SpBible = 624; + +var CullumNo = 625; +var CullumRank = 626; + +var Ne0 = 630; var NeWidth0 = 190; +var Ne1 = 631; var NeWidth1 = 210; +var Ne2 = 632; var NeWidth2 = 140; +var NeThisPhoto = 633; var NeThisPhotoWidth = 180; +var NePhoto = 634; +var NeOnPage = 635; var NeOnPageWidth = 150; +var NeNote = 636; +var NeMyNote = 637; +var NeBackRef = 638; +var NeGlossary = 639; +var NeUp = 640; +var NeUp1 = 641; var NeUpWidth1 = 210; +var NeHome = 525; var NeHomeWidth = 240; + +var Aelian = 650; +var FrAelian = 651; +var ItAelian = 652; +var SpAelian = 654; + +var GreekRef1 = 670; +var FrGreekRef1 = 671; +var ItGreekRef1 = 672; +var SpGreekRef1 = 674; +var GreekTrans1 = 675; var GreekTransWidth1 = 240; +var FrGreekTrans1 = 676; +var ItGreekTrans1 = 677; +var SpGreekTrans1 = 679; + +var GreekRef2 = 680; +var FrGreekRef2 = 681; +var ItGreekRef2 = 682; +var SpGreekRef2 = 684; +var GreekRef2PlusTranslation = 685; //KEEP. Use for texts with translations into languages other than English +var FrGreekRef2PlusTranslation = 686; +var ItGreekRef2PlusTranslation = 687; +var SpGreekRef2PlusTranslation = 689; + +var EPlusG = 690; var EPlusGWidth = 240; +var FrEPlusG = 691; +var ItEPlusG = 692; +var LaEPlusG = 693; +var SpEPlusG = 694; +var EPlusG2 = 695; +var FrEPlusG2 = 696; +var ItEPlusG2 = 697; +var LaEPlusG2 = 698; +var SpEPlusG2 = 699; + +var GPlusE = 700; +var FrGPlusE = 701; +var ItGPlusE = 702; +var LaGPlusE = 703; +var SpGPlusE = 704; +var GPlusE2 = 705; +var FrGPlusE2 = 706; +var ItGPlusE2 = 707; +var LaGPlusE2 = 708; +var SpGPlusE2 = 709; + +var PlutarchPlusG = 710; /* var PlutarchWidth = 230; */ +var FrPlutarchPlusG = 286; +var ItPlutarchPlusG = 287; +var SpPlutarchPlusG = 289; + +var ResGestae = 715; + +var toLivius = 720; +var LenderingNote = 721; + +var EnLPlusF = 730; +var LPlusF = 731; +var ItLPlusF = 732; +var LaLPlusF = 733; +var SpLPlusF = 734; +var LPlusF2 = 735; +var FrLPlusF2 = 736; +var ItLPlusF2 = 737; +var LaLPlusF2 = 738; +var SpLPlusF2 = 739; + + +// Ссылка выключен сайт, страница открывается в другом окне. + + +// Display state variables +var o3_x = 0; +var o3_y = 0; +var o3_allow = 0; +var o3_showingsticky = 0; +var o3_removecounter = 0; + +// Our layer +var over = null; + + +// Decide browser version +var ns4 = (document.layers)? true:false; +var ns6 = (document.getElementById)? true:false; +var ie4 = (document.all)? true:false; +var ie5 = false; + +// Microsoft Stupidity Check(tm). +if (ie4) { + if (navigator.userAgent.indexOf('MSIE 5')>0) { + ie5 = true; + } + if (ns6) { + ns6 = false; + } +} + + +// Capture events, alt. diffuses the overlib function. +if ( (ns4) || (ie4) || (ns6)) { + document.onmousemove = mouseMove + if (ns4) document.captureEvents(Event.MOUSEMOVE) +} else { + Ebox = no_box; + nd = no_box; + ver3fix = true; +} + + +// Fake function for 3.0 users. +function no_box() { + return ver3fix; +} + + + +//////////////////////////////////// +// PUBLIC FUNCTIONS +//////////////////////////////////// + + +// Ebox(arg0, ..., argN) +// Loads parameters into global runtime variables. +function Ebox() { + + // Load defaults to runtime. + o3_text = ol_text; + o3_cap = ol_cap; + o3_sticky = ol_sticky; + o3_background = ol_background; + o3_close = ol_close; + o3_hpos = ol_hpos; + o3_offsetx = ol_offsetx; + o3_offsety = ol_offsety; + o3_fgcolor = ol_fgcolor; + o3_bgcolor = ol_bgcolor; + o3_textcolor = ol_textcolor; + o3_capcolor = ol_capcolor; + o3_closecolor = ol_closecolor; + o3_width = ol_width; + o3_border = ol_border; + o3_status = ol_status; + o3_autostatus = ol_autostatus; + o3_height = ol_height; + o3_snapx = ol_snapx; + o3_snapy = ol_snapy; + o3_fixx = ol_fixx; + o3_fixy = ol_fixy; + o3_fgbackground = ol_fgbackground; + o3_bgbackground = ol_bgbackground; + o3_padxl = ol_padxl; + o3_padxr = ol_padxr; + o3_padyt = ol_padyt; + o3_padyb = ol_padyb; + o3_fullhtml = ol_fullhtml; + o3_vpos = ol_vpos; + o3_aboveheight = ol_aboveheight; + o3_capicon = ol_capicon; + o3_textfont = ol_textfont; + o3_captionfont = ol_captionfont; + o3_closefont = ol_closefont; + o3_textsize = ol_textsize; + o3_captionsize = ol_captionsize; + o3_closesize = ol_closesize; + o3_timeout = ol_timeout; + o3_function = ol_function; + o3_delay = ol_delay; + o3_hauto = ol_hauto; + o3_vauto = ol_vauto; + + + + // Special for frame support, over must be reset... + if ( (ns4) || (ie4) || (ns6) ) { + o3_frame = ol_frame; + if (ns4) over = o3_frame.document.overDiv + if (ie4) over = o3_frame.overDiv.style + if (ns6) over = o3_frame.document.getElementById("overDiv"); + } + + + // What the next argument is expected to be. + var parsemode = -1; + + var ar = arguments; + + for (i = 0; i < ar.length; i++) { + + if (parsemode == 0) { + // Arg is command + if (ar[i] == INARRAY) { parsemode = INARRAY; } + if (ar[i] == CAPARRAY) { parsemode = CAPARRAY; } + if (ar[i] == STICKY) { parsemode = opt_STICKY(ar[i]); } + if (ar[i] == BACKGROUND) { parsemode = BACKGROUND; } + if (ar[i] == NOCLOSE) { parsemode = opt_NOCLOSE(ar[i]); } + if (ar[i] == CAPTION) { parsemode = CAPTION; } + if (ar[i] == LEFT) { parsemode = opt_HPOS(ar[i]); } + if (ar[i] == RIGHT) { parsemode = opt_HPOS(ar[i]); } + if (ar[i] == CENTER) { parsemode = opt_HPOS(ar[i]); } + if (ar[i] == OFFSETX) { parsemode = OFFSETX; } + if (ar[i] == OFFSETY) { parsemode = OFFSETY; } + if (ar[i] == FGCOLOR) { parsemode = FGCOLOR; } + if (ar[i] == BGCOLOR) { parsemode = BGCOLOR; } + if (ar[i] == TEXTCOLOR) { parsemode = TEXTCOLOR; } + if (ar[i] == CAPCOLOR) { parsemode = CAPCOLOR; } + if (ar[i] == CLOSECOLOR) { parsemode = CLOSECOLOR; } + if (ar[i] == WIDTH) { parsemode = WIDTH; } + if (ar[i] == BORDER) { parsemode = BORDER; } + if (ar[i] == STATUS) { parsemode = STATUS; } + if (ar[i] == AUTOSTATUS) { parsemode = opt_AUTOSTATUS(ar[i]); } + if (ar[i] == AUTOSTATUSCAP) { parsemode = opt_AUTOSTATUSCAP(ar[i]); } + if (ar[i] == HEIGHT) { parsemode = HEIGHT; } + if (ar[i] == CLOSETEXT) { parsemode = CLOSETEXT; } + if (ar[i] == SNAPX) { parsemode = SNAPX; } + if (ar[i] == SNAPY) { parsemode = SNAPY; } + if (ar[i] == FIXX) { parsemode = FIXX; } + if (ar[i] == FIXY) { parsemode = FIXY; } + if (ar[i] == FGBACKGROUND) { parsemode = FGBACKGROUND; } + if (ar[i] == BGBACKGROUND) { parsemode = BGBACKGROUND; } + if (ar[i] == PADX) { parsemode = PADX; } + if (ar[i] == PADY) { parsemode = PADY; } + if (ar[i] == FULLHTML) { parsemode = opt_FULLHTML(ar[i]); } + if (ar[i] == ABOVE) { parsemode = opt_VPOS(ar[i]); } + if (ar[i] == BELOW) { parsemode = opt_VPOS(ar[i]); } + if (ar[i] == CAPICON) { parsemode = CAPICON; } + if (ar[i] == TEXTFONT) { parsemode = TEXTFONT; } + if (ar[i] == CAPTIONFONT) { parsemode = CAPTIONFONT; } + if (ar[i] == CLOSEFONT) { parsemode = CLOSEFONT; } + if (ar[i] == TEXTSIZE) { parsemode = TEXTSIZE; } + if (ar[i] == CAPTIONSIZE) { parsemode = CAPTIONSIZE; } + if (ar[i] == CLOSESIZE) { parsemode = CLOSESIZE; } + if (ar[i] == FRAME) { parsemode = FRAME; } + if (ar[i] == TIMEOUT) { parsemode = TIMEOUT; } + if (ar[i] == FUNCTION) { parsemode = FUNCTION; } + if (ar[i] == DELAY) { parsemode = DELAY; } + if (ar[i] == HAUTO) { parsemode = opt_HAUTO(ar[i]); } + if (ar[i] == VAUTO) { parsemode = opt_VAUTO(ar[i]); } + + + } else { + if (parsemode < 0) { + // Arg is maintext, unless INARRAY + if (ar[i] == INARRAY) { + parsemode = INARRAY; + } else { + o3_text = ar[i]; + parsemode = 0; + } + } else { + // Arg is option for command + if (parsemode == INARRAY) { parsemode = opt_INARRAY(ar[i]); } + if (parsemode == CAPARRAY) { parsemode = opt_CAPARRAY(ar[i]); } + if (parsemode == BACKGROUND) { parsemode = opt_BACKGROUND(ar[i]); } + if (parsemode == CAPTION) { parsemode = opt_CAPTION(ar[i]); } + if (parsemode == OFFSETX) { parsemode = opt_OFFSETX(ar[i]); } + if (parsemode == OFFSETY) { parsemode = opt_OFFSETY(ar[i]); } + if (parsemode == FGCOLOR) { parsemode = opt_FGCOLOR(ar[i]); } + if (parsemode == BGCOLOR) { parsemode = opt_BGCOLOR(ar[i]); } + if (parsemode == TEXTCOLOR) { parsemode = opt_TEXTCOLOR(ar[i]); } + if (parsemode == CAPCOLOR) { parsemode = opt_CAPCOLOR(ar[i]); } + if (parsemode == CLOSECOLOR) { parsemode = opt_CLOSECOLOR(ar[i]); } + if (parsemode == WIDTH) { parsemode = opt_WIDTH(ar[i]); } + if (parsemode == BORDER) { parsemode = opt_BORDER(ar[i]); } + if (parsemode == STATUS) { parsemode = opt_STATUS(ar[i]); } + if (parsemode == HEIGHT) { parsemode = opt_HEIGHT(ar[i]); } + if (parsemode == CLOSETEXT) { parsemode = opt_CLOSETEXT(ar[i]); } + if (parsemode == SNAPX) { parsemode = opt_SNAPX(ar[i]); } + if (parsemode == SNAPY) { parsemode = opt_SNAPY(ar[i]); } + if (parsemode == FIXX) { parsemode = opt_FIXX(ar[i]); } + if (parsemode == FIXY) { parsemode = opt_FIXY(ar[i]); } + if (parsemode == FGBACKGROUND) { parsemode = opt_FGBACKGROUND(ar[i]); } + if (parsemode == BGBACKGROUND) { parsemode = opt_BGBACKGROUND(ar[i]); } + if (parsemode == PADX2) { parsemode = opt_PADX2(ar[i]); } // must be before PADX + if (parsemode == PADY2) { parsemode = opt_PADY2(ar[i]); } // must be before PADY + if (parsemode == PADX) { parsemode = opt_PADX(ar[i]); } + if (parsemode == PADY) { parsemode = opt_PADY(ar[i]); } + if (parsemode == CAPICON) { parsemode = opt_CAPICON(ar[i]); } + if (parsemode == TEXTFONT) { parsemode = opt_TEXTFONT(ar[i]); } + if (parsemode == CAPTIONFONT) { parsemode = opt_CAPTIONFONT(ar[i]); } + if (parsemode == CLOSEFONT) { parsemode = opt_CLOSEFONT(ar[i]); } + if (parsemode == TEXTSIZE) { parsemode = opt_TEXTSIZE(ar[i]); } + if (parsemode == CAPTIONSIZE) { parsemode = opt_CAPTIONSIZE(ar[i]); } + if (parsemode == CLOSESIZE) { parsemode = opt_CLOSESIZE(ar[i]); } + if (parsemode == FRAME) { parsemode = opt_FRAME(ar[i]); } + if (parsemode == TIMEOUT) { parsemode = opt_TIMEOUT(ar[i]); } + if (parsemode == FUNCTION) { parsemode = opt_FUNCTION(ar[i]); } + if (parsemode == DELAY) { parsemode = opt_DELAY(ar[i]); } + + } + } + } + + if (o3_delay == 0) { + return box333(); + } else { + o3_delayid = setTimeout("box333()", o3_delay); + + if (o3_sticky) { + return false; + } else { + return true; + } + } +} + + + +// Clears popups if appropriate +function nd() { + if ( o3_removecounter >= 1 ) { o3_showingsticky = 0 }; + if ( (ns4) || (ie4) || (ns6) ) { + if ( o3_showingsticky == 0 ) { + o3_allowmove = 0; + if (over != null) hideObject(over); + } else { + o3_removecounter++; + } + } + + return true; +} + + + + + + + +//////////////////////////////////// +// OVERLIB 3.33 FUNCTION +//////////////////////////////////// + + +// This function decides what it is we want to display and how we want it done. +function box333() { + + // Make layer content + var layerhtml; + + if (o3_background != "" || o3_fullhtml) { + // Use background instead of box. + layerhtml = ol_content_background(o3_text, o3_background, o3_fullhtml); + } else { + // They want a popup box. + + // Prepare popup background + if (o3_fgbackground != "") { + o3_fgbackground = "BACKGROUND=\""+o3_fgbackground+"\""; + } + if (o3_bgbackground != "") { + o3_bgbackground = "BACKGROUND=\""+o3_bgbackground+"\""; + } + + // Prepare popup colors + if (o3_fgcolor != "") { + o3_fgcolor = "BGCOLOR=\""+o3_fgcolor+"\""; + } + if (o3_bgcolor != "") { + o3_bgcolor = "BGCOLOR=\""+o3_bgcolor+"\""; + } + + // Prepare popup height + if (o3_height > 0) { + o3_height = "HEIGHT=" + o3_height; + } else { + o3_height = ""; + } + + // Decide which kinda box. + if (o3_cap == "") { + // Plain + layerhtml = ol_content_simple(o3_text); + } else { + // With caption + if (o3_sticky) { + // Show close text + layerhtml = ol_content_caption(o3_text, o3_cap, o3_close); + } else { + // No close text + layerhtml = ol_content_caption(o3_text, o3_cap, ""); + } + } + } + + // We want it to stick! + if (o3_sticky) { + o3_showingsticky = 1; + o3_removecounter = 0; + } + + // Write layer + layerWrite(layerhtml); + + // Prepare status bar + if (o3_autostatus > 0) { + o3_status = o3_text; + if (o3_autostatus > 1) { + o3_status = o3_cap; + } + } + + // When placing the layer the first time, even stickies may be moved. + o3_allowmove = 0; + + // Initiate a timer for timeout + if (o3_timeout > 0) { + if (o3_timerid > 0) clearTimeout(o3_timerid); + o3_timerid = setTimeout("cClick()", o3_timeout); + } + + // Show layer + disp(o3_status); + + // Stickies should stay where they are. + if (o3_sticky) { + o3_allowmove = 0; + return false; + } else { + return true; + } +} + + + +//////////////////////////////////// +// LAYER GENERATION FUNCTIONS +//////////////////////////////////// + +// Makes simple table without caption +function ol_content_simple(text) { + txt = "
"+text+"
"; + set_background(""); + return txt; +} + +// Makes table with caption and optional close link +function ol_content_caption(text, title, close) { + closing = ""; + if (close != "") { + closing = ""+close+""; + } + if (o3_capicon != "") { + o3_capicon = " "; + } + txt = "
"+closing+"
"+o3_capicon+title+"
"+text+"
"; + set_background(""); + return txt; +} + +// Sets the background picture, padding and lots more :) +function ol_content_background(text, picture, hasfullhtml) { + if (hasfullhtml) { + txt = text; + } else { + txt = "
"+text+"
"; + } + set_background(picture); + return txt; +} + +// Loads a picture into the div. +function set_background(pic) { + if (pic == "") { + if (ie4) over.backgroundImage = "none"; + if (ns6) over.style.backgroundImage = "none"; + } else { + if (ns4) { + over.background.src = pic; + } else if (ie4) { + over.backgroundImage = "url("+pic+")"; + } else if (ns6) { + over.style.backgroundImage = "url("+pic+")"; + } + } +} + + + +//////////////////////////////////// +// HANDLING FUNCTIONS +//////////////////////////////////// + + +// Displays the popup +function disp(statustext) { + if ( (ns4) || (ie4) || (ns6) ) { + if (o3_allowmove == 0) { + placeLayer(); + showObject(over); + o3_allowmove = 1; + } + } + + if (statustext != "") { + self.status = statustext; + } +} + +// Decides where we want the popup. +function placeLayer() { + var placeX, placeY; + + // HORIZONTAL PLACEMENT + if (o3_fixx > -1) { + // Fixed position + placeX = o3_fixx; + } else { + winoffset = (ie4) ? o3_frame.document.body.scrollLeft : o3_frame.pageXOffset; + if (ie4) iwidth = o3_frame.document.body.clientWidth; + if (ns4) iwidth = o3_frame.innerWidth; // was screwed in mozilla, fixed now? + if (ns6) iwidth = o3_frame.outerWidth; + + // If HAUTO, decide what to use. + if (o3_hauto == 1) { + if ( (o3_x - winoffset) > ((eval(iwidth)) / 2)) { + o3_hpos = LEFT; + } else { + o3_hpos = RIGHT; + } + } + + // From mouse + if (o3_hpos == CENTER) { // Center + placeX = o3_x+o3_offsetx-(o3_width/2); + } + if (o3_hpos == RIGHT) { // Right + placeX = o3_x+o3_offsetx; + if ( (eval(placeX) + eval(o3_width)) > (winoffset + iwidth) ) { + placeX = iwidth + winoffset - o3_width; + if (placeX < 0) placeX = 0; + } + } + if (o3_hpos == LEFT) { // Left + placeX = o3_x-o3_offsetx-o3_width; + if (placeX < winoffset) placeX = winoffset; + } + + // Snapping! + if (o3_snapx > 1) { + var snapping = placeX % o3_snapx; + if (o3_hpos == LEFT) { + placeX = placeX - (o3_snapx + snapping); + } else { + // CENTER and RIGHT + placeX = placeX + (o3_snapx - snapping); + } + if (placeX < 0) placeX = 0; + } + } + + + + // VERTICAL PLACEMENT + if (o3_fixy > -1) { + // Fixed position + placeY = o3_fixy; + } else { + // If VAUTO, decide what to use. + if (o3_vauto == 1) { + if (ie4) iheight = o3_frame.document.body.clientHeight; + if (ns4) iheight = o3_frame.innerHeight; + if (ns6) iheight = o3_frame.outerHeight; + + iheight = (eval(iheight)) / 2; + if (o3_y > iheight) { + o3_vpos = ABOVE; + } else { + o3_vpos = BELOW; + } + } + + // From mouse + if (o3_aboveheight > 0 && o3_vpos == ABOVE) { + placeY = o3_y - (o3_aboveheight + o3_offsety); + } else { + // BELOW + placeY = o3_y + o3_offsety; + } + + // Snapping! + if (o3_snapy > 1) { + var snapping = placeY % o3_snapy; + + if (o3_aboveheight > 0 && o3_vpos == ABOVE) { + placeY = placeY - (o3_snapy + snapping); + } else { + placeY = placeY + (o3_snapy - snapping); + } + + if (placeY < 0) placeY = 0; + } + } + + + // Actually move the object. + repositionTo(over, placeX, placeY); +} + + +// Moves the layer +function mouseMove(e) { + if ( (ns4) || (ns6) ) {o3_x=e.pageX; o3_y=e.pageY;} + if (ie4) {o3_x=event.x; o3_y=event.y;} + if (ie5) {o3_x=event.x+o3_frame.document.body.scrollLeft; o3_y=event.y+o3_frame.document.body.scrollTop;} + + if (o3_allowmove == 1) { + placeLayer(); + } +} + +// The Close onMouseOver function for stickies +function cClick() { + hideObject(over); + o3_showingsticky = 0; +} + + +// Makes sure target frame has overLIB +function compatibleframe(frameid) { + if (ns4) { + if (typeof frameid.document.overDiv =='undefined') return false; + } else if (ie4) { + if (typeof frameid.document.all["overDiv"] =='undefined') return false; + } else if (ns6) { + if (frameid.document.getElementById('overDiv') == null) return false; + } + + return true; +} + + + +//////////////////////////////////// +// LAYER FUNCTIONS +//////////////////////////////////// + + +// Writes to a layer +function layerWrite(txt) { + txt += "\n"; + + if (ns4) { + var lyr = o3_frame.document.overDiv.document + + lyr.write(txt) + lyr.close() + } else if (ie4) { + o3_frame.document.all["overDiv"].innerHTML = txt + } else if (ns6) { + range = o3_frame.document.createRange(); + range.setStartBefore(over); + domfrag = range.createContextualFragment(txt); + while (over.hasChildNodes()) { + over.removeChild(over.lastChild); + } + over.appendChild(domfrag); + } +} + +// Make an object visible +function showObject(obj) { + if (ns4) obj.visibility = "show"; + else if (ie4) obj.visibility = "visible"; + else if (ns6) obj.style.visibility = "visible"; +} + +// Hides an object +function hideObject(obj) { + if (ns4) obj.visibility = "hide"; + else if (ie4) obj.visibility = "hidden"; + else if (ns6) obj.style.visibility = "hidden"; + if (o3_timerid > 0) clearTimeout(o3_timerid); + if (o3_delayid > 0) clearTimeout(o3_delayid); + o3_timerid = 0; + o3_delayid = 0; + self.status = ""; +} + +// Move a layer +function repositionTo(obj,xL,yL) { + if ( (ns4) || (ie4) ) { + obj.left = xL; + obj.top = yL; + } else if (ns6) { + obj.style.left = xL + "px"; + obj.style.top = yL+ "px"; + } +} + + + +//////////////////////////////////// +// PARSER FUNCTIONS +//////////////////////////////////// + + +// Sets text from array. +function opt_INARRAY(id) { + o3_text = ol_texts[id]; + return 0; +} + +// Sets caption from array. +function opt_CAPARRAY(id) { + o3_cap = ol_caps[id]; + return 0; +} + +// Sets stickiness. +function opt_STICKY(unused) { + o3_sticky = 1; + return 0; +} + +// Sets background picture. +function opt_BACKGROUND(file) { + o3_background = file; + return 0; +} + +// Sets use of close text. +function opt_NOCLOSE(unused) { + o3_close = ""; + return 0; +} + +// Sets caption. +function opt_CAPTION(text) { + o3_cap = text; + return 0; +} + +// Sets hpos, for LEFT, RIGHT and CENTER. +function opt_HPOS(pos) { + o3_hpos = pos; + return 0; +} + +// Sets the x offset +function opt_OFFSETX(offset) { + o3_offsetx = offset; + return 0; +} + +// Sets the y offset +function opt_OFFSETY(offset) { + o3_offsety = offset; + return 0; +} + + +// Sets the fg color +function opt_FGCOLOR(clr) { + o3_fgcolor = clr; + return 0; +} + +// Sets the bg color +function opt_BGCOLOR(clr) { + o3_bgcolor = clr; + return 0; +} + +// Sets the text color +function opt_TEXTCOLOR(clr) { + o3_textcolor = clr; + return 0; +} + +// Sets the caption color +function opt_CAPCOLOR(clr) { + o3_capcolor = clr; + return 0; +} + +// Sets the close color +function opt_CLOSECOLOR(clr) { + o3_closecolor = clr; + return 0; +} + +// Sets the popup width +function opt_WIDTH(pixels) { + o3_width = pixels; + return 0; +} + +// Sets the popup border width +function opt_BORDER(pixels) { + o3_border = pixels; + return 0; +} + +// Sets the status bar text +function opt_STATUS(text) { + o3_status = text; + return 0; +} + +// Sets that status bar text to the text +function opt_AUTOSTATUS(val) { + o3_autostatus = 1; + return 0; +} + +// Sets that status bar text to the caption +function opt_AUTOSTATUSCAP(val) { + o3_autostatus = 2; + return 0; +} + +// Sets the popup height +function opt_HEIGHT(pixels) { + o3_height = pixels; + o3_aboveheight = pixels; + return 0; +} + +// Sets the close text. +function opt_CLOSETEXT(text) { + o3_close = text; + return 0; +} + +// Sets horizontal snapping +function opt_SNAPX(pixels) { + o3_snapx = pixels; + return 0; +} + +// Sets vertical snapping +function opt_SNAPY(pixels) { + o3_snapy = pixels; + return 0; +} + +// Sets horizontal position +function opt_FIXX(pos) { + o3_fixx = pos; + return 0; +} + +// Sets vertical position +function opt_FIXY(pos) { + o3_fixy = pos; + return 0; +} + +// Sets the fg background +function opt_FGBACKGROUND(picture) { + o3_fgbackground = picture; + return 0; +} + +// Sets the bg background +function opt_BGBACKGROUND(picture) { + o3_bgbackground = picture; + return 0; +} + +// Sets the left x padding for background +function opt_PADX(pixels) { + o3_padxl = pixels; + return PADX2; +} + +// Sets the top y padding for background +function opt_PADY(pixels) { + o3_padyt = pixels; + return PADY2; +} + +// Sets the right x padding for background +function opt_PADX2(pixels) { + o3_padxr = pixels; + return 0; +} + +// Sets the bottom y padding for background +function opt_PADY2(pixels) { + o3_padyb = pixels; + return 0; +} + +// Sets that user provides full html. +function opt_FULLHTML(unused) { + o3_fullhtml = 1; + return 0; +} + +// Sets vpos, for ABOVE and BELOW +function opt_VPOS(pos) { + o3_vpos = pos; + return 0; +} + +// Sets the caption icon. +function opt_CAPICON(icon) { + o3_capicon = icon; + return 0; +} + +// Sets the text font +function opt_TEXTFONT(fontname) { + o3_textfont = fontname; + return 0; +} + +// Sets the caption font +function opt_CAPTIONFONT(fontname) { + o3_captionfont = fontname; + return 0; +} + +// Sets the close font +function opt_CLOSEFONT(fontname) { + o3_closefont = fontname; + return 0; +} + +// Sets the text font size +function opt_TEXTSIZE(fontsize) { + o3_textsize = fontsize; + return 0; +} + +// Sets the caption font size +function opt_CAPTIONSIZE(fontsize) { + o3_captionsize = fontsize; + return 0; +} + +// Sets the close font size +function opt_CLOSESIZE(fontsize) { + o3_closesize = fontsize; + return 0; +} + +// Defines which frame we should point to. +function opt_FRAME(frm) { + o3_frame = compatibleframe(frm) ? frm : ol_frame; + + if ( (ns4) || (ie4 || (ns6)) ) { + if (ns4) over = o3_frame.document.overDiv; + if (ie4) over = o3_frame.overDiv.style; + if (ns6) over = o3_frame.document.getElementById("overDiv"); + } + + return 0; +} + +// Sets the popup timeout (note: 1 sec = 1000) +function opt_TIMEOUT(maxtime) { + o3_timeout = maxtime; + return 0; +} + +// Calls an external function +function opt_FUNCTION(callme) { + o3_text = callme() + return 0; +} + +// Sets the popup delay (note: 1 sec = 1000) +function opt_DELAY(waittime) { + o3_delay = waittime; + return 0; +} + +// Sets the auto horizontal option +function opt_HAUTO(onoff) { + if (o3_hauto == 0) { + o3_hauto = 1; + } else { + o3_hauto = 0; + } + return 0; +} + +// Sets the auto vertical option +function opt_VAUTO(onoff) { + if (o3_vauto == 0) { + o3_vauto = 1; + } else { + o3_vauto = 0; + } + return 0; +} + + +//end (OF OVERLIB. OTHER ITEMS MAY FOLLOW) + + +// Opens a single window of parametered size, called "pannellino" +function makeWindow(W,H) { + if (W == null) { W = 567; } + if (H == null) { H = 378; } +W = W+16; +H = H+16; +window.open("","pannellino","width="+W+",height="+H+",innerwidth="+W+",innerheight="+H+",titlebar=no,title=no,resizable=no"); +} + +// Opens multiple windows of parametered size, each called "pannellinoN" (N = 1, 2, etc.) +// used in SMIGRA Coma +function makeWindow1(W,H,N) { + if (W == null) { W = 567; } + if (H == null) { H = 378; } +N = "pannellino"+N; +W = W+16; +H = H+16; +window.open("",N,"width="+W+",height="+H+",innerwidth="+W+",innerheight="+H+",titlebar=no,title=no,resizable=no"); +} + +// Opens a single window of parametered size, called "pannellone" +function makeWindow2(W,H) { + if (W == null) { W = 567; } + if (H == null) { H = 378; } +W = W+16; +H = H+16; +window.open("","pannellone","width="+W+",height="+H+",innerwidth="+W+",innerheight="+H+",titlebar=no,title=no,resizable=no"); +} + diff --git a/sources/book_3_files/Italy.gif b/sources/book_3_files/Italy.gif new file mode 100644 index 0000000..4e82f2c Binary files /dev/null and b/sources/book_3_files/Italy.gif differ diff --git a/sources/book_3_files/LIGHT.css b/sources/book_3_files/LIGHT.css new file mode 100644 index 0000000..e46698f --- /dev/null +++ b/sources/book_3_files/LIGHT.css @@ -0,0 +1,10 @@ +.running_title { + color: #000066 ! important; +} + .running_title .emend { + color: #0066cc ! important; + } + +.my_running_title { + color: #0066cc ! important; /* matches .emend */ +} diff --git a/sources/book_3_files/colors.css b/sources/book_3_files/colors.css new file mode 100644 index 0000000..dc4a17a --- /dev/null +++ b/sources/book_3_files/colors.css @@ -0,0 +1,2173 @@ +/* +KEEP IN THE FOLLOWING ORDER: + 1. GOOGLEMAP COLORS FIRST ▸ search for <1> + 2. PLAIN FONT COLORS NO BACKGROUNDS ▸ search for <2> + 3. PLAIN BACKGROUND COLORS ▸ search for <3> + 4. COMBINED FONT+BACKGROUND SCHEMES ▸ search for <4> +*/ + +/* +ideally: + plain color names should be for plain font colors + evocative names should be for combined schemes + */ + +/* +TABLES WITH ALTERNATING ROWS/BANDS: + Across all backgrounds and stylesheets, they are CLASS="Orvieto", + differently defined in the various stylesheets. + Model use: +E/Gazetteer/Places/America/United_States/_Topics/history/_Texts/DULOCT/Appendix*.html + */ + +/*<1>*/ + +SPAN.WalkColor { + color: #00bf40 ! important; +} + +SPAN.RideColor { + color: #cc6600 ! important; +} + +SPAN.ApproximateColor { + color: #ff99ff ! important; +} + +/*<2>*/ +/* +KEEP IN THE FOLLOWING ORDER: + 1. NAMED COLORS ▸ search for + 2. colorNNNNNN PLACEHOLDERS ▸ search for , within which: + 2a. WEBSAFE: xxyyzz with x, y, z = {0,3,6,9,C,F} + 2b. OTHER +*/ + +/**/ +.black { + color: #000000 ! important; + } + +.blue { + color: #0000ff ! important; +} + +.celadon { + color: #33CCFF ! important; + } + +.chancery { + color: #FF33FF ! important; + } + +.cordovan { + color: #993300 ! important; + } + +.fuchsia { + color: #ff00ff ! important; + } + +.green { + color: #009900 ! important; +} + +.dark_green { + color: #003300 ! important; + } + +.lawngreen { + color: #7cfc00 ! important; +} + +.light_green { + color: #33ff33 ! important; +} + + A.light_green { + background-color: inherit ! important; + color: #33ff33 ! important; + } + +.light_red { + color: #ff3333 ! important; +} + +.light_yellow { + color: #ffff33 ! important; +} + +.pale_green { + color: #ccffcc ! important; +} + + A.pale_green { + background-color: inherit ! important; + color: #ccffcc ! important; + } + +.pale_yellow { + color: #ffffcc ! important; +} + +.lemon { + color: #FFFF99 ! important; + } + +.maroon { + color: #990000 ! important; + } + +.muted { + color: #666666 ! important; + } + +.semimuted { + color: #999999 ! important; + } + +.ochre { + color: #996600 ! important; + } + +.ochre_yellow { + color: #ccad00 ! important; +} + +.orange { + color: #FFAA22 ! important; + } + +.pale_magenta { + color: #ff6699 ! important; +} + +.pale_purple { + color: #ffccff ! important; +} + + A.pale_purple { + background-color: inherit ! important; + color: #ffccff ! important; + } + +.purple { + color: #990099 ! important; + } + +.red { + color: #ff0000 ! important; +} + +.rust { + color: #CC6600 ! important; + } + +.salmon { + color: #ff6666 ! important; +} + +.USMA_gold { + color: #ffdd00 ! important; + } + +.USMA_stripes { + color: #fffb98 ! important; + } + +.violet { + color: #200080 ! important; +} + +/**/ + /**/ + /* Should eventually be replaced by mnemonic names */ + +.color001100 { + color: #001100 ! important; + } + +.color000033 { + color: #000033 ! important; + } + +.color000066 { + color: #000066 ! important; + } + +.color000099 { + color: #000099 ! important; + } + +.color0000CC { + color: #0000CC ! important; + } + +.color003333 { + color: #003333 ! important; + } + +.color003366 { + color: #003366 ! important; + } + +.color0033CC { + color: #0033CC ! important; + } + +.color006600 { + color: #006600 ! important; + } + +.color006633 { + color: #006633 ! important; + } + +.color0066CC { + color: #0066CC ! important; + } + +.color0066FF { + color: #0066FF ! important; + } + +.color00CC99 { + color: #00CC99 ! important; + } + +.color00FF99 { + color: #00FF99 ! important; + } + +.color330000 { + color: #330000 ! important; + } + +.color330033 { + color: #330033 ! important; + } + +.color333333 { + color: #333333 ! important; + } + +.color333300 { + color: #333300 ! important; + } + +.color333366 { + color: #333366 ! important; + } + +.color333399 { + color: #333399 ! important; + } + +.color3333CC { + color: #3333CC ! important; + } + +.color3333FF { + color: #3333FF ! important; + } + +.color336600 { + color: #336600 ! important; + } + +.color336633 { + color: #336633 ! important; + } + +.color3366FF { + color: #3366FF ! important; + } + +.color339900 { + color: #339900 ! important; + } + +.color339933 { + color: #339933 ! important; + } + +.color33FFFF { + color: #33FFFF ! important; + } + +.color660000 { + color: #660000 ! important; + } + +.color660033 { + color: #660033 ! important; + } + +.color660066 { + color: #660066 ! important; + } + +.color660099 { + color: #660099 ! important; + } + +.color663300 { + color: #663300 ! important; + } + +.color663333 { + color: #663333 ! important; + } + +.color6699CC { + color: #6699CC ! important; + } + +.color993333 { + color: #993333 ! important; + } + +.color996666 { + color: #996666 ! important; + } + +.color999999 { + color: #999999 ! important; + } + +.color99CCFF { + color: #99CCFF ! important; + } + +.color99FF66 { + color: #99FF66 ! important; + } + +.color99FFFF { + color: #99FFFF ! important; + } + +.colorCC0000 { + color: #CC0000 ! important; + } + +.colorCC0033 { + color: #CC0033 ! important; + } + +.colorCC0066 { + color: #CC0066 ! important; + } + +.colorCC0099 { + color: #CC0099 ! important; + } + +.colorCC00CC { + color: #CC00CC ! important; + } + +.colorCC3300 { + color: #CC3300 ! important; + } + +.colorCC6666 { + color: #CC6666 ! important; + } + +.colorCC9900 { + color: #CC9900 ! important; + } + +.colorCCCCFF { + color: #CCCCFF ! important; + } + +.colorCCFFCC { + color: #CCFFCC ! important; + } + +.colorCCFFFF { + color: #CCFFFF ! important; + } + +.colorFF0066 { + color: #FF0066 ! important; + } + +.colorFF0099 { + color: #FF0099 ! important; + } + +.colorFF3300 { + color: #FF3300 ! important; + } + +.colorFF6600 { + color: #FF6600 ! important; + } + +.colorFF9900 { + color: #FF9900 ! important; + } + +.colorFF9933 { + color: #FF9933 ! important; + } + +.colorFF9966 { + color: #FF9966 ! important; + } + +.colorFF9999 { + color: #FF9999 ! important; + } + +.colorFF99CC { + color: #FF99CC ! important; + } + +.colorFF99FF { + color: #FF99FF ! important; + } + +.colorFFCC00 { + color: #FFCC00 ! important; + } + +.colorFFCC33 { + color: #FFCC33 ! important; + } + +.colorFFCC66 { + color: #FFCC66 ! important; + } + +.colorFFCC99 { + color: #FFCC99 ! important; + } + +.colorFFCCCC { + color: #FFCCCC ! important; + } + +.colorFFFF00 { + color: #FFFF00 ! important; + } + +.colorFFFF66 { + color: #FFFF66 ! important; + } + +.colorFFFFFF { + color: #FFFFFF ! important; + } + + /**/ + +.color000090 { + color: #000090 ! important; + } + +.color002200 { + color: #002200 ! important; + } + +.color004000 { + color: #004000 ! important; + } + +.color0040B0 { + color: #0040B0 ! important; + } + +.color004400 { + color: #004400 ! important; + } + +.color004A00 { + color: #004A00 ! important; + } + +.color0060FF { + color: #0060FF ! important; + } + +.color006E3A { + color: #006E3A ! important; + } + +.color007000 { + color: #007000 ! important; + } + +.color008000 { + color: #008000 ! important; + } + +.color0080FF { + color: #0080FF ! important; + } + +.color008800 { + color: #008800 ! important; + } + +.color008C00 { + color: #008C00 ! important; + } + +.color0C3000 { + color: #0C3000 ! important; + } + +.color110000 { + color: #110000 ! important; + } + +.color110011 { + color: #110011 ! important; + } + +.color112200 { + color: #112200 ! important; + } + +.color200000 { + color: #200000 ! important; + } + +.color223344 { + color: #223344 ! important; + } + +.color330010 { + color: #330010 ! important; + } + +.color332222 { + color: #332222 ! important; + } + +.color3900D6 { + color: #3900D6 ! important; + } + +.color3900E6 { + color: #3900E6 ! important; + } + +.color400080 { + color: #400080 ! important; + } + +.color4040FF { + color: #4040FF ! important; + } + +.color410000 { + color: #410000 ! important; + } + +.color4B2700 { + color: #4B2700 ! important; + } + +.color4C1900 { + color: #4C1900 ! important; + } + +.color4C9900 { + color: #4C9900 ! important; + } + +.color5000D0 { + color: #5000D0 ! important; + } + +.color600000 { + color: #600000 ! important; + } + +.color6A0080 { + color: #6A0080 ! important; + } + +.color6F0000 { + color: #6F0000 ! important; + } + +.color800000 { + color: #800000 ! important; + } + +.color800080 { + color: #800080 ! important; + } + +.color802600 { + color: #802600 ! important; + } + +.color900000 { + color: #900000 ! important; + } + +.color903030 { + color: #903030 ! important; + } + +.color992200 { + color: #992200 ! important; + } + +.color994C4C { + color: #994C4C ! important; + } + +.color9C2973 { + color: #9C2973 ! important; + } + +.color9C6342 { + color: #9C6342 ! important; + } + +.colorA00000 { + color: #A00000 ! important; + } + +.colorAACC00 { + color: #AACC00 ! important; + } + +.colorBE5F00 { + color: #BE5F00 ! important; + } + +.colorC03A3A { + color: #C03A3A ! important; + } + +.colorCCCCDD { + color: #CCCCDD ! important; + } + +.colorD00000 { + color: #D00000 ! important; + } + +.colorD10022 { + color: #D10022 ! important; + } + +.colorD56A00 { + color: #D56A00 ! important; + } + +.colorDDDDCC { + color: #DDDDCC ! important; + } + +.colorDDDDDD { + color: #DDDDDD ! important; + } + +.colorDDDDEE { + color: #DDDDEE ! important; + } + +.colorDDDDFF { + color: #DDDDFF ! important; + } + +.colorDDFFCC { + color: #DDFFCC ! important; + } + +.colorE0FFCC { + color: #E0FFCC ! important; + } + +.colorE77300 { + color: #E77300 ! important; + } + +.colorEECC99 { + color: #EECC99 ! important; + } + +.colorEEEEEE { + color: #EEEEEE ! important; + } + +.colorEEEEFF { + color: #EEEEFF ! important; + } + +.colorEEFFFF { + color: #EEFFFF ! important; + } + +.colorFF002A { + color: #FF002A ! important; + } + +.colorFF4000 { + color: #FF4000 ! important; + } + +.colorFF5500 { + color: #FF5500 ! important; + } + +.colorFF6633 { + color: #FF6633 ! important; + } + +.colorFF7F00 { + color: #FF7F00 ! important; + } + +.colorFFAA00 { + color: #FFAA00 ! important; + } + +.colorFFBB88 { + color: #FFBB88 ! important; + } + +.colorFFDD00 { + color: #FFDD00 ! important; + } + +.colorFFDD99 { + color: #FFDD99 ! important; + } + +.colorFFDDBB { + color: #FFDDBB ! important; + } + +.colorFFDDDD { + color: #FFDDDD ! important; + } + +.colorFFDDEE { + color: #FFDDEE ! important; + } + +.colorFFEEDD { + color: #FFEEDD ! important; + } + +.colorFFEEEE { + color: #FFEEEE ! important; + } + +.colorFFFFEE { + color: #FFFFEE ! important; + } + +/*<3>*/ + +.aquawhite { + background-color: #f7fbff ! important; +} + +.bluewhite { + background-color: #f7f7ff ! important; +} + +.ecruwhite { + background-color: #fffff7 ! important; +} + +.redwhite { + background-color: #fff7f7 ! important; +} + +.bistre { + background-color: #cccc99 ! important; +} + +SPAN.bistre { + background-color: inherit ! important; + color: #cccc99 ! important; +} + +.ecru { + background-color: #ffffcc ! important; + color: #000066 ! important; +} + +SPAN.ecru { + background-color: inherit ! important; + color: #ffffcc ! important; +} + +.grey { + background-color: #cccccc ! important; +} + +SPAN.grey { + color: #cccccc ! important; +} + +.pale_grey { + background-color: #ddddee ! important; + } + +.paler_grey { + background-color: #eeeef6 ! important; + } + +.lagoon { + background-color: #99ffff ! important; + color: #000066 ! important; +} + + SPAN.lagoon { + background-color: inherit ! important; + color: #99ffff ! important; +} + +.lime { + background-color: #ccff99 ! important; +} + +.mist_green { + background-color: #e8ffe8 ! important; +} + +.mustard { + background-color: #ffcc44 ! important; +} + +.pale_blue { + background-color: #ccccff ! important; +} + SPAN.pale_blue { + background-color: inherit ! important; + color: #ccccff ! important; + } + +.hospital_wall { + background-color: #ccffcc ! important; +} + SPAN.hospital_wall { + background-color: inherit ! important; + color: #ccffcc ! important; + } + + A.hospital_wall { + background-color: inherit ! important; + color: #ccffcc ! important; + } + +.pale_red { + background-color: #ffcccc ! important; +} + SPAN.pale_red { + background-color: inherit ! important; + color: #ffcccc ! important; + } + + A.pale_red { + background-color: inherit ! important; + color: #ffcccc ! important; + } + +.pink { + background-color: #fff2ff ! important; +} + +.plaster { + background-color: #ffeedd ! important; +} + +.pumpkin { + background-color: #ff9933 ! important; +} + +.silver { + background-color: #f6f6ff ! important; +} + +.silver .emend { + color: #0066cc ! important; +} + +.sky { + background-color: #99ccff ! important; +} + SPAN.sky { + background-color: inherit ! important; + color: #99ccff ! important; + } + +.sunset { + background-color: #ffff99 ! important; +} + +.tawny { + background-color: #ffcc66 ! important; +} + + .tawny .Latin { + color: #660000 ! important; + } + + .tawny .lapis { + color: #660000 ! important; + } + + .tawny .nummus { + color: #660000 ! important; + } + + .tawny .Latin .emend { + color: #cc3399 ! important; + } + + .tawny .lapis .emend { + color: #cc3399 ! important; + } + + .tawny .nummus .emend { + color: #cc3399 ! important; + } + +.terracotta { + background-color: #ff9966 ! important; +} + +.white { + background-color: #ffffff ! important; + color: #000066 ! important; +} + + SPAN.white { + background-color: inherit ! important; + color: #ffffff ! important; + } + +/*<4>*/ + +.Acquaeortus { + background-color: #ff6666 ! important; + color: #ffffff ! important; +} + +.Air_Force { + background-color: #003366 ! important; + color: #ffffff ! important; +} + .Air_Force A { + color: #ffff33 ! important; + } + +.Algol { + background-color: #444444 ! important; + color: #ff6600 ! important; +} + + .Algol P { + color: #ff6600 ! important; + } + + .Algol .Italian { + color: #99ff99 ! important; + } + + .Algol .source { + color: #99ff99 ! important; + } + .Algol A { + color: #ffcccc ! important; + } + +.Algol2 { + background-color: #333333 ! important; + color: #ff6633 ! important; +} + + .Algol2 P { + color: #ff6633 ! important; + } + + .Algol2 .source { + color: #99ff99 ! important; + } + .Algol2 A { + color: #ffcccc ! important; + } + +.Americas { + background-color: #bbffff ! important; + color: #336633 ! important; +} + +.amphora { + background-color: #993333 ! important; + color: #ffffcc ! important; +} + + .amphora .Latin { + color: #ffff99 ! important; + } + + .amphora .lapis { + color: #ff9999 ! important; + } + + .amphora .nummus { + color: #ff9999 ! important; + } + .amphora A { + color: #33ff33 ! important; + } + +.angelica { + background-color: #99cc33 ! important; +} + +.angels { + background-color: #000099 ! important; + color: #ffff66 ! important; +} + .angels A { + color: #99ffff ! important; + } + +.Antares { + background-color: #000000 ! important; + color: #ff3300 ! important; +} + .Antares A { + color: #ffff66 ! important; + } + +.aqua { + background-color: #ccffff ! important; + color: #000066 ! important; +} + A.aqua { + background-color: inherit ! important; + color: #ccffff ! important; + } + + SPAN.aqua { + background-color: inherit ! important; + color: #ccffff ! important; + } + +.Arizona { + background-color: #ffe6cc ! important; +} + .Arizona .Italian { + color: #20bb44 ! important; + } + +.Arnhem { + background-color: #3333ff ! important; + color: #ffffff ! important; +} + + A.Arnhem { + background-color: inherit ! important; + color: #3333ff ! important; + } + + SPAN.Arnhem { + color: #ffffff ! important; + } + +.Augustus { + background-color: #660022 ! important; + color: #ffffff ! important; +} + .Augustus A { + color: #00ffcc ! important; + } + +.autumn { + background-color: #663333 ! important; + color: #ffcc99 ! important; +} + .autumn A { + color: #99ffff ! important; + } + +.autumn_gold { + background-color: #663333 ! important; + color: #ffff66 ! important; +} + +.autumn_sand { + background-color: #663333 ! important; + color: #ffffcc ! important; +} + +.azure { + background-color: #150080 ! important; + color: #ffffcc ! important; +} + +.Bonely { + background-color: #cccccc ! important; + color: #000011 ! important; +} + +.Boston_red { + color: #cc0000 ! important; +} + +.brick { + background-color: #773300 ! important; + color: #ffffff ! important; +} + + .brick .Latin { + color: #ffff99 ! important; + } + + .brick .lapis { + color: #ffff99 ! important; + } + + .brick .nummus { + color: #ffff99 ! important; + } + .brick A { + color: #33ff33 ! important; + } + +.brickstamp { + background-color: #ffcc99 ! important; +} + +.brickstamp1 { + background-color: #ffcc99 ! important; + color: #cc3333 ! important; +} + +.brickstamp2 { + background-color: #ffcc99 ! important; + color: #993333 ! important; +} + +.Britain { + background-color: #00237d ! important; + /*must be the same color as BODY in Britannia.css*/ + color: #ffffff ! important; +} + +.brown { + background-color: #330000 ! important; + color: #ffffcc ! important; +} + + .brown .Latin { + color: #ffcc66 ! important; + } + + .brown .lapis { + color: #ffcc66 ! important; + } + + .brown .nummus { + color: #ffcc66 ! important; + } + + .brown .source { + color: #99ff33 ! important; + } + + SPAN.brown { + background-color: inherit ! important; + color: #330000 ! important; + } + + SPAN.brown A { + color: #0000ff ! important; + } + .brown A { + color: #99ff99 ! important; + } + +.dark_brown { + background-color: #332222 ! important; + color: #ffffcc ! important; +} + + .dark_brown .Latin { + color: #ffcc66 ! important; + } + + .dark_brown .lapis { + color: #ffcc66 ! important; + } + + .dark_brown .nummus { + color: #ffcc66 ! important; + } + + .dark_brown .source { + color: #99ff33 ! important; + } + +.burgundy { + background-color: #330000 ! important; + color: #ffcccc ! important; +} + +.butterscotch { + background-color: #995500 ! important; + color: #ffffff ! important; +} + + .butterscotch .Latin { + color: #ffff99 ! important; + } + + .butterscotch .lapis { + color: #ffff99 ! important; + } + + .butterscotch .nummus { + color: #ffff99 ! important; + } + .butterscotch A { + color: #33ff33 ! important; + } + +.cadet_grey { + background-color: #a5a6bb ! important; + color: #000066 ! important; +} + +.light_cadet_grey { + background-color: #c5c6d3 ! important; + color: #000066 ! important; +} + +/* The red of the Cambodian flag is e00025; the color here is slightly bluer, and much darker, for readability and so as not to confuse it with a link. */ +/* OLD: +.Cambodia { + background-color: #ffffff ! important; + color: #bf0050 ! important; + border-color: #032ea1 ! important; + border-width: 2px ! important; +} + .Cambodia A { + color: #cc00ff ! important; + } + */ + +.Cambodia { + background-color: #e00025 ! important; + color: #ffffff ! important; + border-color: #032ea1 ! important; + border-width: 2px ! important; +} + .Cambodia A { + color: #99ffff ! important; + } + .Cambodia A.ref { + color: #99ffff ! important; + } + +.Canada { + background-color: #ffffff ! important; + color: #37495f ! important; /* matches the Canadian Government's site */ + border-color: #ff0000 ! important; +} + .Canada A { + color: #cc00ff ! important; + } + +.Capella { + background-color: #000000 ! important; + color: #ffffcc ! important; +} + .Capella A { + color: #ffff66 ! important; + } + + .Capella .source { + color: #66ff66 ! important; + } + +.caramel { + background-color: #996633 ! important; + color: #ffffff ! important; +} + .caramel A { + color: #bbbbff ! important; + } + +.Cartagena { + background-color: #ff6666 ! important; + color: #ffff99 ! important; +} + +.Catalunya { + background-color: #fcdd09 ! important; + color: #da131a ! important; + border-color: #da131a ! important; +} + .Catalunya A { + color: #cc00ff ! important; + } + +/* +The following style was called "Catholic" but I renamed it to avoid conflict with BODY CLASS= "Catholic". It appears to be very rarely called; but if in fact it is called a lot, I may have to revert the name. + */ +.Kapaun { + background-color: #90191b ! important; + color: #ffff33 ! important; + font-size: 90%; +} + .Kapaun A { + color: #ffff00 ! important; + } + +.charcoal { + background-color: #333333 ! important; + color: #ffffff ! important; +} + .charcoal A { + color: #ffff33 ! important; + } + +.checkColor { /* = ecru */ + background-color: #ffffcc ! important; +} + +.Chicago_maroon { + background-color: #cccccc ! important; + color: #990000 ! important; +} + +.Chile { + background-color: #ffffff ! important; + color: #0044cc ! important; + border-color: #d83820 ! important; +} + .Chile A { + color: #cc00ff ! important; + } + +.chocolate { + background-color: #330000 ! important; + color: #ffff99 ! important; +} + .chocolate A { + color: #33ff33 ! important; + } + +.Claudian { + background-color: #333333 ! important; + color: #cccccc ! important; +} + + .Claudian P { + color: #cccccc ! important; + } + + .Claudian .source { + color: #99ff99 ! important; + } + .Claudian A { + color: #66ccff ! important; + } + +.cobblestone { + background-color: #999999 ! important; + color: #ffffff ! important; +} + +.cocoa { + background-color: #665555 ! important; + color: #ffffcc ! important; +} + .cocoa A { + color: #33ccff ! important; + } + +.coffee { + background-color: #998866 ! important; + color: #ffffee ! important; +} + .coffee A { + color: #0033ff ! important; + } + +.crimson { + background-color: #990033 ! important; + color: #ffcc00 ! important; +} + + .crimson P { + color: #ffcc00 ! important; + } + +.daffodil { + background-color: #ffffff ! important; + color: #70a000 ! important; +} + +.Dalmatian { + background-color: #ffffff ! important; + color: #000000 ! important; +} + +.dandelion { + background-color: #003300 ! important; + color: #ffcc00 ! important; +} + .dandelion A { + color: #9999ff ! important; + } + + .dandelion .source { + color: #99ff99 ! important; + } + +.Daniel { + background-color: #006600 ! important; + color: #ffff99 ! important; +} + .Daniel A { + color: #ff6633 ! important; + } + +.dark_blue { + background-color: #003399 ! important; + color: #ffffff ! important; +} + .dark_blue A { + background-color: inherit ! important; + font-weight: bold; + color: #ffff33 ! important; + } + + SPAN.dark_blue { + color: #003399 ! important; + } + +.dark_pines { + background-color: #003300 ! important; + color: #ffffff ! important; +} + .dark_pines A { + color: #9999ff ! important; + } + + .dark_pines .source { + color: #99ff99 ! important; + } + +.dark_sepia { + background-color: #888877 ! important; + color: #ddddcc ! important; +} + .dark_sepia A { + color: #99ffff ! important; + } + + .dark_sepia .source { + color: #99ff99 ! important; + } + +.dark_slate { + background-color: #444444 ! important; + color: #ffffff ! important; +} + +.doughboy { + background-color: #a67c41 ! important; + color: #e5c68e ! important; +} + +.Dutch2 { + background-color: #ddffff ! important; /*e9feff*/ + color: #ee8800 ! important; /*eb810f*/ +} + +.early_spring { + background-color: #99cc66 ! important; + color: #ffffff ! important; +} + +.empyrean { + background-color: #000033 ! important; + color: #ffcc99 ! important; +} + .empyrean A { + color: #99ffff ! important; + } + + .empyrean .Latin { + color: #ff9999 ! important; + } + + .empyrean .lapis { + color: #ff9999 ! important; + } + + .empyrean .nummus { + color: #ff9999 ! important; + } + +.eucalyptus { + background-color: #669966 ! important; + color: #0033cc ! important; +} + .eucalyptus A { + color: #33ff33 ! important; + } + +.farmhouse { + background-color: #113300 ! important; + color: #ffffcc ! important; +} + .farmhouse A { + color: #99ccff ! important; + } + +.fertile { + background-color: #663300 ! important; + color: #33ff00 ! important; +} + +.Firenze_ghibellino { + background-color: #ff3333 ! important; + color: #ffffff ! important; +} + +.Firenze { + background-color: #ffffff ! important; + color: #ff3333 ! important; +} + +.forest_sunset { + background-color: #336633 ! important; + color: #ffddbb ! important; +} + .forest_sunset A { + color: #ccccff ! important; + } + +.French2 { + background-color: #99ccff ! important; + color: #ee4037 ! important; +} + +.French_paperback { + background-color: #fff7f2 ! important; + color: #b7375c ! important; +} + +.fudge { + background-color: #996600 ! important; + color: #ffffff ! important; +} + +.glauque { + background-color: #669999 ! important; + color: #ffffff ! important; +} + .glauque A { + color: #ccccff ! important; + } + .glauque A:visited { + color: #ffcccc ! important; + } + +.Gran_Colombia { + background-color: #fee88a ! important; + color: #0044cc ! important; /* why doesn't this work? */ + border-color: #d83820 ! important; +} + .Gran_Colombia TD { + color: #0044cc ! important; /* workaround because previous doesn't work! */ + } + + .Gran_Colombia A { + color: #339900 ! important; + } + +.grey_pines { + background-color: #336600 ! important; + color: #ccccff ! important; +} + .grey_pines A { + color: #ffffcc ! important; + } + + .grey_pines .source { + color: #99ff99 ! important; + } + + .grey_pines .Italian { + color: #7acc7a ! important; + } + +.Harlequin { + background-color: #000000 ! important; + color: #ffffff ! important; +} + .Harlequin A { + color: #ffff66 ! important; + } + + .Harlequin .source { + color: #66ff66 ! important; + } + + .Harlequin .bland { + color: #ffffff ! important; + } + +.imperial { + background-color: #4d0099 ! important; + color: #ffff66 ! important; +} + +.ink_blue { + background-color: #000033 ! important; + color: #ffffff ! important; +} + .ink_blue A { + color: #99ffff ! important; + } + + .ink_blue P { + color: #ffffff ! important; + } + + SPAN.ink_blue { + color: #000033 ! important; + } + +.Labro { + background-color: #506600 ! important; + color: #fff9e5 ! important; +} + +.landscape { + background-color: #559900 ! important; + color: #ffffff ! important; +} + +.laterite { + background-color: #cc6633 ! important; + color: #ccffff ! important; +} + +.late_spring { + background-color: #339900 ! important; + color: #ffcccc ! important; +} + .late_spring A { + font-weight: bold; + color: #ffff33 ! important; + } + +.light_ochre { + background-color: #cc9933 ! important; + color: #ffffff ! important; +} + +.limestone { + background-color: #ffffcc ! important; + color: #663300 ! important; +} + +.London { + background-color: #cccccc ! important; + color: #993333 ! important; +} + +.lupine { + background-color: #113300 ! important; + color: #ffffff ! important; +} + .lupine A { + color: #99ccff ! important; + } + +.marl { + background-color: #ffcccc ! important; + color: #333366 ! important; +} + +.mahogany { + background-color: #330000 ! important; + color: #ffffff ! important; +} + .mahogany A { + color: #33ff33 ! important; + } + + .mahogany A.comment { + color: #33ccff ! important; + font-weight: bold; + font-size: 85%; + } + + .mahogany .Latin { + color: #ff6600 ! important; + } + + .mahogany .Latin .emend { + color: #ffaa00 ! important; + } + + .mahogany .lapis { + color: #ff6600 ! important; + } + + .mahogany .lapis .emend { + color: #ffaa00 ! important; + } + +.masoor_dal { + background-color: #cc6600 ! important; + color: #ffffff ! important; +} + + .masoor_dal .Latin { + color: #ffff99 ! important; + } + + .masoor_dal .lapis { + color: #ffff99 ! important; + } + + .masoor_dal .nummus { + color: #ffff99 ! important; + } + .masoor_dal A { + color: #33ff33 ! important; + } + +.mimosa { + background-color: #336633 ! important; + color: #ffff99 ! important; +} + +.minium { + background-color: #ffe0aa ! important; + color: #cc0000 ! important; +} + +.mint { + background-color: #003300 ! important; + color: #ccffcc ! important; +} + .mint A { + color: #9999ff ! important; + } + + .mint .source { + color: #99ff99 ! important; + } + +.mordore { + background-color: #663300 ! important; + color: #ffffcc ! important; +} + .mordore A { + color: #33ff33 ! important; + } + + .mordore .emend { + color: #99ffff ! important; + } + + .mordore .Latin { + color: #ff3300 ! important; + } + + .mordore .Latin .emend { + color: #cc3399 ! important; + } + +.mossy_pavement { + background-color: #cccccc ! important; + color: #006600 ! important; +} + +.mourning_dove { + background-color: #a8a99b ! important; + color: #f1e0d6 ! important; +} + .mourning_dove A { + color: #4662d0 ! important; + } + +.MrWhite { + background-color: #ffffff ! important; + color: #993333 ! important; +} + +.Nar { + background-color: #808066 ! important; + color: #ffffcc ! important; +} + +.Navajo { + background-color: #330000 ! important; + color: #33ff00 ! important; +} + .Navajo A { + color: #99ff33 ! important; + } + +.navy { + background-color: #110044 ! important; + color: #ffffff ! important; +} + +.Netherlands { + background-color: #ffffff ! important; + color: #3075f6 ! important; + border-color: #f29e39 ! important; +} + .Netherlands A { + color: #cc00ff ! important; + } + +.Newburgh { + background-color: #b4b5cc ! important; + color: #fff600 ! important; +} + +.nicotine { + background-color: #ffffcc ! important; + color: #993333 ! important; +} + +.Nigeria { + background-color: #006600 ! important; + color: #ffffff ! important; +} + .Nigeria A { + color: #ff6633 ! important; + } + +.North_Carolina { + background-color: #ffffff ! important; + color: #003399 ! important;/*102f5f*/ + border-color: #bf2b45 ! important; +} + .North_Carolina A { + color: #ff6633 ! important; + } + +.old_belfry { + background-color: #998866 ! important; + color: #ddffff ! important; +} + +.olive { + background-color: #666633 ! important; + color: #ffffcc ! important; +} + .olive A { + color: #ccccff ! important; + } + +.dark_olive { + background-color: #333300 ! important; + color: #ffffff ! important; +} + .dark_olive A { + color: #99ffff ! important; + } + + .dark_olive .emend { + color: #ccffff ! important; + } + +.light_olive { + background-color: #999966 ! important; + color: #ffffcc ! important; +} + .light_olive A { + color: #ccccff ! important; + } + +.Oxford { + background-color: #ddeeff ! important; + color: #f36512 ! important; + font-weight: bold; +} + .Oxford A { + color: #993333 ! important; + } + + .Oxford .bland { + color: #000066 ! important; + font-weight: normal; +} + +SPAN.pale_yellow { + background-color: inherit ! important; + color: #ffffcc ! important; + } + +A.pale_yellow { + background-color: inherit ! important; + color: #ffffcc ! important; + } + +.paleo { + background-color: #e6d7b8 ! important; + color: #331900 ! important; +} + .paleo .Italian { + color: #20bb44 ! important; + } + +.parchment { + background-color: #ffffff ! important; + color: #663300 ! important; +} + +.Pentecost { + background-color: #660000 ! important; + color: #ffff66 ! important; +} + +.pietra_morta { + background-color: #ccccb0 ! important; + color: #330000 ! important; +} + +.pigeon { + background-color: #99cccc ! important; + color: #660000 ! important; +} + +.pines { + background-color: #447711 ! important; + color: #ffffff ! important; +} + .pines A { + color: #66ffff ! important; + } + + .pines .source { + color: #99ff99 ! important; + } + +.Ravenna { + background-color: #440055 ! important; + color: #ccffcc ! important; +} + +.red_wax { + background-color: #cc3333 ! important; + color: #ffffff ! important; +} + .red_wax A { + color: #66ffff ! important; + } + +.rockscape { + background-color: #330000 ! important; + color: #ccffff ! important; +} + .rockscape A { + color: #66ffff ! important; + } + +.sand { + background-color: #ffeeee ! important; + color: #663300 ! important; +} + +.sandstone { + background-color: #ffeedd ! important; + color: #663300 ! important; +} + +.shaded_stone { + background-color: #cccccc ! important; + color: #663300 ! important; +} + +.sigillata { + background-color: #660000 ! important; + color: #ffffff ! important; +} + .sigillata .Latin { + color: #ffff99 ! important; + } + .sigillata .lapis { + color: #ff9999 ! important; + } + .sigillata .nummus { + color: #ff9999 ! important; + } + .sigillata A { + color: #33ff33 ! important; + } + +.slate { + background-color: #666666 ! important; + color: #ffffff ! important; +} + +.spaceflight { + background-color: #150080 ! important; + color: #ffff66 ! important; +} + +.spearmint { + background-color: #ffffff ! important; + color: #006600 ! important; +} + +.spring { + background-color: #66cc00 ! important; + color: #ffffff ! important; +} + +.stone_walls { + background-color: #221100 ! important; + color: #cc7733 ! important; +} + .stone_walls A { + color: #66ffff ! important; + } + +.storm_pines { + background-color: #003300 ! important; + color: #cccccc ! important; +} + .storm_pines A { + color: #9999ff ! important; + } + .storm_pines .source { + color: #99ff99 ! important; + } + +.straw { + background-color: #ffffff ! important; + color: #996600 ! important; +} + +.summer { + background-color: #7c9645 ! important; + color: #ffffff ! important; +} + .summer A { + color: #0044ff ! important; + } + +.tobacco { + background-color: #663300 ! important; + color: #ffcc00 ! important; +} + +.toffee { + background-color: #cc9966 ! important; + color: #660000 ! important; +} + + .toffee .Latin { + color: #cc3300 ! important; + } + + .toffee .lapis { + color: #ffff99 ! important; + } + + .toffee .nummus { + color: #ffff99 ! important; + } + +.Ukraine { + background-color: #ffffff ! important; + color: #0056bd ! important; + border-color: #fed700 ! important; +} + +.umber { + background-color: #663300 ! important; + color: #ffffff ! important; +} + .umber A { + color: #33ff33 ! important; + } + .umber .emend { + color: #99ffff ! important; + } + .umber .Latin { + color: #ff3300 ! important; + } + .umber .Latin .emend { + color: #cc3399 ! important; + } + +.Venezuela { + background-color: #ffea80 ! important; + color: #152169 ! important; +} + +.very_green { + background-color: #002200 ! important; + color: #aacc00 ! important; +} + .very_green A { + color: #ccccff ! important; + } + +.wintergreen { + background-color: #ffffff ! important; + color: #0099cc ! important; +} + +.woodruff { + background-color: #336633 ! important; + color: #ffffff ! important; +} + .woodruff A { + color: #ccccff ! important; + } + .woodruff .emend { + color: #ddffff ! important; + } + +.Wyoming { + background-color: #ffffff ! important; + color: #003399 ! important; + border-color: #bf0b32 ! important; +} + .Wyoming A { + color: #ff6633 ! important; + } + +.zinnia { + background-color: #003300 ! important; + color: #ff8800 ! important; +} + + SPAN.zinnia { + background-color: inherit ! important; + color: #003300 ! important; +} + .zinnia A { + color: #6699ff ! important; + } + +/* ORVIETO */ +/* +BODY. TABLE.Orvieto { +} + */ diff --git a/sources/book_3_files/empty.gif b/sources/book_3_files/empty.gif new file mode 100644 index 0000000..d37a0bb Binary files /dev/null and b/sources/book_3_files/empty.gif differ diff --git a/sources/book_3_files/home_.gif b/sources/book_3_files/home_.gif new file mode 100644 index 0000000..4ec156c Binary files /dev/null and b/sources/book_3_files/home_.gif differ diff --git a/sources/book_3_files/home__small.gif b/sources/book_3_files/home__small.gif new file mode 100644 index 0000000..cf2137e Binary files /dev/null and b/sources/book_3_files/home__small.gif differ diff --git a/sources/book_3_files/logo__.gif b/sources/book_3_files/logo__.gif new file mode 100644 index 0000000..0fbb441 Binary files /dev/null and b/sources/book_3_files/logo__.gif differ diff --git a/sources/book_3_files/next.gif b/sources/book_3_files/next.gif new file mode 100644 index 0000000..2f1682a Binary files /dev/null and b/sources/book_3_files/next.gif differ diff --git a/sources/book_3_files/ol.js b/sources/book_3_files/ol.js new file mode 100644 index 0000000..8ed611d --- /dev/null +++ b/sources/book_3_files/ol.js @@ -0,0 +1,8 @@ +!function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e():"function"==typeof define&&define.amd?define([],e):"object"==typeof exports?exports.ol=e():t.ol=e()}(window,function(){return function(t){var e={};function i(r){if(e[r])return e[r].exports;var n=e[r]={i:r,l:!1,exports:{}};return t[r].call(n.exports,n,n.exports,i),n.l=!0,n.exports}return i.m=t,i.c=e,i.d=function(t,e,r){i.o(t,e)||Object.defineProperty(t,e,{enumerable:!0,get:r})},i.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},i.t=function(t,e){if(1&e&&(t=i(t)),8&e)return t;if(4&e&&"object"==typeof t&&t&&t.__esModule)return t;var r=Object.create(null);if(i.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:t}),2&e&&"string"!=typeof t)for(var n in t)i.d(r,n,function(e){return t[e]}.bind(null,n));return r},i.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return i.d(e,"a",e),e},i.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},i.p="",i(i.s=9)}([function(t,e,i){"use strict";t.exports=n,t.exports.default=n;var r=i(5);function n(t,e){if(!(this instanceof n))return new n(t,e);this._maxEntries=Math.max(4,t||9),this._minEntries=Math.max(2,Math.ceil(.4*this._maxEntries)),e&&this._initFormat(e),this.clear()}function o(t,e,i){if(!i)return e.indexOf(t);for(var r=0;r=t.minX&&e.maxY>=t.minY}function y(t){return{children:t,height:1,leaf:!0,minX:1/0,minY:1/0,maxX:-1/0,maxY:-1/0}}function v(t,e,i,n,o){for(var s,a=[e,i];a.length;)(i=a.pop())-(e=a.pop())<=n||(s=e+Math.ceil((i-e)/n/2)*n,r(t,s,e,i,o),a.push(e,s,s,i))}n.prototype={all:function(){return this._all(this.data,[])},search:function(t){var e=this.data,i=[],r=this.toBBox;if(!g(t,e))return i;for(var n,o,s,a,h=[];e;){for(n=0,o=e.children.length;n=0&&o[e].children.length>this._maxEntries;)this._split(o,e),e--;this._adjustParentBBoxes(n,o,e)},_split:function(t,e){var i=t[e],r=i.children.length,n=this._minEntries;this._chooseSplitAxis(i,n,r);var o=this._chooseSplitIndex(i,n,r),a=y(i.children.splice(o,i.children.length-o));a.height=i.height,a.leaf=i.leaf,s(i,this.toBBox),s(a,this.toBBox),e?t[e-1].children.push(a):this._splitRoot(i,a)},_splitRoot:function(t,e){this.data=y([t,e]),this.data.height=t.height+1,this.data.leaf=!1,s(this.data,this.toBBox)},_chooseSplitIndex:function(t,e,i){var r,n,o,s,h,l,u,c;for(l=u=1/0,r=e;r<=i-e;r++)s=f(n=a(t,0,r,this.toBBox),o=a(t,r,i,this.toBBox)),h=p(n)+p(o),s=e;n--)o=t.children[n],h(u,t.leaf?s(o):o),p+=c(u);return p},_adjustParentBBoxes:function(t,e,i){for(var r=i;r>=0;r--)h(e[r],t)},_condense:function(t){for(var e,i=t.length-1;i>=0;i--)0===t[i].children.length?i>0?(e=t[i-1].children).splice(e.indexOf(t[i]),1):this.clear():s(t[i],this.toBBox)},_initFormat:function(t){var e=["return a"," - b",";"];this.compareMinX=new Function("a","b",e.join(t[0])),this.compareMinY=new Function("a","b",e.join(t[1])),this.toBBox=new Function("a","return {minX: a"+t[0]+", minY: a"+t[1]+", maxX: a"+t[2]+", maxY: a"+t[3]+"};")}}},function(t,e,i){"use strict";t.exports=n;var r=i(6);function n(t){this.buf=ArrayBuffer.isView&&ArrayBuffer.isView(t)?t:new Uint8Array(t||0),this.pos=0,this.type=0,this.length=this.buf.length}n.Varint=0,n.Fixed64=1,n.Bytes=2,n.Fixed32=5;function o(t){return t.type===n.Bytes?t.readVarint()+t.pos:t.pos+1}function s(t,e,i){return i?4294967296*e+(t>>>0):4294967296*(e>>>0)+(t>>>0)}function a(t,e,i){var r=e<=16383?1:e<=2097151?2:e<=268435455?3:Math.ceil(Math.log(e)/(7*Math.LN2));i.realloc(r);for(var n=i.pos-1;n>=t;n--)i.buf[n+r]=i.buf[n]}function h(t,e){for(var i=0;i>>8,t[i+2]=e>>>16,t[i+3]=e>>>24}function m(t,e){return(t[e]|t[e+1]<<8|t[e+2]<<16)+(t[e+3]<<24)}n.prototype={destroy:function(){this.buf=null},readFields:function(t,e,i){for(i=i||this.length;this.pos>3,o=this.pos;this.type=7&r,t(n,e,this),this.pos===o&&this.skip(r)}return e},readMessage:function(t,e){return this.readFields(t,e,this.readVarint()+this.pos)},readFixed32:function(){var t=y(this.buf,this.pos);return this.pos+=4,t},readSFixed32:function(){var t=m(this.buf,this.pos);return this.pos+=4,t},readFixed64:function(){var t=y(this.buf,this.pos)+4294967296*y(this.buf,this.pos+4);return this.pos+=8,t},readSFixed64:function(){var t=y(this.buf,this.pos)+4294967296*m(this.buf,this.pos+4);return this.pos+=8,t},readFloat:function(){var t=r.read(this.buf,this.pos,!0,23,4);return this.pos+=4,t},readDouble:function(){var t=r.read(this.buf,this.pos,!0,52,8);return this.pos+=8,t},readVarint:function(t){var e,i,r=this.buf;return e=127&(i=r[this.pos++]),i<128?e:(e|=(127&(i=r[this.pos++]))<<7,i<128?e:(e|=(127&(i=r[this.pos++]))<<14,i<128?e:(e|=(127&(i=r[this.pos++]))<<21,i<128?e:function(t,e,i){var r,n,o=i.buf;if(n=o[i.pos++],r=(112&n)>>4,n<128)return s(t,r,e);if(n=o[i.pos++],r|=(127&n)<<3,n<128)return s(t,r,e);if(n=o[i.pos++],r|=(127&n)<<10,n<128)return s(t,r,e);if(n=o[i.pos++],r|=(127&n)<<17,n<128)return s(t,r,e);if(n=o[i.pos++],r|=(127&n)<<24,n<128)return s(t,r,e);if(n=o[i.pos++],r|=(1&n)<<31,n<128)return s(t,r,e);throw new Error("Expected varint not more than 10 bytes")}(e|=(15&(i=r[this.pos]))<<28,t,this))))},readVarint64:function(){return this.readVarint(!0)},readSVarint:function(){var t=this.readVarint();return t%2==1?(t+1)/-2:t/2},readBoolean:function(){return Boolean(this.readVarint())},readString:function(){var t=this.readVarint()+this.pos,e=function(t,e,i){var r="",n=e;for(;n239?4:h>223?3:h>191?2:1;if(n+u>i)break;1===u?h<128&&(l=h):2===u?128==(192&(o=t[n+1]))&&(l=(31&h)<<6|63&o)<=127&&(l=null):3===u?(o=t[n+1],s=t[n+2],128==(192&o)&&128==(192&s)&&((l=(15&h)<<12|(63&o)<<6|63&s)<=2047||l>=55296&&l<=57343)&&(l=null)):4===u&&(o=t[n+1],s=t[n+2],a=t[n+3],128==(192&o)&&128==(192&s)&&128==(192&a)&&((l=(15&h)<<18|(63&o)<<12|(63&s)<<6|63&a)<=65535||l>=1114112)&&(l=null)),null===l?(l=65533,u=1):l>65535&&(l-=65536,r+=String.fromCharCode(l>>>10&1023|55296),l=56320|1023&l),r+=String.fromCharCode(l),n+=u}return r}(this.buf,this.pos,t);return this.pos=t,e},readBytes:function(){var t=this.readVarint()+this.pos,e=this.buf.subarray(this.pos,t);return this.pos=t,e},readPackedVarint:function(t,e){var i=o(this);for(t=t||[];this.pos127;);else if(e===n.Bytes)this.pos=this.readVarint()+this.pos;else if(e===n.Fixed32)this.pos+=4;else{if(e!==n.Fixed64)throw new Error("Unimplemented type: "+e);this.pos+=8}},writeTag:function(t,e){this.writeVarint(t<<3|e)},realloc:function(t){for(var e=this.length||16;e268435455||t<0?function(t,e){var i,r;t>=0?(i=t%4294967296|0,r=t/4294967296|0):(r=~(-t/4294967296),4294967295^(i=~(-t%4294967296))?i=i+1|0:(i=0,r=r+1|0));if(t>=0x10000000000000000||t<-0x10000000000000000)throw new Error("Given varint doesn't fit into 10 bytes");e.realloc(10),function(t,e,i){i.buf[i.pos++]=127&t|128,t>>>=7,i.buf[i.pos++]=127&t|128,t>>>=7,i.buf[i.pos++]=127&t|128,t>>>=7,i.buf[i.pos++]=127&t|128,t>>>=7,i.buf[i.pos]=127&t}(i,0,e),function(t,e){var i=(7&t)<<4;if(e.buf[e.pos++]|=i|((t>>>=3)?128:0),!t)return;if(e.buf[e.pos++]=127&t|((t>>>=7)?128:0),!t)return;if(e.buf[e.pos++]=127&t|((t>>>=7)?128:0),!t)return;if(e.buf[e.pos++]=127&t|((t>>>=7)?128:0),!t)return;if(e.buf[e.pos++]=127&t|((t>>>=7)?128:0),!t)return;e.buf[e.pos++]=127&t}(r,e)}(t,this):(this.realloc(4),this.buf[this.pos++]=127&t|(t>127?128:0),t<=127||(this.buf[this.pos++]=127&(t>>>=7)|(t>127?128:0),t<=127||(this.buf[this.pos++]=127&(t>>>=7)|(t>127?128:0),t<=127||(this.buf[this.pos++]=t>>>7&127))))},writeSVarint:function(t){this.writeVarint(t<0?2*-t-1:2*t)},writeBoolean:function(t){this.writeVarint(Boolean(t))},writeString:function(t){t=String(t),this.realloc(4*t.length),this.pos++;var e=this.pos;this.pos=function(t,e,i){for(var r,n,o=0;o55295&&r<57344){if(!n){r>56319||o+1===e.length?(t[i++]=239,t[i++]=191,t[i++]=189):n=r;continue}if(r<56320){t[i++]=239,t[i++]=191,t[i++]=189,n=r;continue}r=n-55296<<10|r-56320|65536,n=null}else n&&(t[i++]=239,t[i++]=191,t[i++]=189,n=null);r<128?t[i++]=r:(r<2048?t[i++]=r>>6|192:(r<65536?t[i++]=r>>12|224:(t[i++]=r>>18|240,t[i++]=r>>12&63|128),t[i++]=r>>6&63|128),t[i++]=63&r|128)}return i}(this.buf,t,this.pos);var i=this.pos-e;i>=128&&a(e,i,this),this.pos=e-1,this.writeVarint(i),this.pos+=i},writeFloat:function(t){this.realloc(4),r.write(this.buf,t,this.pos,!0,23,4),this.pos+=4},writeDouble:function(t){this.realloc(8),r.write(this.buf,t,this.pos,!0,52,8),this.pos+=8},writeBytes:function(t){var e=t.length;this.writeVarint(e),this.realloc(e);for(var i=0;i=128&&a(i,r,this),this.pos=i-1,this.writeVarint(r),this.pos+=r},writeMessage:function(t,e,i){this.writeTag(t,n.Bytes),this.writeRawMessage(e,i)},writePackedVarint:function(t,e){this.writeMessage(t,h,e)},writePackedSVarint:function(t,e){this.writeMessage(t,l,e)},writePackedBoolean:function(t,e){this.writeMessage(t,c,e)},writePackedFloat:function(t,e){this.writeMessage(t,u,e)},writePackedDouble:function(t,e){this.writeMessage(t,p,e)},writePackedFixed32:function(t,e){this.writeMessage(t,d,e)},writePackedSFixed32:function(t,e){this.writeMessage(t,f,e)},writePackedFixed64:function(t,e){this.writeMessage(t,_,e)},writePackedSFixed64:function(t,e){this.writeMessage(t,g,e)},writeBytesField:function(t,e){this.writeTag(t,n.Bytes),this.writeBytes(e)},writeFixed32Field:function(t,e){this.writeTag(t,n.Fixed32),this.writeFixed32(e)},writeSFixed32Field:function(t,e){this.writeTag(t,n.Fixed32),this.writeSFixed32(e)},writeFixed64Field:function(t,e){this.writeTag(t,n.Fixed64),this.writeFixed64(e)},writeSFixed64Field:function(t,e){this.writeTag(t,n.Fixed64),this.writeSFixed64(e)},writeVarintField:function(t,e){this.writeTag(t,n.Varint),this.writeVarint(e)},writeSVarintField:function(t,e){this.writeTag(t,n.Varint),this.writeSVarint(e)},writeStringField:function(t,e){this.writeTag(t,n.Bytes),this.writeString(e)},writeFloatField:function(t,e){this.writeTag(t,n.Fixed32),this.writeFloat(e)},writeDoubleField:function(t,e){this.writeTag(t,n.Fixed64),this.writeDouble(e)},writeBooleanField:function(t,e){this.writeVarintField(t,Boolean(e))}}},function(t,e,i){var r=i(7);e.Processor=r},,,function(t,e,i){t.exports=function(){"use strict";function t(t,e,i){var r=t[e];t[e]=t[i],t[i]=r}function e(t,e){return te?1:0}return function(i,r,n,o,s){!function e(i,r,n,o,s){for(;o>n;){if(o-n>600){var a=o-n+1,h=r-n+1,l=Math.log(a),u=.5*Math.exp(2*l/3),p=.5*Math.sqrt(l*u*(a-u)/a)*(h-a/2<0?-1:1),c=Math.max(n,Math.floor(r-h*u/a+p)),d=Math.min(o,Math.floor(r+(a-h)*u/a+p));e(i,r,c,d,s)}var f=i[r],_=n,g=o;for(t(i,n,r),s(i[o],f)>0&&t(i,n,o);_0;)g--}0===s(i[n],f)?t(i,n,g):t(i,++g,o),g<=r&&(n=g+1),r<=g&&(o=g-1)}}(i,r,n||0,o||i.length-1,s||e)}}()},function(t,e){e.read=function(t,e,i,r,n){var o,s,a=8*n-r-1,h=(1<>1,u=-7,p=i?n-1:0,c=i?-1:1,d=t[e+p];for(p+=c,o=d&(1<<-u)-1,d>>=-u,u+=a;u>0;o=256*o+t[e+p],p+=c,u-=8);for(s=o&(1<<-u)-1,o>>=-u,u+=r;u>0;s=256*s+t[e+p],p+=c,u-=8);if(0===o)o=1-l;else{if(o===h)return s?NaN:1/0*(d?-1:1);s+=Math.pow(2,r),o-=l}return(d?-1:1)*s*Math.pow(2,o-r)},e.write=function(t,e,i,r,n,o){var s,a,h,l=8*o-n-1,u=(1<>1,c=23===n?Math.pow(2,-24)-Math.pow(2,-77):0,d=r?0:o-1,f=r?1:-1,_=e<0||0===e&&1/e<0?1:0;for(e=Math.abs(e),isNaN(e)||e===1/0?(a=isNaN(e)?1:0,s=u):(s=Math.floor(Math.log(e)/Math.LN2),e*(h=Math.pow(2,-s))<1&&(s--,h*=2),(e+=s+p>=1?c/h:c*Math.pow(2,1-p))*h>=2&&(s++,h/=2),s+p>=u?(a=0,s=u):s+p>=1?(a=(e*h-1)*Math.pow(2,n),s+=p):(a=e*Math.pow(2,p-1)*Math.pow(2,n),s=0));n>=8;t[i+d]=255&a,d+=f,a/=256,n-=8);for(s=s<0;t[i+d]=255&s,d+=f,s/=256,l-=8);t[i+d-f]|=128*_}},function(t,e,i){var r=i(8).newImageData;function n(t){var e=!0;try{new ImageData(10,10)}catch(t){e=!1}function i(t,i,r){return e?new ImageData(t,i,r):{data:t,width:i,height:r}}return function(e){var r,n,o=e.buffers,s=e.meta,a=e.imageOps,h=e.width,l=e.height,u=o.length,p=o[0].byteLength;if(a){var c=new Array(u);for(n=0;nthis._maxQueueLength;)this._queue.shift().callback(null,null)},s.prototype._dispatch=function(){if(0===this._running&&this._queue.length>0){var t=this._job=this._queue.shift(),e=t.inputs[0].width,i=t.inputs[0].height,r=t.inputs.map(function(t){return t.data.buffer}),n=this._workers.length;if(this._running=n,1===n)this._workers[0].postMessage({buffers:r,meta:t.meta,imageOps:this._imageOps,width:e,height:i},r);else for(var o=t.inputs[0].data.length,s=4*Math.ceil(o/4/n),a=0;a0},e.prototype.removeEventListener=function(t,e){var i=this.listeners_[t];if(i){var r=i.indexOf(e);t in this.pendingRemovals_?(i[r]=I,++this.pendingRemovals_[t]):(i.splice(r,1),0===i.length&&delete this.listeners_[t])}},e}(C),M={CHANGE:"change",CLEAR:"clear",CONTEXTMENU:"contextmenu",CLICK:"click",DBLCLICK:"dblclick",DRAGENTER:"dragenter",DRAGOVER:"dragover",DROP:"drop",ERROR:"error",KEYDOWN:"keydown",KEYPRESS:"keypress",LOAD:"load",MOUSEDOWN:"mousedown",MOUSEMOVE:"mousemove",MOUSEOUT:"mouseout",MOUSEUP:"mouseup",MOUSEWHEEL:"mousewheel",MSPOINTERDOWN:"MSPointerDown",RESIZE:"resize",TOUCHSTART:"touchstart",TOUCHMOVE:"touchmove",TOUCHEND:"touchend",WHEEL:"wheel"};var F=function(t){function e(){t.call(this),this.revision_=0}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.changed=function(){++this.revision_,this.dispatchEvent(M.CHANGE)},e.prototype.getRevision=function(){return this.revision_},e.prototype.on=function(t,e){if(Array.isArray(t)){for(var i=t.length,r=new Array(i),n=0;n0;)this.pop()},e.prototype.extend=function(t){for(var e=0,i=t.length;ee?1:t=0}function z(t,e,i){var r,n=t.length;if(t[0]<=e)return 0;if(e<=t[n-1])return n-1;if(i>0){for(r=1;r>>0,n=0;nn&&(h|=$.RIGHT),ao&&(h|=$.ABOVE),h===$.UNKNOWN&&(h=$.INTERSECTING),h}function ht(){return[1/0,1/0,-1/0,-1/0]}function lt(t,e,i,r,n){return n?(n[0]=t,n[1]=e,n[2]=i,n[3]=r,n):[t,e,i,r]}function ut(t){return lt(1/0,1/0,-1/0,-1/0,t)}function pt(t,e){var i=t[0],r=t[1];return lt(i,r,i,r,e)}function ct(t,e,i,r,n){return yt(ut(n),t,e,i,r)}function dt(t,e){return t[0]==e[0]&&t[2]==e[2]&&t[1]==e[1]&&t[3]==e[3]}function ft(t,e){return e[0]t[2]&&(t[2]=e[2]),e[1]t[3]&&(t[3]=e[3]),t}function _t(t,e){e[0]t[2]&&(t[2]=e[0]),e[1]t[3]&&(t[3]=e[1])}function gt(t,e){for(var i=0,r=e.length;ie[0]?r[0]=t[0]:r[0]=e[0],t[1]>e[1]?r[1]=t[1]:r[1]=e[1],t[2]=e[0]&&t[1]<=e[3]&&t[3]>=e[1]}function bt(t){return t[2]1?(i=n,r=o):h>0&&(i+=s*h,r+=a*h)}return Yt(t,e,i,r)}function Yt(t,e,i,r){var n=i-t,o=r-e;return n*n+o*o}function Bt(t){return 180*t/Math.PI}function Vt(t){return t*Math.PI/180}function Xt(t,e){var i=t%e;return i*e<0?i+e:i}function zt(t,e,i){return t+i*(e-t)} +/** + * @license + * Latitude/longitude spherical geodesy formulae taken from + * http://www.movable-type.co.uk/scripts/latlong.html + * Licensed under CC-BY-3.0. + */var Wt=6371008.8;function Kt(t,e,i){var r=i||Wt,n=Vt(t[1]),o=Vt(e[1]),s=(o-n)/2,a=Vt(e[0]-t[0])/2,h=Math.sin(s)*Math.sin(s)+Math.sin(a)*Math.sin(a)*Math.cos(n)*Math.cos(o);return 2*r*Math.atan2(Math.sqrt(h),Math.sqrt(1-h))}function Ht(t,e){for(var i=0,r=0,n=t.length;r1?i:2,o=e;void 0===o&&(o=n>2?t.slice():new Array(r));for(var s=re,a=0;as?h=s:h<-s&&(h=-s),o[a+1]=h}return o}function le(t,e,i){var r=t.length,n=i>1?i:2,o=e;void 0===o&&(o=n>2?t.slice():new Array(r));for(var s=0;s=2;--l)s[a+l]=e[a+l]}return s}}function we(t,e,i,r){var n=Ee(t),o=Ee(e);ge(n,o,Re(i)),ge(o,n,Re(r))}function Ie(t,e){if(t===e)return!0;var i=t.getUnits()===e.getUnits();return t.getCode()===e.getCode()?i:Le(t,e)===ve&&i}function Le(t,e){var i=ye(t.getCode(),e.getCode());return i||(i=me),i}function Oe(t,e){return Le(Ee(t),Ee(e))}function Pe(t,e,i){return Oe(e,i)(t,void 0,t.length)}function be(t,e,i){return Ft(t,Oe(e,i))}Te(ae),Te(de),function(t,e,i,r){t.forEach(function(t){e.forEach(function(e){ge(t,e,i),ge(e,t,r)})})}(de,ae,he,le);var Me=new Array(6);function Fe(t){return Ne(t,1,0,0,1,0,0)}function Ae(t,e){var i=t[0],r=t[1],n=t[2],o=t[3],s=t[4],a=t[5],h=e[0],l=e[1],u=e[2],p=e[3],c=e[4],d=e[5];return t[0]=i*h+n*l,t[1]=r*h+o*l,t[2]=i*u+n*p,t[3]=r*u+o*p,t[4]=i*c+n*d+s,t[5]=r*c+o*d+a,t}function Ne(t,e,i,r,n,o,s){return t[0]=e,t[1]=i,t[2]=r,t[3]=n,t[4]=o,t[5]=s,t}function Ge(t,e){return t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[4]=e[4],t[5]=e[5],t}function De(t,e){var i=e[0],r=e[1];return e[0]=t[0]*i+t[2]*r+t[4],e[1]=t[1]*i+t[3]*r+t[5],e}function ke(t,e){var i=Math.cos(e),r=Math.sin(e);return Ae(t,Ne(Me,i,r,-r,i,0,0))}function je(t,e,i){return Ae(t,Ne(Me,e,0,0,i,0,0))}function Ue(t,e,i){return Ae(t,Ne(Me,1,0,0,1,e,i))}function Ye(t,e,i,r,n,o,s,a){var h=Math.sin(o),l=Math.cos(o);return t[0]=r*l,t[1]=n*h,t[2]=-r*h,t[3]=n*l,t[4]=s*r*l-a*r*h+e,t[5]=s*n*h+a*n*l+i,t}function Be(t){var e=function(t){return t[0]*t[3]-t[1]*t[2]}(t);Y(0!==e,32);var i=t[0],r=t[1],n=t[2],o=t[3],s=t[4],a=t[5];return t[0]=o/e,t[1]=-r/e,t[2]=-n/e,t[3]=i/e,t[4]=(n*a-o*s)/e,t[5]=-(i*a-r*s)/e,t}var Ve=[1,0,0,1,0,0],Xe=function(t){function e(){t.call(this),this.extent_=[1/0,1/0,-1/0,-1/0],this.extentRevision_=-1,this.simplifiedGeometryCache={},this.simplifiedGeometryMaxMinSquaredTolerance=0,this.simplifiedGeometryRevision=0}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.clone=function(){return r()},e.prototype.closestPointXY=function(t,e,i,n){return r()},e.prototype.containsXY=function(t,e){return!1},e.prototype.getClosestPoint=function(t,e){var i=e||[NaN,NaN];return this.closestPointXY(t[0],t[1],i,1/0),i},e.prototype.intersectsCoordinate=function(t){return this.containsXY(t[0],t[1])},e.prototype.computeExtent=function(t){return r()},e.prototype.getExtent=function(t){return this.extentRevision_!=this.getRevision()&&(this.extent_=this.computeExtent(this.extent_),this.extentRevision_=this.getRevision()),function(t,e){return e?(e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],e):t}(this.extent_,t)},e.prototype.rotate=function(t,e){r()},e.prototype.scale=function(t,e,i){r()},e.prototype.simplify=function(t){return this.getSimplifiedGeometry(t*t)},e.prototype.getSimplifiedGeometry=function(t){return r()},e.prototype.getType=function(){return r()},e.prototype.applyTransform=function(t){r()},e.prototype.intersectsExtent=function(t){return r()},e.prototype.translate=function(t,e){r()},e.prototype.transform=function(t,e){var i=Ee(t),r=i.getUnits()==$t.TILE_PIXELS?function(t,r,n){var o=i.getExtent(),s=i.getWorldExtent(),a=Rt(s)/Rt(o);return Ye(Ve,s[0],s[3],a,-a,0,0,0),Gt(t,0,t.length,n,Ve,r),Oe(i,e)(t,r,n)}:Oe(i,e);return this.applyTransform(r),this},e}(D);function ze(t){var e;return t==At.XY?e=2:t==At.XYZ||t==At.XYM?e=3:t==At.XYZM&&(e=4),e}var We=function(t){function e(){t.call(this),this.layout=At.XY,this.stride=2,this.flatCoordinates=null}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.computeExtent=function(t){return ct(this.flatCoordinates,0,this.flatCoordinates.length,this.stride,t)},e.prototype.getCoordinates=function(){return r()},e.prototype.getFirstCoordinate=function(){return this.flatCoordinates.slice(0,this.stride)},e.prototype.getFlatCoordinates=function(){return this.flatCoordinates},e.prototype.getLastCoordinate=function(){return this.flatCoordinates.slice(this.flatCoordinates.length-this.stride)},e.prototype.getLayout=function(){return this.layout},e.prototype.getSimplifiedGeometry=function(t){if(this.simplifiedGeometryRevision!=this.getRevision()&&(p(this.simplifiedGeometryCache),this.simplifiedGeometryMaxMinSquaredTolerance=0,this.simplifiedGeometryRevision=this.getRevision()),t<0||0!==this.simplifiedGeometryMaxMinSquaredTolerance&&t<=this.simplifiedGeometryMaxMinSquaredTolerance)return this;var e=t.toString();if(this.simplifiedGeometryCache.hasOwnProperty(e))return this.simplifiedGeometryCache[e];var i=this.getSimplifiedGeometryInternal(t);return i.getFlatCoordinates().length1)a=i;else{if(c>0){for(var d=0;dn&&(n=l),o=a,s=h}return n}function Je(t,e,i,r,n){for(var o=0,s=i.length;o0;){for(var p=l.pop(),c=l.pop(),d=0,f=t[c],_=t[c+1],g=t[p],y=t[p+1],v=c+r;vd&&(u=v,d=m)}d>n&&(h[(u-e)/r]=1,c+r0&&_>d)&&(f<0&&g0&&g>f)?(a=p,h=c):(o[s++]=a,o[s++]=h,l=a,u=h,a=p,h=c)}}return o[s++]=a,o[s++]=h,s}function ui(t,e,i,r,n,o,s,a){for(var h=0,l=i.length;ho&&(l-a)*(o-h)-(n-a)*(u-h)>0&&s++:u<=o&&(l-a)*(o-h)-(n-a)*(u-h)<0&&s--,a=l,h=u}return 0!==s}function _i(t,e,i,r,n,o){if(0===i.length)return!1;if(!fi(t,e,i[0],r,n,o))return!1;for(var s=1,a=i.length;sx&&_i(t,e,i,r,l=(u+p)/2,f)&&(m=l,x=E),u=p}return isNaN(m)&&(m=n[o]),s?(s.push(m,f,x),s):[m,f,x]}function yi(t,e,i,r,n){for(var o=[],s=0,a=i.length;s=n[0]&&o[2]<=n[2]||(o[1]>=n[1]&&o[3]<=n[3]||vi(t,e,i,r,function(t,e){return function(t,e,i){var r=!1,n=at(t,e),o=at(t,i);if(n===$.INTERSECTING||o===$.INTERSECTING)r=!0;else{var s,a,h=t[0],l=t[1],u=t[2],p=t[3],c=e[0],d=e[1],f=i[0],_=i[1],g=(_-d)/(f-c);o&$.ABOVE&&!(n&$.ABOVE)&&(r=(s=f-(_-p)/g)>=h&&s<=u),r||!(o&$.RIGHT)||n&$.RIGHT||(r=(a=_-(f-u)*g)>=l&&a<=p),r||!(o&$.BELOW)||n&$.BELOW||(r=(s=f-(_-l)/g)>=h&&s<=u),r||!(o&$.LEFT)||n&$.LEFT||(r=(a=_-(f-h)*g)>=l&&a<=p)}return r}(n,t,e)}))))}function xi(t,e,i,r,n){if(!function(t,e,i,r,n){return!!(mi(t,e,i,r,n)||fi(t,e,i,r,n[0],n[1])||fi(t,e,i,r,n[0],n[3])||fi(t,e,i,r,n[2],n[1])||fi(t,e,i,r,n[2],n[3]))}(t,e,i[0],r,n))return!1;if(1===i.length)return!0;for(var o=1,s=i.length;o0}function Ti(t,e,i,r,n){for(var o=void 0!==n&&n,s=0,a=i.length;se?r:new Array(1+e-n).join("0")+r}function Ki(t,e){for(var i=(""+t).split("."),r=(""+e).split("."),n=0;ns)return 1;if(s>o)return-1}return 0}function Hi(t,e){return t[0]+=e[0],t[1]+=e[1],t}function Zi(t,e){var i,r,n=t[0],o=t[1],s=e[0],a=e[1],h=s[0],l=s[1],u=a[0],p=a[1],c=u-h,d=p-l,f=0===c&&0===d?0:(c*(n-h)+d*(o-l))/(c*c+d*d||0);return f<=0?(i=h,r=l):f>=1?(i=u,r=p):(i=h+f*c,r=l+f*d),[i,r]}function qi(t,e,i){var r=Xt(e+180,360)-180,n=Math.abs(3600*r),o=i||0,s=Math.pow(10,o),a=Math.floor(n/3600),h=Math.floor((n-3600*a)/60),l=n-3600*a-60*h;return(l=Math.ceil(l*s)/s)>=60&&(l=0,h+=1),h>=60&&(h=0,a+=1),a+"° "+Wi(h,2)+"′ "+Wi(l,2,o)+"″"+(0==r?"":" "+t.charAt(r<0?1:0))}function Ji(t,e,i){return t?e.replace("{x}",t[0].toFixed(i)).replace("{y}",t[1].toFixed(i)):""}function Qi(t,e){for(var i=!0,r=t.length-1;r>=0;--r)if(t[r]!=e[r]){i=!1;break}return i}function $i(t,e){var i=Math.cos(e),r=Math.sin(e),n=t[0]*i-t[1]*r,o=t[1]*i+t[0]*r;return t[0]=n,t[1]=o,t}function tr(t,e){return t[0]*=e,t[1]*=e,t}function er(t,e){var i=t[0]-e[0],r=t[1]-e[1];return i*i+r*r}function ir(t,e){return Math.sqrt(er(t,e))}function rr(t,e){return er(t,Zi(t,e))}function nr(t,e){return Ji(t,"{x}, {y}",e)}function or(t,e,i,r,n,o){var s=NaN,a=NaN,h=(i-e)/r;if(1===h)s=t[e],a=t[e+1];else if(2==h)s=(1-n)*t[e]+n*t[e+r],a=(1-n)*t[e+1]+n*t[e+r+1];else if(0!==h){for(var l=t[e],u=t[e+1],p=0,c=[0],d=e+r;d>1)],e))<0?s=r+1:(a=r,h=!n);return h?s:~s}(c,g);if(y<0){var v=(g-c[-y-2])/(c[-y-1]-c[-y-2]),m=e+(-y-2)*r;s=zt(t[m],t[m+r],v),a=zt(t[m+1],t[m+r+1],v)}else s=t[e+y*r],a=t[e+y*r+1]}return o?(o[0]=s,o[1]=a,o):[s,a]}function sr(t,e,i,r,n,o){if(i==e)return null;var s;if(n>1;n0&&g.length>0;)o=g.pop(),u=f.pop(),c=_.pop(),(h=o.toString())in y||(l.push(c[0],c[1]),y[h]=!0),s=g.pop(),p=f.pop(),d=_.pop(),Ut((n=e(r=t(a=(o+s)/2)))[0],n[1],c[0],c[1],d[0],d[1])=1024){var n=0;for(var o in t)0==(3&n++)&&(delete t[o],--e)}r=function(t){var e,i,r,n,o;cr.exec(t)&&(t=function(t){var e=document.createElement("div");if(e.style.color=t,""!==e.style.color){document.body.appendChild(e);var i=getComputedStyle(e).color;return document.body.removeChild(e),i}return""}(t));if(pr.exec(t)){var s,a=t.length-1;s=a<=4?1:2;var h=4===a||8===a;e=parseInt(t.substr(1+0*s,s),16),i=parseInt(t.substr(1+1*s,s),16),r=parseInt(t.substr(1+2*s,s),16),n=h?parseInt(t.substr(1+3*s,s),16):255,1==s&&(e=(e<<4)+e,i=(i<<4)+i,r=(r<<4)+r,h&&(n=(n<<4)+n)),o=[e,i,r,n/255]}else 0==t.indexOf("rgba(")?gr(o=t.slice(5,-1).split(",").map(Number)):0==t.indexOf("rgb(")?((o=t.slice(4,-1).split(",").map(Number)).push(1),gr(o)):Y(!1,14);return o}(i),t[i]=r,++e}return r}}();function _r(t){return Array.isArray(t)?t:fr(t)}function gr(t){return t[0]=kt(t[0]+.5|0,0,255),t[1]=kt(t[1]+.5|0,0,255),t[2]=kt(t[2]+.5|0,0,255),t[3]=kt(t[3],0,1),t}function yr(t){var e=t[0];e!=(0|e)&&(e=e+.5|0);var i=t[1];i!=(0|i)&&(i=i+.5|0);var r=t[2];return r!=(0|r)&&(r=r+.5|0),"rgba("+e+","+i+","+r+","+(void 0===t[3]?1:t[3])+")"}var vr=function(t){var e=t||{};this.color_=void 0!==e.color?e.color:null,this.checksum_=void 0};vr.prototype.clone=function(){var t=this.getColor();return new vr({color:Array.isArray(t)?t.slice():t||void 0})},vr.prototype.getColor=function(){return this.color_},vr.prototype.setColor=function(t){this.color_=t,this.checksum_=void 0},vr.prototype.getChecksum=function(){if(void 0===this.checksum_){var t=this.color_;t?Array.isArray(t)||"string"==typeof t?this.checksum_="f"+dr(t):this.checksum_=o(this.color_):this.checksum_="f-"}return this.checksum_};var mr=vr,xr=function(t){var e=t||{};this.color_=void 0!==e.color?e.color:null,this.lineCap_=e.lineCap,this.lineDash_=void 0!==e.lineDash?e.lineDash:null,this.lineDashOffset_=e.lineDashOffset,this.lineJoin_=e.lineJoin,this.miterLimit_=e.miterLimit,this.width_=e.width,this.checksum_=void 0};xr.prototype.clone=function(){var t=this.getColor();return new xr({color:Array.isArray(t)?t.slice():t||void 0,lineCap:this.getLineCap(),lineDash:this.getLineDash()?this.getLineDash().slice():void 0,lineDashOffset:this.getLineDashOffset(),lineJoin:this.getLineJoin(),miterLimit:this.getMiterLimit(),width:this.getWidth()})},xr.prototype.getColor=function(){return this.color_},xr.prototype.getLineCap=function(){return this.lineCap_},xr.prototype.getLineDash=function(){return this.lineDash_},xr.prototype.getLineDashOffset=function(){return this.lineDashOffset_},xr.prototype.getLineJoin=function(){return this.lineJoin_},xr.prototype.getMiterLimit=function(){return this.miterLimit_},xr.prototype.getWidth=function(){return this.width_},xr.prototype.setColor=function(t){this.color_=t,this.checksum_=void 0},xr.prototype.setLineCap=function(t){this.lineCap_=t,this.checksum_=void 0},xr.prototype.setLineDash=function(t){this.lineDash_=t,this.checksum_=void 0},xr.prototype.setLineDashOffset=function(t){this.lineDashOffset_=t,this.checksum_=void 0},xr.prototype.setLineJoin=function(t){this.lineJoin_=t,this.checksum_=void 0},xr.prototype.setMiterLimit=function(t){this.miterLimit_=t,this.checksum_=void 0},xr.prototype.setWidth=function(t){this.width_=t,this.checksum_=void 0},xr.prototype.getChecksum=function(){return void 0===this.checksum_&&(this.checksum_="s",this.color_?"string"==typeof this.color_?this.checksum_+=this.color_:this.checksum_+=o(this.color_):this.checksum_+="-",this.checksum_+=","+(void 0!==this.lineCap_?this.lineCap_.toString():"-")+","+(this.lineDash_?this.lineDash_.toString():"-")+","+(void 0!==this.lineDashOffset_?this.lineDashOffset_:"-")+","+(void 0!==this.lineJoin_?this.lineJoin_:"-")+","+(void 0!==this.miterLimit_?this.miterLimit_.toString():"-")+","+(void 0!==this.width_?this.width_.toString():"-")),this.checksum_};var Er=xr,Sr="point",Tr="line",Cr=function(t){var e=t||{};this.font_=e.font,this.rotation_=e.rotation,this.rotateWithView_=e.rotateWithView,this.scale_=e.scale,this.text_=e.text,this.textAlign_=e.textAlign,this.textBaseline_=e.textBaseline,this.fill_=void 0!==e.fill?e.fill:new mr({color:"#333"}),this.maxAngle_=void 0!==e.maxAngle?e.maxAngle:Math.PI/4,this.placement_=void 0!==e.placement?e.placement:Sr,this.overflow_=!!e.overflow,this.stroke_=void 0!==e.stroke?e.stroke:null,this.offsetX_=void 0!==e.offsetX?e.offsetX:0,this.offsetY_=void 0!==e.offsetY?e.offsetY:0,this.backgroundFill_=e.backgroundFill?e.backgroundFill:null,this.backgroundStroke_=e.backgroundStroke?e.backgroundStroke:null,this.padding_=void 0===e.padding?null:e.padding};Cr.prototype.clone=function(){return new Cr({font:this.getFont(),placement:this.getPlacement(),maxAngle:this.getMaxAngle(),overflow:this.getOverflow(),rotation:this.getRotation(),rotateWithView:this.getRotateWithView(),scale:this.getScale(),text:this.getText(),textAlign:this.getTextAlign(),textBaseline:this.getTextBaseline(),fill:this.getFill()?this.getFill().clone():void 0,stroke:this.getStroke()?this.getStroke().clone():void 0,offsetX:this.getOffsetX(),offsetY:this.getOffsetY(),backgroundFill:this.getBackgroundFill()?this.getBackgroundFill().clone():void 0,backgroundStroke:this.getBackgroundStroke()?this.getBackgroundStroke().clone():void 0})},Cr.prototype.getOverflow=function(){return this.overflow_},Cr.prototype.getFont=function(){return this.font_},Cr.prototype.getMaxAngle=function(){return this.maxAngle_},Cr.prototype.getPlacement=function(){return this.placement_},Cr.prototype.getOffsetX=function(){return this.offsetX_},Cr.prototype.getOffsetY=function(){return this.offsetY_},Cr.prototype.getFill=function(){return this.fill_},Cr.prototype.getRotateWithView=function(){return this.rotateWithView_},Cr.prototype.getRotation=function(){return this.rotation_},Cr.prototype.getScale=function(){return this.scale_},Cr.prototype.getStroke=function(){return this.stroke_},Cr.prototype.getText=function(){return this.text_},Cr.prototype.getTextAlign=function(){return this.textAlign_},Cr.prototype.getTextBaseline=function(){return this.textBaseline_},Cr.prototype.getBackgroundFill=function(){return this.backgroundFill_},Cr.prototype.getBackgroundStroke=function(){return this.backgroundStroke_},Cr.prototype.getPadding=function(){return this.padding_},Cr.prototype.setOverflow=function(t){this.overflow_=t},Cr.prototype.setFont=function(t){this.font_=t},Cr.prototype.setMaxAngle=function(t){this.maxAngle_=t},Cr.prototype.setOffsetX=function(t){this.offsetX_=t},Cr.prototype.setOffsetY=function(t){this.offsetY_=t},Cr.prototype.setPlacement=function(t){this.placement_=t},Cr.prototype.setFill=function(t){this.fill_=t},Cr.prototype.setRotation=function(t){this.rotation_=t},Cr.prototype.setScale=function(t){this.scale_=t},Cr.prototype.setStroke=function(t){this.stroke_=t},Cr.prototype.setText=function(t){this.text_=t},Cr.prototype.setTextAlign=function(t){this.textAlign_=t},Cr.prototype.setTextBaseline=function(t){this.textBaseline_=t},Cr.prototype.setBackgroundFill=function(t){this.backgroundFill_=t},Cr.prototype.setBackgroundStroke=function(t){this.backgroundStroke_=t},Cr.prototype.setPadding=function(t){this.padding_=t};var Rr=Cr,wr=new Er({color:"rgba(0,0,0,0.2)"}),Ir=[90,45,30,20,10,5,2,1,.5,.2,.1,.05,.01,.005,.002,.001],Lr=function(t){var e=t||{};this.map_=null,this.postcomposeListenerKey_=null,this.projection_=null,this.maxLat_=1/0,this.maxLon_=1/0,this.minLat_=-1/0,this.minLon_=-1/0,this.maxLatP_=1/0,this.maxLonP_=1/0,this.minLatP_=-1/0,this.minLonP_=-1/0,this.targetSize_=void 0!==e.targetSize?e.targetSize:100,this.maxLines_=void 0!==e.maxLines?e.maxLines:100,this.meridians_=[],this.parallels_=[],this.strokeStyle_=void 0!==e.strokeStyle?e.strokeStyle:wr,this.fromLonLatTransform_=void 0,this.toLonLatTransform_=void 0,this.projectionCenterLonLat_=null,this.meridiansLabels_=null,this.parallelsLabels_=null,1==e.showLabels&&(this.lonLabelFormatter_=void 0==e.lonLabelFormatter?qi.bind(this,"EW"):e.lonLabelFormatter,this.latLabelFormatter_=void 0==e.latLabelFormatter?qi.bind(this,"NS"):e.latLabelFormatter,this.lonLabelPosition_=void 0==e.lonLabelPosition?0:e.lonLabelPosition,this.latLabelPosition_=void 0==e.latLabelPosition?1:e.latLabelPosition,this.lonLabelStyle_=void 0!==e.lonLabelStyle?e.lonLabelStyle:new Rr({font:"12px Calibri,sans-serif",textBaseline:"bottom",fill:new mr({color:"rgba(0,0,0,1)"}),stroke:new Er({color:"rgba(255,255,255,1)",width:3})}),this.latLabelStyle_=void 0!==e.latLabelStyle?e.latLabelStyle:new Rr({font:"12px Calibri,sans-serif",textAlign:"end",fill:new mr({color:"rgba(0,0,0,1)"}),stroke:new Er({color:"rgba(255,255,255,1)",width:3})}),this.meridiansLabels_=[],this.parallelsLabels_=[]),this.intervals_=void 0!==e.intervals?e.intervals:Ir,this.setMap(void 0!==e.map?e.map:null)};Lr.prototype.addMeridian_=function(t,e,i,r,n,o){var s=this.getMeridian_(t,e,i,r,o);if(Pt(s.getExtent(),n)){if(this.meridiansLabels_){var a=this.getMeridianPoint_(s,n,o);this.meridiansLabels_[o]={geom:a,text:this.lonLabelFormatter_(t)}}this.meridians_[o++]=s}return o},Lr.prototype.getMeridianPoint_=function(t,e,i){var r,n=t.getFlatCoordinates(),o=Math.max(e[1],n[1]),s=Math.min(e[3],n[n.length-1]),a=kt(e[1]+Math.abs(e[1]-e[3])*this.lonLabelPosition_,o,s),h=[n[0],a];return i in this.meridiansLabels_?(r=this.meridiansLabels_[i].geom).setCoordinates(h):r=new ci(h),r},Lr.prototype.addParallel_=function(t,e,i,r,n,o){var s=this.getParallel_(t,e,i,r,o);if(Pt(s.getExtent(),n)){if(this.parallelsLabels_){var a=this.getParallelPoint_(s,n,o);this.parallelsLabels_[o]={geom:a,text:this.latLabelFormatter_(t)}}this.parallels_[o++]=s}return o},Lr.prototype.getParallelPoint_=function(t,e,i){var r,n=t.getFlatCoordinates(),o=Math.max(e[0],n[0]),s=Math.min(e[2],n[n.length-2]),a=[kt(e[0]+Math.abs(e[0]-e[2])*this.latLabelPosition_,o,s),n[1]];return i in this.parallelsLabels_?(r=this.parallelsLabels_[i].geom).setCoordinates(a):r=new ci(a),r},Lr.prototype.createGraticule_=function(t,e,i,r){var n=this.getInterval_(i);if(-1==n)return this.meridians_.length=this.parallels_.length=0,this.meridiansLabels_&&(this.meridiansLabels_.length=0),void(this.parallelsLabels_&&(this.parallelsLabels_.length=0));var o,s,a,h,l=this.toLonLatTransform_(e),u=l[0],p=l[1],c=this.maxLines_,d=[Math.max(t[0],this.minLonP_),Math.max(t[1],this.minLatP_),Math.min(t[2],this.maxLonP_),Math.min(t[3],this.maxLatP_)],f=(d=be(d,this.projection_,"EPSG:4326"))[3],_=d[2],g=d[1],y=d[0];for(h=kt(u=Math.floor(u/n)*n,this.minLon_,this.maxLon_),s=this.addMeridian_(h,g,f,r,t,0),o=0;h!=this.minLon_&&o++0&&this.points_[i+2]>t;)i-=3;var r=this.points_[e+2]-this.points_[i+2];if(r<1e3/60)return!1;var n=this.points_[e]-this.points_[i],o=this.points_[e+1]-this.points_[i+1];return this.angle_=Math.atan2(o,n),this.initialVelocity_=Math.sqrt(n*n+o*o)/r,this.initialVelocity_>this.minVelocity_},Pr.prototype.getDistance=function(){return(this.minVelocity_-this.initialVelocity_)/this.decay_},Pr.prototype.getAngle=function(){return this.angle_};var br=Pr,Mr=function(t){function e(e,i,r){t.call(this,e),this.map=i,this.frameState=void 0!==r?r:null}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e}(P),Fr=function(t){function e(e,i,r,n,o){t.call(this,e,i,o),this.originalEvent=r,this.pixel=i.getEventPixel(r),this.coordinate=i.getCoordinateFromPixel(this.pixel),this.dragging=void 0!==n&&n}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.preventDefault=function(){t.prototype.preventDefault.call(this),this.originalEvent.preventDefault()},e.prototype.stopPropagation=function(){t.prototype.stopPropagation.call(this),this.originalEvent.stopPropagation()},e}(Mr),Ar={SINGLECLICK:"singleclick",CLICK:M.CLICK,DBLCLICK:M.DBLCLICK,POINTERDRAG:"pointerdrag",POINTERMOVE:"pointermove",POINTERDOWN:"pointerdown",POINTERUP:"pointerup",POINTEROVER:"pointerover",POINTEROUT:"pointerout",POINTERENTER:"pointerenter",POINTERLEAVE:"pointerleave",POINTERCANCEL:"pointercancel"},Nr=function(t){function e(e,i,r,n,o){t.call(this,e,i,r.originalEvent,n,o),this.pointerEvent=r}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e}(Fr),Gr={POINTERMOVE:"pointermove",POINTERDOWN:"pointerdown",POINTERUP:"pointerup",POINTEROVER:"pointerover",POINTEROUT:"pointerout",POINTERENTER:"pointerenter",POINTERLEAVE:"pointerleave",POINTERCANCEL:"pointercancel"},Dr=function(t,e){this.dispatcher=t,this.mapping_=e};Dr.prototype.getEvents=function(){return Object.keys(this.mapping_)},Dr.prototype.getHandlerForEvent=function(t){return this.mapping_[t]};var kr=Dr,jr=1,Ur="mouse";function Yr(t){if(!this.isEventSimulatedFromTouch_(t)){jr.toString()in this.pointerMap&&this.cancel(t);var e=Wr(t,this.dispatcher);this.pointerMap[jr.toString()]=t,this.dispatcher.down(e,t)}}function Br(t){if(!this.isEventSimulatedFromTouch_(t)){var e=Wr(t,this.dispatcher);this.dispatcher.move(e,t)}}function Vr(t){if(!this.isEventSimulatedFromTouch_(t)){var e=this.pointerMap[jr.toString()];if(e&&e.button===t.button){var i=Wr(t,this.dispatcher);this.dispatcher.up(i,t),this.cleanupMouse()}}}function Xr(t){if(!this.isEventSimulatedFromTouch_(t)){var e=Wr(t,this.dispatcher);this.dispatcher.enterOver(e,t)}}function zr(t){if(!this.isEventSimulatedFromTouch_(t)){var e=Wr(t,this.dispatcher);this.dispatcher.leaveOut(e,t)}}function Wr(t,e){var i=e.cloneEvent(t,t),r=i.preventDefault;return i.preventDefault=function(){t.preventDefault(),r()},i.pointerId=jr,i.isPrimary=!0,i.pointerType=Ur,i}var Kr=function(t){function e(e){var i={mousedown:Yr,mousemove:Br,mouseup:Vr,mouseover:Xr,mouseout:zr};t.call(this,e,i),this.pointerMap=e.pointerMap,this.lastTouches=[]}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.isEventSimulatedFromTouch_=function(t){for(var e=this.lastTouches,i=t.clientX,r=t.clientY,n=0,o=e.length,s=void 0;n=e.length){for(var n=[],o=0;o-1;r&&t.splice(i,1)}(e,r)},this.dedupTimeout_)}},e}(kr),Sn=[["bubbles",!1],["cancelable",!1],["view",null],["detail",null],["screenX",0],["screenY",0],["clientX",0],["clientY",0],["ctrlKey",!1],["altKey",!1],["shiftKey",!1],["metaKey",!1],["button",0],["relatedTarget",null],["buttons",0],["pointerId",0],["width",0],["height",0],["pressure",0],["tiltX",0],["tiltY",0],["pointerType",""],["hwTimestamp",0],["isPrimary",!1],["type",""],["target",null],["currentTarget",null],["which",0]],Tn=function(t){function e(e){t.call(this),this.element_=e,this.pointerMap={},this.eventMap_={},this.eventSourceList_=[],this.registerSources()}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.registerSources=function(){if(Yi)this.registerSource("native",new dn(this));else if(Bi)this.registerSource("ms",new nn(this));else{var t=new Kr(this);this.registerSource("mouse",t),Ui&&this.registerSource("touch",new En(this,t))}this.register_()},e.prototype.registerSource=function(t,e){var i=e,r=i.getEvents();r&&(r.forEach(function(t){var e=i.getHandlerForEvent(t);e&&(this.eventMap_[t]=e.bind(i))}.bind(this)),this.eventSourceList_.push(i))},e.prototype.register_=function(){for(var t=this.eventSourceList_.length,e=0;ethis.moveTolerance_||Math.abs(t.clientY-this.down_.clientY)>this.moveTolerance_},e.prototype.disposeInternal=function(){this.relayedListenerKey_&&(E(this.relayedListenerKey_),this.relayedListenerKey_=null),this.pointerdownListenerKey_&&(E(this.pointerdownListenerKey_),this.pointerdownListenerKey_=null),this.dragListenerKeys_.forEach(E),this.dragListenerKeys_.length=0,this.documentPointerEventHandler_&&(this.documentPointerEventHandler_.dispose(),this.documentPointerEventHandler_=null),this.pointerEventHandler_&&(this.pointerEventHandler_.dispose(),this.pointerEventHandler_=null),t.prototype.disposeInternal.call(this)},e}(b),Rn="postrender",wn="movestart",In="moveend",Ln={LAYERGROUP:"layergroup",SIZE:"size",TARGET:"target",VIEW:"view"},On={IDLE:0,LOADING:1,LOADED:2,ERROR:3,EMPTY:4,ABORT:5},Pn=function(t,e){this.priorityFunction_=t,this.keyFunction_=e,this.elements_=[],this.priorities_=[],this.queuedElements_={}};Pn.prototype.clear=function(){this.elements_.length=0,this.priorities_.length=0,p(this.queuedElements_)},Pn.prototype.dequeue=function(){var t=this.elements_,e=this.priorities_,i=t[0];1==t.length?(t.length=0,e.length=0):(t[0]=t.pop(),e[0]=e.pop(),this.siftUp_(0));var r=this.keyFunction_(i);return delete this.queuedElements_[r],i},Pn.prototype.enqueue=function(t){Y(!(this.keyFunction_(t)in this.queuedElements_),31);var e=this.priorityFunction_(t);return e!=1/0&&(this.elements_.push(t),this.priorities_.push(e),this.queuedElements_[this.keyFunction_(t)]=!0,this.siftDown_(0,this.elements_.length-1),!0)},Pn.prototype.getCount=function(){return this.elements_.length},Pn.prototype.getLeftChildIndex_=function(t){return 2*t+1},Pn.prototype.getRightChildIndex_=function(t){return 2*t+2},Pn.prototype.getParentIndex_=function(t){return t-1>>1},Pn.prototype.heapify_=function(){var t;for(t=(this.elements_.length>>1)-1;t>=0;t--)this.siftUp_(t)},Pn.prototype.isEmpty=function(){return 0===this.elements_.length},Pn.prototype.isKeyQueued=function(t){return t in this.queuedElements_},Pn.prototype.isQueued=function(t){return this.isKeyQueued(this.keyFunction_(t))},Pn.prototype.siftUp_=function(t){for(var e=this.elements_,i=this.priorities_,r=e.length,n=e[t],o=i[t],s=t;t>1;){var a=this.getLeftChildIndex_(t),h=this.getRightChildIndex_(t),l=ht;){var s=this.getParentIndex_(e);if(!(r[s]>o))break;i[e]=i[s],r[e]=r[s],e=s}i[e]=n,r[e]=o},Pn.prototype.reprioritize=function(){var t,e,i,r=this.priorityFunction_,n=this.elements_,o=this.priorities_,s=0,a=n.length;for(e=0;e0;)n=(r=this.dequeue()[0]).getKey(),(i=r.getState())===On.ABORT?s=!0:i!==On.IDLE||n in this.tilesLoadingKeys_||(this.tilesLoadingKeys_[n]=!0,++this.tilesLoading_,++o,r.load());0===o&&s&&this.tileChangeCallback_()},e}(bn),Fn=42,An=256;function Nn(t){return t}function Gn(t,e){return void 0!==t?0:void 0}function Dn(t,e){return void 0!==t?t+e:void 0}var kn=0,jn=1,Un="center",Yn="resolution",Bn="rotation";function Vn(t){return Math.pow(t,3)}function Xn(t){return 1-Vn(1-t)}function zn(t){return 3*t*t-2*t*t*t}function Wn(t){return t}var Kn=0;function Hn(t,e){setTimeout(function(){t(e)},0)}function Zn(t){return!(t.sourceCenter&&t.targetCenter&&!Qi(t.sourceCenter,t.targetCenter))&&(t.sourceResolution===t.targetResolution&&t.sourceRotation===t.targetRotation)}var qn=function(t){function e(e){t.call(this);var i=u({},e);this.hints_=[0,0],this.animations_=[],this.updateAnimationKey_,this.updateAnimations_=this.updateAnimations_.bind(this),this.projection_=Ce(i.projection,"EPSG:3857"),this.applyOptions_(i)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.applyOptions_=function(t){var e={};e[Un]=void 0!==t.center?t.center:null;var i=function(t){var e,i,r,n=void 0!==t.minZoom?t.minZoom:Kn,o=void 0!==t.maxZoom?t.maxZoom:28,s=void 0!==t.zoomFactor?t.zoomFactor:2;if(void 0!==t.resolutions){var a=t.resolutions;i=a[n],r=void 0!==a[o]?a[o]:a[a.length-1],e=function(t){return function(e,i,r){if(void 0!==e){var n=z(t,e,r);n=kt(n+i,0,t.length-1);var o=Math.floor(n);if(n!=o&&o1&&"function"==typeof arguments[r-1]&&(e=arguments[r-1],--r),!this.isDef()){var n=arguments[r-1];return n.center&&this.setCenter(n.center),void 0!==n.zoom&&this.setZoom(n.zoom),void 0!==n.rotation&&this.setRotation(n.rotation),void(e&&Hn(e,!0))}for(var o=Date.now(),s=this.getCenter().slice(),a=this.getResolution(),h=this.getRotation(),l=[],u=0;u0},e.prototype.getInteracting=function(){return this.hints_[jn]>0},e.prototype.cancelAnimations=function(){this.setHint(kn,-this.hints_[kn]);for(var t=0,e=this.animations_.length;t=0;--i){for(var r=this.animations_[i],n=!0,o=0,s=r.length;o0?h/a.duration:1;l>=1?(a.complete=!0,l=1):n=!1;var u=a.easing(l);if(a.sourceCenter){var p=a.sourceCenter[0],c=a.sourceCenter[1],d=p+u*(a.targetCenter[0]-p),f=c+u*(a.targetCenter[1]-c);this.set(Un,[d,f])}if(a.sourceResolution&&a.targetResolution){var _=1===u?a.targetResolution:a.sourceResolution+u*(a.targetResolution-a.sourceResolution);a.anchor&&this.set(Un,this.calculateCenterZoom(_,a.anchor)),this.set(Yn,_)}if(void 0!==a.sourceRotation&&void 0!==a.targetRotation){var g=1===u?Xt(a.targetRotation+Math.PI,2*Math.PI)-Math.PI:a.sourceRotation+u*(a.targetRotation-a.sourceRotation);a.anchor&&this.set(Un,this.calculateCenterRotate(g,a.anchor)),this.set(Bn,g)}if(e=!0,!a.complete)break}}if(n){this.animations_[i]=null,this.setHint(kn,-1);var y=r[0].callback;y&&Hn(y,!0)}}this.animations_=this.animations_.filter(Boolean),e&&void 0===this.updateAnimationKey_&&(this.updateAnimationKey_=requestAnimationFrame(this.updateAnimations_))}},e.prototype.calculateCenterRotate=function(t,e){var i,r=this.getCenter();return void 0!==r&&($i(i=[r[0]-e[0],r[1]-e[1]],t-this.getRotation()),Hi(i,e)),i},e.prototype.calculateCenterZoom=function(t,e){var i,r=this.getCenter(),n=this.getResolution();void 0!==r&&void 0!==n&&(i=[e[0]-t*(e[0]-r[0])/n,e[1]-t*(e[1]-r[1])/n]);return i},e.prototype.getSizeFromViewport_=function(){var t=[100,100],e='.ol-viewport[data-view="'+o(this)+'"]',i=document.querySelector(e);if(i){var r=getComputedStyle(i);t[0]=parseInt(r.width,10),t[1]=parseInt(r.height,10)}return t},e.prototype.constrainCenter=function(t){return this.constraints_.center(t)},e.prototype.constrainResolution=function(t,e,i){var r=e||0,n=i||0;return this.constraints_.resolution(t,r,n)},e.prototype.constrainRotation=function(t,e){var i=e||0;return this.constraints_.rotation(t,i)},e.prototype.getCenter=function(){return this.get(Un)},e.prototype.getConstraints=function(){return this.constraints_},e.prototype.getHints=function(t){return void 0!==t?(t[0]=this.hints_[0],t[1]=this.hints_[1],t):this.hints_.slice()},e.prototype.calculateExtent=function(t){var e=t||this.getSizeFromViewport_(),i=this.getCenter();Y(i,1);var r=this.getResolution();Y(void 0!==r,2);var n=this.getRotation();return Y(void 0!==n,3),Ct(i,r,n,e)},e.prototype.getMaxResolution=function(){return this.maxResolution_},e.prototype.getMinResolution=function(){return this.minResolution_},e.prototype.getMaxZoom=function(){return this.getZoomForResolution(this.minResolution_)},e.prototype.setMaxZoom=function(t){this.applyOptions_(this.getUpdatedOptions_({maxZoom:t}))},e.prototype.getMinZoom=function(){return this.getZoomForResolution(this.maxResolution_)},e.prototype.setMinZoom=function(t){this.applyOptions_(this.getUpdatedOptions_({minZoom:t}))},e.prototype.getProjection=function(){return this.projection_},e.prototype.getResolution=function(){return this.get(Yn)},e.prototype.getResolutions=function(){return this.resolutions_},e.prototype.getResolutionForExtent=function(t,e){var i=e||this.getSizeFromViewport_(),r=Ot(t)/i[0],n=Rt(t)/i[1];return Math.max(r,n)},e.prototype.getResolutionForValueFunction=function(t){var e=t||2,i=this.maxResolution_,r=this.minResolution_,n=Math.log(i/r)/Math.log(e);return function(t){return i/Math.pow(e,t*n)}},e.prototype.getRotation=function(){return this.get(Bn)},e.prototype.getValueForResolutionFunction=function(t){var e=t||2,i=this.maxResolution_,r=this.minResolution_,n=Math.log(i/r)/Math.log(e);return function(t){return Math.log(i/t)/Math.log(e)/n}},e.prototype.getState=function(t){var e=this.getCenter(),i=this.getProjection(),r=this.getResolution(),n=r/t,o=this.getRotation();return{center:[Math.round(e[0]/n)*n,Math.round(e[1]/n)*n],projection:void 0!==i?i:null,resolution:r,rotation:o,zoom:this.getZoom()}},e.prototype.getZoom=function(){var t,e=this.getResolution();return void 0!==e&&(t=this.getZoomForResolution(e)),t},e.prototype.getZoomForResolution=function(t){var e,i,r=this.minZoom_||0;if(this.resolutions_){var n=z(this.resolutions_,t,1);r=n,e=this.resolutions_[n],i=n==this.resolutions_.length-1?2:e/this.resolutions_[n+1]}else e=this.maxResolution_,i=this.zoomFactor_;return r+Math.log(e/t)/Math.log(i)},e.prototype.getResolutionForZoom=function(t){return this.constrainResolution(this.maxResolution_,t-this.minZoom_,0)},e.prototype.fit=function(t,e){var i,r=e||{},n=r.size;n||(n=this.getSizeFromViewport_()),Y(Array.isArray(t)||"function"==typeof t.getSimplifiedGeometry,24),Array.isArray(t)?(Y(!bt(t),25),i=Oi(t)):t.getType()===Nt.CIRCLE?(i=Oi(t=t.getExtent())).rotate(this.getRotation(),Tt(t)):i=t;var o,s=void 0!==r.padding?r.padding:[0,0,0,0],a=void 0===r.constrainResolution||r.constrainResolution,h=void 0!==r.nearest&&r.nearest;o=void 0!==r.minResolution?r.minResolution:void 0!==r.maxZoom?this.constrainResolution(this.maxResolution_,r.maxZoom-this.minZoom_,0):0;for(var l=i.getFlatCoordinates(),u=this.getRotation(),p=Math.cos(-u),c=Math.sin(-u),d=1/0,f=1/0,_=-1/0,g=-1/0,y=i.getStride(),v=0,m=l.length;v=0;i--){var r=e[i];if(r.getActive())if(!r.handleEvent(t))break}}},e.prototype.handlePostRender=function(){var t=this.frameState_,e=this.tileQueue_;if(!e.isEmpty()){var i=this.maxTilesLoading_,r=i;if(t){var n=t.viewHints;n[kn]&&(i=this.loadTilesWhileAnimating_?8:0,r=2),n[jn]&&(i=this.loadTilesWhileInteracting_?8:0,r=2)}e.getTilesLoading()0&&t[1]>0}(i)&&r&&r.isDef()){for(var h=r.getHints(this.frameState_?this.frameState_.viewHints:void 0),l=this.getLayerGroup().getLayerStatesArray(),u={},p=0,c=l.length;p=t.minResolution&&e0;if(this.renderedVisible_!=i&&(this.element.style.display=i?"":"none",this.renderedVisible_=i),!Z(e,this.renderedAttributions_)){to(this.ulElement_);for(var r=0,n=e.length;r0?t.animate({rotation:0,duration:this.duration_,easing:Xn}):t.setRotation(0))},e}(uo),Ro=function(t){function e(e){var i=e||{};t.call(this,{element:document.createElement("div"),target:i.target});var r=void 0!==i.className?i.className:"ol-zoom",n=void 0!==i.delta?i.delta:1,o=void 0!==i.zoomInLabel?i.zoomInLabel:"+",s=void 0!==i.zoomOutLabel?i.zoomOutLabel:"−",a=void 0!==i.zoomInTipLabel?i.zoomInTipLabel:"Zoom in",h=void 0!==i.zoomOutTipLabel?i.zoomOutTipLabel:"Zoom out",l=document.createElement("button");l.className=r+"-in",l.setAttribute("type","button"),l.title=a,l.appendChild("string"==typeof o?document.createTextNode(o):o),v(l,M.CLICK,this.handleClick_.bind(this,n));var u=document.createElement("button");u.className=r+"-out",u.setAttribute("type","button"),u.title=h,u.appendChild("string"==typeof s?document.createTextNode(s):s),v(u,M.CLICK,this.handleClick_.bind(this,-n));var p=r+" "+fo+" "+go,c=this.element;c.className=p,c.appendChild(l),c.appendChild(u),this.duration_=void 0!==i.duration?i.duration:250}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.handleClick_=function(t,e){e.preventDefault(),this.zoomByDelta_(t)},e.prototype.zoomByDelta_=function(t){var e=this.getMap().getView();if(e){var i=e.getResolution();if(i){var r=e.constrainResolution(i,t);this.duration_>0?(e.getAnimating()&&e.cancelAnimations(),e.animate({resolution:r,duration:this.duration_,easing:Xn})):e.setResolution(r)}}},e}(uo);function wo(t){var e=t||{},i=new U;return(void 0===e.zoom||e.zoom)&&i.push(new Ro(e.zoomOptions)),(void 0===e.rotate||e.rotate)&&i.push(new Co(e.rotateOptions)),(void 0===e.attribution||e.attribution)&&i.push(new So(e.attributionOptions)),i}var Io={ACTIVE:"active"};function Lo(t,e,i,r){Oo(t,e=t.constrainRotation(e,0),i,r)}function Oo(t,e,i,r){if(void 0!==e){var n=t.getRotation(),o=t.getCenter();void 0!==n&&o&&r>0?t.animate({rotation:e,anchor:i,duration:r,easing:Xn}):t.rotate(e,i)}}function Po(t,e,i,r,n){Mo(t,e=t.constrainResolution(e,0,n),i,r)}function bo(t,e,i,r){var n=t.getResolution(),o=t.constrainResolution(n,e,0);if(void 0!==o){var s=t.getResolutions();o=kt(o,t.getMinResolution()||s[s.length-1],t.getMaxResolution()||s[0])}if(i&&void 0!==o&&o!==n){var a=t.getCenter(),h=t.calculateCenterZoom(o,i);h=t.constrainCenter(h),i=[(o*a[0]-n*h[0])/(o-n),(o*a[1]-n*h[1])/(o-n)]}Mo(t,o,i,r)}function Mo(t,e,i,r){if(e){var n=t.getResolution(),o=t.getCenter();if(void 0!==n&&o&&e!==n&&r)t.animate({resolution:e,anchor:i,duration:r,easing:Xn});else{if(i){var s=t.calculateCenterZoom(e,i);t.setCenter(s)}t.setResolution(e)}}}var Fo=function(t){function e(e){t.call(this),e.handleEvent&&(this.handleEvent=e.handleEvent),this.map_=null,this.setActive(!0)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.getActive=function(){return this.get(Io.ACTIVE)},e.prototype.getMap=function(){return this.map_},e.prototype.handleEvent=function(t){return!0},e.prototype.setActive=function(t){this.set(Io.ACTIVE,t)},e.prototype.setMap=function(t){this.map_=t},e}(D);function Ao(t){var e=!1;if(t.type==Ar.DBLCLICK){var i=t.originalEvent,r=t.map,n=t.coordinate,o=i.shiftKey?-this.delta_:this.delta_;bo(r.getView(),o,n,this.duration_),t.preventDefault(),e=!0}return!e}var No=function(t){function e(e){t.call(this,{handleEvent:Ao});var i=e||{};this.delta_=i.delta?i.delta:1,this.duration_=void 0!==i.duration?i.duration:250}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e}(Fo),Go=function(t){var e=t.originalEvent;return e.altKey&&!(e.metaKey||e.ctrlKey)&&!e.shiftKey},Do=function(t){var e=t.originalEvent;return e.altKey&&!(e.metaKey||e.ctrlKey)&&e.shiftKey},ko=function(t){return t.target.getTargetElement()===document.activeElement},jo=R,Uo=function(t){var e=t.originalEvent;return 0==e.button&&!(Ni&&Gi&&e.ctrlKey)},Yo=w,Bo=function(t){return"pointermove"==t.type},Vo=function(t){return t.type==Ar.SINGLECLICK},Xo=function(t){var e=t.originalEvent;return!e.altKey&&!(e.metaKey||e.ctrlKey)&&!e.shiftKey},zo=function(t){var e=t.originalEvent;return!e.altKey&&!(e.metaKey||e.ctrlKey)&&e.shiftKey},Wo=function(t){var e=t.originalEvent.target.tagName;return"INPUT"!==e&&"SELECT"!==e&&"TEXTAREA"!==e},Ko=function(t){var e=t.pointerEvent;return Y(void 0!==e,56),"mouse"==e.pointerType},Ho=function(t){var e=t.pointerEvent;return Y(void 0!==e,56),e.isPrimary&&0===e.button};function Zo(t){for(var e=t.length,i=0,r=0,n=0;n0}}else if(t.type==Ar.POINTERDOWN){var r=this.handleDownEvent(t);r&&t.preventDefault(),this.handlingDownUpSequence=r,e=this.stopDown(r)}else t.type==Ar.POINTERMOVE&&this.handleMoveEvent(t);return!e},e.prototype.handleMoveEvent=function(t){},e.prototype.handleUpEvent=function(t){return!1},e.prototype.stopDown=function(t){return t},e.prototype.updateTrackedPointers_=function(t){if(function(t){var e=t.type;return e===Ar.POINTERDOWN||e===Ar.POINTERDRAG||e===Ar.POINTERUP}(t)){var e=t.pointerEvent,i=e.pointerId.toString();t.type==Ar.POINTERUP?delete this.trackedPointers_[i]:t.type==Ar.POINTERDOWN?this.trackedPointers_[i]=e:i in this.trackedPointers_&&(this.trackedPointers_[i]=e),this.targetPointers=c(this.trackedPointers_)}},e}(Fo),Jo=function(t){function e(e){t.call(this,{stopDown:w});var i=e||{};this.kinetic_=i.kinetic,this.lastCentroid=null,this.lastPointersCount_,this.panning_=!1,this.condition_=i.condition?i.condition:Xo,this.noKinetic_=!1}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.handleDragEvent=function(t){this.panning_||(this.panning_=!0,this.getMap().getView().setHint(jn,1));var e=this.targetPointers,i=Zo(e);if(e.length==this.lastPointersCount_){if(this.kinetic_&&this.kinetic_.update(i[0],i[1]),this.lastCentroid){var r=this.lastCentroid[0]-i[0],n=i[1]-this.lastCentroid[1],o=t.map.getView(),s=[r,n];tr(s,o.getResolution()),$i(s,o.getRotation()),Hi(s,o.getCenter()),s=o.constrainCenter(s),o.setCenter(s)}}else this.kinetic_&&this.kinetic_.begin();this.lastCentroid=i,this.lastPointersCount_=e.length},e.prototype.handleUpEvent=function(t){var e=t.map,i=e.getView();if(0===this.targetPointers.length){if(!this.noKinetic_&&this.kinetic_&&this.kinetic_.end()){var r=this.kinetic_.getDistance(),n=this.kinetic_.getAngle(),o=i.getCenter(),s=e.getPixelFromCoordinate(o),a=e.getCoordinateFromPixel([s[0]-r*Math.cos(n),s[1]-r*Math.sin(n)]);i.animate({center:i.constrainCenter(a),duration:500,easing:Xn})}return this.panning_&&(this.panning_=!1,i.setHint(jn,-1)),!1}return this.kinetic_&&this.kinetic_.begin(),this.lastCentroid=null,!0},e.prototype.handleDownEvent=function(t){if(this.targetPointers.length>0&&this.condition_(t)){var e=t.map.getView();return this.lastCentroid=null,e.getAnimating()&&e.setCenter(t.frameState.viewState.center),this.kinetic_&&this.kinetic_.begin(),this.noKinetic_=this.targetPointers.length>1,!0}return!1},e}(qo),Qo=function(t){function e(e){var i=e||{};t.call(this,{stopDown:w}),this.condition_=i.condition?i.condition:Do,this.lastAngle_=void 0,this.duration_=void 0!==i.duration?i.duration:250}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.handleDragEvent=function(t){if(Ko(t)){var e=t.map,i=e.getView();if(i.getConstraints().rotation!==Gn){var r=e.getSize(),n=t.pixel,o=Math.atan2(r[1]/2-n[1],n[0]-r[0]/2);if(void 0!==this.lastAngle_){var s=o-this.lastAngle_;Oo(i,i.getRotation()-s)}this.lastAngle_=o}}},e.prototype.handleUpEvent=function(t){if(!Ko(t))return!0;var e=t.map.getView();return e.setHint(jn,-1),Lo(e,e.getRotation(),void 0,this.duration_),!1},e.prototype.handleDownEvent=function(t){return!!Ko(t)&&(!(!Uo(t)||!this.condition_(t))&&(t.map.getView().setHint(jn,1),this.lastAngle_=void 0,!0))},e}(qo),$o=function(t){function e(e){t.call(this),this.geometry_=null,this.element_=document.createElement("div"),this.element_.style.position="absolute",this.element_.className="ol-box "+e,this.map_=null,this.startPixel_=null,this.endPixel_=null}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.disposeInternal=function(){this.setMap(null)},e.prototype.render_=function(){var t=this.startPixel_,e=this.endPixel_,i=this.element_.style;i.left=Math.min(t[0],e[0])+"px",i.top=Math.min(t[1],e[1])+"px",i.width=Math.abs(e[0]-t[0])+"px",i.height=Math.abs(e[1]-t[1])+"px"},e.prototype.setMap=function(t){if(this.map_){this.map_.getOverlayContainer().removeChild(this.element_);var e=this.element_.style;e.left=e.top=e.width=e.height="inherit"}this.map_=t,this.map_&&this.map_.getOverlayContainer().appendChild(this.element_)},e.prototype.setPixels=function(t,e){this.startPixel_=t,this.endPixel_=e,this.createOrUpdateGeometry(),this.render_()},e.prototype.createOrUpdateGeometry=function(){var t=this.startPixel_,e=this.endPixel_,i=[t,[t[0],e[1]],e,[e[0],t[1]]].map(this.map_.getCoordinateFromPixel,this.map_);i[4]=i[0].slice(),this.geometry_?this.geometry_.setCoordinates([i]):this.geometry_=new Ii([i])},e.prototype.getGeometry=function(){return this.geometry_},e}(C),ts="boxstart",es="boxdrag",is="boxend",rs=function(t){function e(e,i,r){t.call(this,e),this.coordinate=i,this.mapBrowserEvent=r}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e}(P),ns=function(t){function e(e){t.call(this);var i=e||{};this.box_=new $o(i.className||"ol-dragbox"),this.minArea_=void 0!==i.minArea?i.minArea:64,this.onBoxEnd_=i.onBoxEnd?i.onBoxEnd:I,this.startPixel_=null,this.condition_=i.condition?i.condition:jo,this.boxEndCondition_=i.boxEndCondition?i.boxEndCondition:this.defaultBoxEndCondition}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.defaultBoxEndCondition=function(t,e,i){var r=i[0]-e[0],n=i[1]-e[1];return r*r+n*n>=this.minArea_},e.prototype.getGeometry=function(){return this.box_.getGeometry()},e.prototype.handleDragEvent=function(t){Ko(t)&&(this.box_.setPixels(this.startPixel_,t.pixel),this.dispatchEvent(new rs(es,t.coordinate,t)))},e.prototype.handleUpEvent=function(t){return!Ko(t)||(this.box_.setMap(null),this.boxEndCondition_(t,this.startPixel_,t.pixel)&&(this.onBoxEnd_(t),this.dispatchEvent(new rs(is,t.coordinate,t))),!1)},e.prototype.handleDownEvent=function(t){return!!Ko(t)&&(!(!Uo(t)||!this.condition_(t))&&(this.startPixel_=t.pixel,this.box_.setMap(t.map),this.box_.setPixels(this.startPixel_,this.startPixel_),this.dispatchEvent(new rs(ts,t.coordinate,t)),!0))},e}(qo);function os(){var t=this.getMap(),e=t.getView(),i=t.getSize(),r=this.getGeometry().getExtent();if(this.out_){var n=e.calculateExtent(i),o=function(t,e){return gt(ut(e),t)}([t.getPixelFromCoordinate(Et(r)),t.getPixelFromCoordinate(Lt(r))]);Mt(n,1/e.getResolutionForExtent(o,i)),r=n}var s=e.constrainResolution(e.getResolutionForExtent(r,i)),a=Tt(r);a=e.constrainCenter(a),e.animate({resolution:s,center:a,duration:this.duration_,easing:Xn})}var ss=function(t){function e(e){var i=e||{},r=i.condition?i.condition:zo;t.call(this,{condition:r,className:i.className||"ol-dragzoom",onBoxEnd:os}),this.duration_=void 0!==i.duration?i.duration:200,this.out_=void 0!==i.out&&i.out}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e}(ns),as={LEFT:37,UP:38,RIGHT:39,DOWN:40};function hs(t){var e=!1;if(t.type==M.KEYDOWN){var i=t.originalEvent.keyCode;if(this.condition_(t)&&(i==as.DOWN||i==as.LEFT||i==as.RIGHT||i==as.UP)){var r=t.map.getView(),n=r.getResolution()*this.pixelDelta_,o=0,s=0;i==as.DOWN?s=-n:i==as.LEFT?o=-n:i==as.RIGHT?o=n:s=n;var a=[o,s];$i(a,r.getRotation()),function(t,e,i){var r=t.getCenter();if(r){var n=t.constrainCenter([r[0]+e[0],r[1]+e[1]]);i?t.animate({duration:i,easing:Wn,center:n}):t.setCenter(n)}}(r,a,this.duration_),t.preventDefault(),e=!0}}return!e}var ls=function(t){function e(e){t.call(this,{handleEvent:hs});var i=e||{};this.defaultCondition_=function(t){return Xo(t)&&Wo(t)},this.condition_=void 0!==i.condition?i.condition:this.defaultCondition_,this.duration_=void 0!==i.duration?i.duration:100,this.pixelDelta_=void 0!==i.pixelDelta?i.pixelDelta:128}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e}(Fo);function us(t){var e=!1;if(t.type==M.KEYDOWN||t.type==M.KEYPRESS){var i=t.originalEvent.charCode;if(this.condition_(t)&&(i=="+".charCodeAt(0)||i=="-".charCodeAt(0))){var r=t.map,n=i=="+".charCodeAt(0)?this.delta_:-this.delta_;bo(r.getView(),n,void 0,this.duration_),t.preventDefault(),e=!0}}return!e}var ps=function(t){function e(e){t.call(this,{handleEvent:us});var i=e||{};this.condition_=i.condition?i.condition:Wo,this.delta_=i.delta?i.delta:1,this.duration_=void 0!==i.duration?i.duration:100}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e}(Fo),cs="trackpad",ds="wheel",fs=function(t){function e(e){var i=e||{};t.call(this,i),this.delta_=0,this.duration_=void 0!==i.duration?i.duration:250,this.timeout_=void 0!==i.timeout?i.timeout:80,this.useAnchor_=void 0===i.useAnchor||i.useAnchor,this.constrainResolution_=i.constrainResolution||!1,this.condition_=i.condition?i.condition:jo,this.lastAnchor_=null,this.startTime_=void 0,this.timeoutId_,this.mode_=void 0,this.trackpadEventGap_=400,this.trackpadTimeoutId_,this.trackpadDeltaPerZoom_=300,this.trackpadZoomBuffer_=1.5}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.decrementInteractingHint_=function(){this.trackpadTimeoutId_=void 0,this.getMap().getView().setHint(jn,-1)},e.prototype.handleEvent=function(t){if(!this.condition_(t))return!0;var e=t.type;if(e!==M.WHEEL&&e!==M.MOUSEWHEEL)return!0;t.preventDefault();var i,r=t.map,n=t.originalEvent;if(this.useAnchor_&&(this.lastAnchor_=t.coordinate),t.type==M.WHEEL?(i=n.deltaY,Fi&&n.deltaMode===WheelEvent.DOM_DELTA_PIXEL&&(i/=Di),n.deltaMode===WheelEvent.DOM_DELTA_LINE&&(i*=40)):t.type==M.MOUSEWHEEL&&(i=-n.wheelDeltaY,Ai&&(i/=3)),0===i)return!1;var o=Date.now();if(void 0===this.startTime_&&(this.startTime_=o),(!this.mode_||o-this.startTime_>this.trackpadEventGap_)&&(this.mode_=Math.abs(i)<4?cs:ds),this.mode_===cs){var s=r.getView();this.trackpadTimeoutId_?clearTimeout(this.trackpadTimeoutId_):s.setHint(jn,1),this.trackpadTimeoutId_=setTimeout(this.decrementInteractingHint_.bind(this),this.trackpadEventGap_);var a=s.getResolution()*Math.pow(2,i/this.trackpadDeltaPerZoom_),h=s.getMinResolution(),l=s.getMaxResolution(),u=0;if(al&&(a=Math.min(a,l*this.trackpadZoomBuffer_),u=-1),this.lastAnchor_){var p=s.calculateCenterZoom(a,this.lastAnchor_);s.setCenter(s.constrainCenter(p))}return s.setResolution(a),0===u&&this.constrainResolution_&&s.animate({resolution:s.constrainResolution(a,i>0?-1:1),easing:Xn,anchor:this.lastAnchor_,duration:this.duration_}),u>0?s.animate({resolution:h,easing:Xn,anchor:this.lastAnchor_,duration:500}):u<0&&s.animate({resolution:l,easing:Xn,anchor:this.lastAnchor_,duration:500}),this.startTime_=o,!1}this.delta_+=i;var c=Math.max(this.timeout_-(o-this.startTime_),0);return clearTimeout(this.timeoutId_),this.timeoutId_=setTimeout(this.handleWheelZoom_.bind(this,r),c),!1},e.prototype.handleWheelZoom_=function(t){var e=t.getView();e.getAnimating()&&e.cancelAnimations();bo(e,-kt(this.delta_,-1,1),this.lastAnchor_,this.duration_),this.mode_=void 0,this.delta_=0,this.lastAnchor_=null,this.startTime_=void 0,this.timeoutId_=void 0},e.prototype.setMouseAnchor=function(t){this.useAnchor_=t,t||(this.lastAnchor_=null)},e}(Fo),_s=function(t){function e(e){var i=e||{},r=i;r.stopDown||(r.stopDown=w),t.call(this,r),this.anchor_=null,this.lastAngle_=void 0,this.rotating_=!1,this.rotationDelta_=0,this.threshold_=void 0!==i.threshold?i.threshold:.3,this.duration_=void 0!==i.duration?i.duration:250}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.handleDragEvent=function(t){var e=0,i=this.targetPointers[0],r=this.targetPointers[1],n=Math.atan2(r.clientY-i.clientY,r.clientX-i.clientX);if(void 0!==this.lastAngle_){var o=n-this.lastAngle_;this.rotationDelta_+=o,!this.rotating_&&Math.abs(this.rotationDelta_)>this.threshold_&&(this.rotating_=!0),e=o}this.lastAngle_=n;var s=t.map,a=s.getView();if(a.getConstraints().rotation!==Gn){var h=s.getViewport().getBoundingClientRect(),l=Zo(this.targetPointers);if(l[0]-=h.left,l[1]-=h.top,this.anchor_=s.getCoordinateFromPixel(l),this.rotating_){var u=a.getRotation();s.render(),Oo(a,u+e,this.anchor_)}}},e.prototype.handleUpEvent=function(t){if(this.targetPointers.length<2){var e=t.map.getView();if(e.setHint(jn,-1),this.rotating_)Lo(e,e.getRotation(),this.anchor_,this.duration_);return!1}return!0},e.prototype.handleDownEvent=function(t){if(this.targetPointers.length>=2){var e=t.map;return this.anchor_=null,this.lastAngle_=void 0,this.rotating_=!1,this.rotationDelta_=0,this.handlingDownUpSequence||e.getView().setHint(jn,1),!0}return!1},e}(qo),gs=function(t){function e(e){var i=e||{},r=i;r.stopDown||(r.stopDown=w),t.call(this,r),this.constrainResolution_=i.constrainResolution||!1,this.anchor_=null,this.duration_=void 0!==i.duration?i.duration:400,this.lastDistance_=void 0,this.lastScaleDelta_=1}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.handleDragEvent=function(t){var e=1,i=this.targetPointers[0],r=this.targetPointers[1],n=i.clientX-r.clientX,o=i.clientY-r.clientY,s=Math.sqrt(n*n+o*o);void 0!==this.lastDistance_&&(e=this.lastDistance_/s),this.lastDistance_=s;var a=t.map,h=a.getView(),l=h.getResolution(),u=h.getMaxResolution(),p=h.getMinResolution(),c=l*e;c>u?(e=u/l,c=u):ce.getMaxResolution()){var r=this.lastScaleDelta_-1;Po(e,i,this.anchor_,this.duration_,r)}return!1}return!0},e.prototype.handleDownEvent=function(t){if(this.targetPointers.length>=2){var e=t.map;return this.anchor_=null,this.lastDistance_=void 0,this.lastScaleDelta_=1,this.handlingDownUpSequence||e.getView().setHint(jn,1),!0}return!1},e}(qo);function ys(t){var e=t||{},i=new U,r=new br(-.005,.05,100);return(void 0===e.altShiftDragRotate||e.altShiftDragRotate)&&i.push(new Qo),(void 0===e.doubleClickZoom||e.doubleClickZoom)&&i.push(new No({delta:e.zoomDelta,duration:e.zoomDuration})),(void 0===e.dragPan||e.dragPan)&&i.push(new Jo({condition:e.onFocusOnly?ko:void 0,kinetic:r})),(void 0===e.pinchRotate||e.pinchRotate)&&i.push(new _s),(void 0===e.pinchZoom||e.pinchZoom)&&i.push(new gs({constrainResolution:e.constrainResolution,duration:e.zoomDuration})),(void 0===e.keyboard||e.keyboard)&&(i.push(new ls),i.push(new ps({delta:e.zoomDelta,duration:e.zoomDuration}))),(void 0===e.mouseWheelZoom||e.mouseWheelZoom)&&i.push(new fs({condition:e.onFocusOnly?ko:void 0,constrainResolution:e.constrainResolution,duration:e.zoomDuration})),(void 0===e.shiftDragZoom||e.shiftDragZoom)&&i.push(new ss({duration:e.zoomDuration})),i}var vs=.5,ms=function(t){function e(e,i,r,n){t.call(this),this.extent=e,this.pixelRatio_=r,this.resolution=i,this.state=n}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.changed=function(){this.dispatchEvent(M.CHANGE)},e.prototype.getExtent=function(){return this.extent},e.prototype.getImage=function(){return r()},e.prototype.getPixelRatio=function(){return this.pixelRatio_},e.prototype.getResolution=function(){return this.resolution},e.prototype.getState=function(){return this.state},e.prototype.load=function(){r()},e}(b),xs={IDLE:0,LOADING:1,LOADED:2,ERROR:3},Es=function(t){function e(e,i,r,n,o){var s=void 0!==o?xs.IDLE:xs.LOADED;t.call(this,e,i,r,s),this.loader_=void 0!==o?o:null,this.canvas_=n,this.error_=null}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.getError=function(){return this.error_},e.prototype.handleLoad_=function(t){t?(this.error_=t,this.state=xs.ERROR):this.state=xs.LOADED,this.changed()},e.prototype.load=function(){this.state==xs.IDLE&&(this.state=xs.LOADING,this.changed(),this.loader_(this.handleLoad_.bind(this)))},e.prototype.getImage=function(){return this.canvas_},e}(ms),Ss={IMAGE:"IMAGE",TILE:"TILE",VECTOR_TILE:"VECTOR_TILE",VECTOR:"VECTOR"},Ts={IMAGE:"image",VECTOR:"vector"},Cs=function(t){function e(e,i,r,n,o){t.call(this,e),this.vectorContext=i,this.frameState=r,this.context=n,this.glContext=o}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e}(P),Rs=function(t){function e(e){t.call(this),this.highWaterMark=void 0!==e?e:2048,this.count_=0,this.entries_={},this.oldest_=null,this.newest_=null}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.canExpireCache=function(){return this.getCount()>this.highWaterMark},e.prototype.clear=function(){this.count_=0,this.entries_={},this.oldest_=null,this.newest_=null,this.dispatchEvent(M.CLEAR)},e.prototype.containsKey=function(t){return this.entries_.hasOwnProperty(t)},e.prototype.forEach=function(t,e){for(var i=this.oldest_;i;)t.call(e,i.value_,i.key_,this),i=i.newer},e.prototype.get=function(t){var e=this.entries_[t];return Y(void 0!==e,15),e===this.newest_?e.value_:(e===this.oldest_?(this.oldest_=this.oldest_.newer,this.oldest_.older=null):(e.newer.older=e.older,e.older.newer=e.newer),e.newer=null,e.older=this.newest_,this.newest_.newer=e,this.newest_=e,e.value_)},e.prototype.remove=function(t){var e=this.entries_[t];return Y(void 0!==e,15),e===this.newest_?(this.newest_=e.older,this.newest_&&(this.newest_.newer=null)):e===this.oldest_?(this.oldest_=e.newer,this.oldest_&&(this.oldest_.older=null)):(e.newer.older=e.older,e.older.newer=e.newer),delete this.entries_[t],--this.count_,e.value_},e.prototype.getCount=function(){return this.count_},e.prototype.getKeys=function(){var t,e=new Array(this.count_),i=0;for(t=this.newest_;t;t=t.older)e[i++]=t.key_;return e},e.prototype.getValues=function(){var t,e=new Array(this.count_),i=0;for(t=this.newest_;t;t=t.older)e[i++]=t.value_;return e},e.prototype.peekLast=function(){return this.oldest_.value_},e.prototype.peekLastKey=function(){return this.oldest_.key_},e.prototype.peekFirstKey=function(){return this.newest_.key_},e.prototype.pop=function(){var t=this.oldest_;return delete this.entries_[t.key_],t.newer&&(t.newer.older=null),this.oldest_=t.newer,this.oldest_||(this.newest_=null),--this.count_,t.value_},e.prototype.replace=function(t,e){this.get(t),this.entries_[t].value_=e},e.prototype.set=function(t,e){Y(!(t in this.entries_),16);var i={key_:t,newer:null,older:this.newest_,value_:e};this.newest_?this.newest_.newer=i:this.oldest_=i,this.newest_=i,this.entries_[t]=i,++this.count_},e.prototype.setSize=function(t){this.highWaterMark=t},e.prototype.prune=function(){for(;this.canExpireCache();)this.pop()},e}(b),ws=[0,0,0,1],Is=[],Ls=[0,0,0,1],Os=[0,0,0,0],Ps=new Rs,bs={},Ms=null,Fs={},As=function(){var t,e,i=60,r=bs,n="32px ",o=["monospace","serif"],s=o.length,a="wmytzilWMYTZIL@#/&?$%10";function h(t){for(var i=Ns(),r=100;r<=700;r+=300){for(var h=r+" ",l=!0,u=0;uthis.maxCacheSize_){var t=0;for(var e in this.cache_){var i=this.cache_[e];0!=(3&t++)||i.hasListener()||(delete this.cache_[e],--this.cacheSize_)}}},zs.prototype.get=function(t,e,i){var r=Ws(t,e,i);return r in this.cache_?this.cache_[r]:null},zs.prototype.set=function(t,e,i,r){var n=Ws(t,e,i);this.cache_[n]=r,++this.cacheSize_},zs.prototype.setSize=function(t){this.maxCacheSize_=t,this.expire()};var Ks=new zs;function Hs(t,e){Ks.expire()}function Zs(t,e){return t.zIndex-e.zIndex}var qs=function(t){function e(e){t.call(this),this.map_=e,this.layerRenderers_={},this.layerRendererListeners_={},this.layerRendererConstructors_=[]}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.dispatchRenderEvent=function(t,e){r()},e.prototype.registerLayerRenderers=function(t){this.layerRendererConstructors_.push.apply(this.layerRendererConstructors_,t)},e.prototype.calculateMatrices2D=function(t){var e=t.viewState,i=t.coordinateToPixelTransform,r=t.pixelToCoordinateTransform;Ye(i,t.size[0]/2,t.size[1]/2,1/e.resolution,-1/e.resolution,-e.rotation,-e.center[0],-e.center[1]),Be(Ge(r,i))},e.prototype.removeLayerRenderers=function(){for(var t in this.layerRenderers_)this.removeLayerRendererByKey_(t).dispose()},e.prototype.forEachFeatureAtCoordinate=function(t,e,i,r,n,s,a){var h,l=e.viewState,u=l.resolution;function p(t,i){var s=e.layerStates[o(i)].managed;if(!(o(t)in e.skippedFeatureUids)||s)return r.call(n,t,s?i:null)}var c=l.projection,d=t;if(c.canWrapX()){var f=c.getExtent(),_=Ot(f),g=t[0];if(gf[2])d=[g+_*Math.ceil((f[0]-g)/_),t[1]]}var y,v=e.layerStatesArray;for(y=v.length-1;y>=0;--y){var m=v[y],x=m.layer;if(mo(m,u)&&s.call(a,x)){var E=this.getLayerRenderer(x),S=x.getSource();if(S&&(h=E.forEachFeatureAtCoordinate(S.getWrapX()?d:t,e,i,p)),h)return h}}},e.prototype.forEachLayerAtPixel=function(t,e,i,n,o,s,a){return r()},e.prototype.hasFeatureAtCoordinate=function(t,e,i,r,n){return void 0!==this.forEachFeatureAtCoordinate(t,e,i,R,this,r,n)},e.prototype.getLayerRenderer=function(t){var e=o(t);if(e in this.layerRenderers_)return this.layerRenderers_[e];for(var i,r=0,n=this.layerRendererConstructors_.length;r=0;--h){var d=u[h],f=d.layer;if(mo(d,l)&&o.call(s,f))if(a=this.getLayerRenderer(f).forEachLayerAtCoordinate(c,e,i,r,n))return a}},e.prototype.registerLayerRenderers=function(e){t.prototype.registerLayerRenderers.call(this,e);for(var i=0,r=e.length;i=.5&&p>=.5&&i.drawImage(r,0,0,+r.width,+r.height,Math.round(h),Math.round(l),Math.round(u),Math.round(p)),i.globalAlpha=a,o&&i.restore()}this.postCompose(i,t,e)},e.prototype.getImage=function(){return r()},e.prototype.getImageTransform=function(){return r()},e.prototype.forEachLayerAtCoordinate=function(t,e,i,r,n){if(this.getImage()){var o=De(this.coordinateToCanvasPixelTransform,t.slice());tr(o,e.viewState.resolution/this.renderedResolution),this.hitCanvasContext_||(this.hitCanvasContext_=Jn(1,1)),this.hitCanvasContext_.clearRect(0,0,1,1),this.hitCanvasContext_.drawImage(this.getImage(),o[0],o[1],1,1,0,0,1,1);var s=this.hitCanvasContext_.getImageData(0,0,1,1).data;return s[3]>0?r.call(n,this.getLayer(),s):void 0}},e}(ta),ia=function(t){function e(i){if(t.call(this,i),this.image_=null,this.imageTransform_=[1,0,0,1,0,0],this.skippedFeatures_=[],this.vectorRenderer_=null,i.getType()===Ss.VECTOR)for(var r=0,n=Js.length;rthis.maxX&&(this.maxX=t.maxX),t.minYthis.maxY&&(this.maxY=t.maxY)},na.prototype.getHeight=function(){return this.maxY-this.minY+1},na.prototype.getSize=function(){return[this.getWidth(),this.getHeight()]},na.prototype.getWidth=function(){return this.maxX-this.minX+1},na.prototype.intersects=function(t){return this.minX<=t.maxX&&this.maxX>=t.minX&&this.minY<=t.maxY&&this.maxY>=t.minY};var sa=na,aa=function(t){function e(e,i){t.call(this,e),this.context=i?null:Jn(),this.oversampling_,this.renderedExtent_=null,this.renderedRevision,this.renderedTiles=[],this.newTiles_=!1,this.tmpExtent=[1/0,1/0,-1/0,-1/0],this.tmpTileRange_=new sa(0,0,0,0),this.imageTransform_=[1,0,0,1,0,0],this.zDirection=0}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.isDrawableTile_=function(t){var e=this.getLayer(),i=t.getState(),r=e.getUseInterimTilesOnError();return i==On.LOADED||i==On.EMPTY||i==On.ERROR&&!r},e.prototype.getTile=function(t,e,i,r,n){var o=this.getLayer(),s=o.getSource().getTile(t,e,i,r,n);return s.getState()==On.ERROR&&(o.getUseInterimTilesOnError()?o.getPreload()>0&&(this.newTiles_=!0):s.setState(On.LOADED)),this.isDrawableTile_(s)||(s=s.getInterimTile()),s},e.prototype.prepareFrame=function(t,e){var i=t.pixelRatio,r=t.size,n=t.viewState,s=n.projection,a=n.resolution,h=n.center,l=this.getLayer(),u=l.getSource(),p=u.getRevision(),c=u.getTileGridForProjection(s),d=c.getZForResolution(a,this.zDirection),f=c.getResolution(d),_=Math.round(a/f)||1,g=t.extent;if(void 0!==e.extent&&(g=wt(g,e.extent)),bt(g))return!1;var y=c.getTileRangeForExtentAndZ(g,d),v=c.getTileRangeExtent(d,y),m=u.getTilePixelRatio(i),x={};x[d]={};var E,S,T,C=this.createLoadedTileFinder(u,s,x),R=t.viewHints,w=R[kn]||R[jn],I=this.tmpExtent,L=this.tmpTileRange_;for(this.newTiles_=!1,S=y.minX;S<=y.maxX;++S)for(T=y.minY;T<=y.maxY;++T)if(!(Date.now()-t.time>16&&w)){if(E=this.getTile(d,S,T,i,s),this.isDrawableTile_(E)){var O=o(this);if(E.getState()==On.LOADED){x[d][E.tileCoord.toString()]=E;var P=E.inTransition(O);this.newTiles_||!P&&-1!==this.renderedTiles.indexOf(E)||(this.newTiles_=!0)}if(1===E.getAlpha(O,t.time))continue}var b=c.getTileCoordChildTileRange(E.tileCoord,L,I),M=!1;b&&(M=C(d+1,b)),M||c.forEachTileCoordParentTileRange(E.tileCoord,C,null,L,I)}var F=f*i/m*_;if(!(this.renderedResolution&&Date.now()-t.time>16&&w)&&(this.newTiles_||!this.renderedExtent_||!ot(this.renderedExtent_,g)||this.renderedRevision!=p||_!=this.oversampling_||!w&&F!=this.renderedResolution)){var A=this.context;if(A){var N=u.getTilePixelSize(d,i,s),G=Math.round(y.getWidth()*N[0]/_),D=Math.round(y.getHeight()*N[1]/_),k=A.canvas;k.width!=G||k.height!=D?(this.oversampling_=_,k.width=G,k.height=D):(this.renderedExtent_&&!dt(v,this.renderedExtent_)&&A.clearRect(0,0,G,D),_=this.oversampling_)}this.renderedTiles.length=0;var j,U,Y,B,V,X,z,W,K,H,Z=Object.keys(x).map(Number);for(Z.sort(function(t,e){return t===d?1:e===d?-1:t>e?1:t0},e.prototype.drawTileImage=function(t,e,i,r,n,s,a,h,l){var u=this.getTileImage(t);if(u){var p=o(this),c=l?t.getAlpha(p,e.time):1,d=this.getLayer().getSource();1!==c||d.getOpaque(e.viewState.projection)||this.context.clearRect(r,n,s,a);var f=c!==this.context.globalAlpha;f&&(this.context.save(),this.context.globalAlpha=c),this.context.drawImage(u,h,h,u.width-2*h,u.height-2*h,r,n,s,a),f&&this.context.restore(),1!==c?e.animate=!0:l&&t.endTransition(p)}},e.prototype.getImage=function(){var t=this.context;return t?t.canvas:null},e.prototype.getImageTransform=function(){return this.imageTransform_},e.prototype.getTileImage=function(t){return t.getImage()},e}(ea);aa.handles=function(t){return t.getType()===Ss.TILE},aa.create=function(t,e){return new aa(e)},aa.prototype.getLayer;var ha=aa,la=i(0),ua=i.n(la),pa=function(){};pa.prototype.getReplay=function(t,e){return r()},pa.prototype.isEmpty=function(){return r()},pa.prototype.addDeclutter=function(t){return r()};var ca=pa,da={CIRCLE:"Circle",DEFAULT:"Default",IMAGE:"Image",LINE_STRING:"LineString",POLYGON:"Polygon",TEXT:"Text"};function fa(t,e,i,r,n,o,s,a){for(var h,l,u,p=[],c=t[e]>t[i-r],d=n.length,f=t[e],_=t[e+1],g=t[e+=r],y=t[e+1],v=0,m=Math.sqrt(Math.pow(g-f,2)+Math.pow(y-_,2)),x="",E=0,S=0;S0?-Math.PI:Math.PI),void 0!==u){var L=I-u;if(L+=L>Math.PI?-2*Math.PI:L<-Math.PI?2*Math.PI:0,Math.abs(L)>a)return null}var O=w/m,P=zt(f,g,O),b=zt(_,y,O);u==I?(c&&(h[0]=P,h[1]=b,h[2]=C/2),h[4]=x):(E=C,h=[P,b,C/2,I,x=T],c?p.unshift(h):p.push(h),u=I),s+=C}return p}var _a={BEGIN_GEOMETRY:0,BEGIN_PATH:1,CIRCLE:2,CLOSE_PATH:3,CUSTOM:4,DRAW_CHARS:5,DRAW_IMAGE:6,END_GEOMETRY:7,FILL:8,MOVE_TO_LINE_TO:9,SET_FILL_STYLE:10,SET_STROKE_STYLE:11,STROKE:12},ga=[_a.FILL],ya=[_a.STROKE],va=[_a.BEGIN_PATH],ma=[_a.CLOSE_PATH],xa=_a,Ea=[da.POLYGON,da.CIRCLE,da.LINE_STRING,da.IMAGE,da.TEXT,da.DEFAULT],Sa={left:0,end:0,center:.5,right:1,start:1,top:0,middle:.5,hanging:.2,alphabetic:.8,ideographic:.8,bottom:1},Ta=[1/0,1/0,-1/0,-1/0],Ca=[1,0,0,1,0,0],Ra=function(t){function e(e,i,r,n,o,s){t.call(this),this.declutterTree=s,this.tolerance=e,this.maxExtent=i,this.overlaps=o,this.pixelRatio=n,this.maxLineWidth=0,this.resolution=r,this.alignFill_,this.beginGeometryInstruction1_=null,this.beginGeometryInstruction2_=null,this.bufferedMaxExtent_=null,this.instructions=[],this.coordinates=[],this.coordinateCache_={},this.renderedTransform_=[1,0,0,1,0,0],this.hitDetectionInstructions=[],this.pixelCoordinates_=null,this.state={},this.viewRotation_=0}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.replayTextBackground_=function(t,e,i,r,n,o,s){t.beginPath(),t.moveTo.apply(t,e),t.lineTo.apply(t,i),t.lineTo.apply(t,r),t.lineTo.apply(t,n),t.lineTo.apply(t,e),o&&(this.alignFill_=o[2],this.fill_(t)),s&&(this.setStrokeStyle_(t,s),t.stroke())},e.prototype.replayImage_=function(t,e,i,r,n,o,s,a,h,l,u,p,c,d,f,_,g,y){var v=g||y;e-=n*=c,i-=o*=c;var m,x,E,S,T=f+l>r.width?r.width-l:f,C=a+u>r.height?r.height-u:a,R=_[3]+T*c+_[1],w=_[0]+C*c+_[2],I=e-_[3],L=i-_[0];(v||0!==p)&&(m=[I,L],x=[I+R,L],E=[I+R,L+w],S=[I,L+w]);var O=null;if(0!==p){var P=e+n,b=i+o;O=Ye(Ca,P,b,1,1,p,-P,-b),ut(Ta),_t(Ta,De(Ca,m)),_t(Ta,De(Ca,x)),_t(Ta,De(Ca,E)),_t(Ta,De(Ca,S))}else lt(I,L,I+R,L+w,Ta);var M=t.canvas,F=y?y[2]*c/2:0,A=Ta[0]-F<=M.width&&Ta[2]+F>=0&&Ta[1]-F<=M.height&&Ta[3]+F>=0;if(d&&(e=Math.round(e),i=Math.round(i)),s){if(!A&&1==s[4])return;ft(s,Ta);var N=A?[t,O?O.slice(0):null,h,r,l,u,T,C,e,i,c]:null;N&&v&&N.push(g,y,m,x,E,S),s.push(N)}else A&&(v&&this.replayTextBackground_(t,m,x,E,S,g,y),Us(t,O,h,r,l,u,T,C,e,i,c))},e.prototype.applyPixelRatio=function(t){var e=this.pixelRatio;return 1==e?t:t.map(function(t){return t*e})},e.prototype.appendFlatCoordinates=function(t,e,i,r,n,o){var s=this.coordinates.length,a=this.getBufferedMaxExtent();o&&(e+=r);var h,l,u,p=[t[e],t[e+1]],c=[NaN,NaN],d=!0;for(h=e+r;h5){var i=t[4];if(1==i||i==t.length-5){var r={minX:t[0],minY:t[1],maxX:t[2],maxY:t[3],value:e};if(!this.declutterTree.collides(r)){this.declutterTree.insert(r);for(var n=5,o=t.length;n11&&this.replayTextBackground_(s[0],s[13],s[14],s[15],s[16],s[11],s[12]),Us.apply(void 0,s))}}t.length=5,ut(t)}}},e.prototype.replay_=function(t,e,i,r,n,s,a){var h;this.pixelCoordinates_&&Z(e,this.renderedTransform_)?h=this.pixelCoordinates_:(this.pixelCoordinates_||(this.pixelCoordinates_=[]),h=Gt(this.coordinates,0,this.coordinates.length,2,e,this.pixelCoordinates_),Ge(this.renderedTransform_,e));for(var l,u,p,c,f,_,g,y,v,m,x,E,S=!d(i),T=0,C=r.length,R=0,w=0,I=0,L=null,O=null,P=this.coordinateCache_,b=this.viewRotation_,M={context:t,pixelRatio:this.pixelRatio,resolution:this.resolution,rotation:b},F=this.instructions!=r||this.overlaps?0:200;TF&&(this.fill_(t),w=0),I>F&&(t.stroke(),I=0),w||I||(t.beginPath(),c=f=NaN),++T;break;case xa.CIRCLE:var N=h[R=A[1]],G=h[R+1],D=h[R+2]-N,k=h[R+3]-G,j=Math.sqrt(D*D+k*k);t.moveTo(N+j,G),t.arc(N,G,j,0,2*Math.PI,!0),++T;break;case xa.CLOSE_PATH:t.closePath(),++T;break;case xa.CUSTOM:R=A[1],l=A[2];var U=A[3],Y=A[4],B=6==A.length?A[5]:void 0;M.geometry=U,M.feature=m,T in P||(P[T]=[]);var V=P[T];B?B(h,R,l,2,V):(V[0]=h[R],V[1]=h[R+1],V.length=2),Y(V,M),++T;break;case xa.DRAW_IMAGE:R=A[1],l=A[2],v=A[3],u=A[4],p=A[5],y=s?null:A[6];var X=A[7],z=A[8],W=A[9],K=A[10],H=A[11],q=A[12],J=A[13],Q=A[14],$=void 0,tt=void 0,et=void 0;for(A.length>16?($=A[15],tt=A[16],et=A[17]):($=Os,tt=et=!1),H&&(q+=b);Rthis.maxLineWidth&&(this.maxLineWidth=i.lineWidth,this.bufferedMaxExtent_=null)}else i.strokeStyle=void 0,i.lineCap=void 0,i.lineDash=null,i.lineDashOffset=void 0,i.lineJoin=void 0,i.lineWidth=void 0,i.miterLimit=void 0},e.prototype.createFill=function(t,e){var i=t.fillStyle,r=[xa.SET_FILL_STYLE,i];return"string"!=typeof i&&r.push(!0),r},e.prototype.applyStroke=function(t){this.instructions.push(this.createStroke(t))},e.prototype.createStroke=function(t){return[xa.SET_STROKE_STYLE,t.strokeStyle,t.lineWidth*this.pixelRatio,t.lineCap,t.lineJoin,t.miterLimit,this.applyPixelRatio(t.lineDash),t.lineDashOffset*this.pixelRatio]},e.prototype.updateFillStyle=function(t,e,i){var r=t.fillStyle;"string"==typeof r&&t.currentFillStyle==r||(void 0!==r&&this.instructions.push(e.call(this,t,i)),t.currentFillStyle=r)},e.prototype.updateStrokeStyle=function(t,e){var i=t.strokeStyle,r=t.lineCap,n=t.lineDash,o=t.lineDashOffset,s=t.lineJoin,a=t.lineWidth,h=t.miterLimit;(t.currentStrokeStyle!=i||t.currentLineCap!=r||n!=t.currentLineDash&&!Z(t.currentLineDash,n)||t.currentLineDashOffset!=o||t.currentLineJoin!=s||t.currentLineWidth!=a||t.currentMiterLimit!=h)&&(void 0!==i&&e.call(this,t),t.currentStrokeStyle=i,t.currentLineCap=r,t.currentLineDash=n,t.currentLineDashOffset=o,t.currentLineJoin=s,t.currentLineWidth=a,t.currentMiterLimit=h)},e.prototype.endGeometry=function(t,e){this.beginGeometryInstruction1_[2]=this.instructions.length,this.beginGeometryInstruction1_=null,this.beginGeometryInstruction2_[2]=this.hitDetectionInstructions.length,this.beginGeometryInstruction2_=null;var i=[xa.END_GEOMETRY,e];this.instructions.push(i),this.hitDetectionInstructions.push(i)},e.prototype.getBufferedMaxExtent=function(){if(!this.bufferedMaxExtent_&&(this.bufferedMaxExtent_=it(this.maxExtent),this.maxLineWidth>0)){var t=this.resolution*(this.maxLineWidth+1)/2;et(this.bufferedMaxExtent_,t,this.bufferedMaxExtent_)}return this.bufferedMaxExtent_},e}(Vs),wa=function(t){function e(e,i,r,n,o,s){t.call(this,e,i,r,n,o,s),this.declutterGroup_=null,this.hitDetectionImage_=null,this.image_=null,this.anchorX_=void 0,this.anchorY_=void 0,this.height_=void 0,this.opacity_=void 0,this.originX_=void 0,this.originY_=void 0,this.rotateWithView_=void 0,this.rotation_=void 0,this.scale_=void 0,this.width_=void 0}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.drawCoordinates_=function(t,e,i,r){return this.appendFlatCoordinates(t,e,i,r,!1,!1)},e.prototype.drawPoint=function(t,e){if(this.image_){this.beginGeometry(t,e);var i=t.getFlatCoordinates(),r=t.getStride(),n=this.coordinates.length,o=this.drawCoordinates_(i,0,i.length,r);this.instructions.push([xa.DRAW_IMAGE,n,o,this.image_,this.anchorX_,this.anchorY_,this.declutterGroup_,this.height_,this.opacity_,this.originX_,this.originY_,this.rotateWithView_,this.rotation_,this.scale_*this.pixelRatio,this.width_]),this.hitDetectionInstructions.push([xa.DRAW_IMAGE,n,o,this.hitDetectionImage_,this.anchorX_,this.anchorY_,this.declutterGroup_,this.height_,this.opacity_,this.originX_,this.originY_,this.rotateWithView_,this.rotation_,this.scale_,this.width_]),this.endGeometry(t,e)}},e.prototype.drawMultiPoint=function(t,e){if(this.image_){this.beginGeometry(t,e);var i=t.getFlatCoordinates(),r=t.getStride(),n=this.coordinates.length,o=this.drawCoordinates_(i,0,i.length,r);this.instructions.push([xa.DRAW_IMAGE,n,o,this.image_,this.anchorX_,this.anchorY_,this.declutterGroup_,this.height_,this.opacity_,this.originX_,this.originY_,this.rotateWithView_,this.rotation_,this.scale_*this.pixelRatio,this.width_]),this.hitDetectionInstructions.push([xa.DRAW_IMAGE,n,o,this.hitDetectionImage_,this.anchorX_,this.anchorY_,this.declutterGroup_,this.height_,this.opacity_,this.originX_,this.originY_,this.rotateWithView_,this.rotation_,this.scale_,this.width_]),this.endGeometry(t,e)}},e.prototype.finish=function(){this.reverseHitDetectionInstructions(),this.anchorX_=void 0,this.anchorY_=void 0,this.hitDetectionImage_=null,this.image_=null,this.height_=void 0,this.scale_=void 0,this.opacity_=void 0,this.originX_=void 0,this.originY_=void 0,this.rotateWithView_=void 0,this.rotation_=void 0,this.width_=void 0},e.prototype.setImageStyle=function(t,e){var i=t.getAnchor(),r=t.getSize(),n=t.getHitDetectionImage(1),o=t.getImage(1),s=t.getOrigin();this.anchorX_=i[0],this.anchorY_=i[1],this.declutterGroup_=e,this.hitDetectionImage_=n,this.image_=o,this.height_=r[1],this.opacity_=t.getOpacity(),this.originX_=s[0],this.originY_=s[1],this.rotateWithView_=t.getRotateWithView(),this.rotation_=t.getRotation(),this.scale_=t.getScale(),this.width_=r[0]},e}(Ra),Ia=function(t){function e(e,i,r,n,o,s){t.call(this,e,i,r,n,o,s)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.drawFlatCoordinates_=function(t,e,i,r){var n=this.coordinates.length,o=this.appendFlatCoordinates(t,e,i,r,!1,!1),s=[xa.MOVE_TO_LINE_TO,n,o];return this.instructions.push(s),this.hitDetectionInstructions.push(s),i},e.prototype.drawLineString=function(t,e){var i=this.state,r=i.strokeStyle,n=i.lineWidth;if(void 0!==r&&void 0!==n){this.updateStrokeStyle(i,this.applyStroke),this.beginGeometry(t,e),this.hitDetectionInstructions.push([xa.SET_STROKE_STYLE,i.strokeStyle,i.lineWidth,i.lineCap,i.lineJoin,i.miterLimit,i.lineDash,i.lineDashOffset],va);var o=t.getFlatCoordinates(),s=t.getStride();this.drawFlatCoordinates_(o,0,o.length,s),this.hitDetectionInstructions.push(ya),this.endGeometry(t,e)}},e.prototype.drawMultiLineString=function(t,e){var i=this.state,r=i.strokeStyle,n=i.lineWidth;if(void 0!==r&&void 0!==n){this.updateStrokeStyle(i,this.applyStroke),this.beginGeometry(t,e),this.hitDetectionInstructions.push([xa.SET_STROKE_STYLE,i.strokeStyle,i.lineWidth,i.lineCap,i.lineJoin,i.miterLimit,i.lineDash,i.lineDashOffset],va);for(var o=t.getEnds(),s=t.getFlatCoordinates(),a=t.getStride(),h=0,l=0,u=o.length;lt&&(y>g&&(g=y,f=v,_=o),y=0,v=o-n)),s=a,u=c,p=d),h=m,l=x}return(y+=a)>g?[v,o]:[f,_]}var Pa={Circle:La,Default:Ra,Image:wa,LineString:Ia,Polygon:La,Text:function(t){function e(e,i,r,n,o,s){t.call(this,e,i,r,n,o,s),this.declutterGroup_,this.labels_=null,this.text_="",this.textOffsetX_=0,this.textOffsetY_=0,this.textRotateWithView_=void 0,this.textRotation_=0,this.textFillState_=null,this.fillStates={},this.textStrokeState_=null,this.strokeStates={},this.textState_={},this.textStates={},this.textKey_="",this.fillKey_="",this.strokeKey_="",this.widths_={},Ps.prune()}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.drawText=function(t,e){var i=this.textFillState_,r=this.textStrokeState_,n=this.textState_;if(""!==this.text_&&n&&(i||r)){var o,s,a=this.coordinates.length,h=t.getType(),l=null,u=2,p=2;if(n.placement===Tr){if(!Pt(this.getBufferedMaxExtent(),t.getExtent()))return;var c;if(l=t.getFlatCoordinates(),p=t.getStride(),h==Nt.LINE_STRING)c=[l.length];else if(h==Nt.MULTI_LINE_STRING)c=t.getEnds();else if(h==Nt.POLYGON)c=t.getEnds().slice(0,1);else if(h==Nt.MULTI_POLYGON){var d=t.getEndss();for(c=[],o=0,s=d.length;o=E)&&l.push(S[o],S[o+1]);if(0==(u=l.length))return}u=this.appendFlatCoordinates(l,0,u,p,!1,!1),(n.backgroundFill||n.backgroundStroke)&&(this.setFillStrokeStyle(n.backgroundFill,n.backgroundStroke),n.backgroundFill&&(this.updateFillStyle(this.state,this.createFill,t),this.hitDetectionInstructions.push(this.createFill(this.state,t))),n.backgroundStroke&&(this.updateStrokeStyle(this.state,this.applyStroke),this.hitDetectionInstructions.push(this.createStroke(this.state)))),this.beginGeometry(t,e),this.drawTextImage_(x,a,u),this.endGeometry(t,e)}}},e.prototype.getImage=function(t,e,i,r){var n,o=r+e+t+i+this.pixelRatio;if(!Ps.containsKey(o)){var s=r?this.strokeStates[r]||this.textStrokeState_:null,a=i?this.fillStates[i]||this.textFillState_:null,h=this.textStates[e]||this.textState_,l=this.pixelRatio,u=h.scale*l,p=Sa[h.textAlign||"center"],c=r&&s.lineWidth?s.lineWidth:0,d=t.split("\n"),f=d.length,_=[],g=function(t,e,i){for(var r=e.length,n=0,o=0;o=o;)Fa(i,t+n,t+o),Fa(i,t+o,t+n),Fa(i,t-o,t+n),Fa(i,t-n,t+o),Fa(i,t-n,t-o),Fa(i,t-o,t-n),Fa(i,t+o,t-n),Fa(i,t+n,t-o),2*((s+=1+2*++o)-n)+1>0&&(s+=1-2*(n-=1));return Ma[t]=i,i}(r);function f(t){for(var e=u.getImageData(0,0,h,h).data,i=0;i0){var n=void 0;return(!p||c!=da.IMAGE&&c!=da.TEXT||-1!==p.indexOf(t))&&(n=o(t)),n||void u.clearRect(0,0,h,h)}}this.declutterTree_&&(p=this.declutterTree_.all().map(function(t){return t.value}));var _,g,y,v,m,x=Object.keys(this.replaysByZIndex_).map(Number);for(x.sort(V),_=x.length-1;_>=0;--_){var E=x[_].toString();for(y=this.replaysByZIndex_[E],g=Ea.length-1;g>=0;--g)if(void 0!==(v=y[c=Ea[g]]))if(!s||c!=da.IMAGE&&c!=da.TEXT){if(m=v.replayHitDetection(u,l,i,n,f,a))return m}else{var S=s[E];S?S.push(v,l.slice(0)):s[E]=[v,l.slice(0)]}}},e.prototype.getClipCoords=function(t){var e=this.maxExtent_,i=e[0],r=e[1],n=e[2],o=e[3],s=[i,r,i,o,n,o,n,r];return Gt(s,0,8,2,t,s),s},e.prototype.getReplay=function(t,e){var i=void 0!==t?t.toString():"0",r=this.replaysByZIndex_[i];void 0===r&&(r={},this.replaysByZIndex_[i]=r);var n=r[e];void 0===n&&(n=new(0,Pa[e])(this.tolerance_,this.maxExtent_,this.resolution_,this.pixelRatio_,this.overlaps_,this.declutterTree_),r[e]=n);return n},e.prototype.getReplays=function(){return this.replaysByZIndex_},e.prototype.isEmpty=function(){return d(this.replaysByZIndex_)},e.prototype.replay=function(t,e,i,r,n,o,s){var a=Object.keys(this.replaysByZIndex_).map(Number);a.sort(V),t.save(),this.clip(t,e);var h,l,u,p,c,d,f=o||Ea;for(h=0,l=a.length;h=n)for(r=n;rl[2];)O=b*++M,p=this.getTransform(e,O),f.replay(_,p,h,o,w),P-=b}if(ks(_,h,I/2,L/2),x&&this.dispatchRenderEvent(_,e,p),_!=t){if(m){var F=t.globalAlpha;t.globalAlpha=i.opacity,t.drawImage(_.canvas,-y,-v),t.globalAlpha=F}else t.drawImage(_.canvas,-y,-v);_.translate(-y,-v)}m||(_.globalAlpha=C)}d&&t.restore()},e.prototype.composeFrame=function(t,e,i){var r=this.getTransform(t,0);this.preCompose(i,t,r),this.compose(i,t,e),this.postCompose(i,t,e,r)},e.prototype.forEachFeatureAtCoordinate=function(t,e,i,r,n){if(this.replayGroup_){var s=e.viewState.resolution,a=e.viewState.rotation,h=this.getLayer(),l={};return this.replayGroup_.forEachFeatureAtCoordinate(t,s,a,i,{},function(t){var e=o(t);if(!(e in l))return l[e]=!0,r.call(n,t,h)},null)}},e.prototype.handleFontsChanged_=function(t){var e=this.getLayer();e.getVisible()&&this.replayGroup_&&e.changed()},e.prototype.handleStyleImageChange_=function(t){this.renderIfReadyAndVisible()},e.prototype.prepareFrame=function(t,e){var i=this.getLayer(),r=i.getSource(),n=t.viewHints[kn],o=t.viewHints[jn],s=i.getUpdateWhileAnimating(),a=i.getUpdateWhileInteracting();if(!this.dirty_&&!s&&n||!a&&o)return!0;var h=t.extent,l=t.viewState,u=l.projection,p=l.resolution,c=t.pixelRatio,d=i.getRevision(),f=i.getRenderBuffer(),_=i.getRenderOrder();void 0===_&&(_=Da);var g=et(h,f*p),y=l.projection.getExtent();if(r.getWrapX()&&l.projection.canWrapX()&&!ot(y,t.extent)){var v=Ot(y),m=Math.max(Ot(g)/2,v);g[0]=y[0]-m,g[2]=y[2]+m}if(!this.dirty_&&this.renderedResolution_==p&&this.renderedRevision_==d&&this.renderedRenderOrder_==_&&ot(this.renderedExtent_,g))return this.replayGroupChanged=!1,!0;this.replayGroup_=null,this.dirty_=!1;var x=new Aa(ja(p,c),g,p,c,r.getOverlaps(),this.declutterTree_,i.getRenderBuffer());r.loadFeatures(g,p,u);var E=function(t){var e,r=t.getStyleFunction()||i.getStyleFunction();if(r&&(e=r(t,p)),e){var n=this.renderFeature(t,p,c,e,x);this.dirty_=this.dirty_||n}}.bind(this);if(_){var S=[];r.forEachFeatureInExtent(g,function(t){S.push(t)}),S.sort(_);for(var T=0,C=S.length;T=0;--x){var E=g[x];if(E.getState()!=On.ABORT)for(var S=E.tileCoord,T=y.getTileCoordExtent(S,this.tmpExtent)[0]-E.extent[0],C=void 0,R=0,w=E.tileKeys.length;R radius + v_halfWidth) {\n if (u_strokeColor.a == 0.0) {\n gl_FragColor = u_fillColor;\n } else {\n gl_FragColor = u_strokeColor;\n }\n gl_FragColor.a = gl_FragColor.a - (dist - (radius + v_halfWidth));\n } else if (u_fillColor.a == 0.0) {\n // Hooray, no fill, just stroke. We can use real antialiasing.\n gl_FragColor = u_strokeColor;\n if (dist < radius - v_halfWidth) {\n gl_FragColor.a = gl_FragColor.a - (radius - v_halfWidth - dist);\n }\n } else {\n gl_FragColor = u_fillColor;\n float strokeDist = radius - v_halfWidth;\n float antialias = 2.0 * v_pixelRatio;\n if (dist > strokeDist) {\n gl_FragColor = u_strokeColor;\n } else if (dist >= strokeDist - antialias) {\n float step = smoothstep(strokeDist - antialias, strokeDist, dist);\n gl_FragColor = mix(u_fillColor, u_strokeColor, step);\n }\n }\n gl_FragColor.a = gl_FragColor.a * u_opacity;\n if (gl_FragColor.a <= 0.0) {\n discard;\n }\n}\n"),ch=new uh("varying vec2 v_center;\nvarying vec2 v_offset;\nvarying float v_halfWidth;\nvarying float v_pixelRatio;\n\n\nattribute vec2 a_position;\nattribute float a_instruction;\nattribute float a_radius;\n\nuniform mat4 u_projectionMatrix;\nuniform mat4 u_offsetScaleMatrix;\nuniform mat4 u_offsetRotateMatrix;\nuniform float u_lineWidth;\nuniform float u_pixelRatio;\n\nvoid main(void) {\n mat4 offsetMatrix = u_offsetScaleMatrix * u_offsetRotateMatrix;\n v_center = vec4(u_projectionMatrix * vec4(a_position, 0.0, 1.0)).xy;\n v_pixelRatio = u_pixelRatio;\n float lineWidth = u_lineWidth * u_pixelRatio;\n v_halfWidth = lineWidth / 2.0;\n if (lineWidth == 0.0) {\n lineWidth = 2.0 * u_pixelRatio;\n }\n vec2 offset;\n // Radius with anitaliasing (roughly).\n float radius = a_radius + 3.0 * u_pixelRatio;\n // Until we get gl_VertexID in WebGL, we store an instruction.\n if (a_instruction == 0.0) {\n // Offsetting the edges of the triangle by lineWidth / 2 is necessary, however\n // we should also leave some space for the antialiasing, thus we offset by lineWidth.\n offset = vec2(-1.0, 1.0);\n } else if (a_instruction == 1.0) {\n offset = vec2(-1.0, -1.0);\n } else if (a_instruction == 2.0) {\n offset = vec2(1.0, -1.0);\n } else {\n offset = vec2(1.0, 1.0);\n }\n\n gl_Position = u_projectionMatrix * vec4(a_position + offset * radius, 0.0, 1.0) +\n offsetMatrix * vec4(offset * lineWidth, 0.0, 0.0);\n v_offset = vec4(u_projectionMatrix * vec4(a_position.x + a_radius, a_position.y,\n 0.0, 1.0)).xy;\n\n if (distance(v_center, v_offset) > 20000.0) {\n gl_Position = vec4(v_center, 0.0, 1.0);\n }\n}\n\n\n"),dh=function(t,e){this.u_projectionMatrix=t.getUniformLocation(e,"u_projectionMatrix"),this.u_offsetScaleMatrix=t.getUniformLocation(e,"u_offsetScaleMatrix"),this.u_offsetRotateMatrix=t.getUniformLocation(e,"u_offsetRotateMatrix"),this.u_lineWidth=t.getUniformLocation(e,"u_lineWidth"),this.u_pixelRatio=t.getUniformLocation(e,"u_pixelRatio"),this.u_opacity=t.getUniformLocation(e,"u_opacity"),this.u_fillColor=t.getUniformLocation(e,"u_fillColor"),this.u_strokeColor=t.getUniformLocation(e,"u_strokeColor"),this.u_size=t.getUniformLocation(e,"u_size"),this.a_position=t.getAttribLocation(e,"a_position"),this.a_instruction=t.getAttribLocation(e,"a_instruction"),this.a_radius=t.getAttribLocation(e,"a_radius")};function fh(t,e){return t[0]=e[0],t[1]=e[1],t[4]=e[2],t[5]=e[3],t[12]=e[4],t[13]=e[5],t}var _h=function(t){function e(e,i){t.call(this),this.tolerance=e,this.maxExtent=i,this.origin=Tt(i),this.projectionMatrix_=[1,0,0,1,0,0],this.offsetRotateMatrix_=[1,0,0,1,0,0],this.offsetScaleMatrix_=[1,0,0,1,0,0],this.tmpMat4_=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1],this.indices=[],this.indicesBuffer=null,this.startIndices=[],this.startIndicesFeature=[],this.vertices=[],this.verticesBuffer=null,this.lineStringReplay=void 0}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.getDeleteResourcesFunction=function(t){return r()},e.prototype.finish=function(t){r()},e.prototype.setUpProgram=function(t,e,i,n){return r()},e.prototype.shutDownProgram=function(t,e){r()},e.prototype.drawReplay=function(t,e,i,n){r()},e.prototype.drawHitDetectionReplayOneByOne=function(t,e,i,n,o){return r()},e.prototype.drawHitDetectionReplay=function(t,e,i,r,n,o){return n?this.drawHitDetectionReplayOneByOne(t,e,i,r,o):this.drawHitDetectionReplayAll(t,e,i,r)},e.prototype.drawHitDetectionReplayAll=function(t,e,i,r){t.clear(t.COLOR_BUFFER_BIT|t.DEPTH_BUFFER_BIT),this.drawReplay(t,e,i,!0);var n=r(null);return n||void 0},e.prototype.replay=function(t,e,i,r,n,o,s,a,h,l,u){var p,c,d,f,_,g,y,v,m=t.getGL();this.lineStringReplay&&(p=m.isEnabled(m.STENCIL_TEST),c=m.getParameter(m.STENCIL_FUNC),d=m.getParameter(m.STENCIL_VALUE_MASK),f=m.getParameter(m.STENCIL_REF),_=m.getParameter(m.STENCIL_WRITEMASK),g=m.getParameter(m.STENCIL_FAIL),y=m.getParameter(m.STENCIL_PASS_DEPTH_PASS),v=m.getParameter(m.STENCIL_PASS_DEPTH_FAIL),m.enable(m.STENCIL_TEST),m.clear(m.STENCIL_BUFFER_BIT),m.stencilMask(255),m.stencilFunc(m.ALWAYS,1,255),m.stencilOp(m.KEEP,m.KEEP,m.REPLACE),this.lineStringReplay.replay(t,e,i,r,n,o,s,a,h,l,u),m.stencilMask(0),m.stencilFunc(m.NOTEQUAL,1,255)),t.bindBuffer(34962,this.verticesBuffer),t.bindBuffer(34963,this.indicesBuffer);var x=this.setUpProgram(m,t,n,o),E=Fe(this.projectionMatrix_);je(E,2/(i*n[0]),2/(i*n[1])),ke(E,-r),Ue(E,-(e[0]-this.origin[0]),-(e[1]-this.origin[1]));var S=Fe(this.offsetScaleMatrix_);je(S,2/n[0],2/n[1]);var T,C=Fe(this.offsetRotateMatrix_);return 0!==r&&ke(C,-r),m.uniformMatrix4fv(x.u_projectionMatrix,!1,fh(this.tmpMat4_,E)),m.uniformMatrix4fv(x.u_offsetScaleMatrix,!1,fh(this.tmpMat4_,S)),m.uniformMatrix4fv(x.u_offsetRotateMatrix,!1,fh(this.tmpMat4_,C)),m.uniform1f(x.u_opacity,s),void 0===h?this.drawReplay(m,t,a,!1):T=this.drawHitDetectionReplay(m,t,a,h,l,u),this.shutDownProgram(m,x),this.lineStringReplay&&(p||m.disable(m.STENCIL_TEST),m.clear(m.STENCIL_BUFFER_BIT),m.stencilFunc(c,f,d),m.stencilMask(_),m.stencilOp(g,v,y)),T},e.prototype.drawElements=function(t,e,i,r){var n=e.hasOESElementIndexUint?5125:5123,o=r-i,s=i*(e.hasOESElementIndexUint?4:2);t.drawElements(4,o,n,s)},e}(Vs),gh=[0,0,0,1],yh=[],vh=[0,0,0,1],mh=Number.EPSILON||2.220446049250313e-16,xh=function(t,e,i,r,n,o){var s=(i-t)*(o-e)-(n-t)*(r-e);return s<=mh&&s>=-mh?void 0:s>0},Eh=35044,Sh=function(t,e){this.arr_=void 0!==t?t:[],this.usage_=void 0!==e?e:Eh};Sh.prototype.getArray=function(){return this.arr_},Sh.prototype.getUsage=function(){return this.usage_};var Th=Sh,Ch=function(t){function e(e,i){t.call(this,e,i),this.defaultLocations_=null,this.styles_=[],this.styleIndices_=[],this.radius_=0,this.state_={fillColor:null,strokeColor:null,lineDash:null,lineDashOffset:void 0,lineWidth:void 0,changed:!1}}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.drawCoordinates_=function(t,e,i,r){var n,o,s=this.vertices.length,a=this.indices.length,h=s/4;for(n=e,o=i;n0&&(this.styles_=[]),this.vertices=null,this.indices=null},e.prototype.getDeleteResourcesFunction=function(t){var e=this.verticesBuffer,i=this.indicesBuffer;return function(){t.deleteBuffer(e),t.deleteBuffer(i)}},e.prototype.setUpProgram=function(t,e,i,r){var n,o=e.getProgram(ph,ch);return this.defaultLocations_?n=this.defaultLocations_:(n=new dh(t,o),this.defaultLocations_=n),e.useProgram(o),t.enableVertexAttribArray(n.a_position),t.vertexAttribPointer(n.a_position,2,5126,!1,16,0),t.enableVertexAttribArray(n.a_instruction),t.vertexAttribPointer(n.a_instruction,1,5126,!1,16,8),t.enableVertexAttribArray(n.a_radius),t.vertexAttribPointer(n.a_radius,1,5126,!1,16,12),t.uniform2fv(n.u_size,i),t.uniform1f(n.u_pixelRatio,r),n},e.prototype.shutDownProgram=function(t,e){t.disableVertexAttribArray(e.a_position),t.disableVertexAttribArray(e.a_instruction),t.disableVertexAttribArray(e.a_radius)},e.prototype.drawReplay=function(t,e,i,r){var n,o,s,a;if(d(i))for(s=this.startIndices[this.startIndices.length-1],n=this.styleIndices_.length-1;n>=0;--n)o=this.styleIndices_[n],a=this.styles_[n],this.setFillStyle_(t,a[0]),this.setStrokeStyle_(t,a[1],a[2]),this.drawElements(t,e,o,s),s=o;else this.drawReplaySkipping_(t,e,i)},e.prototype.drawHitDetectionReplayOneByOne=function(t,e,i,r,n){var s,a,h,l,u,p,c;for(c=this.startIndices.length-2,h=this.startIndices[c+1],s=this.styleIndices_.length-1;s>=0;--s)for(l=this.styles_[s],this.setFillStyle_(t,l[0]),this.setStrokeStyle_(t,l[1],l[2]),u=this.styleIndices_[s];c>=0&&this.startIndices[c]>=u;){if(a=this.startIndices[c],void 0===i[o(p=this.startIndicesFeature[c])]&&p.getGeometry()&&(void 0===n||Pt(n,p.getGeometry().getExtent()))){t.clear(t.COLOR_BUFFER_BIT|t.DEPTH_BUFFER_BIT),this.drawElements(t,e,a,h);var d=r(p);if(d)return d}c--,h=a}},e.prototype.drawReplaySkipping_=function(t,e,i){var r,n,s,a,h,l,u;for(l=this.startIndices.length-2,s=n=this.startIndices[l+1],r=this.styleIndices_.length-1;r>=0;--r){for(a=this.styles_[r],this.setFillStyle_(t,a[0]),this.setStrokeStyle_(t,a[1],a[2]),h=this.styleIndices_[r];l>=0&&this.startIndices[l]>=h;)u=this.startIndices[l],i[o(this.startIndicesFeature[l])]&&(n!==s&&this.drawElements(t,e,n,s),s=u),l--,n=u;n!==s&&this.drawElements(t,e,n,s),n=s=h}},e.prototype.setFillStyle_=function(t,e){t.uniform4fv(this.defaultLocations_.u_fillColor,e)},e.prototype.setStrokeStyle_=function(t,e,i){t.uniform4fv(this.defaultLocations_.u_strokeColor,e),t.uniform1f(this.defaultLocations_.u_lineWidth,i)},e.prototype.setFillStrokeStyle=function(t,e){var i,r;if(e){var n=e.getLineDash();this.state_.lineDash=n||yh;var o=e.getLineDashOffset();this.state_.lineDashOffset=o||0,i=(i=e.getColor())instanceof CanvasGradient||i instanceof CanvasPattern?vh:_r(i).map(function(t,e){return 3!=e?t/255:t})||vh,r=void 0!==(r=e.getWidth())?r:1}else i=[0,0,0,0],r=0;var s=t?t.getColor():[0,0,0,0];s=s instanceof CanvasGradient||s instanceof CanvasPattern?gh:_r(s).map(function(t,e){return 3!=e?t/255:t})||gh,this.state_.strokeColor&&Z(this.state_.strokeColor,i)&&this.state_.fillColor&&Z(this.state_.fillColor,s)&&this.state_.lineWidth===r||(this.state_.changed=!0,this.state_.fillColor=s,this.state_.strokeColor=i,this.state_.lineWidth=r,this.styles_.push([s,i,r]))},e}(_h),Rh=new lh("precision mediump float;\nvarying vec2 v_texCoord;\nvarying float v_opacity;\n\nuniform float u_opacity;\nuniform sampler2D u_image;\n\nvoid main(void) {\n vec4 texColor = texture2D(u_image, v_texCoord);\n gl_FragColor.rgb = texColor.rgb;\n float alpha = texColor.a * v_opacity * u_opacity;\n if (alpha == 0.0) {\n discard;\n }\n gl_FragColor.a = alpha;\n}\n"),wh=new uh("varying vec2 v_texCoord;\nvarying float v_opacity;\n\nattribute vec2 a_position;\nattribute vec2 a_texCoord;\nattribute vec2 a_offsets;\nattribute float a_opacity;\nattribute float a_rotateWithView;\n\nuniform mat4 u_projectionMatrix;\nuniform mat4 u_offsetScaleMatrix;\nuniform mat4 u_offsetRotateMatrix;\n\nvoid main(void) {\n mat4 offsetMatrix = u_offsetScaleMatrix;\n if (a_rotateWithView == 1.0) {\n offsetMatrix = u_offsetScaleMatrix * u_offsetRotateMatrix;\n }\n vec4 offsets = offsetMatrix * vec4(a_offsets, 0.0, 0.0);\n gl_Position = u_projectionMatrix * vec4(a_position, 0.0, 1.0) + offsets;\n v_texCoord = a_texCoord;\n v_opacity = a_opacity;\n}\n\n\n"),Ih=function(t,e){this.u_projectionMatrix=t.getUniformLocation(e,"u_projectionMatrix"),this.u_offsetScaleMatrix=t.getUniformLocation(e,"u_offsetScaleMatrix"),this.u_offsetRotateMatrix=t.getUniformLocation(e,"u_offsetRotateMatrix"),this.u_opacity=t.getUniformLocation(e,"u_opacity"),this.u_image=t.getUniformLocation(e,"u_image"),this.a_position=t.getAttribLocation(e,"a_position"),this.a_texCoord=t.getAttribLocation(e,"a_texCoord"),this.a_offsets=t.getAttribLocation(e,"a_offsets"),this.a_opacity=t.getAttribLocation(e,"a_opacity"),this.a_rotateWithView=t.getAttribLocation(e,"a_rotateWithView")},Lh={LOST:"webglcontextlost",RESTORED:"webglcontextrestored"};function Oh(t,e,i){var r=t.createTexture();return t.bindTexture(t.TEXTURE_2D,r),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MAG_FILTER,t.LINEAR),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MIN_FILTER,t.LINEAR),void 0!==e&&t.texParameteri(eh,$a,e),void 0!==i&&t.texParameteri(eh,th,i),r}function Ph(t,e,i,r,n){var o=Oh(t,r,n);return t.texImage2D(t.TEXTURE_2D,0,t.RGBA,e,i,0,t.RGBA,t.UNSIGNED_BYTE,null),o}function bh(t,e,i,r){var n=Oh(t,i,r);return t.texImage2D(t.TEXTURE_2D,0,t.RGBA,t.RGBA,t.UNSIGNED_BYTE,e),n}var Mh=function(t){function e(e,i){t.call(this),this.canvas_=e,this.gl_=i,this.bufferCache_={},this.shaderCache_={},this.programCache_={},this.currentProgram_=null,this.hitDetectionFramebuffer_=null,this.hitDetectionTexture_=null,this.hitDetectionRenderbuffer_=null,this.hasOESElementIndexUint=X(oh,"OES_element_index_uint"),this.hasOESElementIndexUint&&i.getExtension("OES_element_index_uint"),v(this.canvas_,Lh.LOST,this.handleWebGLContextLost,this),v(this.canvas_,Lh.RESTORED,this.handleWebGLContextRestored,this)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.bindBuffer=function(t,e){var i=this.getGL(),r=e.getArray(),n=o(e);if(n in this.bufferCache_){var s=this.bufferCache_[n];i.bindBuffer(t,s.buffer)}else{var a,h=i.createBuffer();i.bindBuffer(t,h),34962==t?a=new Float32Array(r):34963==t&&(a=this.hasOESElementIndexUint?new Uint32Array(r):new Uint16Array(r)),i.bufferData(t,a,e.getUsage()),this.bufferCache_[n]={buf:e,buffer:h}}},e.prototype.deleteBuffer=function(t){var e=this.getGL(),i=o(t),r=this.bufferCache_[i];e.isContextLost()||e.deleteBuffer(r.buffer),delete this.bufferCache_[i]},e.prototype.disposeInternal=function(){S(this.canvas_);var t=this.getGL();if(!t.isContextLost()){for(var e in this.bufferCache_)t.deleteBuffer(this.bufferCache_[e].buffer);for(var i in this.programCache_)t.deleteProgram(this.programCache_[i]);for(var r in this.shaderCache_)t.deleteShader(this.shaderCache_[r]);t.deleteFramebuffer(this.hitDetectionFramebuffer_),t.deleteRenderbuffer(this.hitDetectionRenderbuffer_),t.deleteTexture(this.hitDetectionTexture_)}},e.prototype.getCanvas=function(){return this.canvas_},e.prototype.getGL=function(){return this.gl_},e.prototype.getHitDetectionFramebuffer=function(){return this.hitDetectionFramebuffer_||this.initHitDetectionFramebuffer_(),this.hitDetectionFramebuffer_},e.prototype.getShader=function(t){var e=o(t);if(e in this.shaderCache_)return this.shaderCache_[e];var i=this.getGL(),r=i.createShader(t.getType());return i.shaderSource(r,t.getSource()),i.compileShader(r),this.shaderCache_[e]=r,r},e.prototype.getProgram=function(t,e){var i=o(t)+"/"+o(e);if(i in this.programCache_)return this.programCache_[i];var r=this.getGL(),n=r.createProgram();return r.attachShader(n,this.getShader(t)),r.attachShader(n,this.getShader(e)),r.linkProgram(n),this.programCache_[i]=n,n},e.prototype.handleWebGLContextLost=function(){p(this.bufferCache_),p(this.shaderCache_),p(this.programCache_),this.currentProgram_=null,this.hitDetectionFramebuffer_=null,this.hitDetectionTexture_=null,this.hitDetectionRenderbuffer_=null},e.prototype.handleWebGLContextRestored=function(){},e.prototype.initHitDetectionFramebuffer_=function(){var t=this.gl_,e=t.createFramebuffer();t.bindFramebuffer(t.FRAMEBUFFER,e);var i=Ph(t,1,1),r=t.createRenderbuffer();t.bindRenderbuffer(t.RENDERBUFFER,r),t.renderbufferStorage(t.RENDERBUFFER,t.DEPTH_COMPONENT16,1,1),t.framebufferTexture2D(t.FRAMEBUFFER,t.COLOR_ATTACHMENT0,t.TEXTURE_2D,i,0),t.framebufferRenderbuffer(t.FRAMEBUFFER,t.DEPTH_ATTACHMENT,t.RENDERBUFFER,r),t.bindTexture(t.TEXTURE_2D,null),t.bindRenderbuffer(t.RENDERBUFFER,null),t.bindFramebuffer(t.FRAMEBUFFER,null),this.hitDetectionFramebuffer_=e,this.hitDetectionTexture_=i,this.hitDetectionRenderbuffer_=r},e.prototype.useProgram=function(t){return t!=this.currentProgram_&&(this.getGL().useProgram(t),this.currentProgram_=t,!0)},e}(C),Fh=function(t){function e(e,i){t.call(this,e,i),this.anchorX=void 0,this.anchorY=void 0,this.groupIndices=[],this.hitDetectionGroupIndices=[],this.height=void 0,this.imageHeight=void 0,this.imageWidth=void 0,this.defaultLocations=null,this.opacity=void 0,this.originX=void 0,this.originY=void 0,this.rotateWithView=void 0,this.rotation=void 0,this.scale=void 0,this.width=void 0}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.getDeleteResourcesFunction=function(t){var e=this.verticesBuffer,i=this.indicesBuffer,r=this.getTextures(!0),n=t.getGL();return function(){var o,s;if(!n.isContextLost())for(o=0,s=r.length;o0?n[s-1]:0,u=n[s],p=l,c=l;h=0;--s)for(t.bindTexture(eh,c[s]),a=s>0?this.hitDetectionGroupIndices[s-1]:0,l=this.hitDetectionGroupIndices[s];p>=0&&this.startIndices[p]>=a;){if(h=this.startIndices[p],void 0===i[o(u=this.startIndicesFeature[p])]&&u.getGeometry()&&(void 0===n||Pt(n,u.getGeometry().getExtent()))){t.clear(t.COLOR_BUFFER_BIT|t.DEPTH_BUFFER_BIT),this.drawElements(t,e,h,l);var d=r(u);if(d)return d}l=h,p--}},e.prototype.finish=function(t){this.anchorX=void 0,this.anchorY=void 0,this.height=void 0,this.imageHeight=void 0,this.imageWidth=void 0,this.indices=null,this.opacity=void 0,this.originX=void 0,this.originY=void 0,this.rotateWithView=void 0,this.rotation=void 0,this.scale=void 0,this.vertices=null,this.width=void 0},e.prototype.getTextures=function(t){return r()},e.prototype.getHitDetectionTextures=function(){return r()},e}(_h),Ah=function(t){function e(e,i){t.call(this,e,i),this.images_=[],this.hitDetectionImages_=[],this.textures_=[],this.hitDetectionTextures_=[]}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.drawMultiPoint=function(t,e){this.startIndices.push(this.indices.length),this.startIndicesFeature.push(e);var i=t.getFlatCoordinates(),r=t.getStride();this.drawCoordinates(i,0,i.length,r)},e.prototype.drawPoint=function(t,e){this.startIndices.push(this.indices.length),this.startIndicesFeature.push(e);var i=t.getFlatCoordinates(),r=t.getStride();this.drawCoordinates(i,0,i.length,r)},e.prototype.finish=function(e){var i=e.getGL();this.groupIndices.push(this.indices.length),this.hitDetectionGroupIndices.push(this.indices.length),this.verticesBuffer=new Th(this.vertices);var r=this.indices;this.indicesBuffer=new Th(r);var n={};this.createTextures(this.textures_,this.images_,n,i),this.createTextures(this.hitDetectionTextures_,this.hitDetectionImages_,n,i),this.images_=null,this.hitDetectionImages_=null,t.prototype.finish.call(this,e)},e.prototype.setImageStyle=function(t){var e=t.getAnchor(),i=t.getImage(1),r=t.getImageSize(),n=t.getHitDetectionImage(1),s=t.getOpacity(),a=t.getOrigin(),h=t.getRotateWithView(),l=t.getRotation(),u=t.getSize(),p=t.getScale();0===this.images_.length?this.images_.push(i):o(this.images_[this.images_.length-1])!=o(i)&&(this.groupIndices.push(this.indices.length),this.images_.push(i)),0===this.hitDetectionImages_.length?this.hitDetectionImages_.push(n):o(this.hitDetectionImages_[this.hitDetectionImages_.length-1])!=o(n)&&(this.hitDetectionGroupIndices.push(this.indices.length),this.hitDetectionImages_.push(n)),this.anchorX=e[0],this.anchorY=e[1],this.height=u[1],this.imageHeight=r[1],this.imageWidth=r[0],this.opacity=s,this.originX=a[0],this.originY=a[1],this.rotation=l,this.rotateWithView=h,this.scale=p,this.width=u[0]},e.prototype.getTextures=function(t){return t?this.textures_.concat(this.hitDetectionTextures_):this.textures_},e.prototype.getHitDetectionTextures=function(){return this.hitDetectionTextures_},e}(Fh);function Nh(t,e,i,r){var n=i-r;return t[e]===t[n]&&t[e+1]===t[n+1]&&(i-e)/r>3&&!!Ke(t,e,i,r)}var Gh=new lh("precision mediump float;\nvarying float v_round;\nvarying vec2 v_roundVertex;\nvarying float v_halfWidth;\n\n\n\nuniform float u_opacity;\nuniform vec4 u_color;\nuniform vec2 u_size;\nuniform float u_pixelRatio;\n\nvoid main(void) {\n if (v_round > 0.0) {\n vec2 windowCoords = vec2((v_roundVertex.x + 1.0) / 2.0 * u_size.x * u_pixelRatio,\n (v_roundVertex.y + 1.0) / 2.0 * u_size.y * u_pixelRatio);\n if (length(windowCoords - gl_FragCoord.xy) > v_halfWidth * u_pixelRatio) {\n discard;\n }\n }\n gl_FragColor = u_color;\n float alpha = u_color.a * u_opacity;\n if (alpha == 0.0) {\n discard;\n }\n gl_FragColor.a = alpha;\n}\n"),Dh=new uh("varying float v_round;\nvarying vec2 v_roundVertex;\nvarying float v_halfWidth;\n\n\nattribute vec2 a_lastPos;\nattribute vec2 a_position;\nattribute vec2 a_nextPos;\nattribute float a_direction;\n\nuniform mat4 u_projectionMatrix;\nuniform mat4 u_offsetScaleMatrix;\nuniform mat4 u_offsetRotateMatrix;\nuniform float u_lineWidth;\nuniform float u_miterLimit;\n\nbool nearlyEquals(in float value, in float ref) {\n float epsilon = 0.000000000001;\n return value >= ref - epsilon && value <= ref + epsilon;\n}\n\nvoid alongNormal(out vec2 offset, in vec2 nextP, in float turnDir, in float direction) {\n vec2 dirVect = nextP - a_position;\n vec2 normal = normalize(vec2(-turnDir * dirVect.y, turnDir * dirVect.x));\n offset = u_lineWidth / 2.0 * normal * direction;\n}\n\nvoid miterUp(out vec2 offset, out float round, in bool isRound, in float direction) {\n float halfWidth = u_lineWidth / 2.0;\n vec2 tangent = normalize(normalize(a_nextPos - a_position) + normalize(a_position - a_lastPos));\n vec2 normal = vec2(-tangent.y, tangent.x);\n vec2 dirVect = a_nextPos - a_position;\n vec2 tmpNormal = normalize(vec2(-dirVect.y, dirVect.x));\n float miterLength = abs(halfWidth / dot(normal, tmpNormal));\n offset = normal * direction * miterLength;\n round = 0.0;\n if (isRound) {\n round = 1.0;\n } else if (miterLength > u_miterLimit + u_lineWidth) {\n offset = halfWidth * tmpNormal * direction;\n }\n}\n\nbool miterDown(out vec2 offset, in vec4 projPos, in mat4 offsetMatrix, in float direction) {\n bool degenerate = false;\n vec2 tangent = normalize(normalize(a_nextPos - a_position) + normalize(a_position - a_lastPos));\n vec2 normal = vec2(-tangent.y, tangent.x);\n vec2 dirVect = a_lastPos - a_position;\n vec2 tmpNormal = normalize(vec2(-dirVect.y, dirVect.x));\n vec2 longOffset, shortOffset, longVertex;\n vec4 shortProjVertex;\n float halfWidth = u_lineWidth / 2.0;\n if (length(a_nextPos - a_position) > length(a_lastPos - a_position)) {\n longOffset = tmpNormal * direction * halfWidth;\n shortOffset = normalize(vec2(dirVect.y, -dirVect.x)) * direction * halfWidth;\n longVertex = a_nextPos;\n shortProjVertex = u_projectionMatrix * vec4(a_lastPos, 0.0, 1.0);\n } else {\n shortOffset = tmpNormal * direction * halfWidth;\n longOffset = normalize(vec2(dirVect.y, -dirVect.x)) * direction * halfWidth;\n longVertex = a_lastPos;\n shortProjVertex = u_projectionMatrix * vec4(a_nextPos, 0.0, 1.0);\n }\n //Intersection algorithm based on theory by Paul Bourke (http://paulbourke.net/geometry/pointlineplane/).\n vec4 p1 = u_projectionMatrix * vec4(longVertex, 0.0, 1.0) + offsetMatrix * vec4(longOffset, 0.0, 0.0);\n vec4 p2 = projPos + offsetMatrix * vec4(longOffset, 0.0, 0.0);\n vec4 p3 = shortProjVertex + offsetMatrix * vec4(-shortOffset, 0.0, 0.0);\n vec4 p4 = shortProjVertex + offsetMatrix * vec4(shortOffset, 0.0, 0.0);\n float denom = (p4.y - p3.y) * (p2.x - p1.x) - (p4.x - p3.x) * (p2.y - p1.y);\n float firstU = ((p4.x - p3.x) * (p1.y - p3.y) - (p4.y - p3.y) * (p1.x - p3.x)) / denom;\n float secondU = ((p2.x - p1.x) * (p1.y - p3.y) - (p2.y - p1.y) * (p1.x - p3.x)) / denom;\n float epsilon = 0.000000000001;\n if (firstU > epsilon && firstU < 1.0 - epsilon && secondU > epsilon && secondU < 1.0 - epsilon) {\n shortProjVertex.x = p1.x + firstU * (p2.x - p1.x);\n shortProjVertex.y = p1.y + firstU * (p2.y - p1.y);\n offset = shortProjVertex.xy;\n degenerate = true;\n } else {\n float miterLength = abs(halfWidth / dot(normal, tmpNormal));\n offset = normal * direction * miterLength;\n }\n return degenerate;\n}\n\nvoid squareCap(out vec2 offset, out float round, in bool isRound, in vec2 nextP,\n in float turnDir, in float direction) {\n round = 0.0;\n vec2 dirVect = a_position - nextP;\n vec2 firstNormal = normalize(dirVect);\n vec2 secondNormal = vec2(turnDir * firstNormal.y * direction, -turnDir * firstNormal.x * direction);\n vec2 hypotenuse = normalize(firstNormal - secondNormal);\n vec2 normal = vec2(turnDir * hypotenuse.y * direction, -turnDir * hypotenuse.x * direction);\n float length = sqrt(v_halfWidth * v_halfWidth * 2.0);\n offset = normal * length;\n if (isRound) {\n round = 1.0;\n }\n}\n\nvoid main(void) {\n bool degenerate = false;\n float direction = float(sign(a_direction));\n mat4 offsetMatrix = u_offsetScaleMatrix * u_offsetRotateMatrix;\n vec2 offset;\n vec4 projPos = u_projectionMatrix * vec4(a_position, 0.0, 1.0);\n bool round = nearlyEquals(mod(a_direction, 2.0), 0.0);\n\n v_round = 0.0;\n v_halfWidth = u_lineWidth / 2.0;\n v_roundVertex = projPos.xy;\n\n if (nearlyEquals(mod(a_direction, 3.0), 0.0) || nearlyEquals(mod(a_direction, 17.0), 0.0)) {\n alongNormal(offset, a_nextPos, 1.0, direction);\n } else if (nearlyEquals(mod(a_direction, 5.0), 0.0) || nearlyEquals(mod(a_direction, 13.0), 0.0)) {\n alongNormal(offset, a_lastPos, -1.0, direction);\n } else if (nearlyEquals(mod(a_direction, 23.0), 0.0)) {\n miterUp(offset, v_round, round, direction);\n } else if (nearlyEquals(mod(a_direction, 19.0), 0.0)) {\n degenerate = miterDown(offset, projPos, offsetMatrix, direction);\n } else if (nearlyEquals(mod(a_direction, 7.0), 0.0)) {\n squareCap(offset, v_round, round, a_nextPos, 1.0, direction);\n } else if (nearlyEquals(mod(a_direction, 11.0), 0.0)) {\n squareCap(offset, v_round, round, a_lastPos, -1.0, direction);\n }\n if (!degenerate) {\n vec4 offsets = offsetMatrix * vec4(offset, 0.0, 0.0);\n gl_Position = projPos + offsets;\n } else {\n gl_Position = vec4(offset, 0.0, 1.0);\n }\n}\n\n\n"),kh=function(t,e){this.u_projectionMatrix=t.getUniformLocation(e,"u_projectionMatrix"),this.u_offsetScaleMatrix=t.getUniformLocation(e,"u_offsetScaleMatrix"),this.u_offsetRotateMatrix=t.getUniformLocation(e,"u_offsetRotateMatrix"),this.u_lineWidth=t.getUniformLocation(e,"u_lineWidth"),this.u_miterLimit=t.getUniformLocation(e,"u_miterLimit"),this.u_opacity=t.getUniformLocation(e,"u_opacity"),this.u_color=t.getUniformLocation(e,"u_color"),this.u_size=t.getUniformLocation(e,"u_size"),this.u_pixelRatio=t.getUniformLocation(e,"u_pixelRatio"),this.a_lastPos=t.getAttribLocation(e,"a_lastPos"),this.a_position=t.getAttribLocation(e,"a_position"),this.a_nextPos=t.getAttribLocation(e,"a_nextPos"),this.a_direction=t.getAttribLocation(e,"a_direction")},jh=3,Uh=5,Yh=7,Bh=11,Vh=13,Xh=17,zh=19,Wh=23,Kh=function(t){function e(e,i){t.call(this,e,i),this.defaultLocations_=null,this.styles_=[],this.styleIndices_=[],this.state_={strokeColor:null,lineCap:void 0,lineDash:null,lineDashOffset:void 0,lineJoin:void 0,lineWidth:void 0,miterLimit:void 0,changed:!1}}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.drawCoordinates_=function(t,e,i,r){var n,o,s,a,h,l,u,p,c=this.vertices.length,d=this.indices.length,f="bevel"===this.state_.lineJoin?0:"miter"===this.state_.lineJoin?1:2,_="butt"===this.state_.lineCap?0:"square"===this.state_.lineCap?1:2,g=Nh(t,e,i,r),y=d,v=1;for(n=e,o=i;ne&&(this.indices[d++]=h,this.indices[d++]=y-1,this.indices[d++]=y,this.indices[d++]=h+2,this.indices[d++]=h,this.indices[d++]=v*a>0?y:y-1),this.indices[d++]=h,this.indices[d++]=h+2,this.indices[d++]=h+1,y=h+2,v=a,f&&(c=this.addVertices_(l,u,p,a*Wh*f,c),this.indices[d++]=h+1,this.indices[d++]=h+3,this.indices[d++]=h)}g&&(h=h||c/7,a=Si([l[0],l[1],u[0],u[1],p[0],p[1]],0,6,2)?1:-1,c=this.addVertices_(l,u,p,a*Vh*(f||1),c),c=this.addVertices_(l,u,p,-a*zh*(f||1),c),this.indices[d++]=h,this.indices[d++]=y-1,this.indices[d++]=y,this.indices[d++]=h+1,this.indices[d++]=h,this.indices[d++]=v*a>0?y:y-1)},e.prototype.addVertices_=function(t,e,i,r,n){return this.vertices[n++]=t[0],this.vertices[n++]=t[1],this.vertices[n++]=e[0],this.vertices[n++]=e[1],this.vertices[n++]=i[0],this.vertices[n++]=i[1],this.vertices[n++]=r,n},e.prototype.isValid_=function(t,e,i,r){var n=i-e;return!(n<2*r)&&(n!==2*r||!Z([t[e],t[e+1]],[t[e+r],t[e+r+1]]))},e.prototype.drawLineString=function(t,e){var i=t.getFlatCoordinates(),r=t.getStride();this.isValid_(i,0,i.length,r)&&(i=Dt(i,0,i.length,r,-this.origin[0],-this.origin[1]),this.state_.changed&&(this.styleIndices_.push(this.indices.length),this.state_.changed=!1),this.startIndices.push(this.indices.length),this.startIndicesFeature.push(e),this.drawCoordinates_(i,0,i.length,r))},e.prototype.drawMultiLineString=function(t,e){var i=this.indices.length,r=t.getEnds();r.unshift(0);var n,o,s=t.getFlatCoordinates(),a=t.getStride();if(r.length>1)for(n=1,o=r.length;ni&&(this.startIndices.push(i),this.startIndicesFeature.push(e),this.state_.changed&&(this.styleIndices_.push(i),this.state_.changed=!1))},e.prototype.drawPolygonCoordinates=function(t,e,i){var r,n;if(Nh(t,0,t.length,i)||(t.push(t[0]),t.push(t[1])),this.drawCoordinates_(t,0,t.length,i),e.length)for(r=0,n=e.length;r0&&(this.styles_=[]),this.vertices=null,this.indices=null},e.prototype.getDeleteResourcesFunction=function(t){var e=this.verticesBuffer,i=this.indicesBuffer;return function(){t.deleteBuffer(e),t.deleteBuffer(i)}},e.prototype.setUpProgram=function(t,e,i,r){var n,o=e.getProgram(Gh,Dh);return this.defaultLocations_?n=this.defaultLocations_:(n=new kh(t,o),this.defaultLocations_=n),e.useProgram(o),t.enableVertexAttribArray(n.a_lastPos),t.vertexAttribPointer(n.a_lastPos,2,5126,!1,28,0),t.enableVertexAttribArray(n.a_position),t.vertexAttribPointer(n.a_position,2,5126,!1,28,8),t.enableVertexAttribArray(n.a_nextPos),t.vertexAttribPointer(n.a_nextPos,2,5126,!1,28,16),t.enableVertexAttribArray(n.a_direction),t.vertexAttribPointer(n.a_direction,1,5126,!1,28,24),t.uniform2fv(n.u_size,i),t.uniform1f(n.u_pixelRatio,r),n},e.prototype.shutDownProgram=function(t,e){t.disableVertexAttribArray(e.a_lastPos),t.disableVertexAttribArray(e.a_position),t.disableVertexAttribArray(e.a_nextPos),t.disableVertexAttribArray(e.a_direction)},e.prototype.drawReplay=function(t,e,i,r){var n,o,s,a,h=t.getParameter(t.DEPTH_FUNC),l=t.getParameter(t.DEPTH_WRITEMASK);if(r||(t.enable(t.DEPTH_TEST),t.depthMask(!0),t.depthFunc(t.NOTEQUAL)),d(i))for(s=this.startIndices[this.startIndices.length-1],n=this.styleIndices_.length-1;n>=0;--n)o=this.styleIndices_[n],a=this.styles_[n],this.setStrokeStyle_(t,a[0],a[1],a[2]),this.drawElements(t,e,o,s),t.clear(t.DEPTH_BUFFER_BIT),s=o;else this.drawReplaySkipping_(t,e,i);r||(t.disable(t.DEPTH_TEST),t.clear(t.DEPTH_BUFFER_BIT),t.depthMask(l),t.depthFunc(h))},e.prototype.drawReplaySkipping_=function(t,e,i){var r,n,s,a,h,l,u;for(l=this.startIndices.length-2,s=n=this.startIndices[l+1],r=this.styleIndices_.length-1;r>=0;--r){for(a=this.styles_[r],this.setStrokeStyle_(t,a[0],a[1],a[2]),h=this.styleIndices_[r];l>=0&&this.startIndices[l]>=h;)u=this.startIndices[l],i[o(this.startIndicesFeature[l])]&&(n!==s&&(this.drawElements(t,e,n,s),t.clear(t.DEPTH_BUFFER_BIT)),s=u),l--,n=u;n!==s&&(this.drawElements(t,e,n,s),t.clear(t.DEPTH_BUFFER_BIT)),n=s=h}},e.prototype.drawHitDetectionReplayOneByOne=function(t,e,i,r,n){var s,a,h,l,u,p,c;for(c=this.startIndices.length-2,h=this.startIndices[c+1],s=this.styleIndices_.length-1;s>=0;--s)for(l=this.styles_[s],this.setStrokeStyle_(t,l[0],l[1],l[2]),u=this.styleIndices_[s];c>=0&&this.startIndices[c]>=u;){if(a=this.startIndices[c],void 0===i[o(p=this.startIndicesFeature[c])]&&p.getGeometry()&&(void 0===n||Pt(n,p.getGeometry().getExtent()))){t.clear(t.COLOR_BUFFER_BIT|t.DEPTH_BUFFER_BIT),this.drawElements(t,e,a,h);var d=r(p);if(d)return d}c--,h=a}},e.prototype.setStrokeStyle_=function(t,e,i,r){t.uniform4fv(this.defaultLocations_.u_color,e),t.uniform1f(this.defaultLocations_.u_lineWidth,i),t.uniform1f(this.defaultLocations_.u_miterLimit,r)},e.prototype.setFillStrokeStyle=function(t,e){var i=e.getLineCap();this.state_.lineCap=void 0!==i?i:"round";var r=e.getLineDash();this.state_.lineDash=r||yh;var n=e.getLineDashOffset();this.state_.lineDashOffset=n||0;var o=e.getLineJoin();this.state_.lineJoin=void 0!==o?o:"round";var s=e.getColor();s=s instanceof CanvasGradient||s instanceof CanvasPattern?vh:_r(s).map(function(t,e){return 3!=e?t/255:t})||vh;var a=e.getWidth();a=void 0!==a?a:1;var h=e.getMiterLimit();h=void 0!==h?h:10,this.state_.strokeColor&&Z(this.state_.strokeColor,s)&&this.state_.lineWidth===a&&this.state_.miterLimit===h||(this.state_.changed=!0,this.state_.strokeColor=s,this.state_.lineWidth=a,this.state_.miterLimit=h,this.styles_.push([s,a,h]))},e}(_h),Hh=new lh("precision mediump float;\n\n\n\nuniform vec4 u_color;\nuniform float u_opacity;\n\nvoid main(void) {\n gl_FragColor = u_color;\n float alpha = u_color.a * u_opacity;\n if (alpha == 0.0) {\n discard;\n }\n gl_FragColor.a = alpha;\n}\n"),Zh=new uh("\n\nattribute vec2 a_position;\n\nuniform mat4 u_projectionMatrix;\nuniform mat4 u_offsetScaleMatrix;\nuniform mat4 u_offsetRotateMatrix;\n\nvoid main(void) {\n gl_Position = u_projectionMatrix * vec4(a_position, 0.0, 1.0);\n}\n\n\n"),qh=function(t,e){this.u_projectionMatrix=t.getUniformLocation(e,"u_projectionMatrix"),this.u_offsetScaleMatrix=t.getUniformLocation(e,"u_offsetScaleMatrix"),this.u_offsetRotateMatrix=t.getUniformLocation(e,"u_offsetRotateMatrix"),this.u_color=t.getUniformLocation(e,"u_color"),this.u_opacity=t.getUniformLocation(e,"u_opacity"),this.a_position=t.getAttribLocation(e,"a_position")},Jh=function(t){this.first_,this.last_,this.head_,this.circular_=void 0===t||t,this.length_=0};Jh.prototype.insertItem=function(t){var e={prev:void 0,next:void 0,data:t},i=this.head_;if(i){var r=i.next;e.prev=i,e.next=r,i.next=e,r&&(r.prev=e),i===this.last_&&(this.last_=e)}else this.first_=e,this.last_=e,this.circular_&&(e.next=e,e.prev=e);this.head_=e,this.length_++},Jh.prototype.removeItem=function(){var t=this.head_;if(t){var e=t.next,i=t.prev;e&&(e.prev=i),i&&(i.next=e),this.head_=e||i,this.first_===this.last_?(this.head_=void 0,this.first_=void 0,this.last_=void 0):this.first_===t?this.first_=this.head_:this.last_===t&&(this.last_=i?this.head_.prev:this.head_),this.length_--}},Jh.prototype.firstItem=function(){if(this.head_=this.first_,this.head_)return this.head_.data},Jh.prototype.lastItem=function(){if(this.head_=this.last_,this.head_)return this.head_.data},Jh.prototype.nextItem=function(){if(this.head_&&this.head_.next)return this.head_=this.head_.next,this.head_.data},Jh.prototype.getNextItem=function(){if(this.head_&&this.head_.next)return this.head_.next.data},Jh.prototype.prevItem=function(){if(this.head_&&this.head_.prev)return this.head_=this.head_.prev,this.head_.data},Jh.prototype.getPrevItem=function(){if(this.head_&&this.head_.prev)return this.head_.prev.data},Jh.prototype.getCurrItem=function(){if(this.head_)return this.head_.data},Jh.prototype.setFirstItem=function(){this.circular_&&this.head_&&(this.first_=this.head_,this.last_=this.head_.prev)},Jh.prototype.concat=function(t){if(t.head_){if(this.head_){var e=this.head_.next;this.head_.next=t.first_,t.first_.prev=this.head_,e.prev=t.last_,t.last_.next=e,this.length_+=t.length_}else this.head_=t.head_,this.first_=t.first_,this.last_=t.last_,this.length_=t.length_;t.head_=void 0,t.first_=void 0,t.last_=void 0,t.length_=0}},Jh.prototype.getLength=function(){return this.length_};var Qh=Jh,$h=function(t){this.rbush_=ua()(t,void 0),this.items_={}};$h.prototype.insert=function(t,e){var i={minX:t[0],minY:t[1],maxX:t[2],maxY:t[3],value:e};this.rbush_.insert(i),this.items_[o(e)]=i},$h.prototype.load=function(t,e){for(var i=new Array(e.length),r=0,n=e.length;r=s;o-=e)l=this.createPoint_(t[o],t[o+1],p++),d.push(this.insertItem_(h,l,i)),c.push([Math.min(h.x,l.x),Math.min(h.y,l.y),Math.max(h.x,l.x),Math.max(h.y,l.y)]),h=l;d.push(this.insertItem_(l,a,i)),c.push([Math.min(h.x,l.x),Math.min(h.y,l.y),Math.max(h.x,l.x),Math.max(h.y,l.y)])}r.load(c,d)},e.prototype.getMaxCoords_=function(t){var e=t.firstItem(),i=e,r=[i.p0.x,i.p0.y];do{(i=t.nextItem()).p0.x>r[0]&&(r=[i.p0.x,i.p0.y])}while(i!==e);return r},e.prototype.classifyPoints_=function(t,e,i){var r=t.firstItem(),n=r,o=t.nextItem(),s=!1;do{var a=i?xh(o.p1.x,o.p1.y,n.p1.x,n.p1.y,n.p0.x,n.p0.y):xh(n.p0.x,n.p0.y,n.p1.x,n.p1.y,o.p1.x,o.p1.y);void 0===a?(this.removeItem_(n,o,t,e),s=!0,o===r&&(r=t.getNextItem()),o=n,t.prevItem()):n.p1.reflex!==a&&(n.p1.reflex=a,s=!0),n=o,o=t.nextItem()}while(n!==r);return s},e.prototype.bridgeHole_=function(t,e,i,r,n){for(var o=t.firstItem();o.p1.x!==e;)o=t.nextItem();var s,a,h,l,u=o.p1,p={x:r,y:u.y,i:-1},c=1/0,d=this.getIntersections_({p0:u,p1:p},n,!0);for(s=0,a=d.length;s0){var y=this.getPointsInTriangle_(u,l,o.p1,n);if(y.length){var v=1/0;for(s=0,a=y.length;s3;)if(r){if(!this.clipEars_(t,e,r,i)&&!this.classifyPoints_(t,e,i)&&!this.resolveSelfIntersections_(t,e,!0))break}else if(!this.clipEars_(t,e,r,i)&&!this.classifyPoints_(t,e,i)&&!this.resolveSelfIntersections_(t,e)){if(!(r=this.isSimple_(t,e))){this.splitPolygon_(t,e);break}i=!this.isClockwise_(t),this.classifyPoints_(t,e,i)}if(3===t.getLength()){var n=this.indices.length;this.indices[n++]=t.getPrevItem().p0.i,this.indices[n++]=t.getCurrItem().p0.i,this.indices[n++]=t.getNextItem().p0.i}},e.prototype.clipEars_=function(t,e,i,r){var n,o,s,a=this.indices.length,h=t.firstItem(),l=t.getPrevItem(),u=h,p=t.nextItem(),c=t.getNextItem(),d=!1;do{if(n=u.p0,o=u.p1,s=p.p1,!1===o.reflex){var f=void 0;f=i?0===this.getPointsInTriangle_(n,o,s,e,!0).length:r?this.diagonalIsInside_(c.p1,s,o,n,l.p0):this.diagonalIsInside_(l.p0,n,o,s,c.p1),(i||0===this.getIntersections_({p0:n,p1:s},e).length)&&f&&(i||!1===n.reflex||!1===s.reflex||Si([l.p0.x,l.p0.y,n.x,n.y,o.x,o.y,s.x,s.y,c.p1.x,c.p1.y],0,10,2)===!r)&&(this.indices[a++]=n.i,this.indices[a++]=o.i,this.indices[a++]=s.i,this.removeItem_(u,p,t,e),p===h&&(h=c),d=!0)}l=t.getPrevItem(),u=t.getCurrItem(),p=t.nextItem(),c=t.getNextItem()}while(u!==h&&t.getLength()>3);return d},e.prototype.resolveSelfIntersections_=function(t,e,i){var r=t.firstItem();t.nextItem();var n=r,o=t.nextItem(),s=!1;do{var a=this.calculateIntersection_(n.p0,n.p1,o.p0,o.p1,i);if(a){var h=!1,l=this.vertices.length,u=this.indices.length,p=l/2,c=t.prevItem();t.removeItem(),e.remove(c),h=c===r;var d=void 0;if(i?(a[0]===n.p0.x&&a[1]===n.p0.y?(t.prevItem(),d=n.p0,o.p0=d,e.remove(n),h=h||n===r):(d=o.p1,n.p1=d,e.remove(o),h=h||o===r),t.removeItem()):(d=this.createPoint_(a[0],a[1],p),n.p1=d,o.p0=d,e.update([Math.min(n.p0.x,n.p1.x),Math.min(n.p0.y,n.p1.y),Math.max(n.p0.x,n.p1.x),Math.max(n.p0.y,n.p1.y)],n),e.update([Math.min(o.p0.x,o.p1.x),Math.min(o.p0.y,o.p1.y),Math.max(o.p0.x,o.p1.x),Math.max(o.p0.y,o.p1.y)],o)),this.indices[u++]=c.p0.i,this.indices[u++]=c.p1.i,this.indices[u++]=d.i,s=!0,h)break}n=t.getPrevItem(),o=t.nextItem()}while(n!==r);return s},e.prototype.isSimple_=function(t,e){var i=t.firstItem(),r=i;do{if(this.getIntersections_(r,e).length)return!1;r=t.nextItem()}while(r!==i);return!0},e.prototype.isClockwise_=function(t){var e=2*t.getLength(),i=new Array(e),r=t.firstItem(),n=r,o=0;do{i[o++]=n.p0.x,i[o++]=n.p0.y,n=t.nextItem()}while(n!==r);return Si(i,0,e,2)},e.prototype.splitPolygon_=function(t,e){var i=t.firstItem(),r=i;do{var n=this.getIntersections_(r,e);if(n.length){var o=n[0],s=this.vertices.length/2,a=this.calculateIntersection_(r.p0,r.p1,o.p0,o.p1),h=this.createPoint_(a[0],a[1],s),l=new Qh,u=new tl;this.insertItem_(h,r.p1,l,u),r.p1=h,e.update([Math.min(r.p0.x,h.x),Math.min(r.p0.y,h.y),Math.max(r.p0.x,h.x),Math.max(r.p0.y,h.y)],r);for(var p=t.nextItem();p!==o;)this.insertItem_(p.p0,p.p1,l,u),e.remove(p),t.removeItem(),p=t.getCurrItem();this.insertItem_(o.p0,h,l,u),o.p0=h,e.update([Math.min(o.p1.x,h.x),Math.min(o.p1.y,h.y),Math.max(o.p1.x,h.x),Math.max(o.p1.y,h.y)],o),this.classifyPoints_(t,e,!1),this.triangulate_(t,e),this.classifyPoints_(l,u,!1),this.triangulate_(l,u);break}r=t.nextItem()}while(r!==i)},e.prototype.createPoint_=function(t,e,i){var r=this.vertices.length;return this.vertices[r++]=t,this.vertices[r++]=e,{x:t,y:e,i:i,reflex:void 0}},e.prototype.insertItem_=function(t,e,i,r){var n={p0:t,p1:e};return i.insertItem(n),r&&r.insert([Math.min(t.x,e.x),Math.min(t.y,e.y),Math.max(t.x,e.x),Math.max(t.y,e.y)],n),n},e.prototype.removeItem_=function(t,e,i,r){i.getCurrItem()===e&&(i.removeItem(),t.p1=e.p1,r.remove(e),r.update([Math.min(t.p0.x,t.p1.x),Math.min(t.p0.y,t.p1.y),Math.max(t.p0.x,t.p1.x),Math.max(t.p0.y,t.p1.y)],t))},e.prototype.getPointsInTriangle_=function(t,e,i,r,n){for(var o=[],s=r.getInExtent([Math.min(t.x,e.x,i.x),Math.min(t.y,e.y,i.y),Math.max(t.x,e.x,i.x),Math.max(t.y,e.y,i.y)]),a=0,h=s.length;amh&&s<1-mh&&a>mh&&a<1-mh||n&&s>=0&&s<=1&&a>=0&&a<=1)return[t.x+s*(e.x-t.x),t.y+s*(e.y-t.y)]}},e.prototype.diagonalIsInside_=function(t,e,i,r,n){if(void 0===e.reflex||void 0===r.reflex)return!1;var o=(i.x-r.x)*(e.y-r.y)>(i.y-r.y)*(e.x-r.x),s=(n.x-r.x)*(e.y-r.y)<(n.y-r.y)*(e.x-r.x),a=(t.x-e.x)*(r.y-e.y)>(t.y-e.y)*(r.x-e.x),h=(i.x-e.x)*(r.y-e.y)<(i.y-e.y)*(r.x-e.x),l=r.reflex?s||o:s&&o,u=e.reflex?h||a:h&&a;return l&&u},e.prototype.drawMultiPolygon=function(t,e){var i,r,n,o,s=t.getEndss(),a=t.getStride(),h=this.indices.length,l=this.lineStringReplay.getCurrentIndex(),u=t.getFlatCoordinates(),p=0;for(i=0,r=s.length;i0){var d=Dt(u,p,c[0],a,-this.origin[0],-this.origin[1]);if(d.length){var f=[],_=void 0;for(n=1,o=c.length;nh&&(this.startIndices.push(h),this.startIndicesFeature.push(e),this.state_.changed&&(this.styleIndices_.push(h),this.state_.changed=!1)),this.lineStringReplay.getCurrentIndex()>l&&this.lineStringReplay.setPolygonStyle(e,l)},e.prototype.drawPolygon=function(t,e){var i=t.getEnds(),r=t.getStride();if(i.length>0){var n=t.getFlatCoordinates().map(Number),o=Dt(n,0,i[0],r,-this.origin[0],-this.origin[1]);if(o.length){var s,a,h,l=[];for(s=1,a=i.length;s0&&(this.styles_=[]),this.vertices=null,this.indices=null},e.prototype.getDeleteResourcesFunction=function(t){var e=this.verticesBuffer,i=this.indicesBuffer,r=this.lineStringReplay.getDeleteResourcesFunction(t);return function(){t.deleteBuffer(e),t.deleteBuffer(i),r()}},e.prototype.setUpProgram=function(t,e,i,r){var n,o=e.getProgram(Hh,Zh);return this.defaultLocations_?n=this.defaultLocations_:(n=new qh(t,o),this.defaultLocations_=n),e.useProgram(o),t.enableVertexAttribArray(n.a_position),t.vertexAttribPointer(n.a_position,2,5126,!1,8,0),n},e.prototype.shutDownProgram=function(t,e){t.disableVertexAttribArray(e.a_position)},e.prototype.drawReplay=function(t,e,i,r){var n,o,s,a,h=t.getParameter(t.DEPTH_FUNC),l=t.getParameter(t.DEPTH_WRITEMASK);if(r||(t.enable(t.DEPTH_TEST),t.depthMask(!0),t.depthFunc(t.NOTEQUAL)),d(i))for(s=this.startIndices[this.startIndices.length-1],n=this.styleIndices_.length-1;n>=0;--n)o=this.styleIndices_[n],a=this.styles_[n],this.setFillStyle_(t,a),this.drawElements(t,e,o,s),s=o;else this.drawReplaySkipping_(t,e,i);r||(t.disable(t.DEPTH_TEST),t.clear(t.DEPTH_BUFFER_BIT),t.depthMask(l),t.depthFunc(h))},e.prototype.drawHitDetectionReplayOneByOne=function(t,e,i,r,n){var s,a,h,l,u,p,c;for(c=this.startIndices.length-2,h=this.startIndices[c+1],s=this.styleIndices_.length-1;s>=0;--s)for(l=this.styles_[s],this.setFillStyle_(t,l),u=this.styleIndices_[s];c>=0&&this.startIndices[c]>=u;){if(a=this.startIndices[c],void 0===i[o(p=this.startIndicesFeature[c])]&&p.getGeometry()&&(void 0===n||Pt(n,p.getGeometry().getExtent()))){t.clear(t.COLOR_BUFFER_BIT|t.DEPTH_BUFFER_BIT),this.drawElements(t,e,a,h);var d=r(p);if(d)return d}c--,h=a}},e.prototype.drawReplaySkipping_=function(t,e,i){var r,n,s,a,h,l,u;for(l=this.startIndices.length-2,s=n=this.startIndices[l+1],r=this.styleIndices_.length-1;r>=0;--r){for(a=this.styles_[r],this.setFillStyle_(t,a),h=this.styleIndices_[r];l>=0&&this.startIndices[l]>=h;)u=this.startIndices[l],i[o(this.startIndicesFeature[l])]&&(n!==s&&(this.drawElements(t,e,n,s),t.clear(t.DEPTH_BUFFER_BIT)),s=u),l--,n=u;n!==s&&(this.drawElements(t,e,n,s),t.clear(t.DEPTH_BUFFER_BIT)),n=s=h}},e.prototype.setFillStyle_=function(t,e){t.uniform4fv(this.defaultLocations_.u_color,e)},e.prototype.setFillStrokeStyle=function(t,e){var i=t?t.getColor():[0,0,0,0];if(i=i instanceof CanvasGradient||i instanceof CanvasPattern?gh:_r(i).map(function(t,e){return 3!=e?t/255:t})||gh,this.state_.fillColor&&Z(i,this.state_.fillColor)||(this.state_.fillColor=i,this.state_.changed=!0,this.styles_.push(i)),e)this.lineStringReplay.setFillStrokeStyle(null,e);else{var r=new Er({color:[0,0,0,0],width:0});this.lineStringReplay.setFillStrokeStyle(null,r)}},e}(_h),il=function(t,e){this.space_=e,this.emptyBlocks_=[{x:0,y:0,width:t,height:t}],this.entries_={},this.context_=Jn(t,t),this.canvas_=this.context_.canvas};il.prototype.get=function(t){return this.entries_[t]||null},il.prototype.add=function(t,e,i,r,n){for(var o=0,s=this.emptyBlocks_.length;o=e+this.space_&&a.height>=i+this.space_){var h={offsetX:a.x+this.space_,offsetY:a.y+this.space_,image:this.canvas_};return this.entries_[t]=h,r.call(n,this.context_,a.x+this.space_,a.y+this.space_),this.split_(o,a,e+this.space_,i+this.space_),h}}return null},il.prototype.split_=function(t,e,i,r){var n,o;e.width-i>e.height-r?(n={x:e.x+i,y:e.y,width:e.width-i,height:e.height},o={x:e.x,y:e.y+r,width:i,height:e.height-r},this.updateBlocks_(t,n,o)):(n={x:e.x+i,y:e.y,width:e.width-i,height:r},o={x:e.x,y:e.y+r,width:e.width,height:e.height-r},this.updateBlocks_(t,n,o))},il.prototype.updateBlocks_=function(t,e,i){var r=[t,1];e.width>0&&e.height>0&&r.push(e),i.width>0&&i.height>0&&r.push(i),this.emptyBlocks_.splice.apply(this.emptyBlocks_,r)};var rl=il,nl=function(t){var e=t||{};this.currentSize_=void 0!==e.initialSize?e.initialSize:256,this.maxSize_=void 0!==e.maxSize?e.maxSize:void 0!==nh?nh:2048,this.space_=void 0!==e.space?e.space:1,this.atlases_=[new rl(this.currentSize_,this.space_)],this.currentHitSize_=this.currentSize_,this.hitAtlases_=[new rl(this.currentHitSize_,this.space_)]};nl.prototype.getInfo=function(t){var e=this.getInfo_(this.atlases_,t);if(!e)return null;var i=this.getInfo_(this.hitAtlases_,t);return this.mergeInfos_(e,i)},nl.prototype.getInfo_=function(t,e){for(var i=0,r=t.length;ithis.maxSize_||i+this.space_>this.maxSize_)return null;var s=this.add_(!1,t,e,i,r,o);if(!s)return null;var a=void 0!==n?n:I,h=this.add_(!0,t,e,i,a,o);return this.mergeInfos_(s,h)},nl.prototype.add_=function(t,e,i,r,n,o){var s,a,h,l,u=t?this.hitAtlases_:this.atlases_;for(h=0,l=u.length;h=0;--d)if(void 0!==(_=f[Ea[d]])&&(g=_.replay(t,e,i,r,n,o,s,a,h,l,u)))return g},e.prototype.forEachFeatureAtCoordinate=function(t,e,i,r,n,o,s,a,h,l){var u,p=e.getGL();return p.bindFramebuffer(p.FRAMEBUFFER,e.getHitDetectionFramebuffer()),void 0!==this.renderBuffer_&&(u=et(pt(t),r*this.renderBuffer_)),this.replayHitDetection_(e,t,r,n,al,s,a,h,function(t){var e=new Uint8Array(4);if(p.readPixels(0,0,1,1,p.RGBA,p.UNSIGNED_BYTE,e),e[3]>0){var i=l(t);if(i)return i}},!0,u)},e.prototype.hasFeatureAtCoordinate=function(t,e,i,r,n,o,s,a,h){var l=e.getGL();return l.bindFramebuffer(l.FRAMEBUFFER,e.getHitDetectionFramebuffer()),void 0!==this.replayHitDetection_(e,t,r,n,al,s,a,h,function(t){var e=new Uint8Array(4);return l.readPixels(0,0,1,1,l.RGBA,l.UNSIGNED_BYTE,e),e[3]>0},!1)},e}(ca),ul=function(t){function e(e,i,r,n,o,s,a){t.call(this),this.context_=e,this.center_=i,this.extent_=s,this.pixelRatio_=a,this.size_=o,this.rotation_=n,this.resolution_=r,this.imageStyle_=null,this.fillStyle_=null,this.strokeStyle_=null,this.textStyle_=null}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.drawText_=function(t,e){var i=this.context_,r=t.getReplay(0,da.TEXT);r.setTextStyle(this.textStyle_),r.drawText(e,null),r.finish(i);r.replay(this.context_,this.center_,this.resolution_,this.rotation_,this.size_,this.pixelRatio_,1,{},void 0,!1),r.getDeleteResourcesFunction(i)()},e.prototype.setStyle=function(t){this.setFillStrokeStyle(t.getFill(),t.getStroke()),this.setImageStyle(t.getImage()),this.setTextStyle(t.getText())},e.prototype.drawGeometry=function(t){switch(t.getType()){case Nt.POINT:this.drawPoint(t,null);break;case Nt.LINE_STRING:this.drawLineString(t,null);break;case Nt.POLYGON:this.drawPolygon(t,null);break;case Nt.MULTI_POINT:this.drawMultiPoint(t,null);break;case Nt.MULTI_LINE_STRING:this.drawMultiLineString(t,null);break;case Nt.MULTI_POLYGON:this.drawMultiPolygon(t,null);break;case Nt.GEOMETRY_COLLECTION:this.drawGeometryCollection(t,null);break;case Nt.CIRCLE:this.drawCircle(t,null)}},e.prototype.drawFeature=function(t,e){var i=e.getGeometryFunction()(t);i&&Pt(this.extent_,i.getExtent())&&(this.setStyle(e),this.drawGeometry(i))},e.prototype.drawGeometryCollection=function(t,e){var i,r,n=t.getGeometriesArray();for(i=0,r=n.length;in[0]||o[1]<0||o[1]>n[1])){this.hitCanvasContext_||(this.hitCanvasContext_=Jn(1,1)),this.hitCanvasContext_.clearRect(0,0,1,1),this.hitCanvasContext_.drawImage(this.image_.getImage(),o[0],o[1],1,1,0,0,1,1);var s=this.hitCanvasContext_.getImageData(0,0,1,1).data;return s[3]>0?i.call(r,this.getLayer(),s):void 0}}},e.prototype.getHitTransformationMatrix_=function(t,e){var i=[1,0,0,1,0,0];Ue(i,-1,-1),je(i,2/t[0],2/t[1]),Ue(i,0,t[1]),je(i,1,-1);var r=Be(this.projectionMatrix.slice()),n=[1,0,0,1,0,0];return Ue(n,0,e[1]),je(n,1,-1),je(n,e[0]/2,e[1]/2),Ue(n,1,1),Ae(n,r),Ae(n,i),n},e}(fl);_l.handles=function(t){return t.getType()===Ss.IMAGE},_l.create=function(t,e){return new _l(t,e)};var gl=_l,yl=function(t){function e(e){t.call(this,e);var i=e.getViewport();this.canvas_=document.createElement("canvas"),this.canvas_.style.width="100%",this.canvas_.style.height="100%",this.canvas_.style.display="block",this.canvas_.className=fo,i.insertBefore(this.canvas_,i.childNodes[0]||null),this.clipTileCanvasWidth_=0,this.clipTileCanvasHeight_=0,this.clipTileContext_=Jn(),this.renderedVisible_=!0,this.gl_=rh(this.canvas_,{antialias:!0,depth:!0,failIfMajorPerformanceCaveat:!0,preserveDrawingBuffer:!1,stencil:!0}),this.context_=new Mh(this.canvas_,this.gl_),v(this.canvas_,Lh.LOST,this.handleWebGLContextLost,this),v(this.canvas_,Lh.RESTORED,this.handleWebGLContextRestored,this),this.textureCache_=new Rs,this.focus_=null,this.tileTextureQueue_=new bn(function(t){var e=t[1],i=t[2],r=e[0]-this.focus_[0],n=e[1]-this.focus_[1];return 65536*Math.log(i)+Math.sqrt(r*r+n*n)/i}.bind(this),function(t){return t[0].getKey()}),this.loadNextTileTexture_=function(t,e){if(!this.tileTextureQueue_.isEmpty()){this.tileTextureQueue_.reprioritize();var i=this.tileTextureQueue_.dequeue(),r=i[0],n=i[3],o=i[4];this.bindTileTexture(r,n,o,Qa,Qa)}return!1}.bind(this),this.textureCacheFrameMarkerCount_=0,this.initializeGL_()}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.bindTileTexture=function(t,e,i,r,n){var o=this.getGL(),s=t.getKey();if(this.textureCache_.containsKey(s)){var a=this.textureCache_.get(s);o.bindTexture(eh,a.texture),a.magFilter!=r&&(o.texParameteri(eh,10240,r),a.magFilter=r),a.minFilter!=n&&(o.texParameteri(eh,10241,n),a.minFilter=n)}else{var h=o.createTexture(),l=t;if(o.bindTexture(eh,h),i>0){var u=this.clipTileContext_.canvas,p=this.clipTileContext_;this.clipTileCanvasWidth_!==e[0]||this.clipTileCanvasHeight_!==e[1]?(u.width=e[0],u.height=e[1],this.clipTileCanvasWidth_=e[0],this.clipTileCanvasHeight_=e[1]):p.clearRect(0,0,e[0],e[1]),p.drawImage(l.getImage(),i,i,e[0],e[1],0,0,e[0],e[1]),o.texImage2D(eh,0,6408,6408,5121,u)}else o.texImage2D(eh,0,6408,6408,5121,l.getImage());o.texParameteri(eh,10240,r),o.texParameteri(eh,10241,n),o.texParameteri(eh,$a,33071),o.texParameteri(eh,th,33071),this.textureCache_.set(s,{texture:h,magFilter:r,minFilter:n})}},e.prototype.dispatchRenderEvent=function(t,e){var i=this.getMap();if(i.hasListener(t)){var r=this.context_,n=e.extent,o=e.size,s=e.viewState,a=e.pixelRatio,h=s.resolution,l=s.center,u=s.rotation,p=new ul(r,l,h,u,o,n,a),c=new Cs(t,p,e,null,r);i.dispatchEvent(c)}},e.prototype.disposeInternal=function(){var e=this.getGL();e.isContextLost()||this.textureCache_.forEach(function(t){t&&e.deleteTexture(t.texture)}),this.context_.dispose(),t.prototype.disposeInternal.call(this)},e.prototype.expireCache_=function(t,e){for(var i,r=this.getGL();this.textureCache_.getCount()-this.textureCacheFrameMarkerCount_>1024;){if(i=this.textureCache_.peekLast())r.deleteTexture(i.texture);else{if(+this.textureCache_.peekLastKey()==e.index)break;--this.textureCacheFrameMarkerCount_}this.textureCache_.pop()}},e.prototype.getContext=function(){return this.context_},e.prototype.getGL=function(){return this.gl_},e.prototype.getTileTextureQueue=function(){return this.tileTextureQueue_},e.prototype.handleWebGLContextLost=function(t){t.preventDefault(),this.textureCache_.clear(),this.textureCacheFrameMarkerCount_=0;var e=this.getLayerRenderers();for(var i in e){e[i].handleWebGLContextLost()}},e.prototype.handleWebGLContextRestored=function(){this.initializeGL_(),this.getMap().render()},e.prototype.initializeGL_=function(){var t=this.gl_;t.activeTexture(33984),t.blendFuncSeparate(770,771,1,771),t.disable(2884),t.disable(2929),t.disable(3089),t.disable(2960)},e.prototype.isTileTextureLoaded=function(t){return this.textureCache_.containsKey(t.getKey())},e.prototype.renderFrame=function(t){var e=this.getContext(),i=this.getGL();if(i.isContextLost())return!1;if(!t)return this.renderedVisible_&&(this.canvas_.style.display="none",this.renderedVisible_=!1),!1;this.focus_=t.focus,this.textureCache_.set((-t.index).toString(),null),++this.textureCacheFrameMarkerCount_,this.dispatchRenderEvent(ur.PRECOMPOSE,t);var r=[],n=t.layerStatesArray;q(n,Zs);var o,s,a=t.viewState.resolution;for(o=0,s=n.length;o1024&&t.postRenderFunctions.push(this.expireCache_.bind(this)),this.tileTextureQueue_.isEmpty()||(t.postRenderFunctions.push(this.loadNextTileTexture_),t.animate=!0),this.dispatchRenderEvent(ur.POSTCOMPOSE,t),this.scheduleRemoveUnusedLayerRenderers(t),this.scheduleExpireIconCache(t)},e.prototype.forEachFeatureAtCoordinate=function(t,e,i,r,n,o,s){var a;if(this.getGL().isContextLost())return!1;var h,l=e.viewState,u=e.layerStatesArray;for(h=u.length-1;h>=0;--h){var p=u[h],c=p.layer;if(mo(p,l.resolution)&&o.call(s,c))if(a=this.getLayerRenderer(c).forEachFeatureAtCoordinate(t,e,i,r))return a}},e.prototype.hasFeatureAtCoordinate=function(t,e,i,r,n){var o=!1;if(this.getGL().isContextLost())return!1;var s,a=e.viewState,h=e.layerStatesArray;for(s=h.length-1;s>=0;--s){var l=h[s],u=l.layer;if(mo(l,a.resolution)&&r.call(n,u))if(o=this.getLayerRenderer(u).hasFeatureAtCoordinate(t,e))return!0}return o},e.prototype.forEachLayerAtPixel=function(t,e,i,r,n,o,s){if(this.getGL().isContextLost())return!1;var a,h,l=e.viewState,u=e.layerStatesArray;for(h=u.length-1;h>=0;--h){var p=u[h],c=p.layer;if(mo(p,l.resolution)&&o.call(n,c))if(a=this.getLayerRenderer(c).forEachLayerAtPixel(t,e,r,n))return a}},e}(qs),vl=function(t){function e(e,i,r){t.call(this);var n=r||{};this.tileCoord=e,this.state=i,this.interimTile=null,this.key="",this.transition_=void 0===n.transition?250:n.transition,this.transitionStarts_={}}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.changed=function(){this.dispatchEvent(M.CHANGE)},e.prototype.getKey=function(){return this.key+"/"+this.tileCoord},e.prototype.getInterimTile=function(){if(!this.interimTile)return this;var t=this.interimTile;do{if(t.getState()==On.LOADED)return t;t=t.interimTile}while(t);return this},e.prototype.refreshInterimChain=function(){if(this.interimTile){var t=this.interimTile,e=this;do{if(t.getState()==On.LOADED){t.interimTile=null;break}t.getState()==On.LOADING?e=t:t.getState()==On.IDLE?e.interimTile=t.interimTile:e=t,t=e.interimTile}while(t)}},e.prototype.getTileCoord=function(){return this.tileCoord},e.prototype.getState=function(){return this.state},e.prototype.setState=function(t){this.state=t,this.changed()},e.prototype.load=function(){},e.prototype.getAlpha=function(t,e){if(!this.transition_)return 1;var i=this.transitionStarts_[t];if(i){if(-1===i)return 1}else i=e,this.transitionStarts_[t]=i;var r=e-i+1e3/60;return r>=this.transition_?1:Vn(r/this.transition_)},e.prototype.inTransition=function(t){return!!this.transition_&&-1!==this.transitionStarts_[t]},e.prototype.endTransition=function(t){this.transition_&&(this.transitionStarts_[t]=-1)},e}(b);function ml(){var t=Jn(1,1);return t.fillStyle="rgba(0,0,0,0)",t.fillRect(0,0,1,1),t.canvas}var xl=function(t){function e(e,i,r,n,o,s){t.call(this,e,i,s),this.crossOrigin_=n,this.src_=r,this.image_=new Image,null!==n&&(this.image_.crossOrigin=n),this.imageListenerKeys_=null,this.tileLoadFunction_=o}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.disposeInternal=function(){this.state==On.LOADING&&(this.unlistenImage_(),this.image_=ml()),this.interimTile&&this.interimTile.dispose(),this.state=On.ABORT,this.changed(),t.prototype.disposeInternal.call(this)},e.prototype.getImage=function(){return this.image_},e.prototype.getKey=function(){return this.src_},e.prototype.handleImageError_=function(){this.state=On.ERROR,this.unlistenImage_(),this.image_=ml(),this.changed()},e.prototype.handleImageLoad_=function(){var t=this.image_;t.naturalWidth&&t.naturalHeight?this.state=On.LOADED:this.state=On.EMPTY,this.unlistenImage_(),this.changed()},e.prototype.load=function(){this.state==On.ERROR&&(this.state=On.IDLE,this.image_=new Image,null!==this.crossOrigin_&&(this.image_.crossOrigin=this.crossOrigin_)),this.state==On.IDLE&&(this.state=On.LOADING,this.changed(),this.imageListenerKeys_=[m(this.image_,M.ERROR,this.handleImageError_,this),m(this.image_,M.LOAD,this.handleImageLoad_,this)],this.tileLoadFunction_(this,this.src_))},e.prototype.unlistenImage_=function(){this.imageListenerKeys_.forEach(E),this.imageListenerKeys_=null},e}(vl);function El(t,e,i,r){return void 0!==r?(r[0]=t,r[1]=e,r[2]=i,r):[t,e,i]}function Sl(t,e,i){return t+"/"+e+"/"+i}function Tl(t){return Sl(t[0],t[1],t[2])}function Cl(t){return(t[1]<0||i&&0===o)})}(this.resolutions_,function(t,e){return e-t},!0),17),!t.origins)for(var i=0,r=this.resolutions_.length-1;i=this.minZoom;){if(o=2===this.zoomFactor_?oa(s=Math.floor(s/2),s,a=Math.floor(a/2),a,r):this.getTileRangeForExtentAndZ(h,l,r),e.call(i,l,o))return!0;--l}return!1},Ol.prototype.getExtent=function(){return this.extent_},Ol.prototype.getMaxZoom=function(){return this.maxZoom},Ol.prototype.getMinZoom=function(){return this.minZoom},Ol.prototype.getOrigin=function(t){return this.origin_?this.origin_:this.origins_[t]},Ol.prototype.getResolution=function(t){return this.resolutions_[t]},Ol.prototype.getResolutions=function(){return this.resolutions_},Ol.prototype.getTileCoordChildTileRange=function(t,e,i){if(t[0]i||i>e.getMaxZoom())return!1;var o,s=e.getExtent();return!(o=s?e.getTileRangeForExtentAndZ(s,i):e.getFullTileRange(i))||o.containsXY(r,n)}(t,r)?t:null},e.prototype.refresh=function(){this.tileCache.clear(),this.changed()},e.prototype.useTile=function(t,e,i,r){},e}(Il),kl=function(t){function e(e,i){t.call(this,e),this.tile=i}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e}(P),jl=Dl,Ul=new lh("precision mediump float;\nvarying vec2 v_texCoord;\n\n\nuniform sampler2D u_texture;\n\nvoid main(void) {\n gl_FragColor = texture2D(u_texture, v_texCoord);\n}\n"),Yl=new uh("varying vec2 v_texCoord;\n\n\nattribute vec2 a_position;\nattribute vec2 a_texCoord;\nuniform vec4 u_tileOffset;\n\nvoid main(void) {\n gl_Position = vec4(a_position * u_tileOffset.xy + u_tileOffset.zw, 0., 1.);\n v_texCoord = a_texCoord;\n}\n\n\n"),Bl=function(t,e){this.u_tileOffset=t.getUniformLocation(e,"u_tileOffset"),this.u_texture=t.getUniformLocation(e,"u_texture"),this.a_position=t.getAttribLocation(e,"a_position"),this.a_texCoord=t.getAttribLocation(e,"a_texCoord")},Vl=function(t){function e(e,i){t.call(this,e,i),this.fragmentShader_=Ul,this.vertexShader_=Yl,this.locations_=null,this.renderArrayBuffer_=new Th([0,0,0,1,1,0,1,1,0,1,0,0,1,1,1,0]),this.renderedTileRange_=null,this.renderedFramebufferExtent_=null,this.renderedRevision_=-1,this.tmpSize_=[0,0]}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.disposeInternal=function(){this.mapRenderer.getContext().deleteBuffer(this.renderArrayBuffer_),t.prototype.disposeInternal.call(this)},e.prototype.createLoadedTileFinder=function(t,e,i){var r=this.mapRenderer;return function(n,o){return t.forEachLoadedTile(e,n,o,function(t){var e=r.isTileTextureLoaded(t);return e&&(i[n]||(i[n]={}),i[n][t.tileCoord.toString()]=t),e})}},e.prototype.handleWebGLContextLost=function(){t.prototype.handleWebGLContextLost.call(this),this.locations_=null},e.prototype.prepareFrame=function(t,e,i){var r=this.mapRenderer,n=i.getGL(),o=t.viewState,s=o.projection,a=this.getLayer(),h=a.getSource();if(!(h instanceof jl))return!0;var l,u=h.getTileGridForProjection(s),p=u.getZForResolution(o.resolution),c=u.getResolution(p),d=h.getTilePixelSize(p,t.pixelRatio,s),f=d[0]/ho(u.getTileSize(p),this.tmpSize_)[0],_=c/f,g=h.getTilePixelRatio(f)*h.getGutterForProjection(s),y=o.center,v=t.extent,m=u.getTileRangeForExtentAndZ(v,p);if(this.renderedTileRange_&&this.renderedTileRange_.equals(m)&&this.renderedRevision_==h.getRevision())l=this.renderedFramebufferExtent_;else{var x=m.getSize(),E=function(t){return Y(00?i.call(r,this.getLayer(),h):void 0}},e}(fl);Vl.handles=function(t){return t.getType()===Ss.TILE},Vl.create=function(t,e){return new Vl(t,e)};var Xl=Vl,zl=function(t){function e(e,i){t.call(this,e,i),this.dirty_=!1,this.renderedRevision_=-1,this.renderedResolution_=NaN,this.renderedExtent_=[1/0,1/0,-1/0,-1/0],this.renderedRenderOrder_=null,this.replayGroup_=null,this.layerState_=null}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.composeFrame=function(t,e,i){this.layerState_=e;var r=t.viewState,n=this.replayGroup_,o=t.size,s=t.pixelRatio,a=this.mapRenderer.getGL();n&&!n.isEmpty()&&(a.enable(a.SCISSOR_TEST),a.scissor(0,0,o[0]*s,o[1]*s),n.replay(i,r.center,r.resolution,r.rotation,o,s,e.opacity,e.managed?t.skippedFeatureUids:{}),a.disable(a.SCISSOR_TEST))},e.prototype.disposeInternal=function(){var e=this.replayGroup_;if(e){var i=this.mapRenderer.getContext();e.getDeleteResourcesFunction(i)(),this.replayGroup_=null}t.prototype.disposeInternal.call(this)},e.prototype.forEachFeatureAtCoordinate=function(t,e,i,r,n){if(this.replayGroup_&&this.layerState_){var s=this.mapRenderer.getContext(),a=e.viewState,h=this.getLayer(),l=this.layerState_,u={};return this.replayGroup_.forEachFeatureAtCoordinate(t,s,a.center,a.resolution,a.rotation,e.size,e.pixelRatio,l.opacity,{},function(t){var e=o(t);if(!(e in u))return u[e]=!0,r.call(n,t,h)})}},e.prototype.hasFeatureAtCoordinate=function(t,e){if(this.replayGroup_&&this.layerState_){var i=this.mapRenderer.getContext(),r=e.viewState,n=this.layerState_;return this.replayGroup_.hasFeatureAtCoordinate(t,i,r.center,r.resolution,r.rotation,e.size,e.pixelRatio,n.opacity,e.skippedFeatureUids)}return!1},e.prototype.forEachLayerAtPixel=function(t,e,i,r){var n=De(e.pixelToCoordinateTransform,t.slice());return this.hasFeatureAtCoordinate(n,e)?i.call(r,this.getLayer(),null):void 0},e.prototype.handleStyleImageChange_=function(t){this.renderIfReadyAndVisible()},e.prototype.prepareFrame=function(t,e,i){var r=this.getLayer(),n=r.getSource(),o=t.viewHints[kn],s=t.viewHints[jn],a=r.getUpdateWhileAnimating(),h=r.getUpdateWhileInteracting();if(!this.dirty_&&!a&&o||!h&&s)return!0;var l=t.extent,u=t.viewState,p=u.projection,c=u.resolution,d=t.pixelRatio,f=r.getRevision(),_=r.getRenderBuffer(),g=r.getRenderOrder();void 0===g&&(g=Da);var y=et(l,_*c);if(!this.dirty_&&this.renderedResolution_==c&&this.renderedRevision_==f&&this.renderedRenderOrder_==g&&ot(this.renderedExtent_,y))return!0;this.replayGroup_&&t.postRenderFunctions.push(this.replayGroup_.getDeleteResourcesFunction(i)),this.dirty_=!1;var v=new ll(ja(c,d),y,r.getRenderBuffer());n.loadFeatures(y,c,p);var m=function(t){var e,i=t.getStyleFunction()||r.getStyleFunction();if(i&&(e=i(t,c)),e){var n=this.renderFeature(t,c,d,e,v);this.dirty_=this.dirty_||n}}.bind(this);if(g){var x=[];n.forEachFeatureInExtent(y,function(t){x.push(t)}),x.sort(g),x.forEach(m.bind(this))}else n.forEachFeatureInExtent(y,m);return v.finish(i),this.renderedResolution_=c,this.renderedRevision_=f,this.renderedRenderOrder_=g,this.renderedExtent_=y,this.replayGroup_=v,!0},e.prototype.renderFeature=function(t,e,i,r,n){if(!r)return!1;var o=!1;if(Array.isArray(r))for(var s=r.length-1;s>=0;--s)o=Ua(n,t,r[s],ka(e,i),this.handleStyleImageChange_,this)||o;else o=Ua(n,t,r,ka(e,i),this.handleStyleImageChange_,this)||o;return o},e}(fl);zl.handles=function(t){return t.getType()===Ss.VECTOR},zl.create=function(t,e){return new zl(t,e)};var Wl=zl,Kl=function(t){function e(e){(e=u({},e)).controls||(e.controls=wo()),e.interactions||(e.interactions=ys()),t.call(this,e)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.createRenderer=function(){var t=new yl(this);return t.registerLayerRenderers([gl,Xl,Wl]),t},e}(lo),Hl={ARRAY_BUFFER:"arraybuffer",JSON:"json",TEXT:"text",XML:"xml"};function Zl(t,e,i,r){return function(n,o,s){var a=new XMLHttpRequest;a.open("GET","function"==typeof t?t(n,o,s):t,!0),e.getType()==Hl.ARRAY_BUFFER&&(a.responseType="arraybuffer"),a.onload=function(t){if(!a.status||a.status>=200&&a.status<300){var n,o=e.getType();o==Hl.JSON||o==Hl.TEXT?n=a.responseText:o==Hl.XML?(n=a.responseXML)||(n=(new DOMParser).parseFromString(a.responseText,"application/xml")):o==Hl.ARRAY_BUFFER&&(n=a.response),n?i.call(this,e.readFeatures(n,{featureProjection:s}),e.readProjection(n),e.getLastExtent()):r.call(this)}else r.call(this)}.bind(this),a.onerror=function(){r.call(this)}.bind(this),a.send()}}function ql(t,e){return Zl(t,e,function(t,e){"function"==typeof this.addFeatures&&this.addFeatures(t)},I)}function Jl(t,e){return[[-1/0,-1/0,1/0,1/0]]}var Ql=document.implementation.createDocument("","",null),$l="http://www.w3.org/2001/XMLSchema-instance";function tu(t,e){return Ql.createElementNS(t,e)}function eu(t,e){return function t(e,i,r){if(e.nodeType==Node.CDATA_SECTION_NODE||e.nodeType==Node.TEXT_NODE)i?r.push(String(e.nodeValue).replace(/(\r\n|\r|\n)/g,"")):r.push(e.nodeValue);else{var n;for(n=e.firstChild;n;n=n.nextSibling)t(n,i,r)}return r}(t,e,[]).join("")}function iu(t){return"documentElement"in t}function ru(t){return(new DOMParser).parseFromString(t,"application/xml")}function nu(t,e){return function(i,r){var n=t.call(void 0!==e?e:this,i,r);void 0!==n&&K(r[r.length-1],n)}}function ou(t,e){return function(i,r){var n=t.call(void 0!==e?e:this,i,r);void 0!==n&&r[r.length-1].push(n)}}function su(t,e){return function(i,r){var n=t.call(void 0!==e?e:this,i,r);void 0!==n&&(r[r.length-1]=n)}}function au(t,e,i){return function(r,n){var o=t.call(void 0!==i?i:this,r,n);if(void 0!==o){var s=n[n.length-1],a=void 0!==e?e:r.localName;(a in s?s[a]:s[a]=[]).push(o)}}}function hu(t,e,i){return function(r,n){var o=t.call(void 0!==i?i:this,r,n);void 0!==o&&(n[n.length-1][void 0!==e?e:r.localName]=o)}}function lu(t,e){return function(i,r,n){t.call(void 0!==e?e:this,i,r,n),n[n.length-1].node.appendChild(i)}}function uu(t,e){var i,r;return function(e,n,o){if(void 0===i){i={};var s={};s[e.localName]=t,i[e.namespaceURI]=s,r=pu(e.localName)}yu(i,r,n,o)}}function pu(t,e){var i=t;return function(t,r,n){var o=r[r.length-1].node,s=i;return void 0===s&&(s=n),tu(void 0!==e?e:o.namespaceURI,s)}}var cu=pu();function du(t,e){for(var i=e.length,r=new Array(i),n=0;n0)||H(h,function(i){return e.Identifier==i.TileMatrix||-1===e.Identifier.indexOf(":")&&t.Identifier+":"+e.Identifier===i.TileMatrix})){n.push(e.Identifier);var i=28e-5*e.ScaleDenominator/p,l=e.TileWidth,u=e.TileHeight;c?o.push([e.TopLeftCorner[1],e.TopLeftCorner[0]]):o.push(e.TopLeftCorner),r.push(i),s.push(l==u?l:[l,u]),a.push([e.MatrixWidth,-e.MatrixHeight])}}),new mu({extent:e,origins:o,resolutions:r,matrixIds:n,tileSizes:s,sizes:a})}var Su=function(t){this.opacity_=t.opacity,this.rotateWithView_=t.rotateWithView,this.rotation_=t.rotation,this.scale_=t.scale};Su.prototype.clone=function(){return new Su({opacity:this.getOpacity(),scale:this.getScale(),rotation:this.getRotation(),rotateWithView:this.getRotateWithView()})},Su.prototype.getOpacity=function(){return this.opacity_},Su.prototype.getRotateWithView=function(){return this.rotateWithView_},Su.prototype.getRotation=function(){return this.rotation_},Su.prototype.getScale=function(){return this.scale_},Su.prototype.getSnapToPixel=function(){return!1},Su.prototype.getAnchor=function(){return r()},Su.prototype.getImage=function(t){return r()},Su.prototype.getHitDetectionImage=function(t){return r()},Su.prototype.getImageState=function(){return r()},Su.prototype.getImageSize=function(){return r()},Su.prototype.getHitDetectionImageSize=function(){return r()},Su.prototype.getOrigin=function(){return r()},Su.prototype.getSize=function(){return r()},Su.prototype.setOpacity=function(t){this.opacity_=t},Su.prototype.setRotateWithView=function(t){this.rotateWithView_=t},Su.prototype.setRotation=function(t){this.rotation_=t},Su.prototype.setScale=function(t){this.scale_=t},Su.prototype.setSnapToPixel=function(t){},Su.prototype.listenImageChange=function(t,e){return r()},Su.prototype.load=function(){r()},Su.prototype.unlistenImageChange=function(t,e){r()};var Tu=Su,Cu=function(t){function e(e){var i=void 0!==e.rotateWithView&&e.rotateWithView;t.call(this,{opacity:1,rotateWithView:i,rotation:void 0!==e.rotation?e.rotation:0,scale:1}),this.checksums_=null,this.canvas_=null,this.hitDetectionCanvas_=null,this.fill_=void 0!==e.fill?e.fill:null,this.origin_=[0,0],this.points_=e.points,this.radius_=void 0!==e.radius?e.radius:e.radius1,this.radius2_=e.radius2,this.angle_=void 0!==e.angle?e.angle:0,this.stroke_=void 0!==e.stroke?e.stroke:null,this.anchor_=null,this.size_=null,this.imageSize_=null,this.hitDetectionImageSize_=null,this.atlasManager_=e.atlasManager,this.render_(this.atlasManager_)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.clone=function(){var t=new e({fill:this.getFill()?this.getFill().clone():void 0,points:this.getPoints(),radius:this.getRadius(),radius2:this.getRadius2(),angle:this.getAngle(),stroke:this.getStroke()?this.getStroke().clone():void 0,rotation:this.getRotation(),rotateWithView:this.getRotateWithView(),atlasManager:this.atlasManager_});return t.setOpacity(this.getOpacity()),t.setScale(this.getScale()),t},e.prototype.getAnchor=function(){return this.anchor_},e.prototype.getAngle=function(){return this.angle_},e.prototype.getFill=function(){return this.fill_},e.prototype.getHitDetectionImage=function(t){return this.hitDetectionCanvas_},e.prototype.getImage=function(t){return this.canvas_},e.prototype.getImageSize=function(){return this.imageSize_},e.prototype.getHitDetectionImageSize=function(){return this.hitDetectionImageSize_},e.prototype.getImageState=function(){return xs.LOADED},e.prototype.getOrigin=function(){return this.origin_},e.prototype.getPoints=function(){return this.points_},e.prototype.getRadius=function(){return this.radius_},e.prototype.getRadius2=function(){return this.radius2_},e.prototype.getSize=function(){return this.size_},e.prototype.getStroke=function(){return this.stroke_},e.prototype.listenImageChange=function(t,e){},e.prototype.load=function(){},e.prototype.unlistenImageChange=function(t,e){},e.prototype.render_=function(t){var e,i,r="",n="",o=0,s=null,a=0,h=0;this.stroke_&&(null===(i=this.stroke_.getColor())&&(i=Ls),i=Ys(i),void 0===(h=this.stroke_.getWidth())&&(h=1),s=this.stroke_.getLineDash(),a=this.stroke_.getLineDashOffset(),ki||(s=null,a=0),void 0===(n=this.stroke_.getLineJoin())&&(n="round"),void 0===(r=this.stroke_.getLineCap())&&(r="round"),void 0===(o=this.stroke_.getMiterLimit())&&(o=10));var l=2*(this.radius_+h)+1,u={strokeStyle:i,strokeWidth:h,size:l,lineCap:r,lineDash:s,lineDashOffset:a,lineJoin:n,miterLimit:o};if(void 0===t){var p=Jn(l,l);this.canvas_=p.canvas,e=l=this.canvas_.width,this.draw_(u,p,0,0),this.createHitDetectionCanvas_(u)}else{l=Math.round(l);var c,d=!this.fill_;d&&(c=this.drawHitDetectionCanvas_.bind(this,u));var f=this.getChecksum(),_=t.add(f,l,l,this.draw_.bind(this,u),c);this.canvas_=_.image,this.origin_=[_.offsetX,_.offsetY],e=_.image.width,d?(this.hitDetectionCanvas_=_.hitImage,this.hitDetectionImageSize_=[_.hitImage.width,_.hitImage.height]):(this.hitDetectionCanvas_=this.canvas_,this.hitDetectionImageSize_=[e,e])}this.anchor_=[l/2,l/2],this.size_=[l,l],this.imageSize_=[e,e]},e.prototype.draw_=function(t,e,i,r){var n,o,s;e.setTransform(1,0,0,1,0,0),e.translate(i,r),e.beginPath();var a=this.points_;if(a===1/0)e.arc(t.size/2,t.size/2,this.radius_,0,2*Math.PI,!0);else{var h=void 0!==this.radius2_?this.radius2_:this.radius_;for(h!==this.radius_&&(a*=2),n=0;n<=a;n++)o=2*n*Math.PI/a-Math.PI/2+this.angle_,s=n%2==0?this.radius_:h,e.lineTo(t.size/2+s*Math.cos(o),t.size/2+s*Math.sin(o))}if(this.fill_){var l=this.fill_.getColor();null===l&&(l=ws),e.fillStyle=Ys(l),e.fill()}this.stroke_&&(e.strokeStyle=t.strokeStyle,e.lineWidth=t.strokeWidth,t.lineDash&&(e.setLineDash(t.lineDash),e.lineDashOffset=t.lineDashOffset),e.lineCap=t.lineCap,e.lineJoin=t.lineJoin,e.miterLimit=t.miterLimit,e.stroke()),e.closePath()},e.prototype.createHitDetectionCanvas_=function(t){if(this.hitDetectionImageSize_=[t.size,t.size],this.fill_)this.hitDetectionCanvas_=this.canvas_;else{var e=Jn(t.size,t.size);this.hitDetectionCanvas_=e.canvas,this.drawHitDetectionCanvas_(t,e,0,0)}},e.prototype.drawHitDetectionCanvas_=function(t,e,i,r){e.setTransform(1,0,0,1,0,0),e.translate(i,r),e.beginPath();var n=this.points_;if(n===1/0)e.arc(t.size/2,t.size/2,this.radius_,0,2*Math.PI,!0);else{var o,s,a,h=void 0!==this.radius2_?this.radius2_:this.radius_;for(h!==this.radius_&&(n*=2),o=0;o<=n;o++)a=2*o*Math.PI/n-Math.PI/2+this.angle_,s=o%2==0?this.radius_:h,e.lineTo(t.size/2+s*Math.cos(a),t.size/2+s*Math.sin(a))}e.fillStyle=dr(ws),e.fill(),this.stroke_&&(e.strokeStyle=t.strokeStyle,e.lineWidth=t.strokeWidth,t.lineDash&&(e.setLineDash(t.lineDash),e.lineDashOffset=t.lineDashOffset),e.stroke()),e.closePath()},e.prototype.getChecksum=function(){var t=this.stroke_?this.stroke_.getChecksum():"-",e=this.fill_?this.fill_.getChecksum():"-";if(!this.checksums_||t!=this.checksums_[1]||e!=this.checksums_[2]||this.radius_!=this.checksums_[3]||this.radius2_!=this.checksums_[4]||this.angle_!=this.checksums_[5]||this.points_!=this.checksums_[6]){var i="r"+t+e+(void 0!==this.radius_?this.radius_.toString():"-")+(void 0!==this.radius2_?this.radius2_.toString():"-")+(void 0!==this.angle_?this.angle_.toString():"-")+(void 0!==this.points_?this.points_.toString():"-");this.checksums_=[i,t,e,this.radius_,this.radius2_,this.angle_,this.points_]}return this.checksums_[0]},e}(Tu),Ru=function(t){function e(e){var i=e||{};t.call(this,{points:1/0,fill:i.fill,radius:i.radius,stroke:i.stroke,atlasManager:i.atlasManager})}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.clone=function(){var t=new e({fill:this.getFill()?this.getFill().clone():void 0,stroke:this.getStroke()?this.getStroke().clone():void 0,radius:this.getRadius(),atlasManager:this.atlasManager_});return t.setOpacity(this.getOpacity()),t.setScale(this.getScale()),t},e.prototype.setRadius=function(t){this.radius_=t,this.render_(this.atlasManager_)},e}(Cu),wu={FRACTION:"fraction",PIXELS:"pixels"},Iu=function(t){function e(e,i,r,n,o,s){t.call(this),this.hitDetectionImage_=null,this.image_=e||new Image,null!==n&&(this.image_.crossOrigin=n),this.canvas_=s?document.createElement("canvas"):null,this.color_=s,this.imageListenerKeys_=null,this.imageState_=o,this.size_=r,this.src_=i,this.tainted_}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.isTainted_=function(){if(void 0===this.tainted_&&this.imageState_===xs.LOADED){this.tainted_=!1;var t=Jn(1,1);try{t.drawImage(this.image_,0,0),t.getImageData(0,0,1,1)}catch(t){this.tainted_=!0}}return!0===this.tainted_},e.prototype.dispatchChangeEvent_=function(){this.dispatchEvent(M.CHANGE)},e.prototype.handleImageError_=function(){this.imageState_=xs.ERROR,this.unlistenImage_(),this.dispatchChangeEvent_()},e.prototype.handleImageLoad_=function(){this.imageState_=xs.LOADED,this.size_&&(this.image_.width=this.size_[0],this.image_.height=this.size_[1]),this.size_=[this.image_.width,this.image_.height],this.unlistenImage_(),this.replaceColor_(),this.dispatchChangeEvent_()},e.prototype.getImage=function(t){return this.canvas_?this.canvas_:this.image_},e.prototype.getImageState=function(){return this.imageState_},e.prototype.getHitDetectionImage=function(t){if(!this.hitDetectionImage_)if(this.isTainted_()){var e=this.size_[0],i=this.size_[1],r=Jn(e,i);r.fillRect(0,0,e,i),this.hitDetectionImage_=r.canvas}else this.hitDetectionImage_=this.image_;return this.hitDetectionImage_},e.prototype.getSize=function(){return this.size_},e.prototype.getSrc=function(){return this.src_},e.prototype.load=function(){if(this.imageState_==xs.IDLE){this.imageState_=xs.LOADING,this.imageListenerKeys_=[m(this.image_,M.ERROR,this.handleImageError_,this),m(this.image_,M.LOAD,this.handleImageLoad_,this)];try{this.image_.src=this.src_}catch(t){this.handleImageError_()}}},e.prototype.replaceColor_=function(){if(this.color_&&!this.isTainted_()){this.canvas_.width=this.image_.width,this.canvas_.height=this.image_.height;var t=this.canvas_.getContext("2d");t.drawImage(this.image_,0,0);for(var e=t.getImageData(0,0,this.image_.width,this.image_.height),i=e.data,r=this.color_[0]/255,n=this.color_[1]/255,o=this.color_[2]/255,s=0,a=i.length;s0,6);var p=void 0!==i.src?xs.IDLE:xs.LOADED;this.color_=void 0!==i.color?_r(i.color):null,this.iconImage_=function(t,e,i,r,n,o){var s=Ks.get(e,r,o);return s||(s=new Iu(t,e,i,r,n,o),Ks.set(e,r,o,s)),s}(h,u,l,this.crossOrigin_,p,this.color_),this.offset_=void 0!==i.offset?i.offset:[0,0],this.offsetOrigin_=void 0!==i.offsetOrigin?i.offsetOrigin:Lu.TOP_LEFT,this.origin_=null,this.size_=void 0!==i.size?i.size:null}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.clone=function(){return new e({anchor:this.anchor_.slice(),anchorOrigin:this.anchorOrigin_,anchorXUnits:this.anchorXUnits_,anchorYUnits:this.anchorYUnits_,crossOrigin:this.crossOrigin_,color:this.color_&&this.color_.slice?this.color_.slice():this.color_||void 0,src:this.getSrc(),offset:this.offset_.slice(),offsetOrigin:this.offsetOrigin_,size:null!==this.size_?this.size_.slice():void 0,opacity:this.getOpacity(),scale:this.getScale(),rotation:this.getRotation(),rotateWithView:this.getRotateWithView()})},e.prototype.getAnchor=function(){if(this.normalizedAnchor_)return this.normalizedAnchor_;var t=this.anchor_,e=this.getSize();if(this.anchorXUnits_==wu.FRACTION||this.anchorYUnits_==wu.FRACTION){if(!e)return null;t=this.anchor_.slice(),this.anchorXUnits_==wu.FRACTION&&(t[0]*=e[0]),this.anchorYUnits_==wu.FRACTION&&(t[1]*=e[1])}if(this.anchorOrigin_!=Lu.TOP_LEFT){if(!e)return null;t===this.anchor_&&(t=this.anchor_.slice()),this.anchorOrigin_!=Lu.TOP_RIGHT&&this.anchorOrigin_!=Lu.BOTTOM_RIGHT||(t[0]=-t[0]+e[0]),this.anchorOrigin_!=Lu.BOTTOM_LEFT&&this.anchorOrigin_!=Lu.BOTTOM_RIGHT||(t[1]=-t[1]+e[1])}return this.normalizedAnchor_=t,this.normalizedAnchor_},e.prototype.setAnchor=function(t){this.anchor_=t,this.normalizedAnchor_=null},e.prototype.getColor=function(){return this.color_},e.prototype.getImage=function(t){return this.iconImage_.getImage(t)},e.prototype.getImageSize=function(){return this.iconImage_.getSize()},e.prototype.getHitDetectionImageSize=function(){return this.getImageSize()},e.prototype.getImageState=function(){return this.iconImage_.getImageState()},e.prototype.getHitDetectionImage=function(t){return this.iconImage_.getHitDetectionImage(t)},e.prototype.getOrigin=function(){if(this.origin_)return this.origin_;var t=this.offset_;if(this.offsetOrigin_!=Lu.TOP_LEFT){var e=this.getSize(),i=this.iconImage_.getSize();if(!e||!i)return null;t=t.slice(),this.offsetOrigin_!=Lu.TOP_RIGHT&&this.offsetOrigin_!=Lu.BOTTOM_RIGHT||(t[0]=i[0]-e[0]-t[0]),this.offsetOrigin_!=Lu.BOTTOM_LEFT&&this.offsetOrigin_!=Lu.BOTTOM_RIGHT||(t[1]=i[1]-e[1]-t[1])}return this.origin_=t,this.origin_},e.prototype.getSrc=function(){return this.iconImage_.getSrc()},e.prototype.getSize=function(){return this.size_?this.size_:this.iconImage_.getSize()},e.prototype.listenImageChange=function(t,e){return v(this.iconImage_,M.CHANGE,t,e)},e.prototype.load=function(){this.iconImage_.load()},e.prototype.unlistenImageChange=function(t,e){x(this.iconImage_,M.CHANGE,t,e)},e}(Tu),Pu=function(t){var e=t||{};this.geometry_=null,this.geometryFunction_=Au,void 0!==e.geometry&&this.setGeometry(e.geometry),this.fill_=void 0!==e.fill?e.fill:null,this.image_=void 0!==e.image?e.image:null,this.renderer_=void 0!==e.renderer?e.renderer:null,this.stroke_=void 0!==e.stroke?e.stroke:null,this.text_=void 0!==e.text?e.text:null,this.zIndex_=e.zIndex};Pu.prototype.clone=function(){var t=this.getGeometry();return t&&"object"==typeof t&&(t=t.clone()),new Pu({geometry:t,fill:this.getFill()?this.getFill().clone():void 0,image:this.getImage()?this.getImage().clone():void 0,stroke:this.getStroke()?this.getStroke().clone():void 0,text:this.getText()?this.getText().clone():void 0,zIndex:this.getZIndex()})},Pu.prototype.getRenderer=function(){return this.renderer_},Pu.prototype.setRenderer=function(t){this.renderer_=t},Pu.prototype.getGeometry=function(){return this.geometry_},Pu.prototype.getGeometryFunction=function(){return this.geometryFunction_},Pu.prototype.getFill=function(){return this.fill_},Pu.prototype.setFill=function(t){this.fill_=t},Pu.prototype.getImage=function(){return this.image_},Pu.prototype.setImage=function(t){this.image_=t},Pu.prototype.getStroke=function(){return this.stroke_},Pu.prototype.setStroke=function(t){this.stroke_=t},Pu.prototype.getText=function(){return this.text_},Pu.prototype.setText=function(t){this.text_=t},Pu.prototype.getZIndex=function(){return this.zIndex_},Pu.prototype.setGeometry=function(t){"function"==typeof t?this.geometryFunction_=t:"string"==typeof t?this.geometryFunction_=function(e){return e.get(t)}:t?void 0!==t&&(this.geometryFunction_=function(){return t}):this.geometryFunction_=Au,this.geometry_=t},Pu.prototype.setZIndex=function(t){this.zIndex_=t};var bu=null;function Mu(t,e){if(!bu){var i=new mr({color:"rgba(255,255,255,0.4)"}),r=new Er({color:"#3399CC",width:1.25});bu=[new Pu({image:new Ru({fill:i,stroke:r,radius:5}),fill:i,stroke:r})]}return bu}function Fu(){var t={},e=[255,255,255,1],i=[0,153,255,1];return t[Nt.POLYGON]=[new Pu({fill:new mr({color:[255,255,255,.5]})})],t[Nt.MULTI_POLYGON]=t[Nt.POLYGON],t[Nt.LINE_STRING]=[new Pu({stroke:new Er({color:e,width:5})}),new Pu({stroke:new Er({color:i,width:3})})],t[Nt.MULTI_LINE_STRING]=t[Nt.LINE_STRING],t[Nt.CIRCLE]=t[Nt.POLYGON].concat(t[Nt.LINE_STRING]),t[Nt.POINT]=[new Pu({image:new Ru({radius:6,fill:new mr({color:i}),stroke:new Er({color:e,width:1.5})}),zIndex:1/0})],t[Nt.MULTI_POINT]=t[Nt.POINT],t[Nt.GEOMETRY_COLLECTION]=t[Nt.POLYGON].concat(t[Nt.LINE_STRING],t[Nt.POINT]),t}function Au(t){return t.getGeometry()}var Nu=Pu;function Gu(t,e){var i=/\{z\}/g,r=/\{x\}/g,n=/\{y\}/g,o=/\{-y\}/g;return function(s,a,h){return s?t.replace(i,s[0].toString()).replace(r,s[1].toString()).replace(n,function(){return(-s[2]-1).toString()}).replace(o,function(){var t=s[0],i=e.getFullTileRange(t);return Y(i,55),(i.getHeight()+s[2]).toString()}):void 0}}function Du(t,e){for(var i=t.length,r=new Array(i),n=0;n0&&(o/=l)}return o}function Vu(t,e,i,r){var n=i-t,o=r-e,s=Math.sqrt(n*n+o*o);return[Math.round(i+n/s),Math.round(r+o/s)]}function Xu(t,e,i,r,n,o,s,a,h,l,u){var p=Jn(Math.round(i*t),Math.round(i*e));if(0===h.length)return p.canvas;p.scale(i,i);var c=[1/0,1/0,-1/0,-1/0];h.forEach(function(t,e,i){ft(c,t.extent)});var d=Ot(c),f=Rt(c),_=Jn(Math.round(i*d/r),Math.round(i*f/r)),g=i/r;h.forEach(function(t,e,i){var r=t.extent[0]-c[0],n=-(t.extent[3]-c[3]),o=Ot(t.extent),s=Rt(t.extent);_.drawImage(t.image,l,l,t.image.width-2*l,t.image.height-2*l,r*g,n*g,o*g,s*g)});var y=It(s);return a.getTriangles().forEach(function(t,e,n){var s=t.source,a=t.target,h=s[0][0],l=s[0][1],u=s[1][0],d=s[1][1],f=s[2][0],g=s[2][1],v=(a[0][0]-y[0])/o,m=-(a[0][1]-y[1])/o,x=(a[1][0]-y[0])/o,E=-(a[1][1]-y[1])/o,S=(a[2][0]-y[0])/o,T=-(a[2][1]-y[1])/o,C=h,R=l;h=0,l=0;var w=function(t){for(var e=t.length,i=0;in&&(n=s,r=o)}if(0===n)return null;var a=t[r];t[r]=t[i],t[i]=a;for(var h=i+1;h=0;c--){p[c]=t[c][e]/t[c][c];for(var d=c-1;d>=0;d--)t[d][e]-=t[d][c]*p[c]}return p}([[u-=C,d-=R,0,0,x-v],[f-=C,g-=R,0,0,S-v],[0,0,u,d,E-m],[0,0,f,g,T-m]]);if(w){p.save(),p.beginPath();var I=(v+x+S)/3,L=(m+E+T)/3,O=Vu(I,L,v,m),P=Vu(I,L,x,E),b=Vu(I,L,S,T);p.moveTo(P[0],P[1]),p.lineTo(O[0],O[1]),p.lineTo(b[0],b[1]),p.clip(),p.transform(w[0],w[2],w[1],w[3],v,m),p.translate(c[0]-C,c[3]-R),p.scale(r/i,-r/i),p.drawImage(_.canvas,0,0),p.restore()}}),u&&(p.save(),p.strokeStyle="black",p.lineWidth=1,a.getTriangles().forEach(function(t,e,i){var r=t.target,n=(r[0][0]-y[0])/o,s=-(r[0][1]-y[1])/o,a=(r[1][0]-y[0])/o,h=-(r[1][1]-y[1])/o,l=(r[2][0]-y[0])/o,u=-(r[2][1]-y[1])/o;p.beginPath(),p.moveTo(a,h),p.lineTo(n,s),p.lineTo(l,u),p.closePath(),p.stroke()}),p.restore()),p.canvas}var zu=function(t,e,i,r,n){this.sourceProj_=t,this.targetProj_=e;var o={},s=Oe(this.targetProj_,this.sourceProj_);this.transformInv_=function(t){var e=t[0]+"/"+t[1];return o[e]||(o[e]=s(t)),o[e]},this.maxSourceExtent_=r,this.errorThresholdSquared_=n*n,this.triangles_=[],this.wrapsXInSource_=!1,this.canWrapXInSource_=this.sourceProj_.canWrapX()&&!!r&&!!this.sourceProj_.getExtent()&&Ot(r)==Ot(this.sourceProj_.getExtent()),this.sourceWorldWidth_=this.sourceProj_.getExtent()?Ot(this.sourceProj_.getExtent()):null,this.targetWorldWidth_=this.targetProj_.getExtent()?Ot(this.targetProj_.getExtent()):null;var a=It(i),h=Lt(i),l=St(i),u=Et(i),p=this.transformInv_(a),c=this.transformInv_(h),d=this.transformInv_(l),f=this.transformInv_(u);if(this.addQuad_(a,h,l,u,p,c,d,f,10),this.wrapsXInSource_){var _=1/0;this.triangles_.forEach(function(t,e,i){_=Math.min(_,t.source[0][0],t.source[1][0],t.source[2][0])}),this.triangles_.forEach(function(t){if(Math.max(t.source[0][0],t.source[1][0],t.source[2][0])-_>this.sourceWorldWidth_/2){var e=[[t.source[0][0],t.source[0][1]],[t.source[1][0],t.source[1][1]],[t.source[2][0],t.source[2][1]]];e[0][0]-_>this.sourceWorldWidth_/2&&(e[0][0]-=this.sourceWorldWidth_),e[1][0]-_>this.sourceWorldWidth_/2&&(e[1][0]-=this.sourceWorldWidth_),e[2][0]-_>this.sourceWorldWidth_/2&&(e[2][0]-=this.sourceWorldWidth_);var i=Math.min(e[0][0],e[1][0],e[2][0]);Math.max(e[0][0],e[1][0],e[2][0])-i.5&&u<1,d=!1;if(h>0){if(this.targetProj_.isGlobal()&&this.targetWorldWidth_)d=Ot(tt([t,e,i,r]))/this.targetWorldWidth_>.25||d;!c&&this.sourceProj_.isGlobal()&&u&&(d=u>.25||d)}if(d||!this.maxSourceExtent_||Pt(l,this.maxSourceExtent_)){if(!(d||isFinite(n[0])&&isFinite(n[1])&&isFinite(o[0])&&isFinite(o[1])&&isFinite(s[0])&&isFinite(s[1])&&isFinite(a[0])&&isFinite(a[1]))){if(!(h>0))return;d=!0}if(h>0){if(!d){var f,_=[(t[0]+i[0])/2,(t[1]+i[1])/2],g=this.transformInv_(_);if(c)f=(Xt(n[0],p)+Xt(s[0],p))/2-Xt(g[0],p);else f=(n[0]+s[0])/2-g[0];var y=(n[1]+s[1])/2-g[1];d=f*f+y*y>this.errorThresholdSquared_}if(d){if(Math.abs(t[0]-i[0])<=Math.abs(t[1]-i[1])){var v=[(e[0]+i[0])/2,(e[1]+i[1])/2],m=this.transformInv_(v),x=[(r[0]+t[0])/2,(r[1]+t[1])/2],E=this.transformInv_(x);this.addQuad_(t,e,v,x,n,o,m,E,h-1),this.addQuad_(x,v,i,r,E,m,s,a,h-1)}else{var S=[(t[0]+e[0])/2,(t[1]+e[1])/2],T=this.transformInv_(S),C=[(i[0]+r[0])/2,(i[1]+r[1])/2],R=this.transformInv_(C);this.addQuad_(t,S,C,r,n,T,R,a,h-1),this.addQuad_(S,e,i,C,T,o,s,R,h-1)}return}}if(c){if(!this.canWrapXInSource_)return;this.wrapsXInSource_=!0}this.addTriangle_(t,i,r,n,s,a),this.addTriangle_(t,e,i,n,o,s)}},zu.prototype.calculateSourceExtent=function(){var t=[1/0,1/0,-1/0,-1/0];return this.triangles_.forEach(function(e,i,r){var n=e.source;_t(t,n[0]),_t(t,n[1]),_t(t,n[2])}),t},zu.prototype.getTriangles=function(){return this.triangles_};var Wu=zu,Ku=function(t){function e(e,i,r,n,o,s,a,h,l,u,p){t.call(this,o,On.IDLE),this.renderEdges_=void 0!==p&&p,this.pixelRatio_=a,this.gutter_=h,this.canvas_=null,this.sourceTileGrid_=i,this.targetTileGrid_=n,this.wrappedTileCoord_=s||o,this.sourceTiles_=[],this.sourcesListenerKeys_=null,this.sourceZ_=0;var c=n.getTileCoordExtent(this.wrappedTileCoord_),d=this.targetTileGrid_.getExtent(),f=this.sourceTileGrid_.getExtent(),_=d?wt(c,d):c;if(0!==xt(_)){var g=e.getExtent();g&&(f=f?wt(f,g):g);var y=n.getResolution(this.wrappedTileCoord_[0]),v=Bu(e,r,Tt(_),y);if(!isFinite(v)||v<=0)this.state=On.EMPTY;else{var m=void 0!==u?u:vs;if(this.triangulation_=new Wu(e,r,_,f,v*m),0!==this.triangulation_.getTriangles().length){this.sourceZ_=i.getZForResolution(v);var x=this.triangulation_.calculateSourceExtent();if(f&&(e.canWrapX()?(x[1]=kt(x[1],f[1],f[3]),x[3]=kt(x[3],f[1],f[3])):x=wt(x,f)),xt(x)){for(var E=i.getTileRangeForExtentAndZ(x,this.sourceZ_),S=E.minX;S<=E.maxX;S++)for(var T=E.minY;T<=E.maxY;T++){var C=l(this.sourceZ_,S,T,a);C&&this.sourceTiles_.push(C)}0===this.sourceTiles_.length&&(this.state=On.EMPTY)}else this.state=On.EMPTY}else this.state=On.EMPTY}}else this.state=On.EMPTY}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.disposeInternal=function(){this.state==On.LOADING&&this.unlistenSources_(),t.prototype.disposeInternal.call(this)},e.prototype.getImage=function(){return this.canvas_},e.prototype.reproject_=function(){var t=[];if(this.sourceTiles_.forEach(function(e,i,r){e&&e.getState()==On.LOADED&&t.push({extent:this.sourceTileGrid_.getTileCoordExtent(e.tileCoord),image:e.getImage()})}.bind(this)),this.sourceTiles_.length=0,0===t.length)this.state=On.ERROR;else{var e=this.wrappedTileCoord_[0],i=this.targetTileGrid_.getTileSize(e),r="number"==typeof i?i:i[0],n="number"==typeof i?i:i[1],o=this.targetTileGrid_.getResolution(e),s=this.sourceTileGrid_.getResolution(this.sourceZ_),a=this.targetTileGrid_.getTileCoordExtent(this.wrappedTileCoord_);this.canvas_=Xu(r,n,this.pixelRatio_,s,this.sourceTileGrid_.getExtent(),o,a,this.triangulation_,t,this.gutter_,this.renderEdges_),this.state=On.LOADED}this.changed()},e.prototype.load=function(){if(this.state==On.IDLE){this.state=On.LOADING,this.changed();var t=0;this.sourcesListenerKeys_=[],this.sourceTiles_.forEach(function(e,i,r){var n=e.getState();if(n==On.IDLE||n==On.LOADING){t++;var o=v(e,M.CHANGE,function(i){var r=e.getState();r!=On.LOADED&&r!=On.ERROR&&r!=On.EMPTY||(E(o),0===--t&&(this.unlistenSources_(),this.reproject_()))},this);this.sourcesListenerKeys_.push(o)}}.bind(this)),this.sourceTiles_.forEach(function(t,e,i){t.getState()==On.IDLE&&t.load()}),0===t&&setTimeout(this.reproject_.bind(this),0)}},e.prototype.unlistenSources_=function(){this.sourcesListenerKeys_.forEach(E),this.sourcesListenerKeys_=null},e}(vl),Hu="tileloadstart",Zu="tileloadend",qu="tileloaderror",Ju=function(t){function e(e){t.call(this,{attributions:e.attributions,cacheSize:e.cacheSize,opaque:e.opaque,projection:e.projection,state:e.state,tileGrid:e.tileGrid,tilePixelRatio:e.tilePixelRatio,wrapX:e.wrapX,transition:e.transition,key:e.key,attributionsCollapsible:e.attributionsCollapsible}),this.generateTileUrlFunction_=!e.tileUrlFunction,this.tileLoadFunction=e.tileLoadFunction,this.tileUrlFunction=e.tileUrlFunction?e.tileUrlFunction.bind(this):ju,this.urls=null,e.urls?this.setUrls(e.urls):e.url&&this.setUrl(e.url),e.tileUrlFunction&&this.setTileUrlFunction(e.tileUrlFunction,this.key_),this.tileLoadingKeys_={}}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.getTileLoadFunction=function(){return this.tileLoadFunction},e.prototype.getTileUrlFunction=function(){return this.tileUrlFunction},e.prototype.getUrls=function(){return this.urls},e.prototype.handleTileChange=function(t){var e,i=t.target,r=o(i),n=i.getState();n==On.LOADING?(this.tileLoadingKeys_[r]=!0,e=Hu):r in this.tileLoadingKeys_&&(delete this.tileLoadingKeys_[r],e=n==On.ERROR?qu:n==On.LOADED||n==On.ABORT?Zu:void 0),void 0!=e&&this.dispatchEvent(new kl(e,i))},e.prototype.setTileLoadFunction=function(t){this.tileCache.clear(),this.tileLoadFunction=t,this.changed()},e.prototype.setTileUrlFunction=function(t,e){this.tileUrlFunction=t,this.tileCache.pruneExceptNewestZ(),void 0!==e?this.setKey(e):this.changed()},e.prototype.setUrl=function(t){var e=this.urls=Uu(t);this.setUrls(e)},e.prototype.setUrls=function(t){this.urls=t;var e=t.join("\n");this.generateTileUrlFunction_?this.setTileUrlFunction(Du(t,this.tileGrid),e):this.setKey(e)},e.prototype.useTile=function(t,e,i){var r=Sl(t,e,i);this.tileCache.containsKey(r)&&this.tileCache.get(r)},e}(jl);function Qu(t,e){t.getImage().src=e}var $u=function(t){function e(e){t.call(this,{attributions:e.attributions,cacheSize:e.cacheSize,opaque:e.opaque,projection:e.projection,state:e.state,tileGrid:e.tileGrid,tileLoadFunction:e.tileLoadFunction?e.tileLoadFunction:Qu,tilePixelRatio:e.tilePixelRatio,tileUrlFunction:e.tileUrlFunction,url:e.url,urls:e.urls,wrapX:e.wrapX,transition:e.transition,key:e.key,attributionsCollapsible:e.attributionsCollapsible}),this.crossOrigin=void 0!==e.crossOrigin?e.crossOrigin:null,this.tileClass=void 0!==e.tileClass?e.tileClass:xl,this.tileCacheForProjection={},this.tileGridForProjection={},this.reprojectionErrorThreshold_=e.reprojectionErrorThreshold,this.renderReprojectionEdges_=!1}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.canExpireCache=function(){if(this.tileCache.canExpireCache())return!0;for(var t in this.tileCacheForProjection)if(this.tileCacheForProjection[t].canExpireCache())return!0;return!1},e.prototype.expireCache=function(t,e){var i=this.getTileCacheForProjection(t);for(var r in this.tileCache.expireCache(this.tileCache==i?e:{}),this.tileCacheForProjection){var n=this.tileCacheForProjection[r];n.expireCache(n==i?e:{})}},e.prototype.getGutterForProjection=function(t){return this.getProjection()&&t&&!Ie(this.getProjection(),t)?0:this.getGutter()},e.prototype.getGutter=function(){return 0},e.prototype.getOpaque=function(e){return!(this.getProjection()&&e&&!Ie(this.getProjection(),e))&&t.prototype.getOpaque.call(this,e)},e.prototype.getTileGridForProjection=function(t){var e=this.getProjection();if(!this.tileGrid||e&&!Ie(e,t)){var i=o(t);return i in this.tileGridForProjection||(this.tileGridForProjection[i]=bl(t)),this.tileGridForProjection[i]}return this.tileGrid},e.prototype.getTileCacheForProjection=function(t){var e=this.getProjection();if(!e||Ie(e,t))return this.tileCache;var i=o(t);return i in this.tileCacheForProjection||(this.tileCacheForProjection[i]=new Rl(this.tileCache.highWaterMark)),this.tileCacheForProjection[i]},e.prototype.createTile_=function(t,e,i,r,n,o){var s=[t,e,i],a=this.getTileCoordForTileUrlFunction(s,n),h=a?this.tileUrlFunction(a,r,n):void 0,l=new this.tileClass(s,void 0!==h?On.IDLE:On.EMPTY,void 0!==h?h:"",this.crossOrigin,this.tileLoadFunction,this.tileOptions);return l.key=o,v(l,M.CHANGE,this.handleTileChange,this),l},e.prototype.getTile=function(t,e,i,r,n){var o=this.getProjection();if(o&&n&&!Ie(o,n)){var s,a=this.getTileCacheForProjection(n),h=[t,e,i],l=Tl(h);a.containsKey(l)&&(s=a.get(l));var u=this.getKey();if(s&&s.key==u)return s;var p=this.getTileGridForProjection(o),c=this.getTileGridForProjection(n),d=this.getTileCoordForTileUrlFunction(h,n),f=new Ku(o,p,n,c,h,d,this.getTilePixelRatio(r),this.getGutter(),function(t,e,i,r){return this.getTileInternal(t,e,i,r,o)}.bind(this),this.reprojectionErrorThreshold_,this.renderReprojectionEdges_);return f.key=u,s?(f.interimTile=s,f.refreshInterimChain(),a.replace(l,f)):a.set(l,f),f}return this.getTileInternal(t,e,i,r,o||n)},e.prototype.getTileInternal=function(t,e,i,r,n){var o=null,s=Sl(t,e,i),a=this.getKey();if(this.tileCache.containsKey(s)){if((o=this.tileCache.get(s)).key!=a){var h=o;o=this.createTile_(t,e,i,r,n,a),h.getState()==On.IDLE?o.interimTile=h.interimTile:o.interimTile=h,o.refreshInterimChain(),this.tileCache.replace(s,o)}}else o=this.createTile_(t,e,i,r,n,a),this.tileCache.set(s,o);return o},e.prototype.setRenderReprojectionEdges=function(t){if(this.renderReprojectionEdges_!=t){for(var e in this.renderReprojectionEdges_=t,this.tileCacheForProjection)this.tileCacheForProjection[e].clear();this.changed()}},e.prototype.setTileGridForProjection=function(t,e){var i=Ee(t);if(i){var r=o(i);r in this.tileGridForProjection||(this.tileGridForProjection[r]=e)}},e}(Ju),tp=function(t){function e(e){var i=void 0!==e.hidpi&&e.hidpi;t.call(this,{cacheSize:e.cacheSize,crossOrigin:"anonymous",opaque:!0,projection:Ee("EPSG:3857"),reprojectionErrorThreshold:e.reprojectionErrorThreshold,state:ro.LOADING,tileLoadFunction:e.tileLoadFunction,tilePixelRatio:i?2:1,wrapX:void 0===e.wrapX||e.wrapX,transition:e.transition}),this.hidpi_=i,this.culture_=void 0!==e.culture?e.culture:"en-us",this.maxZoom_=void 0!==e.maxZoom?e.maxZoom:-1,this.apiKey_=e.key,this.imagerySet_=e.imagerySet,Yu("https://dev.virtualearth.net/REST/v1/Imagery/Metadata/"+this.imagerySet_+"?uriScheme=https&include=ImageryProviders&key="+this.apiKey_+"&c="+this.culture_,this.handleImageryMetadataResponse.bind(this),void 0,"jsonp")}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.getApiKey=function(){return this.apiKey_},e.prototype.getImagerySet=function(){return this.imagerySet_},e.prototype.handleImageryMetadataResponse=function(t){if(200==t.statusCode&&"OK"==t.statusDescription&&"ValidCredentials"==t.authenticationResultCode&&1==t.resourceSets.length&&1==t.resourceSets[0].resources.length){var e=t.resourceSets[0].resources[0],i=-1==this.maxZoom_?e.zoomMax:this.maxZoom_,r=Gl(this.getProjection()),n=this.hidpi_?2:1,o=e.imageWidth==e.imageHeight?e.imageWidth/n:[e.imageWidth/n,e.imageHeight/n],s=Fl({extent:r,minZoom:e.zoomMin,maxZoom:i,tileSize:o});this.tileGrid=s;var a=this.culture_,h=this.hidpi_;if(this.tileUrlFunction=ku(e.imageUrlSubdomains.map(function(t){var i=[0,0,0],r=e.imageUrl.replace("{subdomain}",t).replace("{culture}",a);return function(t,e,n){if(t){El(t[0],t[1],-t[2]-1,i);var o=r;return h&&(o+="&dpi=d1&device=mobile"),o.replace("{quadkey}",function(t){var e,i,r=t[0],n=new Array(r),o=1<>=1;return n.join("")}(i))}}})),e.imageryProviders){var l=Le(Ee("EPSG:4326"),this.getProjection());this.setAttributions(function(t){var i=[],r=t.viewState,n=this.getTileGrid().getTileCoordForCoordAndResolution(r.center,r.resolution)[0];return e.imageryProviders.map(function(e){for(var r=!1,o=e.coverageAreas,s=0,a=o.length;s=h.zoomMin&&n<=h.zoomMax){var u=h.bbox;if(Pt(Ft([u[1],u[0],u[3],u[2]],l),t.extent)){r=!0;break}}}r&&i.push(e.attribution)}),i.push('Terms of Use'),i}.bind(this))}this.setState(ro.READY)}else this.setState(ro.ERROR)},e}($u),ep=function(t){function e(e){var i=e||{},r=void 0!==i.projection?i.projection:"EPSG:3857",n=void 0!==i.tileGrid?i.tileGrid:Fl({extent:Gl(r),maxZoom:i.maxZoom,minZoom:i.minZoom,tileSize:i.tileSize});t.call(this,{attributions:i.attributions,cacheSize:i.cacheSize,crossOrigin:i.crossOrigin,opaque:i.opaque,projection:r,reprojectionErrorThreshold:i.reprojectionErrorThreshold,tileGrid:n,tileLoadFunction:i.tileLoadFunction,tilePixelRatio:i.tilePixelRatio,tileUrlFunction:i.tileUrlFunction,url:i.url,urls:i.urls,wrapX:void 0===i.wrapX||i.wrapX,transition:i.transition,attributionsCollapsible:i.attributionsCollapsible})}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e}($u),ip=function(t){function e(e){t.call(this,{attributions:e.attributions,cacheSize:e.cacheSize,crossOrigin:e.crossOrigin,maxZoom:void 0!==e.maxZoom?e.maxZoom:18,minZoom:e.minZoom,projection:e.projection,wrapX:e.wrapX}),this.account_=e.account,this.mapId_=e.map||"",this.config_=e.config||{},this.templateCache_={},this.initializeMap_()}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.getConfig=function(){return this.config_},e.prototype.updateConfig=function(t){u(this.config_,t),this.initializeMap_()},e.prototype.setConfig=function(t){this.config_=t||{},this.initializeMap_()},e.prototype.initializeMap_=function(){var t=JSON.stringify(this.config_);if(this.templateCache_[t])this.applyTemplate_(this.templateCache_[t]);else{var e="https://"+this.account_+".carto.com/api/v1/map";this.mapId_&&(e+="/named/"+this.mapId_);var i=new XMLHttpRequest;i.addEventListener("load",this.handleInitResponse_.bind(this,t)),i.addEventListener("error",this.handleInitError_.bind(this)),i.open("POST",e),i.setRequestHeader("Content-type","application/json"),i.send(JSON.stringify(this.config_))}},e.prototype.handleInitResponse_=function(t,e){var i=e.target;if(!i.status||i.status>=200&&i.status<300){var r;try{r=JSON.parse(i.responseText)}catch(t){return void this.setState(ro.ERROR)}this.applyTemplate_(r),this.templateCache_[t]=r,this.setState(ro.READY)}else this.setState(ro.ERROR)},e.prototype.handleInitError_=function(t){this.setState(ro.ERROR)},e.prototype.applyTemplate_=function(t){var e="https://"+t.cdn_url.https+"/"+this.account_+"/api/v1/map/"+t.layergroupid+"/{z}/{x}/{y}.png";this.setUrl(e)},e}(ep),rp={ADDFEATURE:"addfeature",CHANGEFEATURE:"changefeature",CLEAR:"clear",REMOVEFEATURE:"removefeature"},np=function(t){function e(e,i){t.call(this,e),this.feature=i}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e}(P),op=function(t){function e(e){var i=e||{};t.call(this,{attributions:i.attributions,projection:void 0,state:ro.READY,wrapX:void 0===i.wrapX||i.wrapX}),this.loader_=I,this.format_=i.format,this.overlaps_=void 0==i.overlaps||i.overlaps,this.url_=i.url,void 0!==i.loader?this.loader_=i.loader:void 0!==this.url_&&(Y(this.format_,7),this.loader_=ql(this.url_,this.format_)),this.strategy_=void 0!==i.strategy?i.strategy:Jl;var r,n,o=void 0===i.useSpatialIndex||i.useSpatialIndex;this.featuresRtree_=o?new tl:null,this.loadedExtentsRtree_=new tl,this.nullGeometryFeatures_={},this.idIndex_={},this.undefIdIndex_={},this.featureChangeKeys_={},this.featuresCollection_=null,Array.isArray(i.features)?n=i.features:i.features&&(n=(r=i.features).getArray()),o||void 0!==r||(r=new U(n)),void 0!==n&&this.addFeaturesInternal(n),void 0!==r&&this.bindFeaturesCollection_(r)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.addFeature=function(t){this.addFeatureInternal(t),this.changed()},e.prototype.addFeatureInternal=function(t){var e=o(t);if(this.addToIndex_(e,t)){this.setupChangeEvents_(e,t);var i=t.getGeometry();if(i){var r=i.getExtent();this.featuresRtree_&&this.featuresRtree_.insert(r,t)}else this.nullGeometryFeatures_[e]=t;this.dispatchEvent(new np(rp.ADDFEATURE,t))}},e.prototype.setupChangeEvents_=function(t,e){this.featureChangeKeys_[t]=[v(e,M.CHANGE,this.handleFeatureChange_,this),v(e,l,this.handleFeatureChange_,this)]},e.prototype.addToIndex_=function(t,e){var i=!0,r=e.getId();return void 0!==r?r.toString()in this.idIndex_?i=!1:this.idIndex_[r.toString()]=e:(Y(!(t in this.undefIdIndex_),30),this.undefIdIndex_[t]=e),i},e.prototype.addFeatures=function(t){this.addFeaturesInternal(t),this.changed()},e.prototype.addFeaturesInternal=function(t){for(var e=[],i=[],r=[],n=0,s=t.length;n=0;--i){var r=this.geometryFunction(t[i]);r?Hi(e,r.getCoordinates()):t.splice(i,1)}tr(e,1/t.length);var n=new B(new ci(e));return n.set("features",t),n},e}(op),ap=function(t){function e(e,i,r,n,o,s){var a=e.getExtent(),h=i.getExtent(),l=h?wt(r,h):r,u=Bu(e,i,Tt(l),n),p=new Wu(e,i,l,a,u*vs),c=s(p.calculateSourceExtent(),u,o),d=xs.LOADED;c&&(d=xs.IDLE);var f=c?c.getPixelRatio():1;t.call(this,r,n,f,d),this.targetProj_=i,this.maxSourceExtent_=a,this.triangulation_=p,this.targetResolution_=n,this.targetExtent_=r,this.sourceImage_=c,this.sourcePixelRatio_=f,this.canvas_=null,this.sourceListenerKey_=null}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.disposeInternal=function(){this.state==xs.LOADING&&this.unlistenSource_(),t.prototype.disposeInternal.call(this)},e.prototype.getImage=function(){return this.canvas_},e.prototype.getProjection=function(){return this.targetProj_},e.prototype.reproject_=function(){var t=this.sourceImage_.getState();if(t==xs.LOADED){var e=Ot(this.targetExtent_)/this.targetResolution_,i=Rt(this.targetExtent_)/this.targetResolution_;this.canvas_=Xu(e,i,this.sourcePixelRatio_,this.sourceImage_.getResolution(),this.maxSourceExtent_,this.targetResolution_,this.targetExtent_,this.triangulation_,[{extent:this.sourceImage_.getExtent(),image:this.sourceImage_.getImage()}],0)}this.state=t,this.changed()},e.prototype.load=function(){if(this.state==xs.IDLE){this.state=xs.LOADING,this.changed();var t=this.sourceImage_.getState();t==xs.LOADED||t==xs.ERROR?this.reproject_():(this.sourceListenerKey_=v(this.sourceImage_,M.CHANGE,function(t){var e=this.sourceImage_.getState();e!=xs.LOADED&&e!=xs.ERROR||(this.unlistenSource_(),this.reproject_())},this),this.sourceImage_.load())}},e.prototype.unlistenSource_=function(){E(this.sourceListenerKey_),this.sourceListenerKey_=null},e}(ms),hp="imageloadstart",lp="imageloadend",up="imageloaderror",pp=function(t){function e(e,i){t.call(this,e),this.image=i}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e}(P);function cp(t,e){t.getImage().src=e}var dp=function(t){function e(e){t.call(this,{attributions:e.attributions,projection:e.projection,state:e.state}),this.resolutions_=void 0!==e.resolutions?e.resolutions:null,this.reprojectedImage_=null,this.reprojectedRevision_=0}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.getResolutions=function(){return this.resolutions_},e.prototype.findNearestResolution=function(t){if(this.resolutions_){var e=z(this.resolutions_,t,0);t=this.resolutions_[e]}return t},e.prototype.getImage=function(t,e,i,r){var n=this.getProjection();if(n&&r&&!Ie(n,r)){if(this.reprojectedImage_){if(this.reprojectedRevision_==this.getRevision()&&Ie(this.reprojectedImage_.getProjection(),r)&&this.reprojectedImage_.getResolution()==e&&dt(this.reprojectedImage_.getExtent(),t))return this.reprojectedImage_;this.reprojectedImage_.dispose(),this.reprojectedImage_=null}return this.reprojectedImage_=new ap(n,r,t,e,i,function(t,e,i){return this.getImageInternal(t,e,i,n)}.bind(this)),this.reprojectedRevision_=this.getRevision(),this.reprojectedImage_}return n&&(r=n),this.getImageInternal(t,e,i,r)},e.prototype.getImageInternal=function(t,e,i,n){return r()},e.prototype.handleImageChange=function(t){var e=t.target;switch(e.getState()){case xs.LOADING:this.loading=!0,this.dispatchEvent(new pp(hp,e));break;case xs.LOADED:this.loading=!1,this.dispatchEvent(new pp(lp,e));break;case xs.ERROR:this.loading=!1,this.dispatchEvent(new pp(up,e))}},e}(Il),fp=function(t){function e(e,i,r,n,o,s){t.call(this,e,i,r,xs.IDLE),this.src_=n,this.image_=new Image,null!==o&&(this.image_.crossOrigin=o),this.imageListenerKeys_=null,this.state=xs.IDLE,this.imageLoadFunction_=s}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.getImage=function(){return this.image_},e.prototype.handleImageError_=function(){this.state=xs.ERROR,this.unlistenImage_(),this.changed()},e.prototype.handleImageLoad_=function(){void 0===this.resolution&&(this.resolution=Rt(this.extent)/this.image_.height),this.state=xs.LOADED,this.unlistenImage_(),this.changed()},e.prototype.load=function(){this.state!=xs.IDLE&&this.state!=xs.ERROR||(this.state=xs.LOADING,this.changed(),this.imageListenerKeys_=[m(this.image_,M.ERROR,this.handleImageError_,this),m(this.image_,M.LOAD,this.handleImageLoad_,this)],this.imageLoadFunction_(this,this.src_))},e.prototype.setImage=function(t){this.image_=t},e.prototype.unlistenImage_=function(){this.imageListenerKeys_.forEach(E),this.imageListenerKeys_=null},e}(ms);function _p(t,e){var i=[];Object.keys(e).forEach(function(t){null!==e[t]&&void 0!==e[t]&&i.push(t+"="+encodeURIComponent(e[t]))});var r=i.join("&");return(t=-1===(t=t.replace(/[?&]$/,"")).indexOf("?")?t+"?":t+"&")+r}var gp=function(t){function e(e){var i=e||{};t.call(this,{attributions:i.attributions,projection:i.projection,resolutions:i.resolutions}),this.crossOrigin_=void 0!==i.crossOrigin?i.crossOrigin:null,this.hidpi_=void 0===i.hidpi||i.hidpi,this.url_=i.url,this.imageLoadFunction_=void 0!==i.imageLoadFunction?i.imageLoadFunction:cp,this.params_=i.params||{},this.image_=null,this.imageSize_=[0,0],this.renderedRevision_=0,this.ratio_=void 0!==i.ratio?i.ratio:1.5}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.getParams=function(){return this.params_},e.prototype.getImageInternal=function(t,e,i,r){if(void 0===this.url_)return null;e=this.findNearestResolution(e),i=this.hidpi_?i:1;var n=this.image_;if(n&&this.renderedRevision_==this.getRevision()&&n.getResolution()==e&&n.getPixelRatio()==i&&ot(n.getExtent(),t))return n;var o={F:"image",FORMAT:"PNG32",TRANSPARENT:!0};u(o,this.params_);var s=((t=t.slice())[0]+t[2])/2,a=(t[1]+t[3])/2;if(1!=this.ratio_){var h=this.ratio_*Ot(t)/2,l=this.ratio_*Rt(t)/2;t[0]=s-h,t[1]=a-l,t[2]=s+h,t[3]=a+l}var p=e/i,c=Math.ceil(Ot(t)/p),d=Math.ceil(Rt(t)/p);t[0]=s-p*c/2,t[2]=s+p*c/2,t[1]=a-p*d/2,t[3]=a+p*d/2,this.imageSize_[0]=c,this.imageSize_[1]=d;var f=this.getRequestUrl_(t,this.imageSize_,i,r,o);return this.image_=new fp(t,e,i,f,this.crossOrigin_,this.imageLoadFunction_),this.renderedRevision_=this.getRevision(),v(this.image_,M.CHANGE,this.handleImageChange,this),this.image_},e.prototype.getImageLoadFunction=function(){return this.imageLoadFunction_},e.prototype.getRequestUrl_=function(t,e,i,r,n){var o=r.getCode().split(":").pop();n.SIZE=e[0]+","+e[1],n.BBOX=t.join(","),n.BBOXSR=o,n.IMAGESR=o,n.DPI=Math.round(90*i);var s=this.url_,a=s.replace(/MapServer\/?$/,"MapServer/export").replace(/ImageServer\/?$/,"ImageServer/exportImage");return a==s&&Y(!1,50),_p(a,n)},e.prototype.getUrl=function(){return this.url_},e.prototype.setImageLoadFunction=function(t){this.image_=null,this.imageLoadFunction_=t,this.changed()},e.prototype.setUrl=function(t){t!=this.url_&&(this.url_=t,this.image_=null,this.changed())},e.prototype.updateParams=function(t){u(this.params_,t),this.image_=null,this.changed()},e}(dp),yp=function(t){function e(e){var i=e||{};t.call(this,{attributions:i.attributions,projection:i.projection,resolutions:i.resolutions,state:i.state}),this.canvasFunction_=i.canvasFunction,this.canvas_=null,this.renderedRevision_=0,this.ratio_=void 0!==i.ratio?i.ratio:1.5}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.getImageInternal=function(t,e,i,r){e=this.findNearestResolution(e);var n=this.canvas_;if(n&&this.renderedRevision_==this.getRevision()&&n.getResolution()==e&&n.getPixelRatio()==i&&ot(n.getExtent(),t))return n;Mt(t=t.slice(),this.ratio_);var o=[Ot(t)/e*i,Rt(t)/e*i],s=this.canvasFunction_.call(this,t,e,i,o,r);return s&&(n=new Es(t,e,i,s)),this.canvas_=n,this.renderedRevision_=this.getRevision(),n},e}(dp);var vp=function(t){function e(e){t.call(this,{projection:e.projection,resolutions:e.resolutions}),this.crossOrigin_=void 0!==e.crossOrigin?e.crossOrigin:null,this.displayDpi_=void 0!==e.displayDpi?e.displayDpi:96,this.params_=e.params||{},this.url_=e.url,this.imageLoadFunction_=void 0!==e.imageLoadFunction?e.imageLoadFunction:cp,this.hidpi_=void 0===e.hidpi||e.hidpi,this.metersPerUnit_=void 0!==e.metersPerUnit?e.metersPerUnit:1,this.ratio_=void 0!==e.ratio?e.ratio:1,this.useOverlay_=void 0!==e.useOverlay&&e.useOverlay,this.image_=null,this.renderedRevision_=0}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.getParams=function(){return this.params_},e.prototype.getImageInternal=function(t,e,i,r){e=this.findNearestResolution(e),i=this.hidpi_?i:1;var n=this.image_;if(n&&this.renderedRevision_==this.getRevision()&&n.getResolution()==e&&n.getPixelRatio()==i&&ot(n.getExtent(),t))return n;1!=this.ratio_&&Mt(t=t.slice(),this.ratio_);var o=[Ot(t)/e*i,Rt(t)/e*i];if(void 0!==this.url_){var s=this.getUrl(this.url_,this.params_,t,o,r);v(n=new fp(t,e,i,s,this.crossOrigin_,this.imageLoadFunction_),M.CHANGE,this.handleImageChange,this)}else n=null;return this.image_=n,this.renderedRevision_=this.getRevision(),n},e.prototype.getImageLoadFunction=function(){return this.imageLoadFunction_},e.prototype.updateParams=function(t){u(this.params_,t),this.changed()},e.prototype.getUrl=function(t,e,i,r,n){var o=function(t,e,i,r){var n=Ot(t),o=Rt(t),s=e[0],a=e[1],h=.0254/r;return a*n>s*o?n*i/(s*h):o*i/(a*h)}(i,r,this.metersPerUnit_,this.displayDpi_),s=Tt(i),a={OPERATION:this.useOverlay_?"GETDYNAMICMAPOVERLAYIMAGE":"GETMAPIMAGE",VERSION:"2.0.0",LOCALE:"en",CLIENTAGENT:"ol/source/ImageMapGuide source",CLIP:"1",SETDISPLAYDPI:this.displayDpi_,SETDISPLAYWIDTH:Math.round(r[0]),SETDISPLAYHEIGHT:Math.round(r[1]),SETVIEWSCALE:o,SETVIEWCENTERX:s[0],SETVIEWCENTERY:s[1]};return u(a,e),_p(t,a)},e.prototype.setImageLoadFunction=function(t){this.image_=null,this.imageLoadFunction_=t,this.changed()},e}(dp),mp=function(t){function e(e){var i=void 0!==e.crossOrigin?e.crossOrigin:null,r=void 0!==e.imageLoadFunction?e.imageLoadFunction:cp;t.call(this,{attributions:e.attributions,projection:Ee(e.projection)}),this.url_=e.url,this.imageExtent_=e.imageExtent,this.image_=new fp(this.imageExtent_,void 0,1,this.url_,i,r),this.imageSize_=e.imageSize?e.imageSize:null,v(this.image_,M.CHANGE,this.handleImageChange,this)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.getImageExtent=function(){return this.imageExtent_},e.prototype.getImageInternal=function(t,e,i,r){return Pt(t,this.image_.getExtent())?this.image_:null},e.prototype.getUrl=function(){return this.url_},e.prototype.handleImageChange=function(e){if(this.image_.getState()==xs.LOADED){var i,r,n=this.image_.getExtent(),o=this.image_.getImage();this.imageSize_?(i=this.imageSize_[0],r=this.imageSize_[1]):(i=o.width,r=o.height);var s=Rt(n)/r,a=Math.ceil(Ot(n)/s);if(a!=i){var h=Jn(a,r),l=h.canvas;h.drawImage(o,0,0,i,r,0,0,l.width,l.height),this.image_.setImage(l)}}t.prototype.handleImageChange.call(this,e)},e}(dp),xp="1.3.0",Ep="carmentaserver",Sp="geoserver",Tp="mapserver",Cp="qgis",Rp=[101,101],wp=function(t){function e(e){var i=e||{};t.call(this,{attributions:i.attributions,projection:i.projection,resolutions:i.resolutions}),this.crossOrigin_=void 0!==i.crossOrigin?i.crossOrigin:null,this.url_=i.url,this.imageLoadFunction_=void 0!==i.imageLoadFunction?i.imageLoadFunction:cp,this.params_=i.params||{},this.v13_=!0,this.updateV13_(),this.serverType_=i.serverType,this.hidpi_=void 0===i.hidpi||i.hidpi,this.image_=null,this.imageSize_=[0,0],this.renderedRevision_=0,this.ratio_=void 0!==i.ratio?i.ratio:1.5}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.getGetFeatureInfoUrl=function(t,e,i,r){if(void 0!==this.url_){var n=Ee(i),o=this.getProjection();o&&o!==n&&(e=Bu(o,n,t,e),t=Pe(t,n,o));var s=Ct(t,e,0,Rp),a={SERVICE:"WMS",VERSION:xp,REQUEST:"GetFeatureInfo",FORMAT:"image/png",TRANSPARENT:!0,QUERY_LAYERS:this.params_.LAYERS};u(a,this.params_,r);var h=Math.floor((t[0]-s[0])/e),l=Math.floor((s[3]-t[1])/e);return a[this.v13_?"I":"X"]=h,a[this.v13_?"J":"Y"]=l,this.getRequestUrl_(s,Rp,1,o||n,a)}},e.prototype.getParams=function(){return this.params_},e.prototype.getImageInternal=function(t,e,i,r){if(void 0===this.url_)return null;e=this.findNearestResolution(e),1==i||this.hidpi_&&void 0!==this.serverType_||(i=1);var n=e/i,o=Tt(t),s=Ct(o,n,0,[Math.ceil(Ot(t)/n),Math.ceil(Rt(t)/n)]),a=Ct(o,n,0,[Math.ceil(this.ratio_*Ot(t)/n),Math.ceil(this.ratio_*Rt(t)/n)]),h=this.image_;if(h&&this.renderedRevision_==this.getRevision()&&h.getResolution()==e&&h.getPixelRatio()==i&&ot(h.getExtent(),s))return h;var l={SERVICE:"WMS",VERSION:xp,REQUEST:"GetMap",FORMAT:"image/png",TRANSPARENT:!0};u(l,this.params_),this.imageSize_[0]=Math.round(Ot(a)/n),this.imageSize_[1]=Math.round(Rt(a)/n);var p=this.getRequestUrl_(a,this.imageSize_,i,r,l);return this.image_=new fp(a,e,i,p,this.crossOrigin_,this.imageLoadFunction_),this.renderedRevision_=this.getRevision(),v(this.image_,M.CHANGE,this.handleImageChange,this),this.image_},e.prototype.getImageLoadFunction=function(){return this.imageLoadFunction_},e.prototype.getRequestUrl_=function(t,e,i,r,n){if(Y(void 0!==this.url_,9),n[this.v13_?"CRS":"SRS"]=r.getCode(),"STYLES"in this.params_||(n.STYLES=""),1!=i)switch(this.serverType_){case Sp:var o=90*i+.5|0;"FORMAT_OPTIONS"in n?n.FORMAT_OPTIONS+=";dpi:"+o:n.FORMAT_OPTIONS="dpi:"+o;break;case Tp:n.MAP_RESOLUTION=90*i;break;case Ep:case Cp:n.DPI=90*i;break;default:Y(!1,8)}n.WIDTH=e[0],n.HEIGHT=e[1];var s,a=r.getAxisOrientation();return s=this.v13_&&"ne"==a.substr(0,2)?[t[1],t[0],t[3],t[2]]:t,n.BBOX=s.join(","),_p(this.url_,n)},e.prototype.getUrl=function(){return this.url_},e.prototype.setImageLoadFunction=function(t){this.image_=null,this.imageLoadFunction_=t,this.changed()},e.prototype.setUrl=function(t){t!=this.url_&&(this.url_=t,this.image_=null,this.changed())},e.prototype.updateParams=function(t){u(this.params_,t),this.updateV13_(),this.image_=null,this.changed()},e.prototype.updateV13_=function(){var t=this.params_.VERSION||xp;this.v13_=Ki(t,"1.3")>=0},e}(dp),Ip='© OpenStreetMap contributors.',Lp=function(t){function e(e){var i,r=e||{};i=void 0!==r.attributions?r.attributions:[Ip];var n=void 0!==r.crossOrigin?r.crossOrigin:"anonymous",o=void 0!==r.url?r.url:"https://{a-c}.tile.openstreetmap.org/{z}/{x}/{y}.png";t.call(this,{attributions:i,cacheSize:r.cacheSize,crossOrigin:n,opaque:void 0===r.opaque||r.opaque,maxZoom:void 0!==r.maxZoom?r.maxZoom:19,reprojectionErrorThreshold:r.reprojectionErrorThreshold,tileLoadFunction:r.tileLoadFunction,url:o,wrapX:r.wrapX,attributionsCollapsible:!1})}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e}(ep),Op=i(2),Pp=function(t){function e(e){var i=e||{};t.call(this,i),this.type=Ss.IMAGE}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e}(xo);Pp.prototype.getSource;var bp=Pp,Mp="preload",Fp="useInterimTilesOnError",Ap=function(t){function e(e){var i=e||{},r=u({},i);delete r.preload,delete r.useInterimTilesOnError,t.call(this,r),this.setPreload(void 0!==i.preload?i.preload:0),this.setUseInterimTilesOnError(void 0===i.useInterimTilesOnError||i.useInterimTilesOnError),this.type=Ss.TILE}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.getPreload=function(){return this.get(Mp)},e.prototype.setPreload=function(t){this.set(Mp,t)},e.prototype.getUseInterimTilesOnError=function(){return this.get(Fp)},e.prototype.setUseInterimTilesOnError=function(t){this.set(Fp,t)},e}(xo);Ap.prototype.getSource;var Np=Ap,Gp="beforeoperations",Dp="afteroperations",kp={PIXEL:"pixel",IMAGE:"image"},jp=function(t){function e(e,i,r){t.call(this,e),this.extent=i.extent,this.resolution=i.viewState.resolution/i.pixelRatio,this.data=r}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e}(P),Up=null;function Yp(t,e,i){if(!t.prepareFrame(e,i))return null;var r=e.size[0],n=e.size[1];if(Up){var o=Up.canvas;o.width!==r||o.height!==n?Up=Jn(r,n):Up.clearRect(0,0,r,n)}else Up=Jn(r,n);return t.composeFrame(e,i,Up),Up.getImageData(0,0,r,n)}function Bp(t){var e=t,i=t,r=t,n=null;return"function"==typeof e.getTile?n=function(t){var e=new Np({source:t});return new ha(e)}(e):"function"==typeof i.getImage?n=function(t){var e=new bp({source:t});return new ra(e)}(i):r.getType()===Ss.TILE?n=new ha(r):r.getType()!=Ss.IMAGE&&r.getType()!=Ss.VECTOR||(n=new ra(r)),n}var Vp=function(t){function e(e){t.call(this,{projection:null}),this.worker_=null,this.operationType_=void 0!==e.operationType?e.operationType:kp.PIXEL,this.threads_=void 0!==e.threads?e.threads:1,this.renderers_=function(t){for(var e=t.length,i=new Array(e),r=0;rStamen Design, under CC BY 3.0.',Ip],zp={terrain:{extension:"jpg",opaque:!0},"terrain-background":{extension:"jpg",opaque:!0},"terrain-labels":{extension:"png",opaque:!1},"terrain-lines":{extension:"png",opaque:!1},"toner-background":{extension:"png",opaque:!0},toner:{extension:"png",opaque:!0},"toner-hybrid":{extension:"png",opaque:!1},"toner-labels":{extension:"png",opaque:!1},"toner-lines":{extension:"png",opaque:!1},"toner-lite":{extension:"png",opaque:!0},watercolor:{extension:"jpg",opaque:!0}},Wp={terrain:{minZoom:4,maxZoom:18},toner:{minZoom:0,maxZoom:20},watercolor:{minZoom:1,maxZoom:16}},Kp=function(t){function e(e){var i=e.layer.indexOf("-"),r=-1==i?e.layer:e.layer.slice(0,i),n=Wp[r],o=zp[e.layer],s=void 0!==e.url?e.url:"https://stamen-tiles-{a-d}.a.ssl.fastly.net/"+e.layer+"/{z}/{x}/{y}."+o.extension;t.call(this,{attributions:Xp,cacheSize:e.cacheSize,crossOrigin:"anonymous",maxZoom:void 0!=e.maxZoom?e.maxZoom:n.maxZoom,minZoom:void 0!=e.minZoom?e.minZoom:n.minZoom,opaque:o.opaque,reprojectionErrorThreshold:e.reprojectionErrorThreshold,tileLoadFunction:e.tileLoadFunction,url:s,wrapX:e.wrapX})}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e}(ep);function Hp(t,e,i){var r=this.getTileGrid();if(r||(r=this.getTileGridForProjection(i)),!(r.getResolutions().length<=t[0])){var n=r.getTileCoordExtent(t,this.tmpExtent_),o=ho(r.getTileSize(t[0]),this.tmpSize);1!=e&&(o=ao(o,e,this.tmpSize));var s={F:"image",FORMAT:"PNG32",TRANSPARENT:!0};return u(s,this.params_),this.getRequestUrl_(t,o,n,e,i,s)}}var Zp=function(t){function e(e){var i=e||{};t.call(this,{attributions:i.attributions,cacheSize:i.cacheSize,crossOrigin:i.crossOrigin,projection:i.projection,reprojectionErrorThreshold:i.reprojectionErrorThreshold,tileGrid:i.tileGrid,tileLoadFunction:i.tileLoadFunction,tileUrlFunction:Hp,url:i.url,urls:i.urls,wrapX:void 0===i.wrapX||i.wrapX,transition:i.transition}),this.params_=i.params||{},this.tmpExtent_=[1/0,1/0,-1/0,-1/0],this.setKey(this.getKeyForParams_())}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.getKeyForParams_=function(){var t=0,e=[];for(var i in this.params_)e[t++]=i+"-"+this.params_[i];return e.join("/")},e.prototype.getParams=function(){return this.params_},e.prototype.getRequestUrl_=function(t,e,i,r,n,o){var s=this.urls;if(s){var a,h=n.getCode().split(":").pop();if(o.SIZE=e[0]+","+e[1],o.BBOX=i.join(","),o.BBOXSR=h,o.IMAGESR=h,o.DPI=Math.round(o.DPI?o.DPI*r:90*r),1==s.length)a=s[0];else a=s[Xt(Cl(t),s.length)];return _p(a.replace(/MapServer\/?$/,"MapServer/export").replace(/ImageServer\/?$/,"ImageServer/exportImage"),o)}},e.prototype.getTilePixelRatio=function(t){return t},e.prototype.updateParams=function(t){u(this.params_,t),this.setKey(this.getKeyForParams_())},e}($u),qp=function(t){function e(e,i,r){t.call(this,e,On.LOADED),this.tileSize_=i,this.text_=r,this.canvas_=null}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.getImage=function(){if(this.canvas_)return this.canvas_;var t=this.tileSize_,e=Jn(t[0],t[1]);return e.strokeStyle="black",e.strokeRect(.5,.5,t[0]+.5,t[1]+.5),e.fillStyle="black",e.textAlign="center",e.textBaseline="middle",e.font="24px sans-serif",e.fillText(this.text_,t[0]/2,t[1]/2),this.canvas_=e.canvas,e.canvas},e.prototype.load=function(){},e}(vl),Jp=function(t){function e(e){t.call(this,{opaque:!1,projection:e.projection,tileGrid:e.tileGrid,wrapX:void 0===e.wrapX||e.wrapX})}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.getTile=function(t,e,i){var r=Sl(t,e,i);if(this.tileCache.containsKey(r))return this.tileCache.get(r);var n=ho(this.tileGrid.getTileSize(t)),o=[t,e,i],s=this.getTileCoordForTileUrlFunction(o),a=s?this.getTileCoordForTileUrlFunction(s).toString():"",h=new qp(o,n,a);return this.tileCache.set(r,h),h},e}(jl),Qp=function(t){function e(e){if(t.call(this,{attributions:e.attributions,cacheSize:e.cacheSize,crossOrigin:e.crossOrigin,projection:Ee("EPSG:3857"),reprojectionErrorThreshold:e.reprojectionErrorThreshold,state:ro.LOADING,tileLoadFunction:e.tileLoadFunction,wrapX:void 0===e.wrapX||e.wrapX,transition:e.transition}),this.tileJSON_=null,e.url)if(e.jsonp)Yu(e.url,this.handleTileJSONResponse.bind(this),this.handleTileJSONError.bind(this));else{var i=new XMLHttpRequest;i.addEventListener("load",this.onXHRLoad_.bind(this)),i.addEventListener("error",this.onXHRError_.bind(this)),i.open("GET",e.url),i.send()}else e.tileJSON?this.handleTileJSONResponse(e.tileJSON):Y(!1,51)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.onXHRLoad_=function(t){var e=t.target;if(!e.status||e.status>=200&&e.status<300){var i;try{i=JSON.parse(e.responseText)}catch(t){return void this.handleTileJSONError()}this.handleTileJSONResponse(i)}else this.handleTileJSONError()},e.prototype.onXHRError_=function(t){this.handleTileJSONError()},e.prototype.getTileJSON=function(){return this.tileJSON_},e.prototype.handleTileJSONResponse=function(t){var e,i=Ee("EPSG:4326"),r=this.getProjection();if(void 0!==t.bounds){var n=Le(i,r);e=Ft(t.bounds,n)}var o=t.minzoom||0,s=t.maxzoom||22,a=Fl({extent:Gl(r),maxZoom:s,minZoom:o});if(this.tileGrid=a,this.tileUrlFunction=Du(t.tiles,a),void 0!==t.attribution&&!this.getAttributions()){var h=void 0!==e?e:i.getExtent();this.setAttributions(function(e){return Pt(h,e.extent)?[t.attribution]:null})}this.tileJSON_=t,this.setState(ro.READY)},e.prototype.handleTileJSONError=function(){this.setState(ro.ERROR)},e}($u);function $p(t,e,i){var r=this.getTileGrid();if(r||(r=this.getTileGridForProjection(i)),!(r.getResolutions().length<=t[0])){1==e||this.hidpi_&&void 0!==this.serverType_||(e=1);var n=r.getResolution(t[0]),o=r.getTileCoordExtent(t,this.tmpExtent_),s=ho(r.getTileSize(t[0]),this.tmpSize),a=this.gutter_;0!==a&&(s=so(s,a,this.tmpSize),o=et(o,n*a,o)),1!=e&&(s=ao(s,e,this.tmpSize));var h={SERVICE:"WMS",VERSION:xp,REQUEST:"GetMap",FORMAT:"image/png",TRANSPARENT:!0};return u(h,this.params_),this.getRequestUrl_(t,s,o,e,i,h)}}var tc=function(t){function e(e){var i=e||{},r=i.params||{},n=!("TRANSPARENT"in r)||r.TRANSPARENT;t.call(this,{attributions:i.attributions,cacheSize:i.cacheSize,crossOrigin:i.crossOrigin,opaque:!n,projection:i.projection,reprojectionErrorThreshold:i.reprojectionErrorThreshold,tileClass:i.tileClass,tileGrid:i.tileGrid,tileLoadFunction:i.tileLoadFunction,tileUrlFunction:$p,url:i.url,urls:i.urls,wrapX:void 0===i.wrapX||i.wrapX,transition:i.transition}),this.gutter_=void 0!==i.gutter?i.gutter:0,this.params_=r,this.v13_=!0,this.serverType_=i.serverType,this.hidpi_=void 0===i.hidpi||i.hidpi,this.tmpExtent_=[1/0,1/0,-1/0,-1/0],this.updateV13_(),this.setKey(this.getKeyForParams_())}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.getGetFeatureInfoUrl=function(t,e,i,r){var n=Ee(i),o=this.getProjection(),s=this.getTileGrid();s||(s=this.getTileGridForProjection(n));var a=s.getTileCoordForCoordAndResolution(t,e);if(!(s.getResolutions().length<=a[0])){var h=s.getResolution(a[0]),l=s.getTileCoordExtent(a,this.tmpExtent_),p=ho(s.getTileSize(a[0]),this.tmpSize),c=this.gutter_;0!==c&&(p=so(p,c,this.tmpSize),l=et(l,h*c,l)),o&&o!==n&&(h=Bu(o,n,t,h),l=be(l,n,o),t=Pe(t,n,o));var d={SERVICE:"WMS",VERSION:xp,REQUEST:"GetFeatureInfo",FORMAT:"image/png",TRANSPARENT:!0,QUERY_LAYERS:this.params_.LAYERS};u(d,this.params_,r);var f=Math.floor((t[0]-l[0])/h),_=Math.floor((l[3]-t[1])/h);return d[this.v13_?"I":"X"]=f,d[this.v13_?"J":"Y"]=_,this.getRequestUrl_(a,p,l,1,o||n,d)}},e.prototype.getGutter=function(){return this.gutter_},e.prototype.getParams=function(){return this.params_},e.prototype.getRequestUrl_=function(t,e,i,r,n,o){var s=this.urls;if(s){if(o.WIDTH=e[0],o.HEIGHT=e[1],o[this.v13_?"CRS":"SRS"]=n.getCode(),"STYLES"in this.params_||(o.STYLES=""),1!=r)switch(this.serverType_){case Sp:var a=90*r+.5|0;"FORMAT_OPTIONS"in o?o.FORMAT_OPTIONS+=";dpi:"+a:o.FORMAT_OPTIONS="dpi:"+a;break;case Tp:o.MAP_RESOLUTION=90*r;break;case Ep:case Cp:o.DPI=90*r;break;default:Y(!1,52)}var h,l,u=n.getAxisOrientation(),p=i;if(this.v13_&&"ne"==u.substr(0,2))h=i[0],p[0]=i[1],p[1]=h,h=i[2],p[2]=i[3],p[3]=h;if(o.BBOX=p.join(","),1==s.length)l=s[0];else l=s[Xt(Cl(t),s.length)];return _p(l,o)}},e.prototype.getTilePixelRatio=function(t){return this.hidpi_&&void 0!==this.serverType_?t:1},e.prototype.getKeyForParams_=function(){var t=0,e=[];for(var i in this.params_)e[t++]=i+"-"+this.params_[i];return e.join("/")},e.prototype.updateParams=function(t){u(this.params_,t),this.updateV13_(),this.setKey(this.getKeyForParams_())},e.prototype.updateV13_=function(){var t=this.params_.VERSION||xp;this.v13_=Ki(t,"1.3")>=0},e}($u),ec=function(t){function e(e,i,r,n,o,s){t.call(this,e,i),this.src_=r,this.extent_=n,this.preemptive_=o,this.grid_=null,this.keys_=null,this.data_=null,this.jsonp_=s}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.getImage=function(){return null},e.prototype.getData=function(t){if(!this.grid_||!this.keys_)return null;var e=(t[0]-this.extent_[0])/(this.extent_[2]-this.extent_[0]),i=(t[1]-this.extent_[1])/(this.extent_[3]-this.extent_[1]),r=this.grid_[Math.floor((1-i)*this.grid_.length)];if("string"!=typeof r)return null;var n=r.charCodeAt(Math.floor(e*r.length));n>=93&&n--,n>=35&&n--;var o=null;if((n-=32)in this.keys_){var s=this.keys_[n];o=this.data_&&s in this.data_?this.data_[s]:s}return o},e.prototype.forDataAtCoordinate=function(t,e,i,r){this.state==On.IDLE&&!0===r?(m(this,M.CHANGE,function(r){e.call(i,this.getData(t))},this),this.loadInternal_()):!0===r?setTimeout(function(){e.call(i,this.getData(t))}.bind(this),0):e.call(i,this.getData(t))},e.prototype.getKey=function(){return this.src_},e.prototype.handleError_=function(){this.state=On.ERROR,this.changed()},e.prototype.handleLoad_=function(t){this.grid_=t.grid,this.keys_=t.keys,this.data_=t.data,this.state=On.EMPTY,this.changed()},e.prototype.loadInternal_=function(){if(this.state==On.IDLE)if(this.state=On.LOADING,this.jsonp_)Yu(this.src_,this.handleLoad_.bind(this),this.handleError_.bind(this));else{var t=new XMLHttpRequest;t.addEventListener("load",this.onXHRLoad_.bind(this)),t.addEventListener("error",this.onXHRError_.bind(this)),t.open("GET",this.src_),t.send()}},e.prototype.onXHRLoad_=function(t){var e=t.target;if(!e.status||e.status>=200&&e.status<300){var i;try{i=JSON.parse(e.responseText)}catch(t){return void this.handleError_()}this.handleLoad_(i)}else this.handleError_()},e.prototype.onXHRError_=function(t){this.handleError_()},e.prototype.load=function(){this.preemptive_&&this.loadInternal_()},e}(vl),ic=function(t){function e(e){if(t.call(this,{projection:Ee("EPSG:3857"),state:ro.LOADING}),this.preemptive_=void 0===e.preemptive||e.preemptive,this.tileUrlFunction_=ju,this.template_=void 0,this.jsonp_=e.jsonp||!1,e.url)if(this.jsonp_)Yu(e.url,this.handleTileJSONResponse.bind(this),this.handleTileJSONError.bind(this));else{var i=new XMLHttpRequest;i.addEventListener("load",this.onXHRLoad_.bind(this)),i.addEventListener("error",this.onXHRError_.bind(this)),i.open("GET",e.url),i.send()}else e.tileJSON?this.handleTileJSONResponse(e.tileJSON):Y(!1,51)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.onXHRLoad_=function(t){var e=t.target;if(!e.status||e.status>=200&&e.status<300){var i;try{i=JSON.parse(e.responseText)}catch(t){return void this.handleTileJSONError()}this.handleTileJSONResponse(i)}else this.handleTileJSONError()},e.prototype.onXHRError_=function(t){this.handleTileJSONError()},e.prototype.getTemplate=function(){return this.template_},e.prototype.forDataAtCoordinateAndResolution=function(t,e,i,r){if(this.tileGrid){var n=this.tileGrid.getTileCoordForCoordAndResolution(t,e);this.getTile(n[0],n[1],n[2],1,this.getProjection()).forDataAtCoordinate(t,i,null,r)}else!0===r?setTimeout(function(){i(null)},0):i(null)},e.prototype.handleTileJSONError=function(){this.setState(ro.ERROR)},e.prototype.handleTileJSONResponse=function(t){var e,i=Ee("EPSG:4326"),r=this.getProjection();if(void 0!==t.bounds){var n=Le(i,r);e=Ft(t.bounds,n)}var o=t.minzoom||0,s=t.maxzoom||22,a=Fl({extent:Gl(r),maxZoom:s,minZoom:o});this.tileGrid=a,this.template_=t.template;var h=t.grids;if(h){if(this.tileUrlFunction_=Du(h,a),void 0!==t.attribution){var l=void 0!==e?e:i.getExtent();this.setAttributions(function(e){return Pt(l,e.extent)?[t.attribution]:null})}this.setState(ro.READY)}else this.setState(ro.ERROR)},e.prototype.getTile=function(t,e,i,r,n){var o=Sl(t,e,i);if(this.tileCache.containsKey(o))return this.tileCache.get(o);var s=[t,e,i],a=this.getTileCoordForTileUrlFunction(s,n),h=this.tileUrlFunction_(a,r,n),l=new ec(s,void 0!==h?On.IDLE:On.EMPTY,void 0!==h?h:"",this.tileGrid.getTileCoordExtent(s),this.preemptive_,this.jsonp_);return this.tileCache.set(o,l),l},e.prototype.useTile=function(t,e,i){var r=Sl(t,e,i);this.tileCache.containsKey(r)&&this.tileCache.get(r)},e}(jl),rc=function(t){function e(i,r,n,o,s,a,h,l,u,p,c,d,f,_,g){if(t.call(this,i,r,{transition:0}),this.context_={},this.loader_,this.replayState_={},this.sourceTiles_=p,this.tileKeys=[],this.extent=null,this.sourceRevision_=n,this.wrappedTileCoord=a,this.loadListenerKeys_=[],this.sourceTileListenerKeys_=[],a){var y=this.extent=u.getTileCoordExtent(a),m=u.getResolution(g),x=l.getZForResolution(m),E=g!=i[0],S=0;if(l.forEachTileCoord(y,x,function(t){var e=wt(y,l.getTileCoordExtent(t)),i=l.getExtent();if(i&&(e=wt(e,i,e)),Ot(e)/m>=.5&&Rt(e)/m>=.5){++S;var r=t.toString(),n=p[r];if(!n&&!E){var a=h(t,c,d);n=p[r]=new f(t,void 0==a?On.EMPTY:On.IDLE,void 0==a?"":a,o,s),this.sourceTileListenerKeys_.push(v(n,M.CHANGE,_))}!n||E&&n.getState()!=On.LOADED||(n.consumers++,this.tileKeys.push(r))}}.bind(this)),E&&S==this.tileKeys.length&&this.finishLoading_(),g<=i[0]&&this.state!=On.LOADED)for(;g>u.getMinZoom();){var T=new e(i,r,n,o,s,a,h,l,u,p,c,d,f,I,--g);if(T.state==On.LOADED){this.interimTile=T;break}}}}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.disposeInternal=function(){this.state=On.ABORT,this.changed(),this.interimTile&&this.interimTile.dispose();for(var e=0,i=this.tileKeys.length;e=0;--i){var r=this.getTile(this.tileKeys[i]).getState();r!=On.LOADED&&--t,r==On.EMPTY&&++e}t==this.tileKeys.length?(this.loadListenerKeys_.forEach(E),this.loadListenerKeys_.length=0,this.setState(On.LOADED)):this.setState(e==this.tileKeys.length?On.EMPTY:On.ERROR)},e}(vl);function nc(t,e){var i=Zl(e,t.getFormat(),t.onLoad.bind(t),t.onError.bind(t));t.setLoader(i)}var oc=[0,0,4096,4096],sc=function(t){function e(e,i,r,n,o,s){t.call(this,e,i,s),this.consumers=0,this.extent_=null,this.format_=n,this.features_=null,this.loader_,this.projection_=null,this.replayGroups_={},this.tileLoadFunction_=o,this.url_=r}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.disposeInternal=function(){this.features_=null,this.replayGroups_={},this.state=On.ABORT,this.changed(),t.prototype.disposeInternal.call(this)},e.prototype.getExtent=function(){return this.extent_||oc},e.prototype.getFormat=function(){return this.format_},e.prototype.getFeatures=function(){return this.features_},e.prototype.getKey=function(){return this.url_},e.prototype.getProjection=function(){return this.projection_},e.prototype.getReplayGroup=function(t,e){return this.replayGroups_[o(t)+","+e]},e.prototype.load=function(){this.state==On.IDLE&&(this.setState(On.LOADING),this.tileLoadFunction_(this,this.url_),this.loader_(null,NaN,null))},e.prototype.onLoad=function(t,e,i){this.setProjection(e),this.setFeatures(t),this.setExtent(i)},e.prototype.onError=function(){this.setState(On.ERROR)},e.prototype.setExtent=function(t){this.extent_=t},e.prototype.setFeatures=function(t){this.features_=t,this.setState(On.LOADED)},e.prototype.setProjection=function(t){this.projection_=t},e.prototype.setReplayGroup=function(t,e,i){this.replayGroups_[o(t)+","+e]=i},e.prototype.setLoader=function(t){this.loader_=t},e}(vl),ac=function(t){function e(e){var i=e.projection||"EPSG:3857",r=e.extent||Gl(i),n=e.tileGrid||Fl({extent:r,maxZoom:e.maxZoom||22,minZoom:e.minZoom,tileSize:e.tileSize||512});t.call(this,{attributions:e.attributions,cacheSize:void 0!==e.cacheSize?e.cacheSize:128,opaque:!1,projection:i,state:e.state,tileGrid:n,tileLoadFunction:e.tileLoadFunction?e.tileLoadFunction:nc,tileUrlFunction:e.tileUrlFunction,url:e.url,urls:e.urls,wrapX:void 0===e.wrapX||e.wrapX,transition:e.transition}),this.format_=e.format?e.format:null,this.sourceTiles_={},this.overlaps_=void 0==e.overlaps||e.overlaps,this.tileClass=e.tileClass?e.tileClass:sc,this.tileGrids_={}}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.getOverlaps=function(){return this.overlaps_},e.prototype.clear=function(){this.tileCache.clear(),this.sourceTiles_={}},e.prototype.getTile=function(t,e,i,r,n){var o=Sl(t,e,i);if(this.tileCache.containsKey(o))return this.tileCache.get(o);var s=[t,e,i],a=this.getTileCoordForTileUrlFunction(s,n),h=new rc(s,null!==a?On.IDLE:On.EMPTY,this.getRevision(),this.format_,this.tileLoadFunction,a,this.tileUrlFunction,this.tileGrid,this.getTileGridForProjection(n),this.sourceTiles_,r,n,this.tileClass,this.handleTileChange.bind(this),s[0]);return this.tileCache.set(o,h),h},e.prototype.getTileGridForProjection=function(t){var e=t.getCode(),i=this.tileGrids_[e];if(!i){var r=this.tileGrid;i=this.tileGrids_[e]=Nl(t,void 0,r?r.getTileSize(r.getMinZoom()):void 0)}return i},e.prototype.getTilePixelRatio=function(t){return t},e.prototype.getTilePixelSize=function(t,e,i){var r=ho(this.getTileGridForProjection(i).getTileSize(t),this.tmpSize);return[Math.round(r[0]*e),Math.round(r[1]*e)]},e}(Ju),hc={KVP:"KVP",REST:"REST"},lc=function(t){function e(e){var i=void 0!==e.requestEncoding?e.requestEncoding:hc.KVP,r=e.tileGrid,n=e.urls;void 0===n&&void 0!==e.url&&(n=Uu(e.url)),t.call(this,{attributions:e.attributions,cacheSize:e.cacheSize,crossOrigin:e.crossOrigin,projection:e.projection,reprojectionErrorThreshold:e.reprojectionErrorThreshold,tileClass:e.tileClass,tileGrid:r,tileLoadFunction:e.tileLoadFunction,tilePixelRatio:e.tilePixelRatio,tileUrlFunction:ju,urls:n,wrapX:void 0!==e.wrapX&&e.wrapX,transition:e.transition}),this.version_=void 0!==e.version?e.version:"1.0.0",this.format_=void 0!==e.format?e.format:"image/jpeg",this.dimensions_=void 0!==e.dimensions?e.dimensions:{},this.layer_=e.layer,this.matrixSet_=e.matrixSet,this.style_=e.style,this.requestEncoding_=i,this.setKey(this.getKeyForDimensions_()),n&&n.length>0&&(this.tileUrlFunction=ku(n.map(uc.bind(this))))}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.setUrls=function(t){this.urls=t;var e=t.join("\n");this.setTileUrlFunction(ku(t.map(uc.bind(this))),e)},e.prototype.getDimensions=function(){return this.dimensions_},e.prototype.getFormat=function(){return this.format_},e.prototype.getLayer=function(){return this.layer_},e.prototype.getMatrixSet=function(){return this.matrixSet_},e.prototype.getRequestEncoding=function(){return this.requestEncoding_},e.prototype.getStyle=function(){return this.style_},e.prototype.getVersion=function(){return this.version_},e.prototype.getKeyForDimensions_=function(){var t=0,e=[];for(var i in this.dimensions_)e[t++]=i+"-"+this.dimensions_[i];return e.join("/")},e.prototype.updateDimensions=function(t){u(this.dimensions_,t),this.setKey(this.getKeyForDimensions_())},e}($u);function uc(t){var e=this.requestEncoding_,i={layer:this.layer_,style:this.style_,tilematrixset:this.matrixSet_};e==hc.KVP&&u(i,{Service:"WMTS",Request:"GetTile",Version:this.version_,Format:this.format_}),t=e==hc.KVP?_p(t,i):t.replace(/\{(\w+?)\}/g,function(t,e){return e.toLowerCase()in i?i[e.toLowerCase()]:t});var r=this.tileGrid,n=this.dimensions_;return function(i,o,s){if(i){var a={TileMatrix:r.getMatrixId(i[0]),TileCol:i[1],TileRow:-i[2]-1};u(a,n);var h=t;return h=e==hc.KVP?_p(h,a):h.replace(/\{(\w+?)\}/g,function(t,e){return a[e]})}}}var pc={DEFAULT:"default",TRUNCATED:"truncated"},cc=function(t){function e(e,i,r,n,o,s,a){t.call(this,i,r,n,o,s,a),this.zoomifyImage_=null,this.tileSize_=ho(e.getTileSize(i[0]))}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.getImage=function(){if(this.zoomifyImage_)return this.zoomifyImage_;var e=t.prototype.getImage.call(this);if(this.state==On.LOADED){var i=this.tileSize_;if(e.width==i[0]&&e.height==i[1])return this.zoomifyImage_=e,e;var r=Jn(i[0],i[1]);return r.drawImage(e,0,0),this.zoomifyImage_=r.canvas,r.canvas}return e},e}(xl),dc=function(t){function e(e){var i=e||{},r=i.size,n=void 0!==i.tierSizeCalculation?i.tierSizeCalculation:pc.DEFAULT,o=r[0],s=r[1],a=i.extent||[0,-r[1],r[0],0],h=[],l=i.tileSize||An,u=l;switch(n){case pc.DEFAULT:for(;o>u||s>u;)h.push([Math.ceil(o/u),Math.ceil(s/u)]),u+=u;break;case pc.TRUNCATED:for(var p=o,c=s;p>u||c>u;)h.push([Math.ceil(p/u),Math.ceil(c/u)]),p>>=1,c>>=1;break;default:Y(!1,53)}h.push([1,1]),h.reverse();for(var d=[1],f=[0],_=1,g=h.length;_0)break}this.source_&&(this.source_.clear(),this.source_.addFeatures(s)),this.dispatchEvent(new Tc(Sc,t,s,n))},e.prototype.registerListeners_=function(){var t=this.getMap();if(t){var e=this.target?this.target:t.getViewport();this.dropListenKeys_=[v(e,M.DROP,Cc,this),v(e,M.DRAGENTER,Rc,this),v(e,M.DRAGOVER,Rc,this),v(e,M.DROP,Rc,this)]}},e.prototype.setActive=function(e){t.prototype.setActive.call(this,e),e?this.registerListeners_():this.unregisterListeners_()},e.prototype.setMap=function(e){this.unregisterListeners_(),t.prototype.setMap.call(this,e),this.getActive()&&this.registerListeners_()},e.prototype.tryReadFeatures_=function(t,e,i){try{return t.readFeatures(e,i)}catch(t){return null}},e.prototype.unregisterListeners_=function(){this.dropListenKeys_&&(this.dropListenKeys_.forEach(E),this.dropListenKeys_=null)},e}(Fo),Ic=function(t){function e(e){var i=e||{};t.call(this,i),this.condition_=i.condition?i.condition:zo,this.lastAngle_=void 0,this.lastMagnitude_=void 0,this.lastScaleDelta_=0,this.duration_=void 0!==i.duration?i.duration:400}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.handleDragEvent=function(t){if(Ko(t)){var e=t.map,i=e.getSize(),r=t.pixel,n=r[0]-i[0]/2,o=i[1]/2-r[1],s=Math.atan2(o,n),a=Math.sqrt(n*n+o*o),h=e.getView();if(h.getConstraints().rotation!==Gn&&void 0!==this.lastAngle_){var l=s-this.lastAngle_;Oo(h,h.getRotation()-l)}if(this.lastAngle_=s,void 0!==this.lastMagnitude_)Mo(h,this.lastMagnitude_*(h.getResolution()/a));void 0!==this.lastMagnitude_&&(this.lastScaleDelta_=this.lastMagnitude_/a),this.lastMagnitude_=a}},e.prototype.handleUpEvent=function(t){if(!Ko(t))return!0;var e=t.map.getView();e.setHint(jn,-1);var i=this.lastScaleDelta_-1;return Lo(e,e.getRotation()),Po(e,e.getResolution(),void 0,this.duration_,i),this.lastScaleDelta_=0,!1},e.prototype.handleDownEvent=function(t){return!!Ko(t)&&(!!this.condition_(t)&&(t.map.getView().setHint(jn,1),this.lastAngle_=void 0,this.lastMagnitude_=void 0,!0))},e}(qo),Lc=function(t){function e(e,i,r){if(t.call(this),void 0!==r&&void 0===i)this.setFlatCoordinates(r,e);else{var n=i||0;this.setCenterAndRadius(e,n,r)}}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.clone=function(){return new e(this.flatCoordinates.slice(),void 0,this.layout)},e.prototype.closestPointXY=function(t,e,i,r){var n=this.flatCoordinates,o=t-n[0],s=e-n[1],a=o*o+s*s;if(a=e[0]||(t[1]<=e[1]&&t[3]>=e[1]||mt(t,this.intersectsCoordinate,this))}return!1},e.prototype.setCenter=function(t){var e=this.stride,i=this.flatCoordinates[e]-this.flatCoordinates[0],r=t.slice();r[e]=r[0]+i;for(var n=1;n=this.dragVertexDelay_?(this.downPx_=e.pixel,this.shouldHandle_=!this.freehand_,i=!0):this.lastDragTime_=void 0,this.shouldHandle_&&void 0!==this.downTimeout_&&(clearTimeout(this.downTimeout_),this.downTimeout_=void 0));return this.freehand_&&e.type===Ar.POINTERDRAG&&null!==this.sketchFeature_?(this.addToDrawing_(e),r=!1):this.freehand_&&e.type===Ar.POINTERDOWN?r=!1:i?(r=e.type===Ar.POINTERMOVE)&&this.freehand_?r=this.handlePointerMove_(e):(e.pointerEvent.pointerType==Ur||e.type===Ar.POINTERDRAG&&void 0===this.downTimeout_)&&this.handlePointerMove_(e):e.type===Ar.DBLCLICK&&(r=!1),t.prototype.handleEvent.call(this,e)&&r},e.prototype.handleDownEvent=function(t){return this.shouldHandle_=!this.freehand_,this.freehand_?(this.downPx_=t.pixel,this.finishCoordinate_||this.startDrawing_(t),!0):!!this.condition_(t)&&(this.lastDragTime_=Date.now(),this.downTimeout_=setTimeout(function(){this.handlePointerMove_(new Nr(Ar.POINTERMOVE,t.map,t.pointerEvent,!1,t.frameState))}.bind(this),this.dragVertexDelay_),this.downPx_=t.pixel,!0)},e.prototype.handleUpEvent=function(t){var e=!0;this.downTimeout_&&(clearTimeout(this.downTimeout_),this.downTimeout_=void 0),this.handlePointerMove_(t);var i=this.mode_===Ac.CIRCLE;return this.shouldHandle_?(this.finishCoordinate_?this.freehand_||i?this.finishDrawing():this.atFinish_(t)?this.finishCondition_(t)&&this.finishDrawing():this.addToDrawing_(t):(this.startDrawing_(t),this.mode_===Ac.POINT&&this.finishDrawing()),e=!1):this.freehand_&&(this.finishCoordinate_=null,this.abortDrawing_()),!e&&this.stopClick_&&t.stopPropagation(),e},e.prototype.handlePointerMove_=function(t){if(this.downPx_&&(!this.freehand_&&this.shouldHandle_||this.freehand_&&!this.shouldHandle_)){var e=this.downPx_,i=t.pixel,r=e[0]-i[0],n=e[1]-i[1],o=r*r+n*n;if(this.shouldHandle_=this.freehand_?o>this.squaredClickTolerance_:o<=this.squaredClickTolerance_,!this.shouldHandle_)return!0}return this.finishCoordinate_?this.modifyDrawing_(t):this.createOrUpdateSketchPoint_(t),!0},e.prototype.atFinish_=function(t){var e=!1;if(this.sketchFeature_){var i=!1,r=[this.finishCoordinate_];if(this.mode_===Ac.LINE_STRING)i=this.sketchCoords_.length>this.minPoints_;else if(this.mode_===Ac.POLYGON){var n=this.sketchCoords_;i=n[0].length>this.minPoints_,r=[n[0][0],n[0][n[0].length-2]]}if(i)for(var o=t.map,s=0,a=r.length;s=this.maxPoints_&&(this.freehand_?i.pop():e=!0),i.push(r.slice()),this.geometryFunction_(i,n)):this.mode_===Ac.POLYGON&&((i=this.sketchCoords_[0]).length>=this.maxPoints_&&(this.freehand_?i.pop():e=!0),i.push(r.slice()),e&&(this.finishCoordinate_=i[0]),this.geometryFunction_(this.sketchCoords_,n)),this.updateSketchFeatures_(),e&&this.finishDrawing()},e.prototype.removeLastPoint=function(){if(this.sketchFeature_){var t,e=this.sketchFeature_.getGeometry();this.mode_===Ac.LINE_STRING?((t=this.sketchCoords_).splice(-2,1),this.geometryFunction_(t,e),t.length>=2&&(this.finishCoordinate_=t[t.length-2].slice())):this.mode_===Ac.POLYGON&&((t=this.sketchCoords_[0]).splice(-2,1),this.sketchLine_.getGeometry().setCoordinates(t),this.geometryFunction_(this.sketchCoords_,e)),0===t.length&&(this.finishCoordinate_=null),this.updateSketchFeatures_()}},e.prototype.finishDrawing=function(){var t=this.abortDrawing_();if(t){var e=this.sketchCoords_,i=t.getGeometry();this.mode_===Ac.LINE_STRING?(e.pop(),this.geometryFunction_(e,i)):this.mode_===Ac.POLYGON&&(e[0].pop(),this.geometryFunction_(e,i),e=i.getCoordinates()),this.type_===Nt.MULTI_POINT?t.setGeometry(new bc([e])):this.type_===Nt.MULTI_LINE_STRING?t.setGeometry(new Pc([e])):this.type_===Nt.MULTI_POLYGON&&t.setGeometry(new Fc([e])),this.dispatchEvent(new Dc(Gc,t)),this.features_&&this.features_.push(t),this.source_&&this.source_.addFeature(t)}},e.prototype.abortDrawing_=function(){this.finishCoordinate_=null;var t=this.sketchFeature_;return t&&(this.sketchFeature_=null,this.sketchPoint_=null,this.sketchLine_=null,this.overlay_.getSource().clear(!0)),t},e.prototype.extend=function(t){var e=t.getGeometry();this.sketchFeature_=t,this.sketchCoords_=e.getCoordinates();var i=this.sketchCoords_[this.sketchCoords_.length-1];this.finishCoordinate_=i.slice(),this.sketchCoords_.push(i.slice()),this.updateSketchFeatures_(),this.dispatchEvent(new Dc(Nc,this.sketchFeature_))},e.prototype.updateSketchFeatures_=function(){var t=[];this.sketchFeature_&&t.push(this.sketchFeature_),this.sketchLine_&&t.push(this.sketchLine_),this.sketchPoint_&&t.push(this.sketchPoint_);var e=this.overlay_.getSource();e.clear(!0),e.addFeatures(t)},e.prototype.updateState_=function(){var t=this.getMap(),e=this.getActive();t&&e||this.abortDrawing_(),this.overlay_.setMap(e?t:null)},e}(qo),jc={EXTENTCHANGED:"extentchanged"},Uc=function(t){function e(e){t.call(this,jc.EXTENTCHANGED),this.extent=e}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e}(P);function Yc(t){return function(e){return tt([t,e])}}function Bc(t,e){return t[0]==e[0]?function(i){return tt([t,[i[0],e[1]]])}:t[1]==e[1]?function(i){return tt([t,[e[0],i[1]]])}:null}var Vc=function(t){function e(e){var i=e||{};t.call(this,i),this.extent_=null,this.pointerHandler_=null,this.pixelTolerance_=void 0!==i.pixelTolerance?i.pixelTolerance:10,this.snappedToVertex_=!1,this.extentFeature_=null,this.vertexFeature_=null,e||(e={}),this.extentOverlay_=new gc({source:new op({useSpatialIndex:!1,wrapX:!!e.wrapX}),style:e.boxStyle?e.boxStyle:function(){var t=Fu();return function(e,i){return t[Nt.POLYGON]}}(),updateWhileAnimating:!0,updateWhileInteracting:!0}),this.vertexOverlay_=new gc({source:new op({useSpatialIndex:!1,wrapX:!!e.wrapX}),style:e.pointerStyle?e.pointerStyle:function(){var t=Fu();return function(e,i){return t[Nt.POINT]}}(),updateWhileAnimating:!0,updateWhileInteracting:!0}),e.extent&&this.setExtent(e.extent)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.snapToVertex_=function(t,e){var i=e.getCoordinateFromPixel(t),r=this.getExtent();if(r){var n=function(t){return[[[t[0],t[1]],[t[0],t[3]]],[[t[0],t[3]],[t[2],t[3]]],[[t[2],t[3]],[t[2],t[1]]],[[t[2],t[1]],[t[0],t[1]]]]}(r);n.sort(function(t,e){return rr(i,t)-rr(i,e)});var o=n[0],s=Zi(i,o),a=e.getPixelFromCoordinate(s);if(ir(t,a)<=this.pixelTolerance_){var h=e.getPixelFromCoordinate(o[0]),l=e.getPixelFromCoordinate(o[1]),u=er(a,h),p=er(a,l),c=Math.sqrt(Math.min(u,p));return this.snappedToVertex_=c<=this.pixelTolerance_,this.snappedToVertex_&&(s=u>p?o[1]:o[0]),s}}return null},e.prototype.handlePointerMove_=function(t){var e=t.pixel,i=t.map,r=this.snapToVertex_(e,i);r||(r=i.getCoordinateFromPixel(e)),this.createOrUpdatePointerFeature_(r)},e.prototype.createOrUpdateExtentFeature_=function(t){var e=this.extentFeature_;return e?t?e.setGeometry(Oi(t)):e.setGeometry(void 0):(e=new B(t?Oi(t):{}),this.extentFeature_=e,this.extentOverlay_.getSource().addFeature(e)),e},e.prototype.createOrUpdatePointerFeature_=function(t){var e=this.vertexFeature_;e?e.getGeometry().setCoordinates(t):(e=new B(new ci(t)),this.vertexFeature_=e,this.vertexOverlay_.getSource().addFeature(e));return e},e.prototype.handleEvent=function(e){return!e.pointerEvent||(e.type!=Ar.POINTERMOVE||this.handlingDownUpSequence||this.handlePointerMove_(e),t.prototype.handleEvent.call(this,e),!1)},e.prototype.handleDownEvent=function(t){var e=t.pixel,i=t.map,r=this.getExtent(),n=this.snapToVertex_(e,i),o=function(t){var e=null,i=null;return t[0]==r[0]?e=r[2]:t[0]==r[2]&&(e=r[0]),t[1]==r[1]?i=r[3]:t[1]==r[3]&&(i=r[1]),null!==e&&null!==i?[e,i]:null};if(n&&r){var s=n[0]==r[0]||n[0]==r[2]?n[0]:null,a=n[1]==r[1]||n[1]==r[3]?n[1]:null;null!==s&&null!==a?this.pointerHandler_=Yc(o(n)):null!==s?this.pointerHandler_=Bc(o([s,r[1]]),o([s,r[3]])):null!==a&&(this.pointerHandler_=Bc(o([r[0],a]),o([r[2],a])))}else n=i.getCoordinateFromPixel(e),this.setExtent([n[0],n[1],n[0],n[1]]),this.pointerHandler_=Yc(n);return!0},e.prototype.handleDragEvent=function(t){if(this.pointerHandler_){var e=t.coordinate;this.setExtent(this.pointerHandler_(e)),this.createOrUpdatePointerFeature_(e)}return!0},e.prototype.handleUpEvent=function(t){this.pointerHandler_=null;var e=this.getExtent();return e&&0!==xt(e)||this.setExtent(null),!1},e.prototype.setMap=function(e){this.extentOverlay_.setMap(e),this.vertexOverlay_.setMap(e),t.prototype.setMap.call(this,e)},e.prototype.getExtent=function(){return this.extent_},e.prototype.setExtent=function(t){this.extent_=t||null,this.createOrUpdateExtentFeature_(t),this.dispatchEvent(new Uc(this.extent_))},e}(qo),Xc=1,zc="modifystart",Wc="modifyend",Kc=function(t){function e(e,i,r){t.call(this,e),this.features=i,this.mapBrowserEvent=r}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e}(P);function Hc(t,e){return t.index-e.index}function Zc(t,e){var i=e.geometry;if(i.getType()===Nt.CIRCLE){var r=i;if(e.index===Xc){var n=er(r.getCenter(),t),o=Math.sqrt(n)-r.getRadius();return o*o}}return rr(t,e.segment)}function qc(t,e){var i=e.geometry;return i.getType()===Nt.CIRCLE&&e.index===Xc?i.getClosestPoint(t):Zi(t,e.segment)}var Jc=function(t){function e(e){var i;if(t.call(this,e),this.condition_=e.condition?e.condition:Ho,this.defaultDeleteCondition_=function(t){return Go(t)&&Vo(t)},this.deleteCondition_=e.deleteCondition?e.deleteCondition:this.defaultDeleteCondition_,this.insertVertexCondition_=e.insertVertexCondition?e.insertVertexCondition:jo,this.vertexFeature_=null,this.vertexSegments_=null,this.lastPixel_=[0,0],this.ignoreNextSingleClick_=!1,this.modified_=!1,this.rBush_=new tl,this.pixelTolerance_=void 0!==e.pixelTolerance?e.pixelTolerance:10,this.snappedToVertex_=!1,this.changingFeature_=!1,this.dragSegments_=[],this.overlay_=new gc({source:new op({useSpatialIndex:!1,wrapX:!!e.wrapX}),style:e.style?e.style:function(){var t=Fu();return function(e,i){return t[Nt.POINT]}}(),updateWhileAnimating:!0,updateWhileInteracting:!0}),this.SEGMENT_WRITERS_={Point:this.writePointGeometry_,LineString:this.writeLineStringGeometry_,LinearRing:this.writeLineStringGeometry_,Polygon:this.writePolygonGeometry_,MultiPoint:this.writeMultiPointGeometry_,MultiLineString:this.writeMultiLineStringGeometry_,MultiPolygon:this.writeMultiPolygonGeometry_,Circle:this.writeCircleGeometry_,GeometryCollection:this.writeGeometryCollectionGeometry_},this.source_=null,e.source?(this.source_=e.source,i=new U(this.source_.getFeatures()),v(this.source_,rp.ADDFEATURE,this.handleSourceAdd_,this),v(this.source_,rp.REMOVEFEATURE,this.handleSourceRemove_,this)):i=e.features,!i)throw new Error("The modify interaction requires features or a source");this.features_=i,this.features_.forEach(this.addFeature_.bind(this)),v(this.features_,h.ADD,this.handleFeatureAdd_,this),v(this.features_,h.REMOVE,this.handleFeatureRemove_,this),this.lastPointerEvent_=null}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.addFeature_=function(t){var e=t.getGeometry();e&&e.getType()in this.SEGMENT_WRITERS_&&this.SEGMENT_WRITERS_[e.getType()].call(this,t,e);var i=this.getMap();i&&i.isRendered()&&this.getActive()&&this.handlePointerAtPixel_(this.lastPixel_,i),v(t,M.CHANGE,this.handleFeatureChange_,this)},e.prototype.willModifyFeatures_=function(t){this.modified_||(this.modified_=!0,this.dispatchEvent(new Kc(zc,this.features_,t)))},e.prototype.removeFeature_=function(t){this.removeFeatureSegmentData_(t),this.vertexFeature_&&0===this.features_.getLength()&&(this.overlay_.getSource().removeFeature(this.vertexFeature_),this.vertexFeature_=null),x(t,M.CHANGE,this.handleFeatureChange_,this)},e.prototype.removeFeatureSegmentData_=function(t){var e=this.rBush_,i=[];e.forEach(function(e){t===e.feature&&i.push(e)});for(var r=i.length-1;r>=0;--r)e.remove(i[r])},e.prototype.setActive=function(e){this.vertexFeature_&&!e&&(this.overlay_.getSource().removeFeature(this.vertexFeature_),this.vertexFeature_=null),t.prototype.setActive.call(this,e)},e.prototype.setMap=function(e){this.overlay_.setMap(e),t.prototype.setMap.call(this,e)},e.prototype.getOverlay=function(){return this.overlay_},e.prototype.handleSourceAdd_=function(t){t.feature&&this.features_.push(t.feature)},e.prototype.handleSourceRemove_=function(t){t.feature&&this.features_.remove(t.feature)},e.prototype.handleFeatureAdd_=function(t){this.addFeature_(t.element)},e.prototype.handleFeatureChange_=function(t){if(!this.changingFeature_){var e=t.target;this.removeFeature_(e),this.addFeature_(e)}},e.prototype.handleFeatureRemove_=function(t){var e=t.element;this.removeFeature_(e)},e.prototype.writePointGeometry_=function(t,e){var i=e.getCoordinates(),r={feature:t,geometry:e,segment:[i,i]};this.rBush_.insert(e.getExtent(),r)},e.prototype.writeMultiPointGeometry_=function(t,e){for(var i=e.getCoordinates(),r=0,n=i.length;r=0;--_)this.insertVertex_.apply(this,r[_])}return!!this.vertexFeature_},e.prototype.handleUpEvent=function(t){for(var e=this.dragSegments_.length-1;e>=0;--e){var i=this.dragSegments_[e][0],r=i.geometry;if(r.getType()===Nt.CIRCLE){var n=r.getCenter(),o=i.featureSegments[0],s=i.featureSegments[1];o.segment[0]=o.segment[1]=n,s.segment[0]=s.segment[1]=n,this.rBush_.update(pt(n),o),this.rBush_.update(r.getExtent(),s)}else this.rBush_.update(tt(i.segment),i)}return this.modified_&&(this.dispatchEvent(new Kc(Wc,this.features_,t)),this.modified_=!1),!1},e.prototype.handlePointerMove_=function(t){this.lastPixel_=t.pixel,this.handlePointerAtPixel_(t.pixel,t.map)},e.prototype.handlePointerAtPixel_=function(t,e){var i=e.getCoordinateFromPixel(t),r=et(pt(i),e.getView().getResolution()*this.pixelTolerance_),n=this.rBush_.getInExtent(r);if(n.length>0){n.sort(function(t,e){return Zc(i,t)-Zc(i,e)});var s=n[0],a=s.segment,h=qc(i,s),l=e.getPixelFromCoordinate(h),u=ir(t,l);if(u<=this.pixelTolerance_){var p={};if(s.geometry.getType()===Nt.CIRCLE&&s.index===Xc)this.snappedToVertex_=!0,this.createOrUpdateVertexFeature_(h);else{var c=e.getPixelFromCoordinate(a[0]),d=e.getPixelFromCoordinate(a[1]),f=er(l,c),_=er(l,d);u=Math.sqrt(Math.min(f,_)),this.snappedToVertex_=u<=this.pixelTolerance_,this.snappedToVertex_&&(h=f>_?a[1]:a[0]),this.createOrUpdateVertexFeature_(h);for(var g=1,y=n.length;g=0;--n)p=o((u=(i=c[n])[0]).feature),u.depth&&(p+="-"+u.depth.join("-")),p in d||(d[p]={}),0===i[1]?(d[p].right=u,d[p].index=u.index):1==i[1]&&(d[p].left=u,d[p].index=u.index+1);for(p in d){switch(l=d[p].right,a=d[p].left,h=(s=d[p].index)-1,u=void 0!==a?a:l,h<0&&(h=0),t=e=(r=u.geometry).getCoordinates(),f=!1,r.getType()){case Nt.MULTI_LINE_STRING:e[u.depth[0]].length>2&&(e[u.depth[0]].splice(s,1),f=!0);break;case Nt.LINE_STRING:e.length>2&&(e.splice(s,1),f=!0);break;case Nt.MULTI_POLYGON:t=t[u.depth[1]];case Nt.POLYGON:(t=t[u.depth[0]]).length>4&&(s==t.length-1&&(s=0),t.splice(s,1),f=!0,0===s&&(t.pop(),t.push(t[0]),h=t.length-1))}if(f){this.setGeometryCoordinates_(r,e);var _=[];if(void 0!==a&&(this.rBush_.remove(a),_.push(a.segment[0])),void 0!==l&&(this.rBush_.remove(l),_.push(l.segment[1])),void 0!==a&&void 0!==l){var g={depth:u.depth,feature:u.feature,geometry:u.geometry,index:h,segment:_};this.rBush_.insert(tt(g.segment),g)}this.updateSegmentIndices_(r,s,u.depth,-1),this.vertexFeature_&&(this.overlay_.getSource().removeFeature(this.vertexFeature_),this.vertexFeature_=null),c.length=0}}return f},e.prototype.setGeometryCoordinates_=function(t,e){this.changingFeature_=!0,t.setCoordinates(e),this.changingFeature_=!1},e.prototype.updateSegmentIndices_=function(t,e,i,r){this.rBush_.forEachInExtent(t.getExtent(),function(n){n.geometry===t&&(void 0===i||void 0===n.depth||Z(n.depth,i))&&n.index>e&&(n.index+=r)})},e}(qo),Qc={SELECT:"select"},$c=function(t){function e(e,i,r,n){t.call(this,e),this.selected=i,this.deselected=r,this.mapBrowserEvent=n}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e}(P);function td(t){if(!this.condition_(t))return!0;var e=this.addCondition_(t),i=this.removeCondition_(t),r=this.toggleCondition_(t),n=!e&&!i&&!r,o=t.map,s=this.getFeatures(),a=[],h=[];if(n){p(this.featureLayerAssociation_),o.forEachFeatureAtPixel(t.pixel,function(t,e){if(this.filter_(t,e))return h.push(t),this.addFeatureLayerAssociation_(t,e),!this.multi_}.bind(this),{layerFilter:this.layerFilter_,hitTolerance:this.hitTolerance_});for(var l=s.getLength()-1;l>=0;--l){var u=s.item(l),c=h.indexOf(u);c>-1?h.splice(c,1):(s.remove(u),a.push(u))}0!==h.length&&s.extend(h)}else{o.forEachFeatureAtPixel(t.pixel,function(t,n){if(this.filter_(t,n))return!e&&!r||X(s.getArray(),t)?(i||r)&&X(s.getArray(),t)&&(a.push(t),this.removeFeatureLayerAssociation_(t)):(h.push(t),this.addFeatureLayerAssociation_(t,n)),!this.multi_}.bind(this),{layerFilter:this.layerFilter_,hitTolerance:this.hitTolerance_});for(var d=a.length-1;d>=0;--d)s.remove(a[d]);s.extend(h)}return(h.length>0||a.length>0)&&this.dispatchEvent(new $c(Qc.SELECT,h,a,t)),Bo(t)}var ed=function(t){function e(e){t.call(this,{handleEvent:td});var i=e||{};this.condition_=i.condition?i.condition:Vo,this.addCondition_=i.addCondition?i.addCondition:Yo,this.removeCondition_=i.removeCondition?i.removeCondition:Yo,this.toggleCondition_=i.toggleCondition?i.toggleCondition:zo,this.multi_=!!i.multi&&i.multi,this.filter_=i.filter?i.filter:R,this.hitTolerance_=i.hitTolerance?i.hitTolerance:0;var r,n=new gc({source:new op({useSpatialIndex:!1,features:i.features,wrapX:i.wrapX}),style:i.style?i.style:function(){var t=Fu();return K(t[Nt.POLYGON],t[Nt.LINE_STRING]),K(t[Nt.GEOMETRY_COLLECTION],t[Nt.LINE_STRING]),function(e,i){return e.getGeometry()?t[e.getGeometry().getType()]:null}}(),updateWhileAnimating:!0,updateWhileInteracting:!0});if(this.featureOverlay_=n,i.layers)if("function"==typeof i.layers)r=i.layers;else{var o=i.layers;r=function(t){return X(o,t)}}else r=R;this.layerFilter_=r,this.featureLayerAssociation_={};var s=this.getFeatures();v(s,h.ADD,this.addFeature_,this),v(s,h.REMOVE,this.removeFeature_,this)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.addFeatureLayerAssociation_=function(t,e){this.featureLayerAssociation_[o(t)]=e},e.prototype.getFeatures=function(){return this.featureOverlay_.getSource().getFeaturesCollection()},e.prototype.getHitTolerance=function(){return this.hitTolerance_},e.prototype.getLayer=function(t){return this.featureLayerAssociation_[o(t)]},e.prototype.getOverlay=function(){return this.featureOverlay_},e.prototype.setHitTolerance=function(t){this.hitTolerance_=t},e.prototype.setMap=function(e){var i=this.getMap(),r=this.getFeatures();i&&r.forEach(i.unskipFeature.bind(i)),t.prototype.setMap.call(this,e),this.featureOverlay_.setMap(e),e&&r.forEach(e.skipFeature.bind(e))},e.prototype.addFeature_=function(t){var e=this.getMap();e&&e.skipFeature(t.element)},e.prototype.removeFeature_=function(t){var e=this.getMap();e&&e.unskipFeature(t.element)},e.prototype.removeFeatureLayerAssociation_=function(t){delete this.featureLayerAssociation_[o(t)]},e}(Fo);function id(t){return t.feature?t.feature:t.element?t.element:void 0}var rd=function(t){function e(e){var i=e||{},r=i;r.handleDownEvent||(r.handleDownEvent=R),r.stopDown||(r.stopDown=w),t.call(this,r),this.source_=i.source?i.source:null,this.vertex_=void 0===i.vertex||i.vertex,this.edge_=void 0===i.edge||i.edge,this.features_=i.features?i.features:null,this.featuresListenerKeys_=[],this.featureChangeListenerKeys_={},this.indexedFeaturesExtents_={},this.pendingFeatures_={},this.pixelCoordinate_=null,this.pixelTolerance_=void 0!==i.pixelTolerance?i.pixelTolerance:10,this.sortByDistance_=function(t,e){var i=rr(this.pixelCoordinate_,t.segment),r=rr(this.pixelCoordinate_,e.segment);return i-r}.bind(this),this.rBush_=new tl,this.SEGMENT_WRITERS_={Point:this.writePointGeometry_,LineString:this.writeLineStringGeometry_,LinearRing:this.writeLineStringGeometry_,Polygon:this.writePolygonGeometry_,MultiPoint:this.writeMultiPointGeometry_,MultiLineString:this.writeMultiLineStringGeometry_,MultiPolygon:this.writeMultiPolygonGeometry_,GeometryCollection:this.writeGeometryCollectionGeometry_,Circle:this.writeCircleGeometry_}}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.addFeature=function(t,e){var i=void 0===e||e,r=o(t),n=t.getGeometry();if(n){var s=this.SEGMENT_WRITERS_[n.getType()];s&&(this.indexedFeaturesExtents_[r]=n.getExtent([1/0,1/0,-1/0,-1/0]),s.call(this,t,n))}i&&(this.featureChangeListenerKeys_[r]=v(t,M.CHANGE,this.handleFeatureChange_,this))},e.prototype.forEachFeatureAdd_=function(t){this.addFeature(t)},e.prototype.forEachFeatureRemove_=function(t){this.removeFeature(t)},e.prototype.getFeatures_=function(){var t;return this.features_?t=this.features_:this.source_&&(t=this.source_.getFeatures()),t},e.prototype.handleEvent=function(e){var i=this.snapTo(e.pixel,e.coordinate,e.map);return i.snapped&&(e.coordinate=i.vertex.slice(0,2),e.pixel=i.vertexPixel),t.prototype.handleEvent.call(this,e)},e.prototype.handleFeatureAdd_=function(t){var e=id(t);this.addFeature(e)},e.prototype.handleFeatureRemove_=function(t){var e=id(t);this.removeFeature(e)},e.prototype.handleFeatureChange_=function(t){var e=t.target;if(this.handlingDownUpSequence){var i=o(e);i in this.pendingFeatures_||(this.pendingFeatures_[i]=e)}else this.updateFeature_(e)},e.prototype.handleUpEvent=function(t){var e=c(this.pendingFeatures_);return e.length&&(e.forEach(this.updateFeature_.bind(this)),this.pendingFeatures_={}),!1},e.prototype.removeFeature=function(t,e){var i=void 0===e||e,r=o(t),n=this.indexedFeaturesExtents_[r];if(n){var s=this.rBush_,a=[];s.forEachInExtent(n,function(e){t===e.feature&&a.push(e)});for(var h=a.length-1;h>=0;--h)s.remove(a[h])}i&&(E(this.featureChangeListenerKeys_[r]),delete this.featureChangeListenerKeys_[r])},e.prototype.setMap=function(e){var i=this.getMap(),r=this.featuresListenerKeys_,n=this.getFeatures_();i&&(r.forEach(E),r.length=0,n.forEach(this.forEachFeatureRemove_.bind(this))),t.prototype.setMap.call(this,e),e&&(this.features_?r.push(v(this.features_,h.ADD,this.handleFeatureAdd_,this),v(this.features_,h.REMOVE,this.handleFeatureRemove_,this)):this.source_&&r.push(v(this.source_,rp.ADDFEATURE,this.handleFeatureAdd_,this),v(this.source_,rp.REMOVEFEATURE,this.handleFeatureRemove_,this)),n.forEach(this.forEachFeatureAdd_.bind(this)))},e.prototype.snapTo=function(t,e,i){var r=tt([i.getCoordinateFromPixel([t[0]-this.pixelTolerance_,t[1]+this.pixelTolerance_]),i.getCoordinateFromPixel([t[0]+this.pixelTolerance_,t[1]-this.pixelTolerance_])]),n=this.rBush_.getInExtent(r);this.vertex_&&!this.edge_&&(n=n.filter(function(t){return t.feature.getGeometry().getType()!==Nt.CIRCLE}));var o,s,a,h,l=!1,u=null,p=null;if(n.length>0){this.pixelCoordinate_=e,n.sort(this.sortByDistance_);var c=n[0].segment,d=n[0].feature.getGeometry().getType()===Nt.CIRCLE;this.vertex_&&!this.edge_?(o=i.getPixelFromCoordinate(c[0]),s=i.getPixelFromCoordinate(c[1]),a=er(t,o),h=er(t,s),Math.sqrt(Math.min(a,h))<=this.pixelTolerance_&&(l=!0,u=a>h?c[1]:c[0],p=i.getPixelFromCoordinate(u))):this.edge_&&(u=d?function(t,e){var i=e.getRadius(),r=e.getCenter(),n=r[0],o=r[1],s=t[0]-n,a=t[1]-o;0===s&&0===a&&(s=1);var h=Math.sqrt(s*s+a*a);return[n+i*s/h,o+i*a/h]}(e,n[0].feature.getGeometry()):Zi(e,c),ir(t,p=i.getPixelFromCoordinate(u))<=this.pixelTolerance_&&(l=!0,this.vertex_&&!d&&(o=i.getPixelFromCoordinate(c[0]),s=i.getPixelFromCoordinate(c[1]),a=er(p,o),h=er(p,s),Math.sqrt(Math.min(a,h))<=this.pixelTolerance_&&(u=a>h?c[1]:c[0],p=i.getPixelFromCoordinate(u))))),l&&(p=[Math.round(p[0]),Math.round(p[1])])}return{snapped:l,vertex:u,vertexPixel:p}},e.prototype.updateFeature_=function(t){this.removeFeature(t,!1),this.addFeature(t,!1)},e.prototype.writeCircleGeometry_=function(t,e){for(var i=Pi(e).getCoordinates()[0],r=0,n=i.length-1;r=0;i--){var u=o[i][0],p=ot(new pi(u).getExtent(),new pi(h).getExtent());if(p){o[i].push(h),l=!0;break}}l||o.push([h.reverse()])}return o}(r.rings,n);1===o.length?(i=Nt.POLYGON,t.rings=o[0]):(i=Nt.MULTI_POLYGON,t.rings=o)}return dd((0,gd[i])(t),!1,e)}function md(t){var e=At.XY;return!0===t.hasZ&&!0===t.hasM?e=At.XYZM:!0===t.hasZ?e=At.XYZ:!0===t.hasM&&(e=At.XYM),e}function xd(t){var e=t.getLayout();return{hasZ:e===At.XYZ||e===At.XYZM,hasM:e===At.XYM||e===At.XYZM}}function Ed(t,e){return(0,yd[t.getType()])(dd(t,!0,e),e)}yd[Nt.POINT]=function(t,e){var i,r=t.getCoordinates(),n=t.getLayout();n===At.XYZ?i={x:r[0],y:r[1],z:r[2]}:n===At.XYM?i={x:r[0],y:r[1],m:r[2]}:n===At.XYZM?i={x:r[0],y:r[1],z:r[2],m:r[3]}:n===At.XY?i={x:r[0],y:r[1]}:Y(!1,34);return i},yd[Nt.LINE_STRING]=function(t,e){var i=t,r=xd(i);return{hasZ:r.hasZ,hasM:r.hasM,paths:[i.getCoordinates()]}},yd[Nt.POLYGON]=function(t,e){var i=t,r=xd(i);return{hasZ:r.hasZ,hasM:r.hasM,rings:i.getCoordinates(!1)}},yd[Nt.MULTI_POINT]=function(t,e){var i=t,r=xd(i);return{hasZ:r.hasZ,hasM:r.hasM,points:i.getCoordinates()}},yd[Nt.MULTI_LINE_STRING]=function(t,e){var i=t,r=xd(i);return{hasZ:r.hasZ,hasM:r.hasM,paths:i.getCoordinates()}},yd[Nt.MULTI_POLYGON]=function(t,e){for(var i=xd(t),r=t.getCoordinates(!1),n=[],o=0;o=0;s--)n.push(r[o][s]);return{hasZ:i.hasZ,hasM:i.hasM,rings:n}};var Sd=function(t){function e(e){var i=e||{};t.call(this),this.geometryName_=i.geometryName}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.readFeatureFromObject=function(t,e){var i=t,r=vd(i.geometry,e),n=new B;return this.geometryName_&&n.setGeometryName(this.geometryName_),n.setGeometry(r),e&&e.idField&&i.attributes[e.idField]&&n.setId(i.attributes[e.idField]),i.attributes&&n.setProperties(i.attributes),n},e.prototype.readFeaturesFromObject=function(t,e){var i=e||{};if(t.features){var r=[],n=t.features;i.idField=t.objectIdFieldName;for(var o=0,s=n.length;o0?i[0]:null},e.prototype.readFeatureFromNode=function(t,e){return null},e.prototype.readFeatures=function(t,e){if(t){if("string"==typeof t){var i=ru(t);return this.readFeaturesFromDocument(i,e)}return iu(t)?this.readFeaturesFromDocument(t,e):this.readFeaturesFromNode(t,e)}return[]},e.prototype.readFeaturesFromDocument=function(t,e){for(var i=[],r=t.firstChild;r;r=r.nextSibling)r.nodeType==Node.ELEMENT_NODE&&K(i,this.readFeaturesFromNode(r,e));return i},e.prototype.readFeaturesFromNode=function(t,e){return r()},e.prototype.readGeometry=function(t,e){if(t){if("string"==typeof t){var i=ru(t);return this.readGeometryFromDocument(i,e)}return iu(t)?this.readGeometryFromDocument(t,e):this.readGeometryFromNode(t,e)}return null},e.prototype.readGeometryFromDocument=function(t,e){return null},e.prototype.readGeometryFromNode=function(t,e){return null},e.prototype.readProjection=function(t){if(t){if("string"==typeof t){var e=ru(t);return this.readProjectionFromDocument(e)}return iu(t)?this.readProjectionFromDocument(t):this.readProjectionFromNode(t)}return null},e.prototype.readProjectionFromDocument=function(t){return this.dataProjection},e.prototype.readProjectionFromNode=function(t){return this.dataProjection},e.prototype.writeFeature=function(t,e){var i=this.writeFeatureNode(t,e);return this.xmlSerializer_.serializeToString(i)},e.prototype.writeFeatureNode=function(t,e){return null},e.prototype.writeFeatures=function(t,e){var i=this.writeFeaturesNode(t,e);return this.xmlSerializer_.serializeToString(i)},e.prototype.writeFeaturesNode=function(t,e){return null},e.prototype.writeGeometry=function(t,e){var i=this.writeGeometryNode(t,e);return this.xmlSerializer_.serializeToString(i)},e.prototype.writeGeometryNode=function(t,e){return null},e}(cd),Cd="http://www.opengis.net/gml",Rd=/^[\s\xa0]*$/,wd=function(t){function e(e){t.call(this);var i=e||{};this.featureType=i.featureType,this.featureNS=i.featureNS,this.srsName=i.srsName,this.schemaLocation="",this.FEATURE_COLLECTION_PARSERS={},this.FEATURE_COLLECTION_PARSERS[this.namespace]={featureMember:ou(this.readFeaturesInternal),featureMembers:su(this.readFeaturesInternal)}}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.readFeaturesInternal=function(t,e){var i=t.localName,r=null;if("FeatureCollection"==i)r=gu([],this.FEATURE_COLLECTION_PARSERS,t,e,this);else if("featureMembers"==i||"featureMember"==i){var n=e[0],o=n.featureType,s=n.featureNS;if(!o&&t.childNodes){o=[],s={};for(var a=0,h=t.childNodes.length;a0){n[a]={_content_:n[a]};for(var l=0;l1?o.Document=t:1==t.length&&(o.Placemark=t[0]);var s=o_[i.namespaceURI],a=du(o,s);return vu(n,s_,cu,a,[e],s,this),i},e}(Td);function g_(t,e){var i=null,r=[0,0],n="start";if(t.getImage()){var o=t.getImage().getImageSize();if(null===o&&(o=Bf),2==o.length){var s=t.getImage().getScale();r[0]=s*o[0]/2,r[1]=-s*o[1]/2,n="left"}}if(null!==t.getText()){var a=t.getText();(i=a.clone()).setFont(a.getFont()||c_.getFont()),i.setScale(a.getScale()||c_.getScale()),i.setFill(a.getFill()||c_.getFill()),i.setStroke(a.getStroke()||u_)}else i=c_.clone();return i.setText(e),i.setOffsetX(r[0]),i.setOffsetY(r[1]),i.setTextAlign(n),new Nu({text:i})}function y_(t){var e=eu(t,!1),i=/^\s*#?\s*([0-9A-Fa-f]{8})\s*$/.exec(e);if(i){var r=i[1];return[parseInt(r.substr(6,2),16),parseInt(r.substr(4,2),16),parseInt(r.substr(2,2),16),parseInt(r.substr(0,2),16)/255]}}function v_(t){for(var e,i=eu(t,!1),r=[],n=/^\s*([+\-]?\d*\.?\d+(?:e[+\-]?\d+)?)\s*,\s*([+\-]?\d*\.?\d+(?:e[+\-]?\d+)?)(?:\s*,\s*([+\-]?\d*\.?\d+(?:e[+\-]?\d+)?))?\s*/i;e=n.exec(i);){var o=parseFloat(e[1]),s=parseFloat(e[2]),a=e[3]?parseFloat(e[3]):0;r.push(o,s,a),i=i.substr(e[0].length)}if(""===i)return r}function m_(t){var e=eu(t,!1).trim(),i=t.baseURI;return i&&"about:blank"!=i||(i=window.location.href),i?new URL(e,i).href:e}function x_(t){return bd(t)}var E_=fu($f,{Pair:function(t,e){var i=gu({},q_,t,e);if(!i)return;var r=i.key;if(r&&"normal"==r){var n=i.styleUrl;n&&(e[e.length-1]=n);var o=i.Style;o&&(e[e.length-1]=o)}}});function S_(t,e){return gu(void 0,E_,t,e)}var T_=fu($f,{Icon:hu(function(t,e){var i=gu({},M_,t,e);return i||null}),heading:hu(bd),hotSpot:hu(function(t){var e,i=t.getAttribute("xunits"),r=t.getAttribute("yunits");return e="insetPixels"!==i?"insetPixels"!==r?Lu.BOTTOM_LEFT:Lu.TOP_LEFT:"insetPixels"!==r?Lu.BOTTOM_RIGHT:Lu.TOP_RIGHT,{x:parseFloat(t.getAttribute("x")),xunits:t_[i],y:parseFloat(t.getAttribute("y")),yunits:t_[r],origin:e}}),scale:hu(x_)});var C_=fu($f,{color:hu(y_),scale:hu(x_)});var R_=fu($f,{color:hu(y_),width:hu(bd)});var w_=fu($f,{color:hu(y_),fill:hu(Ld),outline:hu(Ld)});var I_=fu($f,{coordinates:su(v_)});function L_(t,e){return gu(null,I_,t,e)}var O_=fu(Qf,{Track:ou(b_)});var P_=fu($f,{when:function(t,e){var i=e[e.length-1].whens,r=eu(t,!1),n=Date.parse(r);i.push(isNaN(n)?0:n)}},fu(Qf,{coord:function(t,e){var i=e[e.length-1].flatCoordinates,r=eu(t,!1),n=/^\s*([+\-]?\d+(?:\.\d*)?(?:e[+\-]?\d*)?)\s+([+\-]?\d+(?:\.\d*)?(?:e[+\-]?\d*)?)\s+([+\-]?\d+(?:\.\d*)?(?:e[+\-]?\d*)?)\s*$/i.exec(r);if(n){var o=parseFloat(n[1]),s=parseFloat(n[2]),a=parseFloat(n[3]);i.push(o,s,a,0)}else i.push(0,0,0,0)}}));function b_(t,e){var i=gu({flatCoordinates:[],whens:[]},P_,t,e);if(i){for(var r=i.flatCoordinates,n=i.whens,o=0,s=Math.min(r.length,n.length);o0,u=h.href;u?r=u:l&&(r=Vf);var p,c=Lu.BOTTOM_LEFT,d=i.hotSpot;d?(n=[d.x,d.y],o=d.xunits,s=d.yunits,c=d.origin):r===Vf?(n=jf,o=Uf,s=Yf):/^http:\/\/maps\.(?:google|gstatic)\.com\//.test(r)&&(n=[.5,0],o=wu.FRACTION,s=wu.FRACTION);var f,_=h.x,g=h.y;void 0!==_&&void 0!==g&&(p=[_,g]);var y,v=h.w,m=h.h;void 0!==v&&void 0!==m&&(f=[v,m]);var x=i.heading;void 0!==x&&(y=Vt(x));var E=i.scale;if(l){r==Vf&&(f=Bf,void 0===E&&(E=Xf));var S=new Ou({anchor:n,anchorOrigin:c,anchorXUnits:o,anchorYUnits:s,crossOrigin:"anonymous",offset:p,offsetOrigin:Lu.BOTTOM_LEFT,rotation:y,scale:E,size:f,src:r});a.imageStyle=S}else a.imageStyle=h_}},LabelStyle:function(t,e){var i=gu({},C_,t,e);if(i){var r=e[e.length-1],n=new Rr({fill:new mr({color:"color"in i?i.color:kf}),scale:i.scale});r.textStyle=n}},LineStyle:function(t,e){var i=gu({},R_,t,e);if(i){var r=e[e.length-1],n=new Er({color:"color"in i?i.color:kf,width:"width"in i?i.width:1});r.strokeStyle=n}},PolyStyle:function(t,e){var i=gu({},w_,t,e);if(i){var r=e[e.length-1],n=new mr({color:"color"in i?i.color:kf});r.fillStyle=n;var o=i.fill;void 0!==o&&(r.fill=o);var s=i.outline;void 0!==s&&(r.outline=s)}}});function X_(t,e){var i=gu({},V_,t,e);if(!i)return null;var r,n="fillStyle"in i?i.fillStyle:a_,o=i.fill;void 0===o||o||(n=null),"imageStyle"in i?i.imageStyle!=h_&&(r=i.imageStyle):r=l_;var s="textStyle"in i?i.textStyle:c_,a="strokeStyle"in i?i.strokeStyle:p_,h=i.outline;return void 0===h||h||(a=null),[new Nu({fill:n,image:r,stroke:a,text:s,zIndex:void 0})]}function z_(t,e){var i,r,n,o=e.length,s=new Array(e.length),a=new Array(e.length),h=new Array(e.length);i=r=n=!1;for(var l=0;l0){var a=du(n,s);vu(r,wg,Lg,[{names:s,values:a}],i)}var h=e.getStyleFunction();if(h){var l=h(e,0);if(l){var u=Array.isArray(l)?l[0]:l;this.writeStyles_&&(n.Style=u);var p=u.getText();p&&(n.name=p.getText())}}var c=i[i.length-1].node,d=Ig[c.namespaceURI],f=du(n,d);vu(r,wg,cu,f,i,d);var _=i[0],g=e.getGeometry();g&&(g=dd(g,!0,_)),vu(r,wg,yg,[g],i)}var Pg=fu($f,["extrude","tessellate","altitudeMode","coordinates"]),bg=fu($f,{extrude:lu(Gd),tessellate:lu(Gd),altitudeMode:lu(jd),coordinates:lu(function(t,e,i){var r,n=i[i.length-1],o=n.layout,s=n.stride;o==At.XY||o==At.XYM?r=2:o==At.XYZ||o==At.XYZM?r=3:Y(!1,34);var a=e.length,h="";if(a>0){h+=e[0];for(var l=1;l>3)?i.readString():2===t?i.readFloat():3===t?i.readDouble():4===t?i.readVarint64():5===t?i.readVarint():6===t?i.readSVarint():7===t?i.readBoolean():null;e.values.push(r)}}function qg(t,e,i){if(1==t)e.id=i.readVarint();else if(2==t)for(var r=i.readVarint()+i.pos;i.pos>3}s--,1===o||2===o?(a+=t.readSVarint(),h+=t.readSVarint(),1===o&&l>u&&(r.push(l),u=l),i.push(a,h),l+=2):7===o?l>u&&(i.push(i[u],i[u+1]),l+=2):Y(!1,59)}l>u&&(r.push(l),u=l)},e.prototype.createFeature_=function(t,e,i){var r,n=e.type;if(0===n)return null;var o=e.id,s=e.properties;s[this.layerName_]=e.layer.name;var a=[],h=[];this.readRawGeometry_(t,e,a,h);var l=function(t,e){var i;1===t?i=1===e?Nt.POINT:Nt.MULTI_POINT:2===t?i=1===e?Nt.LINE_STRING:Nt.MULTI_LINE_STRING:3===t&&(i=Nt.POLYGON);return i}(n,h.length);if(this.featureClass_===Kg)r=new this.featureClass_(l,a,h,s,o);else{var u;if(l==Nt.POLYGON){for(var p=[],c=0,d=0,f=0,_=h.length;f<_;++f){var g=h[f];Si(a,c,g,2)||(p.push(h.slice(d,f)),d=f),c=g}u=p.length>1?new Fc(a,At.XY,p):new Ii(a,At.XY,h)}else u=l===Nt.POINT?new ci(a,At.XY):l===Nt.LINE_STRING?new hr(a,At.XY):l===Nt.POLYGON?new Ii(a,At.XY,h):l===Nt.MULTI_POINT?new bc(a,At.XY):l===Nt.MULTI_LINE_STRING?new Pc(a,At.XY,h):null;r=new(0,this.featureClass_),this.geometryName_&&r.setGeometryName(this.geometryName_);var y=dd(u,!1,this.adaptOptions(i));r.setGeometry(y),r.setId(o),r.setProperties(s)}return r},e.prototype.getLastExtent=function(){return this.extent_},e.prototype.getType=function(){return Hl.ARRAY_BUFFER},e.prototype.readFeatures=function(t,e){var i=this.layers_,r=new Xg.a(t),n=r.readFields(Hg,{}),o=[];for(var s in n)if(!i||-1!=i.indexOf(s)){for(var a=n[s],h=0,l=a.length;h>1):n>>1}return e}(t),n=0,o=r.length;n=32;)e=63+(32|31&t),i+=String.fromCharCode(e),t>>=5;return e=t+63,i+=String.fromCharCode(e)}var cy=function(t){function e(e){t.call(this);var i=e||{};this.dataProjection=Ee("EPSG:4326"),this.factor_=i.factor?i.factor:1e5,this.geometryLayout_=i.geometryLayout?i.geometryLayout:At.XY}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.readFeatureFromText=function(t,e){var i=this.readGeometryFromText(t,e);return new B(i)},e.prototype.readFeaturesFromText=function(t,e){return[this.readFeatureFromText(t,e)]},e.prototype.readGeometryFromText=function(t,e){var i=ze(this.geometryLayout_),r=hy(t,i,this.factor_);sy(r,0,r.length,i,r);var n=ri(r,0,r.length,i);return dd(new hr(n,this.geometryLayout_),!1,this.adaptOptions(e))},e.prototype.writeFeatureText=function(t,e){var i=t.getGeometry();return i?this.writeGeometryText(i,e):(Y(!1,40),"")},e.prototype.writeFeaturesText=function(t,e){return this.writeFeatureText(t[0],e)},e.prototype.writeGeometryText=function(t,e){var i=(t=dd(t,!0,this.adaptOptions(e))).getFlatCoordinates(),r=t.getStride();return sy(i,0,i.length,r,i),ay(i,r,this.factor_)},e}(zf),dy={Point:function(t,e,i){var r=t.coordinates;e&&i&&vy(r,e,i);return new ci(r)},LineString:function(t,e){var i=fy(t.arcs,e);return new hr(i)},Polygon:function(t,e){for(var i=[],r=0,n=t.arcs.length;r0&&n.pop(),r=i>=0?e[i]:e[~i].slice().reverse(),n.push.apply(n,r);for(var a=0,h=n.length;a=2,57)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e}(Ey),Ty=function(t){function e(e){t.call(this,"And",Array.prototype.slice.call(arguments))}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e}(Sy),Cy=function(t){function e(e,i,r){t.call(this,"BBOX"),this.geometryName=e,this.extent=i,this.srsName=r}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e}(Ey),Ry=function(t){function e(e,i,r,n){t.call(this,e),this.geometryName=i||"the_geom",this.geometry=r,this.srsName=n}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e}(Ey),wy=function(t){function e(e,i,r){t.call(this,"Contains",e,i,r)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e}(Ry),Iy=function(t){function e(e,i){t.call(this,e),this.propertyName=i}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e}(Ey),Ly=function(t){function e(e,i,r){t.call(this,"During",e),this.begin=i,this.end=r}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e}(Iy),Oy=function(t){function e(e,i,r,n){t.call(this,e,i),this.expression=r,this.matchCase=n}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e}(Iy),Py=function(t){function e(e,i,r){t.call(this,"PropertyIsEqualTo",e,i,r)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e}(Oy),by=function(t){function e(e,i){t.call(this,"PropertyIsGreaterThan",e,i)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e}(Oy),My=function(t){function e(e,i){t.call(this,"PropertyIsGreaterThanOrEqualTo",e,i)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e}(Oy),Fy=function(t){function e(e,i,r){t.call(this,"Intersects",e,i,r)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e}(Ry),Ay=function(t){function e(e,i,r){t.call(this,"PropertyIsBetween",e),this.lowerBoundary=i,this.upperBoundary=r}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e}(Iy),Ny=function(t){function e(e,i,r,n,o,s){t.call(this,"PropertyIsLike",e),this.pattern=i,this.wildCard=void 0!==r?r:"*",this.singleChar=void 0!==n?n:".",this.escapeChar=void 0!==o?o:"!",this.matchCase=s}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e}(Iy),Gy=function(t){function e(e){t.call(this,"PropertyIsNull",e)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e}(Iy),Dy=function(t){function e(e,i){t.call(this,"PropertyIsLessThan",e,i)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e}(Oy),ky=function(t){function e(e,i){t.call(this,"PropertyIsLessThanOrEqualTo",e,i)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e}(Oy),jy=function(t){function e(e){t.call(this,"Not"),this.condition=e}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e}(Ey),Uy=function(t){function e(e,i,r){t.call(this,"PropertyIsNotEqualTo",e,i,r)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e}(Oy),Yy=function(t){function e(e){t.call(this,"Or",Array.prototype.slice.call(arguments))}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e}(Sy),By=function(t){function e(e,i,r){t.call(this,"Within",e,i,r)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e}(Ry);function Vy(t){var e=[null].concat(Array.prototype.slice.call(arguments));return new(Function.prototype.bind.apply(Ty,e))}function Xy(t,e,i){return new Cy(t,e,i)}var zy={"http://www.opengis.net/gml":{boundedBy:hu(Id.prototype.readGeometryElement,"bounds")}},Wy={"http://www.opengis.net/wfs":{totalInserted:hu(Fd),totalUpdated:hu(Fd),totalDeleted:hu(Fd)}},Ky={"http://www.opengis.net/wfs":{TransactionSummary:hu(function(t,e){return gu({},Wy,t,e)},"transactionSummary"),InsertResults:hu(function(t,e){return gu([],ov,t,e)},"insertIds")}},Hy={"http://www.opengis.net/wfs":{PropertyName:lu(jd)}},Zy={"http://www.opengis.net/wfs":{Insert:lu(function(t,e,i){var r=i[i.length-1],n=r.featureType,o=r.featureNS,s=r.gmlVersion,a=tu(o,n);t.appendChild(a),2===s?Zd.prototype.writeFeatureElement(a,e,i):Vd.prototype.writeFeatureElement(a,e,i)}),Update:lu(function(t,e,i){var r=i[i.length-1];Y(void 0!==e.getId(),27);var n=r.featureType,o=r.featurePrefix,s=r.featureNS,a=av(o,n),h=e.getGeometryName();t.setAttribute("typeName",a),t.setAttributeNS(Jy,"xmlns:"+o,s);var l=e.getId();if(void 0!==l){for(var u=e.getKeys(),p=[],c=0,d=u.length;c="a"&&t<="z"||t>="A"&&t<="Z"},Ov.prototype.isNumeric_=function(t,e){return t>="0"&&t<="9"||"."==t&&!(void 0!==e&&e)},Ov.prototype.isWhiteSpace_=function(t){return" "==t||"\t"==t||"\r"==t||"\n"==t},Ov.prototype.nextChar_=function(){return this.wkt.charAt(++this.index_)},Ov.prototype.nextToken=function(){var t,e=this.nextChar_(),i=this.index_,r=e;if("("==e)t=Sv;else if(","==e)t=Rv;else if(")"==e)t=Tv;else if(this.isNumeric_(e)||"-"==e)t=Cv,r=this.readNumber_();else if(this.isAlpha_(e))t=Ev,r=this.readText_();else{if(this.isWhiteSpace_(e))return this.nextToken();if(""!==e)throw new Error("Unexpected character: "+e);t=wv}return{position:i,value:r,type:t}},Ov.prototype.readNumber_=function(){var t,e=this.index_,i=!1,r=!1;do{"."==t?i=!0:"e"!=t&&"E"!=t||(r=!0),t=this.nextChar_()}while(this.isNumeric_(t,i)||!r&&("e"==t||"E"==t)||r&&("-"==t||"+"==t));return parseFloat(this.wkt.substring(e,this.index_--))},Ov.prototype.readText_=function(){var t,e=this.index_;do{t=this.nextChar_()}while(this.isAlpha_(t));return this.wkt.substring(e,this.index_--).toUpperCase()};var Pv=function(t){this.lexer_=t,this.token_,this.layout_=At.XY};function bv(t){var e=t.getCoordinates();return 0===e.length?"":e.join(" ")}function Mv(t){for(var e=t.getCoordinates(),i=[],r=0,n=e.length;r0&&(e+=" "+r)}return 0===i.length?e+" "+vv:e+"("+i+")"}var Gv=function(t){function e(e){t.call(this);var i=e||{};this.splitCollection_=void 0!==i.splitCollection&&i.splitCollection}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.parse_=function(t){var e=new Ov(t);return new Pv(e).parse()},e.prototype.readFeatureFromText=function(t,e){var i=this.readGeometryFromText(t,e);if(i){var r=new B;return r.setGeometry(i),r}return null},e.prototype.readFeaturesFromText=function(t,e){for(var i=[],r=this.readGeometryFromText(t,e),n=[],o=0,s=(i=this.splitCollection_&&r.getType()==Nt.GEOMETRY_COLLECTION?r.getGeometriesArray():[r]).length;o.75*u||l>.75*p?this.resetExtent_():ot(o,r)||this.recenter_()}},e.prototype.resetExtent_=function(){var t=this.getMap(),e=this.ovmap_,i=t.getSize(),r=t.getView().calculateExtent(i),n=e.getView(),o=Math.log(7.5)/Math.LN2;Mt(r,1/(.1*Math.pow(2,o/2))),n.fit(r)},e.prototype.recenter_=function(){var t=this.getMap(),e=this.ovmap_,i=t.getView();e.getView().setCenter(i.getCenter())},e.prototype.updateBox_=function(){var t=this.getMap(),e=this.ovmap_;if(t.isRendered()&&e.isRendered()){var i=t.getSize(),r=t.getView(),n=e.getView(),o=r.getRotation(),s=this.boxOverlay_,a=this.boxOverlay_.getElement(),h=r.calculateExtent(i),l=n.getResolution(),u=Et(h),p=Lt(h),c=this.calculateCoordinateRotate_(o,u);s.setPosition(c),a&&(a.style.width=Math.abs((u[0]-p[0])/l)+"px",a.style.height=Math.abs((p[1]-u[1])/l)+"px")}},e.prototype.calculateCoordinateRotate_=function(t,e){var i,r=this.getMap().getView().getCenter();return r&&($i(i=[e[0]-r[0],e[1]-r[1]],t),Hi(i,r)),i},e.prototype.handleClick_=function(t){t.preventDefault(),this.handleToggle_()},e.prototype.handleToggle_=function(){this.element.classList.toggle(yo),this.collapsed_?Qn(this.collapseLabel_,this.label_):Qn(this.label_,this.collapseLabel_),this.collapsed_=!this.collapsed_;var t=this.ovmap_;this.collapsed_||t.isRendered()||(t.updateSize(),this.resetExtent_(),m(t,Rn,function(t){this.updateBox_()},this))},e.prototype.getCollapsible=function(){return this.collapsible_},e.prototype.setCollapsible=function(t){this.collapsible_!==t&&(this.collapsible_=t,this.element.classList.toggle("ol-uncollapsible"),!t&&this.collapsed_&&this.handleToggle_())},e.prototype.setCollapsed=function(t){this.collapsible_&&this.collapsed_!==t&&this.handleToggle_()},e.prototype.getCollapsed=function(){return this.collapsed_},e.prototype.getOverviewMap=function(){return this.ovmap_},e}(uo),ex="units",ix={DEGREES:"degrees",IMPERIAL:"imperial",NAUTICAL:"nautical",METRIC:"metric",US:"us"},rx=[1,2,5];function nx(t){var e=t.frameState;this.viewState_=e?e.viewState:null,this.updateElement_()}var ox=function(t){function e(e){var i=e||{},r=void 0!==i.className?i.className:"ol-scale-line";t.call(this,{element:document.createElement("div"),render:i.render||nx,target:i.target}),this.innerElement_=document.createElement("div"),this.innerElement_.className=r+"-inner",this.element.className=r+" "+fo,this.element.appendChild(this.innerElement_),this.viewState_=null,this.minWidth_=void 0!==i.minWidth?i.minWidth:64,this.renderedVisible_=!1,this.renderedWidth_=void 0,this.renderedHTML_="",v(this,G(ex),this.handleUnitsChanged_,this),this.setUnits(i.units||ix.METRIC)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.getUnits=function(){return this.get(ex)},e.prototype.handleUnitsChanged_=function(){this.updateElement_()},e.prototype.setUnits=function(t){this.set(ex,t)},e.prototype.updateElement_=function(){var t=this.viewState_;if(t){var e=t.center,i=t.projection,r=this.getUnits(),n=r==ix.DEGREES?$t.DEGREES:$t.METERS,o=Se(i,t.resolution,e,n);i.getUnits()!=$t.DEGREES&&i.getMetersPerUnit()&&n==$t.METERS&&(o*=i.getMetersPerUnit());var s=this.minWidth_*o,a="";if(r==ix.DEGREES){var h=Qt[$t.DEGREES];i.getUnits()==$t.DEGREES?s*=h:o/=h,s=this.minWidth_)break;++p}var c=l+" "+a;this.renderedHTML_!=c&&(this.innerElement_.innerHTML=c,this.renderedHTML_=c),this.renderedWidth_!=u&&(this.innerElement_.style.width=u+"px",this.renderedWidth_=u),this.renderedVisible_||(this.element.style.display="",this.renderedVisible_=!0)}else this.renderedVisible_&&(this.element.style.display="none",this.renderedVisible_=!1)},e}(uo),sx={VERTICAL:0,HORIZONTAL:1};function ax(t){if(t.frameState){this.sliderInitialized_||this.initSlider_();var e=t.frameState.viewState.resolution;e!==this.currentResolution_&&(this.currentResolution_=e,this.setThumbPosition_(e))}}var hx=function(t){function e(e){var i=e||{};t.call(this,{element:document.createElement("div"),render:i.render||ax}),this.dragListenerKeys_=[],this.currentResolution_=void 0,this.direction_=sx.VERTICAL,this.dragging_,this.heightLimit_=0,this.widthLimit_=0,this.previousX_,this.previousY_,this.thumbSize_=null,this.sliderInitialized_=!1,this.duration_=void 0!==i.duration?i.duration:200;var r=void 0!==i.className?i.className:"ol-zoomslider",n=document.createElement("button");n.setAttribute("type","button"),n.className=r+"-thumb "+fo;var o=this.element;o.className=r+" "+fo+" "+go,o.appendChild(n),this.dragger_=new Tn(o),v(this.dragger_,Gr.POINTERDOWN,this.handleDraggerStart_,this),v(this.dragger_,Gr.POINTERMOVE,this.handleDraggerDrag_,this),v(this.dragger_,Gr.POINTERUP,this.handleDraggerEnd_,this),v(o,M.CLICK,this.handleContainerClick_,this),v(n,M.CLICK,O)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.disposeInternal=function(){this.dragger_.dispose(),t.prototype.disposeInternal.call(this)},e.prototype.setMap=function(e){t.prototype.setMap.call(this,e),e&&e.render()},e.prototype.initSlider_=function(){var t=this.element,e=t.offsetWidth,i=t.offsetHeight,r=t.firstElementChild,n=getComputedStyle(r),o=r.offsetWidth+parseFloat(n.marginRight)+parseFloat(n.marginLeft),s=r.offsetHeight+parseFloat(n.marginTop)+parseFloat(n.marginBottom);this.thumbSize_=[o,s],e>i?(this.direction_=sx.HORIZONTAL,this.widthLimit_=e-o):(this.direction_=sx.VERTICAL,this.heightLimit_=i-s),this.sliderInitialized_=!0},e.prototype.handleContainerClick_=function(t){var e=this.getMap().getView(),i=this.getRelativePosition_(t.offsetX-this.thumbSize_[0]/2,t.offsetY-this.thumbSize_[1]/2),r=this.getResolutionForPosition_(i);e.animate({resolution:e.constrainResolution(r),duration:this.duration_,easing:Xn})},e.prototype.handleDraggerStart_=function(t){if(!this.dragging_&&t.originalEvent.target===this.element.firstElementChild&&(this.getMap().getView().setHint(jn,1),this.previousX_=t.clientX,this.previousY_=t.clientY,this.dragging_=!0,0===this.dragListenerKeys_.length)){var e=this.handleDraggerDrag_,i=this.handleDraggerEnd_;this.dragListenerKeys_.push(v(document,M.MOUSEMOVE,e,this),v(document,Gr.POINTERMOVE,e,this),v(document,M.MOUSEUP,i,this),v(document,Gr.POINTERUP,i,this))}},e.prototype.handleDraggerDrag_=function(t){if(this.dragging_){var e=this.element.firstElementChild,i=t.clientX-this.previousX_+parseFloat(e.style.left),r=t.clientY-this.previousY_+parseFloat(e.style.top),n=this.getRelativePosition_(i,r);this.currentResolution_=this.getResolutionForPosition_(n),this.getMap().getView().setResolution(this.currentResolution_),this.setThumbPosition_(this.currentResolution_),this.previousX_=t.clientX,this.previousY_=t.clientY}},e.prototype.handleDraggerEnd_=function(t){if(this.dragging_){var e=this.getMap().getView();e.setHint(jn,-1),e.animate({resolution:e.constrainResolution(this.currentResolution_),duration:this.duration_,easing:Xn}),this.dragging_=!1,this.previousX_=void 0,this.previousY_=void 0,this.dragListenerKeys_.forEach(E),this.dragListenerKeys_.length=0}},e.prototype.setThumbPosition_=function(t){var e=this.getPositionForResolution_(t),i=this.element.firstElementChild;this.direction_==sx.HORIZONTAL?i.style.left=this.widthLimit_*e+"px":i.style.top=this.heightLimit_*e+"px"},e.prototype.getRelativePosition_=function(t,e){return kt(this.direction_===sx.HORIZONTAL?t/this.widthLimit_:e/this.heightLimit_,0,1)},e.prototype.getResolutionForPosition_=function(t){return this.getMap().getView().getResolutionForValueFunction()(1-t)},e.prototype.getPositionForResolution_=function(t){return 1-this.getMap().getView().getValueForResolutionFunction()(t)},e}(uo),lx=function(t){function e(e){var i=e||{};t.call(this,{element:document.createElement("div"),target:i.target}),this.extent=i.extent?i.extent:null;var r=void 0!==i.className?i.className:"ol-zoom-extent",n=void 0!==i.label?i.label:"E",o=void 0!==i.tipLabel?i.tipLabel:"Fit to extent",s=document.createElement("button");s.setAttribute("type","button"),s.title=o,s.appendChild("string"==typeof n?document.createTextNode(n):n),v(s,M.CLICK,this.handleClick_,this);var a=r+" "+fo+" "+go,h=this.element;h.className=a,h.appendChild(s)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.handleClick_=function(t){t.preventDefault(),this.handleZoomToExtent()},e.prototype.handleZoomToExtent=function(){var t=this.getMap().getView(),e=this.extent?this.extent:t.getProjection().getExtent();t.fit(e)},e}(uo),ux={array:{},color:{},colorlike:{},control:{},coordinate:{},easing:{},events:{}};ux.events.condition={},ux.extent={},ux.featureloader={},ux.format={},ux.format.filter={},ux.geom={},ux.has={},ux.interaction={},ux.layer={},ux.loadingstrategy={},ux.proj={},ux.proj.Units={},ux.proj.proj4={},ux.render={},ux.render.canvas={},ux.renderer={},ux.renderer.canvas={},ux.renderer.webgl={},ux.size={},ux.source={},ux.sphere={},ux.style={},ux.style.IconImageCache={},ux.tilegrid={},ux.xml={},ux.Collection=U,ux.Feature=B,ux.Geolocation=zi,ux.Graticule=Or,ux.Kinetic=br,ux.Map=Ha,ux.Object=D,ux.Observable=F,ux.Observable.unByKey=function(t){if(Array.isArray(t))for(var e=0,i=t.length;e180)&&(i[0]=Xt(r+180,360)-180),i},ux.proj.transform=Pe,ux.proj.transformExtent=be,ux.render.VectorContext=Vs,ux.render.canvas.labelCache=Ps,ux.render.toContext=function(t,e){var i=t.canvas,r=e||{},n=r.pixelRatio||Di,o=r.size;o&&(i.width=o[0]*n,i.height=o[1]*n,i.style.width=o[0]+"px",i.style.height=o[1]+"px");var s=[0,0,i.width,i.height],a=je([1,0,0,1,0,0],n,n);return new Xs(t,n,s,a,0)},ux.renderer.canvas.ImageLayer=ra,ux.renderer.canvas.Map=Qs,ux.renderer.canvas.TileLayer=ha,ux.renderer.canvas.VectorLayer=Ba,ux.renderer.canvas.VectorTileLayer=Ka,ux.renderer.webgl.ImageLayer=gl,ux.renderer.webgl.Map=yl,ux.renderer.webgl.TileLayer=Xl,ux.renderer.webgl.VectorLayer=Wl,ux.size.toSize=ho,ux.source.BingMaps=tp,ux.source.CartoDB=ip,ux.source.Cluster=sp,ux.source.Image=dp,ux.source.ImageArcGISRest=gp,ux.source.ImageCanvas=yp,ux.source.ImageMapGuide=vp,ux.source.ImageStatic=mp,ux.source.ImageWMS=wp,ux.source.OSM=Lp,ux.source.OSM.ATTRIBUTION=Ip,ux.source.Raster=Vp,ux.source.Source=Il,ux.source.Stamen=Kp,ux.source.Tile=jl,ux.source.TileArcGISRest=Zp,ux.source.TileDebug=Jp,ux.source.TileImage=$u,ux.source.TileJSON=Qp,ux.source.TileWMS=tc,ux.source.UTFGrid=ic,ux.source.Vector=op,ux.source.VectorTile=ac,ux.source.WMTS=lc,ux.source.WMTS.optionsFromCapabilities=function(t,e){var i=H(t.Contents.Layer,function(t,i,r){return t.Identifier==e.layer});if(null===i)return null;var r,n=t.Contents.TileMatrixSet;(r=i.TileMatrixSetLink.length>1?J(i.TileMatrixSetLink,"projection"in e?function(t,i,r){var o=H(n,function(e){return e.Identifier==t.TileMatrixSet}).SupportedCRS,s=Ee(o.replace(/urn:ogc:def:crs:(\w+):(.*:)?(\w+)$/,"$1:$3"))||Ee(o),a=Ee(e.projection);return s&&a?Ie(s,a):o==e.projection}:function(t,i,r){return t.TileMatrixSet==e.matrixSet}):0)<0&&(r=0);var o=i.TileMatrixSetLink[r].TileMatrixSet,s=i.TileMatrixSetLink[r].TileMatrixSetLimits,a=i.Format[0];"format"in e&&(a=e.format),(r=J(i.Style,function(t,i,r){return"style"in e?t.Title==e.style:t.isDefault}))<0&&(r=0);var h=i.Style[r].Identifier,l={};"Dimension"in i&&i.Dimension.forEach(function(t,e,i){var r=t.Identifier,n=t.Default;void 0===n&&(n=t.Value[0]),l[r]=n});var u,p=H(t.Contents.TileMatrixSet,function(t,e,i){return t.Identifier==o}),c=p.SupportedCRS;if(c&&(u=Ee(c.replace(/urn:ogc:def:crs:(\w+):(.*:)?(\w+)$/,"$1:$3"))||Ee(c)),"projection"in e){var d=Ee(e.projection);d&&(u&&!Ie(d,u)||(u=d))}var f,_,g=i.WGS84BoundingBox;if(void 0!==g){var y=Ee("EPSG:4326").getExtent();_=g[0]==y[0]&&g[2]==y[2],f=be(g,"EPSG:4326",u);var v=u.getExtent();v&&(ot(v,f)||(f=void 0))}var m=Eu(p,f,s),x=[],E=e.requestEncoding;if(E=void 0!==E?E:"","OperationsMetadata"in t&&"GetTile"in t.OperationsMetadata)for(var S=t.OperationsMetadata.GetTile.DCP.HTTP.Get,T=0,C=S.length;T has to be removed, as well as the just before the W3 validation box. Unfortunately this then forces 600px width even when the window is small — thus eliminating the margin altogether.... + +I use it for now only in Diary/edited/1097/13A, 13B, 13C.html; and /0404/19.html +*/ + background-color: #e6fffb ! important; + width: 600px; + margin-left: auto; + margin-right: auto; + margin-top: 3em; +} + +BODY.gazetteer { +/* + background-color: #bdffde ! important; + */ + background-color: #c0ffe0 ! important; + margin-top: 30px; +} + +BODY.gazetteer_links { + background-color: #c5ffe2 ! important; + margin-top: 30px; +} + +BODY.home { + background-color: #ffff66 ! important; + margin-top: 30px; +/* +background as long as the Russian attack on Ukraine continues: + */ + background-image: url("https://penelope.uchicago.edu/Thayer/Images/Utility/Backgrounds/Ukraine.gif") ! important; + background-repeat: repeat-y; +} + +BODY.Roman_archaic { + background-color: #ffddcc ! important; + margin-top: 30px; +} + +BODY.Roman_imperial { + background-color: #ffccff ! important; + margin-top: 30px; +} + +BODY.Roman_Republican { + background-color: #ccddff ! important; + margin-top: 30px; +} + +BODY.Late_Antique { + background-color: #ecdaff ! important; + margin-top: 30px; +} + +BODY.fixed { + background-attachment: fixed; + background-repeat: repeat; +} + +BODY.help { + background-color: #ffcccc ! important; + margin-top: 30px; +} + +BODY.resources { + background-color: #f5ffff ! important; + color: #006600 ! important; + margin-top: 30px; +} + +BODY.WP { + background-color: #000000 ! important; + color: #ffffff ! important; + margin-top: 30px; +} + +/*Greek TEST*/ + BODY.WP DIV.default1 { + margin-left: 5em; + margin-right: 5em; + color: #ffffff ! important; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + } + BODY.WP .source { + color: #99ff99 ! important; + } + BODY.WP A { + color: #ccccff ! important; + } + BODY.WP TD.upcell A { + color: #0000ff ! important; + } + BODY.WP TD.alsocell A { + color: #0000ff ! important; + } + BODY.WP TD.diarycell A { + color: #0000ff ! important; + } + BODY.WP TD.offcell A { + color: #0000ff ! important; + } + +DIV.spacious { + width: 65vw; + margin-left: auto; + margin-right: auto; + color: #000066 ! important; /*color must match the background*/ + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; +} + +/* + +▸ Use names of countries only to define country-related styles. +▸ Use names of languages only to define language-related styles. + +*/ + +/*languages/scripts: +source, archaic, aboriginal; +Latin, Greek, Hebrew (Aramaic, Syriac), Runic, Gothic/Vandalic [same color: plain/italic]; +Russian/Slavic [identical]; +Coptic, Arabic (Punic, Turkish, Persian), Indian/Sanskrit [same color: plain/italic], Chinese/Japanese [same color: plain/italic]; +Catalan, Dutch, French, German, Italian, Portuguese, Provencal, Spanish +*/ + +/* +UNUSABLE FONTS: + +BECAUSE OF GREEK [search: ▸Greek TEST◂] : + Georgia: old tonos (wedge) + Verdana: old tonos (stroke) + Atavyros: ῥ rendered as ῤ + Minion Pro: no spaces before Greek capitals with rough breathings + +FOR OTHER REASONS: + Aroania: nulls the command-hyphen +*/ + +/* +COLORS + are in + https://penelope.uchicago.edu/Thayer/Utility/Styles/colors.css +*/ + +.black_letter { + text-transform: none; + font-family: Canterbury, "Cloister Black", Cimbrian, Raubtier, Lancaster, Augusta, Rochester, PaladinFLF, "Kleukens-Fraktur", "Palatino Linotype", Palatino, "Arial Unicode Ms", "Titus Cyberbit Basic", "Lucida Sans Unicode", serif, sans-serif ! important; +} + +.invisible { + visibility: hidden ! important; +} + +.error .Greek { + color: #ff0000 ! important; + font-weight: bold; + font-size: 120%; +} + +/* for modern geographical names, etc.: */ +.modern { + color: #5ebf20 ! important; +} + +.aboriginal { + color: #ff8f33 ! important; + font-family: Verdana, sans-serif; + font-size: 90%; +} + +/* same as Persian: */ +.Arabic { + color: #336644 ! important; +} + .Arabic .emend { + color: #444400 ! important; + } + + A SPAN.Arabic { + color: #669966 ! important; + } + +.Aramaic { + color: #555500 ! important; +} + .Aramaic .emend { + color: #664400 ! important; + } + + A SPAN.Aramaic { + color: #669966 ! important; + } + +.archaic { + color: #666600 ! important; +} + .archaic .emend { + color: #cccc00 ! important; + } + + A SPAN.archaic { + color: #669966 ! important; + } + +.Armenian { + color: #660099 ! important; +} + +SPAN LANG.be /* Belarusian */ { + font-size: 108%; +} + +.Belarusian { + color: #990000 ! important; + font-size: 108%; +} + +.book_Belarusian { + color: #990000 ! important; + font-size: 108%; + font-variant: small-caps; +} + +.translit_Belarusian { + color: #990000 ! important; +} + +.bland_Belarusian { + color: inherit ! important; + font-size: 108%; + line-height: 1.00; /* Belarusian fonts have more line-height built‑in, force smaller */ +} + +.Catalan { + color: #cc2200 ! important; +} + + .Catalan .emend { + color: #ee6633 ! important; + } + +.Dutch { + color: #006600 ! important; +} + + .Dutch .Dutch { + color: #002200 ! important; + } + + .Dutch .source { + color: #002200 ! important; + } + +BODY.gazetteer .Dutch { + color: #003300 ! important; +} + +.Egyptian { + color: #ff6600 ! important; +} + +.English/* use only in pages in other languages */ { + color: #009933 ! important; +} + + .English .emend { + color: #80cc4c ! important; + } + + .English .English { + color: #002200 ! important; + } + + .English .source { + color: #002200 ! important; + } + +French { + color: #009933 ! important; +} + + .French .emend { + color: #119955 ! important; + } + + .French .French { + color: #002200 ! important; + } + + .French .source { + color: #002200 ! important; + } + + .mynote .French { + color: #666633 ! important; + } + + .mynoteWide .French { + color: #666633 ! important; + } + +.Georgian { + color: #cc0099 ! important; +} + +.German { + color: #339999 ! important; +} + + .German .German { + color: #002200 ! important; + } + + .German .source { + color: #002200 ! important; + } + +.Gothic { + color: #660099 ! important; +} + +/*Greek TEST (settled)*/ +/*what I want here is a nice flowing slightly Byzantine look:*/ +/*Avdira: nice if somewhat mannered*/ +/*Alfios: nice but too small*/ +/*Quivira: ok but mannered: accents and breathings shifted*/ +/*Times New Roman: ok but circumflexes and diereses smooshed*/ +.Greek { + font-family: "Avdira", "Titus Cyberbit Basic", serif ! important; + color: #996600 ! important; +} + .Greek I { + font-style: italic; + letter-spacing: .2em; + /* a compromise: the traditional wide spacing, but also true italics */ + } + + .Greek .emend { + color: #dd8833 ! important; + } + + .Greek .emphasis { + color: #cc6600 ! important; + } + + .Greek .italic { + font-style: italic; + letter-spacing: .2em; + /* a compromise: the traditional wide spacing, but also true italics */ + } + + .Greek .outquote { + color: #dd8833 ! important; /* same as .Greek .emend */ + } + + .mynote .Greek { + color: #996600 ! important; + } + + .mynoteWide .Greek { + color: #996600 ! important; + } + +/* for use in Eboxes: */ + .EboxGreek { + font-weight: bold; + color: #996600 ! important; + } + +.translit_Greek { + color: #996600 ! important; +} + .translit_Greek .emend { + color: #dd8833 ! important; + } + + .translit_Greek .emphasis { + color: #cc6600 ! important; + } + + .mynote .translit_Greek { + color: #996600 ! important; + } + + .mynoteWide .translit_Greek { + color: #996600 ! important; + } + +.Greek2 { + font-family: "Palatino Linotype", "Lucida Grande", "Arial Unicode Ms", "Titus Cyberbit Basic", "Lucida Sans Unicode", sans-serif ! important; + color: #663300 ! important; + font-size: 95%; +} + .Greek2 .emend { + color: #dd8833 ! important; + } + + .Greek2 .emphasis { + color: #cc6600 ! important; + } + +.Greek_title { +/* OLD, KEEP FOR NOW: + font-family: "Lucida Grande", "Palatino Linotype", "Arial Unicode Ms", "Titus Cyberbit Basic", "Lucida Sans Unicode", sans-serif ! important; + */ + font-style: italic; + letter-spacing: .08em; +/* OLD, KEEP FOR NOW: + font-size: 95%; + */ +} + +.Hebrew { + direction: rtl ! important; + color: #666600 ! important; +} + .Hebrew .emend { + color: #774400 ! important; + } + + A SPAN.Hebrew { + color: #669966 ! important; + } + +.translit_Hebrew { + color: #666600 ! important; +} + .translit_Hebrew .emend { + color: #774400 ! important; + } + + A SPAN.translit_Hebrew { + color: #669966 ! important; + } + +.Indian { + color: #ff8f33 ! important; + font-family: Verdana, sans-serif; + font-size: 90%; +} + +.Italian { + color: #006600 ! important; +} + + .Italian .Italian { + color: #002200 ! important; + } + + .Italian .source { + color: #002200 ! important; + } + + .mynote .Italian { + color: #00b300 ! important; + } + +BODY.gazetteer .Italian { + color: #009922 ! important; +} + +.Chinese { +/* + color: #dcbd75 ! important; /* OLD + */ + color: #b88e2e ! important; + font-family: Verdana, sans-serif; + font-size: 90%; +} + +.Japanese { + color: #da5300 ! important; + font-family: Verdana, sans-serif; + font-size: 90%; + font-style: italic; +} + +.Latin { + color: #990000 ! important; +} + + .Latin .emend { + color: #ee6633 ! important; + } + + .mynote .Latin { + color: #990000 ! important; + } + +/* for use in Eboxes: */ + .EboxLatin { + font-weight: bold; + color: #990000 ! important; + } + +.Latin_addendum { + color: #993399 ! important; +} + +.Latin_emend { + color: #ee6633 ! important; +} + +.Latin_pale { + color: #ff6666 ! important; +} + +/* same as Arabic: */ +.Persian { + color: #336644 ! important; +} + .Persian .emend { + color: #444400 ! important; + } + + A SPAN.Persian { + color: #669966 ! important; + } + +.Portuguese { + color: #006600 ! important; +} + + .Portuguese .Portuguese { + color: #002200 ! important; + } + + .Portuguese .source { + color: #002200 ! important; + } + +BODY.gazetteer .Portuguese { + color: #003300 ! important; +} + + +.Provencal { + color: #e65c00 ! important; +} + + .Provencal .emend { + color: #ee6633 ! important; + } + +.Punic { + color: #336644 ! important; +} + .Punic .emend { + color: #444400 ! important; + } + + A SPAN.Punic { + color: #669966 ! important; + } + +.Runic { + font-family: "Quivira", "Apple Symbols", "Geneva", serif ! important; + color: #339999 ! important; +} + +.RunicQuivira { + font-family: "Quivira" ! important; + color: #339999 ! important; +} + +.RunicGeneva { + font-family: "Geneva" ! important; + color: #339999 ! important; +} + +.RunicApple { + font-family: "Apple Symbols" ! important; + color: #339999 ! important; +} + +.Russian { +/* WAS: + color: #ff7e24 ! important; + */ + color: #ffa114 ! important; + font-size: 108%; +} + +.translit_Russian { + color: #ffa114 ! important; +} + +.Sanskrit { + color: #ff8f33 ! important; + font-family: Verdana, sans-serif; + font-size: 90%; + font-style: italic; +} + +.translit_Sanskrit { + color: #ff8f33 ! important; + font-family: Verdana, sans-serif; + font-size: 90%; + font-style: italic; +} + +.Scandinavian { + color: #660099 ! important; +} + +.Slavic { + color: #e73659 ! important; +} + +.Syriac { + color: #666600 ! important; +} + .Syriac .emend { + color: #774400 ! important; + } + + A SPAN.Syriac { + color: #669966 ! important; + } + +.Turkish { + color: #336644 ! important; +} + .Turkish .emend { + color: #444400 ! important; + } + + A SPAN.Turkish { + color: #669966 ! important; + } + +SPAN LANG.uk /* Ukrainian */ { + font-size: 108%; +} + +.Ukrainian { + color: #f7c708 ! important; + font-size: 108%; +} + +.book_Ukrainian { + color: #f7c708 ! important; + font-size: 108%; + font-variant: small-caps; +} + +.translit_Ukrainian { + color: #f7c708 ! important; +} + +.bland_Ukrainian { + color: inherit ! important; + font-size: 108%; + line-height: 1.00; /* Ukrainian fonts have more line-height built‑in, force smaller */ +} + +.Vandalic { + font-family: Atavyros, "Lucida Grande", "Palatino Linotype", "Arial Unicode Ms", "Titus Cyberbit Basic", "Lucida Sans Unicode", sans-serif ! important; + color: #660099 ! important; + font-size: 95%; + font-style: italic; +} + + TABLE TR.odd { + background-color: #ccffff ! important; + } + + TABLE TR TD.odd { + background-color: #ccffff ! important; + } + + TABLE TR.even { + background-color: #99ffff ! important; + } + + TABLE TR TD.even { + background-color: #99ffff ! important; + } + +.odd .emend { + color: #33ccff ! important; + } + +.even .emend { + color: #00ccff ! important; + } + +/* THIS DOESN'T SEEM TO WORK: */ +/* +COLGROUP COL.grisaille { + background-color: #ff0000 ! important; + } + + */ + + +TABLE.prompt { +/* DO NOT DELETE: */ +/* used in Ebox.js */ + margin-bottom: 0em; +} + +TABLE.Ptolemy { + width: 600px; + border: 1px solid; + background-color: #eeffff ! important; + padding-left: 4px; + padding-right: 4px; + vertical-align: bottom; +} +TABLE.Ptolemy TD { + padding-left: 2px; + padding-right: 2px; + vertical-align: bottom; +} +TABLE.Ptolemy TD.text { + width: 420px; +} +TABLE.Ptolemy TD.text P { + margin-left: 1em; + text-indent: -1em; +} +TABLE.Ptolemy TR.alternate { + background-color: #ccffff ! important; +} +TABLE.Ptolemy TD.numbers { + width: 90px; +} + +TABLE.flexible { + table-layout: auto; + width: 100%; +} + +/*TABLE.padded: for making the table readable, cells not jammed together*/ +TABLE.padded TD { + padding-left: 12px; + padding-right: 12px; +} + +/*TABLE.rowspadded: separates the rows as well*/ +TABLE.rowspadded TD { + padding-top: 12px; + padding-left: 12px; + padding-right: 12px; +} + +TD.padded { + padding-left: 12px; + padding-right: 12px; +} + +TABLE.preface { + width: 600px; +/* WAS : + width: 576px; + ▸ If there's a reason for it, revert. . . + */ + background-color: #e9e9e9 ! important; + margin-left: auto; + margin-right: auto; + margin-top: 5em; + border-collapse: separate; + border-spacing: 1px; + border: 4px ridge #f6f6f6; + line-height: 1.5; +} + +TABLE.imageTEST { + border: 1px solid; + margin-left: auto; + margin-right: auto; + margin-top: 1em; + text-align: center; +} + + .imageTEST TR { + text-align: justify; + } + +TABLE.justify TD { + text-align: justify; +} + +TABLE.rubric { + width: 600px; + font-size: 85%; + margin-top: 2em; + margin-left: auto; + margin-right: auto; +} + + TABLE.rubric P.summary { + font-size: 85%; + margin-top: 3em; + margin-left: 0; + margin-right: 0; + text-indent: 0; + text-align: right; + } + + TABLE.rubric P.postsummary { + font-size: 85%; + margin-top: -.5em; + margin-left: 0; + margin-right: 0; + text-indent: 0; + text-align: right; + } + +.artist_catalog { + text-align: center; + background-color: #ffff66 ! important; + color: #00aaff ! important; + font-size: 80%; +} + + .artist_catalog A:link { + font-weight: bold; + color: #9922ff ! important; + } + + .artist_catalog H1 { + margin-top: .5em; + margin-bottom: .5em; + font-size: 120%; + font-weight: normal; + font-style: italic; + } + + .artist_catalog P { + margin-top: 0em; + margin-bottom: .7em; + } + + .artist_catalog .town { + color: #0040ff ! important; + } + + .artist_catalog .separator { + color: #ff3366 ! important; + } + +/* the "spaced" styles can be used for SPAN, and they will be uncentered*/ +/* if inside a justified class, they will also be uncentered */ +.slightly_condensed { + text-align: center; + letter-spacing: .05em; +} + +.condensed1 { + text-align: center; + letter-spacing: -.25em; +} + +.condensed2 { + text-align: center; + letter-spacing: -.5em; +} + +.slightly_spaced { + text-align: center; + letter-spacing: .25em; +} + +.spaced1 { + text-align: center; + letter-spacing: .5em; +} + +.spaced2 { + text-align: center; + letter-spacing: 1.0em; +} + +.spaced3 { + text-align: center; + letter-spacing: 1.5em; +} + +.spaced4 { + text-align: center; + letter-spacing: 2.0em; +} + +/* +The following style ("skipped") is used when I've temporarily skipped part of what ought to be a full webpage: + */ +.skipped { + margin-top: 5em; + text-align: center; + letter-spacing: 1.0em; + font-weight: bold; +} + +/* +The following style ("interlinear") is used to format running text with an interlinear translation. + +For explanation, see: +http://www.crosswire.org/~dmsmith/interlinear/ + +For use, see: +E/Gazetteer/Places/Europe/Italy/_Texts/HODIHI/2d_edition/1/NoteC*.html +and +E/Journals/ArtBulletin/41/1/Theodosius_or_Justinian*.html +*/ + +SPAN.interlinear SPAN { + float: left; + padding: 0 0.5em 0.5em 0; + text-align: center; +} +SPAN.interlinear SPAN SPAN { + float: none; + padding: 0; + display: block; +} +SPAN.interlinear SPAN SPAN SPAN { + display: inline; +} + +.Coptic { +/* Unicode range from 2C80 */ + font-family: Analecta, Aegyptus ! important; + color: #ff6600 ! important; /* matches .hieroglyphic */ + font-size: 100%; +} + .Coptic .emend { + color: #dd8833 ! important; + } + + .Coptic .emphasis { + color: #cc6600 ! important; + } + +.translit_Coptic { + color: #ff6600 ! important; /* matches .hieroglyphic */ +} + .translit_Coptic .emend { + color: #dd8833 ! important; + } + + .translit_Coptic .emphasis { + color: #cc6600 ! important; + } + +/* +The following style ("hieroglyphic") is STILL IN TEST based on "interlinear". +The sandbox is in + Thayer/hieroglyphic_sandbox.htm +altho also (imperfect and commented out) on + E/Gazetteer/Places/Africa/Egypt/_Topics/history/home.html + */ +SPAN.hieroglyphic { + color: #ff6600 ! important; /* matches .Coptic */ +} +SPAN.hieroglyphic SPAN { + float: left; + padding: 0; + text-align: center; +} +SPAN.hieroglyphic SPAN SPAN { + float: none; + padding: 0; + display: block; + line-height: 70%; +} +SPAN.hieroglyphic SPAN SPAN SPAN { + display: inline-block; +} + +SPAN.hieroglyphic SPAN SPAN.half1 { + line-height: 50%; +} +SPAN.hieroglyphic SPAN SPAN.half1 SPAN { + display: inline-block; +} + +SPAN.hieroglyphic SPAN SPAN.half1 SPAN .up1 { + vertical-align: 10%; +} +SPAN.hieroglyphic SPAN SPAN.half1 SPAN .up2 { + vertical-align: 20%; +} +SPAN.hieroglyphic SPAN SPAN.half1 SPAN .up3 { + vertical-align: 30%; +} +SPAN.hieroglyphic SPAN SPAN.half1 SPAN .up4 { + vertical-align: 40%; +} + +SPAN.hieroglyphic SPAN SPAN.half2 { + line-height: 50%; +} +SPAN.hieroglyphic SPAN SPAN.half2 SPAN { + display: inline-block; +} + +SPAN.hieroglyphic SPAN SPAN.third { + line-height: 33%; +} +SPAN.hieroglyphic SPAN SPAN.third SPAN { + display: inline-block; + padding-bottom: 50px; +} + + +/* +inline_hieroglyphic is used only one page, + E/Roman/Texts/Manetho/History_of_Egypt/1*.html +but successfully + (5 times: notes 2, 6, 49, 67, 72) +It has the advantage of returning correct search results in Google and on the displayed page: + */ + +SPAN.inline_hieroglyphic { + color: #ff6600 ! important; /* matches .Coptic */ + font-weight: bolder ! important; /* VERY important, else unreadable! */ + line-height: 1px; /* forces line height */ +} +SPAN.inline_hieroglyphic .up1 { + vertical-align: 3px; +} +SPAN.inline_hieroglyphic .up2 { + vertical-align: 6px; +} +SPAN.inline_hieroglyphic .up3 { + vertical-align: 9px; +} +SPAN.inline_hieroglyphic .up4 { + vertical-align: 12px; +} +SPAN.inline_hieroglyphic .up5 { + vertical-align: 15px; +} +SPAN.inline_hieroglyphic .up6 { + vertical-align: 18px; +} + +SPAN.inline_hieroglyphic .right1 { + position: relative; + right: -.4em; +} +SPAN.inline_hieroglyphic .right2 { + position: relative; + right: -.6em; +} +SPAN.inline_hieroglyphic .right3 { + position: relative; + right: -.8em; +} +SPAN.inline_hieroglyphic .right4 { + position: relative; + right: -1.0em; +} +SPAN.inline_hieroglyphic .right5 { + position: relative; + right: -1.2em; +} +SPAN.inline_hieroglyphic .right6 { + position: relative; + right: -1.4em; +} +SPAN.inline_hieroglyphic .right7 { + position: relative; + right: -1.6em; +} +SPAN.inline_hieroglyphic .left1 { + position: relative; + left: -.4em; +} +SPAN.inline_hieroglyphic .left2 { + position: relative; + left: -.6em; +} +SPAN.inline_hieroglyphic .left3 { + position: relative; + left: -.8em; +} +SPAN.inline_hieroglyphic .left4 { + position: relative; + left: -1.0em; +} +SPAN.inline_hieroglyphic .left5 { + position: relative; + left: -1.2em; +} +SPAN.inline_hieroglyphic .left6 { + position: relative; + left: -1.4em; +} +SPAN.inline_hieroglyphic .left7 { + position: relative; + left: -1.6em; +} +SPAN.inline_hieroglyphic .left8 { + position: relative; + left: -1.8em; +} +SPAN.inline_hieroglyphic .left9 { + position: relative; + left: -2.0em; +} +SPAN.inline_hieroglyphic .left10 { + position: relative; + left: -2.2em; +} + +/* +The following "quadrat" forms have not yet been used anywhere: + */ +SPAN.inline_hieroglyphic .quadrat { + display: inline-block; + text-align: center; +} + +SPAN.inline_hieroglyphic .quadrat .top { + line-height: 0.5; + vertical-align: text-top; +} + +SPAN.inline_hieroglyphic .quadrat .bottom { + line-height: 0.5; + vertical-align: baseline; +} + + + +/* +Semi-workaround for hieroglyphic used for now only in +E/Gazetteer/Places/Africa/Egypt/_Topics/history/home.html + */ +.hiero2 { + color: #ff6600 ! important; /* matches .Coptic */ +} +.hiero2 .all { + vertical-align: 0em; +} +.hiero2 .mid { + vertical-align: +.2em; +} +.hiero2 .half1 { + line-height: 0.5; + vertical-align: +.65em; +} +.hiero2 .half2 { + line-height: 0.5; + vertical-align: 0em; + position: relative; +/* + left: -0.55em; + */ +} +.skitter1 { + left: -0.55em; +} +.skitter2 { + left: -1.1em; +} + +.skitter3 { + left: -5em; +} + +.asterisks { + color: #0066cc ! important; + text-align: center; + letter-spacing: .5em; +} + +TR.gazetteer { + background-color: #99ffcc ! important; +} + +SPAN.map_callout { + font-family: Verdana, sans-serif; + text-transform: none; + background-color: #3300ff ! important; + color: #ffffff ! important; +} + +SPAN.map_callout_red { + font-family: Verdana, sans-serif; + text-transform: none; + background-color: #ff0000 ! important; + color: #ffffff ! important; +} + +SPAN.small_map_callout { + font-size: 60%; + font-family: Verdana, sans-serif; + text-transform: none; + vertical-align: +.2em; + background-color: #3300ff ! important; + color: #ffffff ! important; +} + +SPAN.small_map_callout_red { + font-size: 60%; + font-family: Verdana, sans-serif; + text-transform: none; + vertical-align: +.2em; + background-color: #ff0000 ! important; + color: #ffffff ! important; +} + +A { + text-decoration: none; + -webkit-hyphens: none; + -ms-hyphens: none; + hyphens: none; +} + +.verse_speaker { + position: absolute; + top: auto; + margin-left: -8.5em; + margin-bottom: .1em; + margin-top: .1em; + height: 0em; + font-size: .8rem; + font-style: italic; + font-family: Verdana, Ariel, Helvetica, sans-serif; + text-align: right; +} + +.speaker { + position: absolute; + top: auto; + margin-left: -4em; + margin-bottom: .1em; + margin-top: .1em; + height: 0em; + width: 3em; + font-size: .8rem; + font-style: italic; + font-family: Verdana, Ariel, Helvetica, sans-serif; + text-align: right; +} + .m1 .speaker { + position: absolute; + top: auto; + margin-left: -5em; + } + +.obelus { + position: absolute; + top: auto; + margin-left: -3.7em; + margin-bottom: 0em; + margin-top: .1em; + height: 0em; + width: 3em; + font-size: .7rem; + font-family: Verdana, Ariel, Helvetica, sans-serif; + text-align: right; +} + +.box { + width: 60%; + margin-left: auto; + margin-right: auto; + border: 1px solid; + padding: 2em; +} + +/* "multiline" styles are for creating multi-line brackets, parens, integrals, etc. */ +.multiline2 { + position: relative; +} + .multiline2 .sub { + position: absolute; + left: 0em; + bottom: -.4em; +} + .multiline2 .sup { + position: absolute; + left: 0em; + bottom: +.4em; +} + +.multiline3 { + position: relative; +} + + .multiline3 .sub { + position: absolute; + left: 0em; + bottom: -1em; +} + + .multiline3 .sup { + position: absolute; + left: 0em; + bottom: +1em; +} + +.multiline4 { + position: relative; +} + + .multiline4 .sup1 { + position: absolute; + left: 0em; + bottom: +1.5em; +} + + .multiline4 .sup2 { + position: absolute; + left: 0em; + bottom: +.6em; +} + + .multiline4 .sub3 { + position: absolute; + left: 0em; + bottom: -.6em; +} + + .multiline4 .sub4 { + position: absolute; + left: 0em; + bottom: -1.5em; +} + +.translation_flag { + position: absolute; + top: auto; + } + +.line1 { + margin-top: 0em; + margin-bottom: 0em; + margin-left: 2em; + margin-right: 1em; + text-indent: -1em; +} + + .line1 .translation_flag { + margin-left: -4em; + } + +.line2 { + margin-top: 0em; + margin-bottom: 0em; + margin-left: 3em; + margin-right: 2em; + text-indent: -1em; +} + + .line2 .translation_flag { + margin-left: -5em; + } + + .line2 .linenum { + margin-left: -6.4em; +} + + .line2 .obelus { + margin-left: -5.2em; +} + +.line3 { + margin-top: 0em; + margin-bottom: 0em; + margin-left: 4em; + margin-right: 3em; + text-indent: -1em; +} + + .line3 .translation_flag { + margin-left: -6em; + } + + .line3 .linenum { + margin-left: -7.8em; +} + + .line3 .obelus { + margin-left: -6.2em; +} + +.line4 { + margin-top: 0em; + margin-bottom: 0em; + margin-left: 5em; + margin-right: 4em; + text-indent: -1em; +} + + .line4 .translation_flag { + margin-left: -7em; + } + + .line4 .linenum { + margin-left: -8.5em; +} + + .line4 .obelus { + margin-left: -7.2em; +} + +.line5 { + margin-top: 0em; + margin-bottom: 0em; + margin-left: 6em; + margin-right: 5em; + text-indent: -1em; +} + + .line5 .translation_flag { + margin-left: -8em; + } + + .line5 .linenum { + margin-left: -9.5em; +} + + .line5 .obelus { + margin-left: -8.2em; +} + +.line6 { + margin-top: 0em; + margin-bottom: 0em; + margin-left: 7em; + margin-right: 6em; + text-indent: -1em; +} + + .line6 .translation_flag { + margin-left: -9em; + } + + .line6 .linenum { + margin-left: -10.5em; +} + + .line6 .obelus { + margin-left: -9.2em; +} + +.line7 { + margin-top: 0em; + margin-bottom: 0em; + margin-left: 8em; + margin-right: 7em; + text-indent: -1em; +} + + .line7 .translation_flag { + margin-left: -10em; + } + + .line7 .linenum { + margin-left: -11.5em; +} + + .line7 .obelus { + margin-left: -10.2em; +} + +.line8 { + margin-top: 0em; + margin-bottom: 0em; + margin-left: 9em; + margin-right: 8em; + text-indent: -1em; +} + + .line8 .translation_flag { + margin-left: -11em; + } + + .line8 .linenum { + margin-left: -12.5em; +} + + .line8 .obelus { + margin-left: -11.2em; +} + +.line9 { + margin-top: 0em; + margin-bottom: 0em; + margin-left: 10em; + margin-right: 9em; + text-indent: -1em; +} + + .line9 .translation_flag { + margin-left: -12em; + } + + .line9 .linenum { + margin-left: -13.5em; +} + + .line9 .obelus { + margin-left: -12.2em; +} + +.line10 { + margin-top: 0em; + margin-bottom: 0em; + margin-left: 11em; + margin-right: 10em; + text-indent: -1em; +} + + .line10 .translation_flag { + margin-left: -13em; + } + + .line10 .linenum { + margin-left: -14.5em; +} + + .line10 .obelus { + margin-left: -13.2em; +} + +.startline1 { + margin-top: 1.5em; + margin-bottom: 0em; + margin-left: 2em; + margin-right: 1em; + text-indent: -1em; +} + + .startline1 .translation_flag { + margin-left: -4em; + } + +.startline2 { + margin-top: 1.5em; + margin-bottom: 0em; + margin-left: 3em; + margin-right: 2em; + text-indent: -1em; +} + + .startline2 .translation_flag { + margin-left: -5em; + } + + .startline2 .linenum { + margin-left: -6.5em; +} + + .startline2 .obelus { + margin-left: -5.2em; +} + +.alert { + background-color: #ffff66 ! important; + color: #ff0000 ! important; + font-style: italic; +} + .alert A:link { + font-weight: bold; + color: #0000ff ! important; + } + .alert A:visited { + font-weight: bold; + color: #0000ff ! important; + } + .alert A:hover { + font-weight: bold; + color: #0000ff ! important; + } + .alert A:active { + font-weight: bold; + color: #0000ff ! important; + } + +.apparatus { + font-style: italic; +} + + .apparatus I { + font-style: normal; + font-size: 90%; + } + + .apparatus .Latin { + font-style: normal; + font-size: 95%; + } + + .apparatus .Greek { + font-style: normal; + } + + .apparatus .manuscript { + font-style: normal; + } + +.attention { + color: #ff0000 ! important; + font-style: italic; +} + +.center { + text-align: center; +} + +.crux { + background-color: #ffff66 ! important; + color: #ff0000 ! important; + vertical-align: top; + font-size: 80%; + font-style: normal; +} + .crux A:link { + font-weight: bold; + color: #0000ff ! important; + } + .crux A:visited { + font-weight: bold; + color: #0000ff ! important; + } + .crux A:hover { + font-weight: bold; + color: #0000ff ! important; + } + .crux A:active { + font-weight: bold; + color: #0000ff ! important; + } + + +.disordered_section { + text-align: center; + font-size: 85%; + font-style: italic; + background-color: #ccffff ! important; +} + +/* +syntax: 12 + */ +.stacked_fraction { + display: inline-block; + text-align: center; + font-size: 40%; + padding-left: 4px; +} + +.stacked_fraction .top { + padding-left: 4px; + text-decoration: underline; +} + +.stacked_fraction .bottom { + padding-left: 4px; + line-height: 0.6; + display: block; +} + +/* +syntax: 1/2 + */ +.fraction { + font-size: 60%; + vertical-align: middle; +} + +.fraction .top { + vertical-align: 25%; +} + +.fraction .bottom { + vertical-align: -10%; +} + +.inscription { + font-family: Verdana, sans-serif; + font-size: 80%; + line-height: 1.875; /* normal line height of 1.5 × (100%/80%) */ + -webkit-hyphens: none; + -ms-hyphens: none; + hyphens: none; +} + + .inscription .superscript { + font-size: 50%; + vertical-align: top; + } + +.kaput { + color: #666666 ! important; +} + +.lapis { + font-family: Verdana, sans-serif; + font-size: 80%; + color: #990000 ! important; + line-height: 1.5; +} + + .lapis .superscript { + font-size: 50%; + vertical-align: top; + } + + .lapis .emend { + color: #ee6633 ! important; + } + +.ligature { + color: #006666 ! important; +} + +.manuscript { + color: #000066 ! important; + font-family: Arial, sans-serif; + font-style: normal; + font-weight: bold; + font-size: 75%; +} + +.notice { + color: #003300 ! important; +} + +.offlinks { + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-size: 112%; + font-weight: bold; +} + +.Old_English { + text-transform: none; + font-family: Canterbury, "Cloister Black", Cimbrian, Raubtier, Lancaster, Augusta, Rochester, PaladinFLF, "Kleukens-Fraktur", "Palatino Linotype", Palatino, "Arial Unicode Ms", "Titus Cyberbit Basic", "Lucida Sans Unicode", serif, sans-serif ! important; +} + +.override_link { + color: #99ffff ! important; +} + +.overstrike { + text-decoration: line-through; +} + +.Palatino10 { + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-size: 69%; +} + +.bypass { +/* +same color as: poor_reading + */ + color: #999999 ! important; +} + + .Greek .bypass { + color: #ddc085 ! important; + } + + .Latin .bypass { + color: #999999 ! important; + } + +.poor_reading { +/* +same color as: bypass + */ + color: #999999 ! important; + text-decoration: line-through; +} + + .Greek .poor_reading { + color: #ddc085 ! important; + } + + .Latin .poor_reading { + color: #999999 ! important; + } + +.Roman { + color: #ff40c5 ! important; +} + +.site_summary { + font-family: sans-serif; + font-weight: normal; + font-size: 56%; +} + +.source { + color: #006600 ! important; +} + + .source .emend { + color: #119955 ! important; + } + + .source .Italian { + color: #002200 ! important; + } + + .source .source { + color: #002200 ! important; + } + +.Spanish { + color: #778800 ! important; +} + + .Spanish .emend { + color: #119955 ! important; + } + + .Spanish .source { + color: #002200 ! important; + } + +.superheading { + margin-top: 5em; + font-weight: bold; + text-transform: uppercase; + color: #009900 ! important; +} + +.two_links { +/* +for format, see +E/Gazetteer/Places/America/United_States/_Topics/history/_Texts/LESUSC/Bibliography*.html + */ + background-color: #f5d6e9 !important; + border-radius: 10% !important; + padding-top: 3px !important; + padding-bottom: 1px !important; + padding-left: 5px !important; + padding-right: 5px !important; + display: inline; + overflow: hidden; + white-space: nowrap; + + color: #00ff00 !important; + font-size: .6rem !important; + vertical-align: 1px; +} + .two_links A:link { + font-weight: bold; + color: #0000ff ! important; + } + .two_links A:visited { + font-weight: bold; + color: #ff0000 ! important; + } + .two_links A:hover { + font-weight: bold; + color: #ff00ff ! important; + } + +.whole { + -webkit-hyphens: none; + -ms-hyphens: none; + hyphens: none; +} + +.xURL { + font-family: Monaco, Consolas; +} + +.disclaimer_bar { + margin-top: 0em; + margin-bottom: 0em; + font-family: Verdana, Ariel, Helvetica, sans-serif; + font-size: 60%; + text-align: center; + background-color: #000000 ! important; + color: #ffff33 ! important; +} + + .disclaimer_bar P { + margin-top: 0em; + margin-bottom: 0em; + } + +.help_bar { + margin-top: 0em; + margin-bottom: 0em; + font-family: Verdana, Ariel, Helvetica, sans-serif; + font-size: 60%; + text-align: center; + background-color: #478acc ! important; + color: #ffffff ! important; +} + + .help_bar P { + margin-bottom: 1.5em; + } + + .help_bar A:link { + color: #ffff00 ! important; + font-style: italic; + font-weight: bold; + } + + .help_bar A:visited { + color: #ff6600 ! important; + font-style: italic; + font-weight: bold; + } + + .help_bar I { + line-height: .6; + font-size: 120%; + font-style: normal; + font-weight: bold; + color: #ff99cc ! important; + } + + .help_bar .asterisk { + line-height: .7; + font-size: 140%; + font-style: normal; + font-weight: bold; + color: #ff99cc ! important; + vertical-align: bottom; + } + +.high_alert { + background-color: #ffff33 ! important; + color: #ff0000 ! important; +} + +.left { + text-align: left; +} + +.right { + text-align: right; +} + +.a0 { + margin-bottom: 0em; +} + +.a1 { + margin-bottom: 1em; +} + +.a2 { + margin-bottom: 5em; +} + +.reduced_leading { + margin-top: -.7em; +} + +/* Jun 2017: used only in HALAHS */ +.strip { + margin-bottom: .3em; +} + +.b0 { + margin-top: 0em; +} + +.b1 { + margin-top: 1em; +} + +.nudge { + margin-top: 0.25em; +} + +.halfstart { + margin-top: 1.5em; +} + +.minirubric { + margin-top: 1.85em; +} + +.start { + margin-top: 3em; +} + +.start2 { + margin-top: 5em; +} + +.start3 { + margin-top: 7em; +} + +.halfafter { + margin-bottom: 1.5em; +} + +.after { + margin-bottom: 3em; +} + +.after2 { + margin-bottom: 5em; +} + +.after3 { + margin-bottom: 7em; +} + +.drop5 { + margin-top: 5px; +} + +.critical_note { + text-align: justify; + font-style: italic; +} + + .critical_note I { + font-style: normal; /*(don't italicize)*/ + } + + .critical_note .Latin { + font-style: normal; + color: #990000 ! important; + } + + .critical_note .Greek { + font-style: normal; + } + + .critical_note .manuscript { + font-style: normal; + } + +A.left_margin_ref { + position: absolute; + top: auto; + left: +6em; + text-align: right; + font-family: Verdana, sans-serif; + font-style: normal; + font-size: .58rem; + font-weight: bold; + text-transform: none; + color: #0000ff ! important; + vertical-align: super; +} +A.left_margin_ref:link { + text-decoration: none; + color: #0077cc ! important; +} +A.left_margin_ref:visited { + text-decoration: none; + color: #ff0000 ! important; +} +A.left_margin_ref:hover { + text-decoration: none; + color: #ff0000 ! important; + background-color: #ffff00 ! important; +} + +.running_title { + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + position: absolute; + top: auto; + width: 90px; + left: +65px; + text-align: center; + font-style: normal; + font-weight: normal; + text-transform: none; + font-variant: normal; + font-size: 15px; + line-height: 1.2; +} + +.my_running_title { + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + position: absolute; + top: auto; + width: 90px; + left: +65px; + text-align: center; + font-size: .60rem; + font-style: italic; + font-weight: normal; + text-transform: none; + font-variant: normal; + line-height: 1.4; + +/* + color matches .emend + */ + +/* +Inside the style, open with a command-space in style "larger", like this: +  +which drops the title down for appearance + */ +} + +.scribal_heading { + margin-top: 3.5em; + margin-left: 3em; + text-indent: -3em; + text-align: justify; + font-size: 90%; + font-style: italic; +} + +.i1 { + text-indent: 1em; +} + +.i1 .running_title { + text-indent: 0; +} + +.i2 { + text-indent: 2em; +} + +.i3 { + text-indent: 3em; +} + +.i4 { + text-indent: 4em; +} + +.i5 { + text-indent: 5em; +} + +.i6 { + text-indent: 6em; +} + +.i7 { + text-indent: 7em; +} + +.i8 { + text-indent: 8em; +} + +.i9 { + text-indent: 9em; +} + +.i10 { + text-indent: 10em; +} + +.i11 { + text-indent: 11em; +} + +.i12 { + text-indent: 12em; +} + +.i13 { + text-indent: 13em; +} + +.i14 { + text-indent: 14em; +} + +.i15 { + text-indent: 15em; +} + +.i16 { + text-indent: 16em; +} + +.i17 { + text-indent: 17em; +} + +.i18 { + text-indent: 18em; +} + +.justify { + text-align: justify; +} + +.justified { + text-align: justify; +} + +.L1 { + margin-left: 1em; +} + +.L2 { + margin-left: 2em; +} + +.L3 { + margin-left: 3em; +} + +.L4 { + margin-left: 4em; +} + +.L5 { + margin-left: 5em; +} + +.L6 { + margin-left: 6em; +} + +.L7 { + margin-left: 7em; +} + +.L8 { + margin-left: 8em; +} + +.L9 { + margin-left: 9em; +} + +.L10 { + margin-left: 10em; +} + +.L11 { + margin-left: 11em; +} + +.L12 { + margin-left: 12em; +} + +.L13 { + margin-left: 13em; +} + +.L14 { + margin-left: 14em; +} + +.L15 { + margin-left: 15em; +} + +.L16 { + margin-left: 16em; +} + +.L17 { + margin-left: 17em; +} + +.L18 { + margin-left: 18em; +} + +.L19 { + margin-left: 19em; +} + +.L20 { + margin-left: 20em; +} + +.r1 { + margin-right: 1em; + text-align: right; +} + +.r2 { + margin-right: 2em; + text-align: right; +} + +.r3 { + margin-right: 3em; + text-align: right; +} + +.r4 { + margin-right: 4em; + text-align: right; +} + +.r5 { + margin-right: 5em; + text-align: right; +} + +.r6 { + margin-right: 6em; + text-align: right; +} + +.r7 { + margin-right: 7em; + text-align: right; +} + +.r8 { + margin-right: 8em; + text-align: right; +} + +.r9 { + margin-right: 9em; + text-align: right; +} + +.r10 { + margin-right: 10em; + text-align: right; +} + +.r11 { + margin-right: 11em; + text-align: right; +} + +.r12 { + margin-right: 12em; + text-align: right; +} + +.r13 { + margin-right: 13em; + text-align: right; +} + +.r14 { + margin-right: 14em; + text-align: right; +} + +.r15 { + margin-right: 15em; + text-align: right; +} + +.r16 { + margin-right: 16em; + text-align: right; +} + +.r17 { + margin-right: 17em; + text-align: right; +} + +.r18 { + margin-right: 18em; + text-align: right; +} + +.r19 { + margin-right: 19em; + text-align: right; +} + +.r20 { + margin-right: 20em; + text-align: right; +} + +.pushright1j { + margin-left: 1em; + text-align: justify; +} + +.pushright2j { + margin-left: 2em; + text-align: justify; +} + +.pushright3j { + margin-left: 3em; + text-align: justify; +} + +.pushright4j { + margin-left: 4em; + text-align: justify; +} + +.pushright5j { + margin-left: 5em; + text-align: justify; +} + +.pushright6j { + margin-left: 6em; + text-align: justify; +} + +.pushright7j { + margin-left: 7em; + text-align: justify; +} + +.pushright8j { + margin-left: 8em; + text-align: justify; +} + +.m1 { + margin-left: 1em; + margin-right: 1em; +} + +.b0m1j { +/* used for "b0 m1 justify" inside overLib boxes where quotes can't be used, as in the signatures of Britannica articles. +The other workaround is to use quotes, calling them " */ + margin-top: 0em; + margin-left: 1em; + margin-right: 1em; + text-align: justify; +} + +.m2 { + margin-left: 2em; + margin-right: 2em; +} + +.m3 { + margin-left: 3em; + margin-right: 3em; +} + +.m4 { + margin-left: 4em; + margin-right: 4em; +} + +.m5 { + margin-left: 5em; + margin-right: 5em; +} + +.m6 { + margin-left: 6em; + margin-right: 6em; +} + +.m7 { + margin-left: 7em; + margin-right: 7em; +} + +.m8 { + margin-left: 8em; + margin-right: 8em; +} + +.m9 { + margin-left: 9em; + margin-right: 9em; +} + +.m10 { + margin-left: 10em; + margin-right: 10em; +} + +.m11 { + margin-left: 11em; + margin-right: 11em; +} + +.m12 { + margin-left: 12em; + margin-right: 12em; +} + +.m13 { + margin-left: 13em; + margin-right: 13em; +} + +.m14 { + margin-left: 14em; + margin-right: 14em; +} + +.m15 { + margin-left: 15em; + margin-right: 15em; +} + +.m16 { + margin-left: 16em; + margin-right: 16em; +} + +.m17 { + margin-left: 17em; + margin-right: 17em; +} + +.m18 { + margin-left: 18em; + margin-right: 18em; +} + +.m19 { + margin-left: 19em; + margin-right: 19em; +} + +.m20 { + margin-left: 20em; + margin-right: 20em; +} + +.x1 { + margin-left: 1em; + text-indent: -1em; +} + +.x2 { + margin-left: 2em; + text-indent: -2em; +} + +.x3 { + margin-left: 3em; + text-indent: -3em; +} + +.x4 { + margin-left: 4em; + text-indent: -4em; +} + +.x5 { + margin-left: 5em; + text-indent: -5em; +} + +.x6 { + margin-left: 6em; + text-indent: -6em; +} + +.x7 { + margin-left: 7em; + text-indent: -7em; +} + +.x8 { + margin-left: 8em; + text-indent: -8em; +} + +.x9 { + margin-left: 9em; + text-indent: -9em; +} + +.x10 { + margin-left: 10em; + text-indent: -10em; +} + +.m1x1 { + margin-left: 2em; + margin-right: 1em; + text-indent: -1em; +} + +.m1x2 { + margin-left: 3em; + margin-right: 1em; + text-indent: -2em; +} + +.m1x3 { + margin-left: 4em; + margin-right: 1em; + text-indent: -3em; +} + +.m1x4 { + margin-left: 5em; + margin-right: 1em; + text-indent: -4em; +} + +.m1x5 { + margin-left: 6em; + margin-right: 1em; + text-indent: -5em; +} + +.m1x6 { + margin-left: 7em; + margin-right: 1em; + text-indent: -6em; +} + +.m1x7 { + margin-left: 8em; + margin-right: 1em; + text-indent: -7em; +} + +.m1x8 { + margin-left: 8em; + margin-right: 1em; + text-indent: -9em; +} + +.m2x1 { + margin-left: 3em; + margin-right: 2em; + text-indent: -1em; +} + +.m2x2 { + margin-left: 4em; + margin-right: 2em; + text-indent: -2em; +} + +.m2x3 { + margin-left: 5em; + margin-right: 2em; + text-indent: -3em; +} + +.m2x4 { + margin-left: 6em; + margin-right: 2em; + text-indent: -4em; +} + +.m3x1 { + margin-left: 4em; + margin-right: 2em; + text-indent: -1em; +} + +.m3x2 { + margin-left: 5em; + margin-right: 2em; + text-indent: -2em; +} + +.m3x3 { + margin-left: 6em; + margin-right: 2em; + text-indent: -3em; +} + +.m3x4 { + margin-left: 7em; + margin-right: 2em; + text-indent: -4em; +} + +.m4x1 { + margin-left: 5em; + margin-right: 2em; + text-indent: -1em; +} + +.m4x2 { + margin-left: 6em; + margin-right: 2em; + text-indent: -2em; +} + +.m4x3 { + margin-left: 7em; + margin-right: 2em; + text-indent: -3em; +} + +.m4x4 { + margin-left: 8em; + margin-right: 2em; + text-indent: -4em; +} + +.m5x1 { + margin-left: 6em; + margin-right: 2em; + text-indent: -1em; +} + +.m5x2 { + margin-left: 7em; + margin-right: 2em; + text-indent: -2em; +} + +.m5x3 { + margin-left: 8em; + margin-right: 2em; + text-indent: -3em; +} + +.m6x1 { + margin-left: 7em; + margin-right: 2em; + text-indent: -1em; +} + +.m6x2 { + margin-left: 8em; + margin-right: 2em; + text-indent: -2em; +} + +.m6x3 { + margin-left: 9em; + margin-right: 2em; + text-indent: -3em; +} + +.m7x1 { + margin-left: 8em; + margin-right: 2em; + text-indent: -1em; +} + +.m7x2 { + margin-left: 9em; + margin-right: 2em; + text-indent: -2em; +} + +.m7x3 { + margin-left: 10em; + margin-right: 2em; + text-indent: -3em; +} + +.m8x1 { + margin-left: 9em; + margin-right: 2em; + text-indent: -1em; +} + +.m8x2 { + margin-left: 10em; + margin-right: 2em; + text-indent: -2em; +} + +.m8x3 { + margin-left: 11em; + margin-right: 2em; + text-indent: -3em; +} + +.m9x1 { + margin-left: 10em; + margin-right: 2em; + text-indent: -1em; +} + +.m9x2 { + margin-left: 11em; + margin-right: 2em; + text-indent: -2em; +} + +.m9x3 { + margin-left: 12em; + margin-right: 2em; + text-indent: -3em; +} + +.m10x1 { + margin-left: 11em; + margin-right: 2em; + text-indent: -1em; +} + +.m10x2 { + margin-left: 12em; + margin-right: 2em; + text-indent: -2em; +} + +.m10x3 { + margin-left: 13em; + margin-right: 2em; + text-indent: -3em; +} + +.m11x1 { + margin-left: 12em; + margin-right: 2em; + text-indent: -1em; +} + +.m11x2 { + margin-left: 13em; + margin-right: 2em; + text-indent: -2em; +} + +.m11x3 { + margin-left: 14em; + margin-right: 2em; + text-indent: -3em; +} + +.m12x1 { + margin-left: 13em; + margin-right: 2em; + text-indent: -1em; +} + +.m12x2 { + margin-left: 14em; + margin-right: 2em; + text-indent: -2em; +} + +.m12x3 { + margin-left: 15em; + margin-right: 2em; + text-indent: -3em; +} + +.m13x1 { + margin-left: 14em; + margin-right: 2em; + text-indent: -1em; +} + +.m13x2 { + margin-left: 15em; + margin-right: 2em; + text-indent: -2em; +} + +.m13x3 { + margin-left: 16em; + margin-right: 2em; + text-indent: -3em; +} + +.m14x1 { + margin-left: 15em; + margin-right: 2em; + text-indent: -1em; +} + +.m14x2 { + margin-left: 16em; + margin-right: 2em; + text-indent: -2em; +} + +.m14x3 { + margin-left: 17em; + margin-right: 2em; + text-indent: -3em; +} + +.m15x1 { + margin-left: 16em; + margin-right: 2em; + text-indent: -1em; +} + +.m15x2 { + margin-left: 17em; + margin-right: 2em; + text-indent: -2em; +} + +.m15x3 { + margin-left: 18em; + margin-right: 2em; + text-indent: -3em; +} + +.linenum0 { + font-size: 70%; + font-family: Verdana, Ariel, Helvetica, sans-serif; +} + +.linenum { + position: absolute; + top: auto; + margin-left: -5em; + margin-bottom: 0em; + margin-top: .1em; + height: 0em; + width: 3em; + font-size: .70rem; + font-family: Verdana, Ariel, Helvetica, sans-serif; + text-align: right; +} + +.verse1 { + margin-top: 0em; + margin-bottom: 0em; + margin-left: 2em; + text-indent: -2em; +} + +.verse2 { + margin-top: 0em; + margin-bottom: 0em; + margin-left: 4em; + text-indent: -2em; +} + +.verse3 { + margin-top: 0em; + margin-bottom: 0em; + margin-left: 6em; + text-indent: -2em; +} + +.verse4 { + margin-top: 0em; + margin-bottom: 0em; + margin-left: 8em; + text-indent: -2em; +} + +.verse5 { + margin-top: 0em; + margin-bottom: 0em; + margin-left: 10em; + text-indent: -2em; +} + +.verse6 { + margin-top: 0em; + margin-bottom: 0em; + margin-left: 12em; + text-indent: -2em; +} + +.verse7 { + margin-top: 0em; + margin-bottom: 0em; + margin-left: 14em; + text-indent: -2em; +} + +.verse8 { + margin-top: 0em; + margin-bottom: 0em; + margin-left: 16em; + text-indent: -2em; +} + +.verse9 { + margin-top: 0em; + margin-bottom: 0em; + margin-left: 18em; + text-indent: -2em; +} + +.verse10 { + margin-top: 0em; + margin-bottom: 0em; + margin-left: 20em; + text-indent: -2em; +} + +.verse11 { + margin-top: 0em; + margin-bottom: 0em; + margin-left: 22em; + text-indent: -2em; +} + +.verse12 { + margin-top: 0em; + margin-bottom: 0em; + margin-left: 24em; + text-indent: -2em; +} + +.bland { + color: #000066 ! important; +} + + .mynote .bland { + color: #000066 ! important; + } + +.bland I { + color: #000066 ! important; +} + +.bland A I { + color: #ff0000 ! important; +} + +.blank { + border-bottom: 1px solid; + white-space:pre; +} + +.blank1 { + width: 20px; + height: 15px; + border-bottom: 1px solid; + white-space:pre; +} + +.blank2 { + width: 50px; + height: 15px; + border-bottom: 1px solid; + white-space:pre; +} + +.empty { + white-space:pre; +} + +.caps { + text-transform: uppercase; +} + +.lowcaps { + font-size: 85%; + text-transform: uppercase; +} + .prose .lowcaps { + word-spacing: 5px; + } + +.lowercase { + text-transform: lowercase; +} + +.no_transform { + text-transform: none; +} + +.telegram { + font-family: Verdana, sans-serif; + font-size: 80%; + line-height: 1.875; /* normal line-height (1.5) divided by font-size 80%: this keeps the line spacing even */ + text-transform: uppercase; +} + .telegram .outquote { + text-transform: none; + } + +.constrained { + line-height: 100%; +} + +.constrained110 { + line-height: 110%; +} + +.constrained90 { + line-height: 90%; +} + +.constrained80 { + line-height: 80%; +} + +.bold { + font-weight: bold; +} + +.italic { + font-style: italic; +} + + .italic I { + font-style: normal; + font-size: 90%; + } + +.normal { + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-size: 100%; + font-style: normal; + font-weight: normal; + text-transform: none; + font-variant: normal; +} + +.thin { + font-weight: normal; +} + +.usual { + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; +} + +.exergue { + margin-top: 6em; + margin-bottom: 3em; + margin-left: 200px; + font-size: 85%; + text-align: justify; +} + +.exergue_left { + margin-top: 6em; + margin-bottom: 3em; + margin-right: 300px; + font-size: 85%; + text-align: justify; +} + +.synopsis { + margin-top: -1.5em; + margin-bottom: 3em; + font-size: 85%; + font-style: italic; + text-align: justify; +} + +/* After the signature block, insert

: See +E/Gazetteer/People/Holden_Evans/Fight_for_a_Better_Navy/2/8*.html#signature_block_example + */ +.signature_block { + float: right; +/* + margin-right: 0px; + */ +} + +.no_float { + clear: both; +} + +.signature_nonce { /* used on only 2 pages */ + position: absolute; + width: 20em; + right: +7em; +} + +/*the "pagenum" styles are linked to the style "poppy"*/ +.pagenum { + position: absolute; +/* +It is positioned relative to the ancestor block, so for style "verse/exquotemark" it requires "PAGENUM WORKAROUND", below. +*/ + top: auto; + right: +1.5em; + width: 70px; + text-align: right; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-style: normal; + font-weight: normal; + text-transform: none; + font-variant: normal; + letter-spacing: normal; + font-size: small; + color: #ff3300 ! important; +} + + .pagenum .Latin { + color: #990000 ! important; + } + + +/* +"pagenum_right" is identical with "pagenum"; Cullum's "pagenum" defaults to LEFT +*/ +.pagenum_right { + position: absolute; + top: auto; + right: +1.5em; + text-align: right; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-style: normal; + font-weight: normal; + text-transform: none; + font-variant: normal; + font-size: small; + color: #ff3300 ! important; +} + +.pagenum_left { + position: absolute; + top: auto; + left: +4.5em; + text-align: left; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-style: normal; + font-weight: normal; + text-transform: none; + font-variant: normal; + font-size: small; + color: #ff3300 ! important; +} + +.i1 .pagenum_left { + left: +3.5em; +} + +.pagenum1 { + position: absolute; + top: auto; + right: +1.5em; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-style: italic; + font-weight: normal; + text-transform: none; + font-variant: normal; + font-size: small; + color: #ff3300 ! important; +} + +.pagenumPassed { + position: absolute; + top: auto; + right: +1.5em; + width: 70px; + text-align: right; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-style: normal; + font-weight: normal; + text-transform: none; + font-variant: normal; + font-size: .75rem; + color: #ff3300 ! important; +} + +/*the color of "poppy" style should be the same as that of the main "pagenum" styles*/ +.poppy { + color: #ff3300 ! important; +} + +.pagenum_doc { + position: absolute; + top: auto; + left: +1.5em; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-style: italic; + font-weight: normal; + text-transform: none; + font-variant: normal; + font-size: .81rem; + color: #ff6666 ! important; +} + +.blankpage { + position: absolute; + top: auto; + right: +1.5em; + width: 120px; + text-align: right; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-size: 60%; + font-style: normal; + font-weight: normal; + text-transform: none; + font-variant: normal; + letter-spacing: normal; + font-size: small; + color: #ff3300 ! important; +} + +.versenum { + position: absolute; + top: auto; + right: 25%; + text-align: right; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-style: normal; + font-variant: normal; + font-size: .70rem; + text-transform: none; + font-weight: normal; + letter-spacing: normal; + color: #bf0000 ! important; +} + +.sourceverse { + line-height: 1.5; + margin-left: 2em; + margin-right: 2em; +} + +.sourceverse P { + margin-top: 0em; + margin-bottom: 0em; + margin-left: 3em; + margin-right: 3em; + text-indent: -3em; +} + +.sourceverse P.i1 { + margin-left: 4em; +} + +.question { + margin-top: 2em; + text-align: justify; + font-style: italic; +} + +.answer { + text-align: justify; + margin-left: 3em; +} + +.searchand { + color: #006600 ! important; + font-weight: bold; +} + +.searchandGreek { + font-family: "Lucida Grande", "Palatino Linotype", "Arial Unicode Ms", "Titus Cyberbit Basic", "Lucida Sans Unicode", sans-serif ! important; + color: #996600 ! important; + font-weight: bold; +} + +.searchandLatin { + color: #990000 ! important; + font-weight: bold; +} + +.citation { + font-family: Verdana, sans-serif; + font-size: 75%; + font-variant: normal; +} + +.editor { + color: #000066 ! important; + font-family: Arial, sans-serif; + font-style: normal; + font-weight: bold; + font-size: 75%; + font-variant: small-caps; +} + +.editor_comment { + color: #000066 ! important; + font-family: Arial, sans-serif; + font-style: italic; +} + +.error { + color: #ff0000 ! important; + font-weight: bold; +} + +.entry { + font-weight: bold; + font-variant: small-caps; +} + +P.excerptor { + margin-top:-1.3em; + margin-bottom:2em; + text-align: right; + font-size: 75%; +} + +/* keep LVHA order: */ +/* A:link, A:visited, A:hover, A:active */ +A.fort:link { + color: #5555cc !important; + border-bottom: dotted #ffff99; +} + +A.fort:visited { + color: #CC4400 !important; + border-bottom: dotted #edddcc; +} + .mynote A.fort:visited { + color: #990000 ! important; + border-bottom: dotted #990000; + } + .mynoteWide A.fort:visited { + color: #990000 ! important; + border-bottom: dotted #990000; + } + +A.fort:hover { + color: #edddcc !important; + border-bottom: dotted #edddcc; +} + .mynote A.fort:hover { + color: #edddcc ! important; + border-bottom: dotted #edddcc; + } + .mynoteWide A.fort:hover { + color: #edddcc ! important; + border-bottom: dotted #edddcc; + } + +A.fort:active { + color: #edddcc !important; + border-bottom: dotted #edddcc; +} + .mynote A.fort:active { + color: #edddcc ! important; + border-bottom: dotted #edddcc; + } + .mynoteWide A.fort:active { + color: #edddcc ! important; + border-bottom: dotted #edddcc; + } + +.Greek_entry { + font-family: "Avdira", "Titus Cyberbit Basic", serif ! important; + font-weight: bold; +} + +.entry0 { +/* used only in NEW */ + text-align: justify; + font-size: 120%; + font-weight: bold; +} + + .entry0 .start { +/* THIS DOESN'T WORK. "start" only works because the style is defined elsewhere, as I can see if I rename it. Renaming "entry0" to something without the terminal number doesn't help. The CSS checked out at W3C. + + THIS IS WHY I HAVE THE STYLE "entry00", which does work. +*/ + color: #339900 ! important; + margin-top: 3em; + } + +.entry00 { +/* used only in NEW */ + text-align: justify; + font-size: 120%; + font-weight: bold; + color: #339900 ! important; + margin-top: 3em; +} + .entry00 A { + color: #00FF00 ! important; /* THIS DOESN'T WORK. */ + } + +.entry1 { + color: #cc6633 ! important; + font-weight: bold; + font-family: Verdana, Ariel, Helvetica, sans-serif; +} + +.goof { + color: #ff0000 ! important; + font-weight: bold; +} + +.nocaps { + font-variant: normal; +} + +.railroad_symbol { + color: #990000 ! important; + font-family: Arial, sans-serif; + font-style: normal; + font-weight: bold; +} + +.smallcaps { + font-variant: small-caps; +} + +.larger .smallcaps { + font-variant: normal; + text-transform: uppercase; +} + +.prose .smallcaps { + font-family: Fontin_Sans_SC, sans-serif; + letter-spacing: .06em; +/* FOR DEBUG, TOGGLE THE NEXT LINE ON/OFF: */ + +/* color: #ff6600 ! important; */ +} + +/* used rather little so far: see for example +E/Gazetteer/Places/Europe/Italy/Umbria/Terni/Acquasparta/Acquasparta/home.html*/ +.gazetteer_link { + font-variant: small-caps; +} + +.WebRef { + font-family: Verdana, sans-serif; + font-size: 90%; + color: #ff6600 ! important; +} + +/* keep LVHA order: */ +/* A:link, A:visited, A:hover, A:active */ +A:link { + color: #0000ff ! important; +} +/* + A:link I { + color: #0000ff ! important; + } + */ + + A:link IMG { + border-width: 1px; + } + +A:visited { + color: #cc0000 ! important; +} + +A:hover { + color: #ff00ff ! important; +} + +A:active { + color: #ff00ff ! important; +} + +A:link IMG.alias0 { + border-width: 1px; + border-style: dotted; + width: 279px; + height: 186px; + margin: 5px; +} + +A:link IMG.alias1 { + border-width: 1px; + border-style: solid; + width: 279px; + height: 186px; + margin: 5px; +} + +A:link IMG.alias2 { + border-width: 2px; + border-style: solid; + width: 279px; + height: 186px; + margin: 4px; +} + +A:link IMG.alias4 { + border-width: 4px; + border-style: solid; + width: 279px; + height: 186px; + margin: 2px; +} + +A:link IMG.icon0 { + border-width: 1px; + border-style: dotted; + width: 132px; + height: 88px; + margin-top: 10px; + margin-bottom: 5px; + margin-left: 5px; + margin-right: 5px; +} + +A:link IMG.icon1 { + border-width: 1px; + border-style: solid; + width: 132px; + height: 88px; + margin-top: 10px; + margin-bottom: 5px; + margin-left: 5px; + margin-right: 5px; +} + +A:link IMG.icon2 { + border-width: 2px; + border-style: solid; + width: 132px; + height: 88px; + margin-top: 11px; + margin-bottom: 4px; + margin-left: 4px; + margin-right: 4px; +} + +A:link IMG.icon4 { + border-width: 4px; + border-style: solid; + width: 132px; + height: 88px; + margin-top: 13px; + margin-bottom: 2px; + margin-left: 2px; + margin-right: 2px; +} + +A:link IMG.rubric0 { + border-width: 1px; + border-style: dotted; + width: 132px; + height: 88px; + margin-left: 15px; + margin-right: 15px; +} + +A:link IMG.rubric1 { + border-width: 1px; + border-style: solid; + width: 132px; + height: 88px; + margin-left: 15px; + margin-right: 15px; +} + +A:link IMG.rubric2 { + border-width: 2px; + border-style: solid; + width: 132px; + height: 88px; + margin-left: 14px; + margin-right: 14px; +} + +A:link IMG.rubric4 { + border-width: 4px; + border-style: solid; + width: 132px; + height: 88px; + margin-left: 12px; + margin-right: 12px; +} + +A:link IMG.minirubric1 { + border-width: 1px; + border-style: solid; + width: 60px; + height: 40px; + margin-left: 87px; + margin-right: 15px; +} + +A:link IMG.minirubric2 { + border-width: 2px; + border-style: solid; + width: 60px; + height: 40px; + margin-left: 86px; + margin-right: 14px; +} + +A:link IMG.minirubric4 { + border-width: 4px; + border-style: solid; + width: 60px; + height: 40px; + margin-left: 84px; + margin-right: 12px; +} + +A:link IMG.thumb0 { + border-width: 1px; + border-style: dotted; + width: 60px; + height: 40px; + margin-top: 5px; + margin-bottom: 5px; +} + +A:link IMG.thumb1 { + border-width: 1px; + border-style: solid; + width: 60px; + height: 40px; + margin-top: 5px; + margin-bottom: 5px; +} + +A:link IMG.thumb2 { + border-width: 2px; + border-style: solid; + width: 60px; + height: 40px; + margin-top: 4px; + margin-bottom: 4px; +} + +A:link IMG.thumb4 { + border-width: 4px; + border-style: solid; + width: 60px; + height: 40px; + margin-top: 2px; + margin-bottom: 2px; +} + +A.help:hover { + text-decoration: none; + color: #0000ff ! important; + cursor: help; +} + +.added_link { + font-size: 80%; + font-weight: bold; + text-decoration: none; + font-style: italic; + color: #666666 ! important; +} + + .added_link A:link { + color: #5555ff ! important; + } + +A.added_link { + color: #ff6666 ! important; +} + +A.added_link:link { + color: #5555ff ! important; +} + + A .manuscript { + color: #0000ff ! important; +} + + A:hover .manuscript { + color: #ff00ff ! important; +} + +BODY.default A.Cullum { + color: #998500 ! important; + background-color: transparent ! important; /*must match BODY*/ +} + +A.Cullum { + color: #ffdd00 ! important; + background-color: transparent ! important; /*must match BODY*/ + -webkit-hyphens: none; + -ms-hyphens: none; + hyphens: none; /* their names are not to be hyphenated */ +} + + A.Cullum .normal { + color: #0000ff ! important; +} + A.Cullum .emend { + color: #fff199 ! important; +} + A.Cullum .keep { + display: inline; + white-space: nowrap; +} + +A.discreet { + color: #5555cc ! important; +} + + A.discreet:visited { + text-decoration: none; + color: #cc5555 ! important; + } + + A.discreet:hover { + text-decoration: none; + color: #cc55cc ! important; + } + +A:link SPAN.discreet { + color: #7777cc ! important; +} + +A:visited SPAN.discreet { + text-decoration: none; + color: #cc7777 ! important; +} + +A:hover SPAN.discreet { + text-decoration: none; + color: #cc77cc ! important; +} + +A.quiet { + color: inherit ! important; +} + +A.quiet:hover { + text-decoration: none; + color: #0077cc ! important; + background-color: #ffff00 ! important; +} + +.offsite_link { + text-decoration: none; + font-style: italic; + color: #0000ff ! important; +} + +A.offsite_link { + font-weight: bold; + text-decoration: none; + font-style: italic; + color: #0000ff ! important; +} + +A.offsite_link:link { + color: #0000ff ! important; +} + +A.sec { + font-family: "Palatino Linotype", Palatino, "Arial Unicode Ms", "Titus Cyberbit Basic", "Lucida Sans Unicode", serif ! important; + font-size: 70%; + text-transform: none; + font-weight: normal; + color: #bf0000 ! important; + vertical-align: 10%; +} + +A.sec_for_proofing { + font-family: "Palatino Linotype", Palatino, "Arial Unicode Ms", "Titus Cyberbit Basic", "Lucida Sans Unicode", serif ! important; + font-size: 200%; + text-transform: none; + font-weight: normal; + color: #00aa00 ! important; + vertical-align: 10%; +} + +A/* keep the space that follows*/ .Latin { + color: #0066cc ! important; +} + +A:hover/* keep the space that follows*/ .Latin { + color: #ff00ff ! important; +} + +A/* keep the space that follows*/ .Greek { + color: #0066cc ! important; +} + +A:hover/* keep the space that follows*/ .Greek { + color: #ff00ff ! important; +} + +A.chapter { + font-size: 1.3em; + color: #bf0000 ! important; + text-decoration: none; + font-style: normal; + line-height: .5; +} + +A.GridRef:link { + font-family: Verdana, sans-serif; + color: #ff6600 ! important; +} + +A.GridRef:visited { + font-family: Verdana, sans-serif; + color: #cc0000 ! important; +} + +A.GridRef:hover { + font-family: Verdana, sans-serif; + color: #ff00ff ! important; +} + +A.GridRef:active { + font-family: Verdana, sans-serif; + color: #ff00ff ! important; +} + +A.Britannica_signature { + cursor: crosshair; + font-weight: normal; + color: #0000ff ! important; + vertical-align: top; +} + + A.Britannica_signature:link { + text-decoration: none; + color: #0000ff ! important; + } + +A.comment { + cursor: crosshair; + font-family: Verdana, sans-serif; + font-size: 53%; + font-style: normal; + font-weight: normal; + color: #0000ff ! important; + vertical-align: top; +} + + A.comment:link { + text-decoration: none; + color: #0000ff ! important; + } + + A.comment .center { + margin-top: 0em; + margin-bottom: 0em; + } + + A.comment SPAN.source { + font-weight: bold; + color: #006600! important; + } + +SPAN.promptsource { + font-weight: bold; + color: #009900 ! important; +} + +.correction { + cursor: crosshair; + font-family: Verdana, sans-serif; + font-size: 53%; + font-style: normal; + font-weight: normal; + color: #ff0000 ! important; + vertical-align: top; +} + + A.correction:link { + text-decoration: none; + color: #ff0000 ! important; + } + +SPAN.conversion { + color: #0099ff ! important; +} + +.white A.conversion { + color: #00ccff ! important; + vertical-align: super; + line-height: .3; +} + +.white .outquote { + color: #8533ad ! important; +} + +A.conversion { + cursor: crosshair; + font-family: Verdana, sans-serif; + font-size: 100%; + font-weight: normal; + color: #0099ff ! important; + vertical-align: super; + line-height: .3; +} + + A.conversion:link { + text-decoration: none; + color: #0099ff ! important; + } + +A.glossary { + cursor: crosshair; + font-family: Verdana, sans-serif; + font-size: 100%; + font-weight: normal; + color: #ff3366 ! important; + vertical-align: super; + line-height: .3; +} + +A.glossary:link { + text-decoration: none; + color: #ff3366 ! important; +} + +A.offpage { + font-size: 100%; + font-weight: normal; + color: #009900 ! important; + vertical-align: super; + line-height: .3; +} + +A.offpage:link { + text-decoration: none; + color: #009900 ! important; +} + +A.note { + font-family: Verdana, sans-serif; + font-style: normal; + font-size: 58%; + font-weight: bold; + text-transform: none; + color: #0000ff ! important; + vertical-align: super; +} +A.note:link { + text-decoration: none; + color: #0077cc ! important; +} +A.note:visited { + text-decoration: none; + color: #ff0000 ! important; +} +A.note:hover { + font-size: 81%; + text-decoration: none; + color: #ff0000 ! important; + background-color: #ffff00 ! important; +} + + A.note .Greek { + font-family: "Avdira", "Titus Cyberbit Basic", serif ! important; + color: #ff0000 ! important; + } + +A.guest_note { + font-family: "Avdira", "Titus Cyberbit Basic", serif ! important; + font-style: normal; + font-size: 58%; + font-weight: bold; + text-transform: none; + color: #0000ff ! important; + vertical-align: super; +} +A.guest_note:link { + text-decoration: none; + color: #0077cc ! important; +} +A.guest_note:visited { + text-decoration: none; + color: #ff0000 ! important; +} +A.guest_note:hover { + font-size: 81%; + text-decoration: none; + color: #ff0000 ! important; + background-color: #ffff00 ! important; +} + +A.note_for_proofing { + font-family: Verdana, sans-serif; + font-style: normal; + font-size: 200%; + font-weight: bold; + text-transform: none; + color: #0000ff ! important; + vertical-align: super; +} + +A.note_for_proofing:hover { + font-family: Verdana, sans-serif; + font-style: normal; + font-size: 200%; + font-weight: bold; + text-transform: none; + color: #ff0000 ! important; + background-color: #ffff00 ! important; + vertical-align: super; +} + +A.note_for_proofing:visited { + text-decoration: none; + color: #ff0000 ! important; +} + +.paragraph_summary { + position: absolute; + top: auto; + text-align: right; + left: +10px; + width: 70px; + font-family: "Palatino Linotype", Palatino, "Arial Unicode Ms", "Titus Cyberbit Basic", "Lucida Sans Unicode", serif ! important; + font-size: .60rem; + text-transform: none; + font-weight: normal; + color: #660000 ! important; +} + +A.ref { + font-family: Verdana, sans-serif; + font-style: normal; + font-size: 58%; + font-weight: bold; + font-variant: normal; + padding: .2em; + text-transform: none; + color: #0000ff ! important; + vertical-align: super; +} +A.ref:link { + text-decoration: none; + color: #0077cc ! important; +} +A.ref:visited { + text-decoration: none; + color: #ff0000 ! important; +} +A.ref:hover { + text-decoration: none; + color: #ff0000 ! important; + background-color: #ffff00 ! important; +} + + A.ref .Greek { + font-family: "Avdira", "Titus Cyberbit Basic", serif ! important; + color: #ff0000 ! important; + } + +H1 H2 H3 A.ref { + font-size: 75%; +} + +H3.apparatus { + margin-top: 2em; + margin-bottom: 1em; + font-weight: normal; + font-style: italic; + /* font-size: 70%; DOESN'T SEEM TO WORK? */ +} + +A.ref_for_proofing { + font-family: Verdana, sans-serif; + font-style: normal; + font-size: 200%; + font-weight: bold; + text-transform: none; + color: #0000ff ! important; + vertical-align: super; +} + +A.ref_for_proofing:hover { + font-family: Verdana, sans-serif; + font-style: normal; + font-size: 200%; + font-weight: bold; + text-transform: none; + color: #ff0000 ! important; + background-color: #ffff00 ! important; + vertical-align: super; +} +A.ref_for_proofing:visited { + text-decoration: none; + color: #ff0000 ! important; +} + +A.ref1 { + font-family: Verdana, sans-serif; + font-style: normal; + font-size: 58%; + font-weight: bold; + text-transform: none; + color: #0099ff ! important; + vertical-align: super; +} + +A.ref_in_text { + font-family: Verdana, sans-serif; + font-style: italic; + font-size: 62%; + font-weight: bold; + text-transform: none; + color: #5555ff ! important; +} + +A.ref_in_text:link { + text-decoration: none; + color: #5555ff ! important; +} + +A.ref_in_text:visited { + text-decoration: none; + color: #ff0000 ! important; +} + +A.ref_in_text:hover { + text-decoration: none; + color: #0077cc ! important; + background-color: #ffff00 ! important; +} + +A.guest_ref { + font-family: "Avdira", "Titus Cyberbit Basic", serif ! important; + font-style: normal; + font-size: 58%; + font-weight: bold; + font-variant: normal; + padding: .2em; + text-transform: none; + color: #0000ff ! important; + vertical-align: super; +} +A.guest_ref:link { + text-decoration: none; + color: #0077cc ! important; +} +A.guest_ref:visited { + text-decoration: none; + color: #ff0000 ! important; +} +A.guest_ref:hover { + text-decoration: none; + color: #ff0000 ! important; + background-color: #ffff00 ! important; +} + +.inline_note { + font-style: italic; + color: #cc0000 ! important; + font-family: Verdana, sans-serif; + font-size: 90%; +} + +INS.slip { + cursor: crosshair; + text-decoration: none; + border-bottom: dotted green; + border-bottom-width: thin; +} +/* +INS.slip1 { + cursor: URL(https://penelope.uchicago.edu/Thayer/Images/Utility/Cursors/arrowleft3.png), auto; + text-decoration: none; + border-bottom: dotted green; + border-bottom-width: thin; +} + */ + +INS.divergence { + cursor: crosshair; + text-decoration: none; + border-bottom: dotted red; + border-bottom-width: medium; +} + +.TextHas { + color: #009900 ! important; + font-weight: bold; +} + +SPAN.ref { + font-family: Verdana, sans-serif; + text-transform: none; + color: #000066 ! important; + font-weight: bold; + font-size: 58%; + vertical-align: super; +} + +SPAN.ref_for_proofing { + font-family: Verdana, sans-serif; + text-transform: none; + font-weight: bold; + font-size: 200%; + vertical-align: super; +} + +/* +The purpose of the following styles (quotemark, exquotemark) is to put the initial quotation mark outside the centered quote (verse). The CSS standards explicitly state that the following box is calculated as though the preceding box were not offset + (https://www.w3.org/TR/REC-CSS2/visuren.html#propdef-position) +thus requiring the "exquotemark" workaround. + +PAGENUM WORKAROUND: +To get pagenums to insert correctly at a line in the middle of a poem, follow this format: +

 p585  +

+ +To get pagenums to insert correctly at the beginning of a poem that starts a page, follow the same format (but if "start" is needed, "start" goes in BOTH

declarations), as for example: +

 p383  +

+ +Sometimes this latter workaround doesn't seem to work, either, as in p156 and p158 of +▸ E/Gazetteer/Places/America/United_States/Navy/_Texts/MERLIF/30*.html#Lament +where I substitute another method, not altogether satisfactorily. + +*/ +.quotemark { + position: relative; + left: -.1em; + text-transform: none; + font-weight: normal; +} + +P.exquotemark { + position: relative; + left:.2em; + text-transform: none; + font-weight: normal; +} + +.verse .quoted P { + position: relative; + left: .2em; + text-transform: none; + font-weight: normal; +} + +.verse .quoted P.first { + position: relative; + left: 0em; + text-transform: none; + font-weight: normal; +} + + +/* +.verse A.sec { + position: absolute; + top: auto; + left: +12.5em; + text-align: left; +} + */ + +A.subsec { + font-size: 70%; + font-weight: normal; + font-style: normal; + text-transform: uppercase; + color: #bf0000 ! important; + vertical-align: 20%; +} + +/*The following 2 are completely synonymous, for convenience:*/ +.underscore { + text-decoration: underline; +} +.underline { + text-decoration: underline; +} + +A.Tsec { + position: absolute; + top: auto; + left: +2em; + text-align: right; + font-family: Courier, serif ! important; + font-size: .70rem; + text-transform: uppercase; + font-style: normal; + font-weight: normal; + font-variant: normal; + color: #006600 ! important; +} + +TABLE.verse A.Tsec { + position: absolute; + top: auto; + left: +3.8em; /* basic margin + 1.8 */ + text-align: right; + font-family: Courier, serif ! important; + font-size: .70rem; + text-transform: uppercase; + font-style: normal; + font-weight: normal; + font-variant: normal; + color: #006600 ! important; +} + +A.Tsubsec { + position: absolute; + top: auto; + left: +3.85em; + font-family: Courier, serif ! important; + font-size: .70rem; + text-transform: uppercase; + font-style: normal; + font-weight: normal; + font-variant: normal; + color: #006600 ! important; +} + +A.Tsubsec_correction { + position: absolute; + top: auto; + left: +5.8em; + font-family: Verdana, sans-serif; + font-size: .53rem; + font-weight: normal; + font-style: normal; + color: #ff0000 ! important; + vertical-align: top; +} + + A.correction:link { + text-decoration: none; + color: #ff0000 ! important; + } + +/* used at first only in E/Roman/Texts/secondary/journals/TAPA/43/The_Ferentinum_of_Horace*.html +It must be used OUTSIDE any */ +.citation_left { + position: absolute; + top: auto; + left: +7.5em; + font-size: .70rem; + font-weight: normal; + font-style: normal; + color: #000066 ! important; +} + +TABLE.verse A.Tsubsec { + left: +8.85em; /* basic margin +5.0 */ +} + +P.stars { + margin-top: 1.5em; + font-size: 140%; + letter-spacing: 1.0em; + text-align: center; +} + +P.topstars { + text-align: center; + margin-top: 1.5em; + margin-bottom: 0em; +} + +P.bottomstars { + text-align: center; + margin-top: -1em; +} + +P.verse A.Tsubsec { + left: +7.4em; /* basic margin +3.3 */ +} + +P.verse1 A.Tsubsec { + left: +3.85em; /* basic margin +3.3 -2+2+ adjustment 3.9 */ +} + +P.verse2 A.Tsubsec { + left: +1.65em; /* basic margin +3.3 -4+2 */ +} + +P.verse3 A.Tsubsec { + left: -0.7em; /* basic margin +3.3 -6+2 */ +} + +P.verse4 A.Tsubsec { + left: -2.95em; /* basic margin +3.3 -8+2 */ +} + +P.verse5 A.Tsubsec { + left: -5.2em; /* basic margin +3.3 -10+2 */ +} + +P.verse6 A.Tsubsec { + left: -7.5em; /* basic margin +3.3 -12+2 */ +} + +P.verse7 A.Tsubsec { + left: -9.75em; /* basic margin +3.3 -14+2 */ +} + +P.verse8 A.Tsubsec { + left: -12em; /* basic margin +3.3 -14+2 */ +} + +A.Latin { + color: #cc6633 ! important; +} + +A.entry1 { + color: #3366ff ! important; + font-variant: normal; + font-weight: bold; + font-size: 90%; + font-family: Verdana, Ariel, Helvetica, sans-serif; +} + +DIV.further { + position: absolute; + top: auto; + font-size: .50rem; /* necessary to produce correct right margin*/ + right: +4em; +} + +DIV.default { + color: #000066 ! important; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; +} + +DIV.default1 { /* has now been replaced thruout by DIV.spacious */ + margin-left: 5em; + margin-right: 5em; + color: #000066 ! important; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; +} + +DIV.alert { /* mynote with background-color and color changed */ + background-color: #ffff66 ! important; + text-align: justify; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-size: 85%; + color: #ff0000 ! important; + margin-top: 1.6em; + margin-left: 100px; + margin-right: 100px; + padding-top: 0.4em; + padding-bottom: 0.4em; + padding-left: 1.3em; + padding-right: 1.3em; + border-style: double +} + +DIV.alert400 { /* mynoteNarrow with background-color and color changed */ + background-color: #ffff66 ! important; + text-align: justify; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-size: 85%; + color: #ff0000 ! important; + margin-top: 1.6em; + margin-bottom: 1.6em; + width: 400px; + margin-left: auto; + margin-right: auto; + padding-top: 0.4em; + padding-bottom: 0.4em; + padding-left: 1.3em; + padding-right: 1.3em; + border-style: double +} + +DIV.alert600 { +/* +mynote with background-color and color changed, +WIDTH matches TABLE.headerbox +*/ + background-color: #ffff66 ! important; + text-align: justify; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-size: 85%; + color: #ff0000 ! important; + font-style: italic; + margin-top: 10em; + margin-bottom: 1.6em; + width: 600px; + margin-left: auto; + margin-right: auto; + padding-top: 0.4em; + padding-bottom: 0.4em; + padding-left: 1.3em; + padding-right: 1.3em; + border-style: double +} + +DIV.slimBox { + background-color: #ccffff ! important; + text-align: justify; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-size: 85%; + color: #000066 ! important; +/* + margin-top: 1.6em; + */ + margin-left: 100px; + margin-right: 100px; +/* + padding-top: 0.4em; + padding-bottom: 0.4em; + */ + padding-left: 1.3em; + padding-right: 1.3em; + border-style: double +} + + .slimBox A:link { + color: #0000ff ! important; + } + .slimBox A:visited { + color: #ff0000 ! important; + } + .slimBox A:hover { + color: #ff00ff ! important; + } + .slimBox A:active { + color: #ff00ff ! important; + } + .slimBox P { + margin-bottom: 0em; + margin-top: 0em; + } + +DIV.mynote { + background-color: #ccffff ! important; + text-align: justify; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-size: 85%; + color: #000066 ! important; + margin-top: 1.6em; + margin-left: 100px; + margin-right: 100px; + padding-top: 0.4em; + padding-bottom: 0.4em; + padding-left: 1.3em; + padding-right: 1.3em; + border-style: double +} + + .mynote A:link { + font-weight: bold; + color: #0000ff ! important; + } + .mynote A:visited { + font-weight: bold; + color: #ff0000 ! important; + } + .mynote A:hover { + font-weight: bold; + color: #ff00ff ! important; + } + .mynote A:active { + font-weight: bold; + color: #ff00ff ! important; + } + .mynoteWide A:link { + font-weight: bold; + color: #0000ff ! important; + } + .mynoteWide A:visited { + font-weight: bold; + color: #ff0000 ! important; + } + .mynoteWide A:hover { + font-weight: bold; + color: #ff00ff ! important; + } + .mynoteWide A:active { + font-weight: bold; + color: #ff00ff ! important; + } + .mynoteNarrow A:link { + font-weight: bold; + color: #0000ff ! important; + } + .mynoteNarrow A:visited { + font-weight: bold; + color: #ff0000 ! important; + } + .mynoteNarrow A:hover { + font-weight: bold; + color: #ff00ff ! important; + } + .mynoteNarrow A:active { + font-weight: bold; + color: #ff00ff ! important; + } + .mynoteNarrowest A:link { + font-weight: bold; + color: #0000ff ! important; + } + .mynoteNarrowest A:visited { + font-weight: bold; + color: #ff0000 ! important; + } + .mynoteNarrowest A:hover { + font-weight: bold; + color: #ff00ff ! important; + } + .mynoteNarrowest A:active { + font-weight: bold; + color: #ff00ff ! important; + } + + DIV.mynote .Latin { + color: #990000 ! important; + } + + .mynote .source { + color: #00AA00 ! important; + } + + .mynote .outquote { + color: #7700b3 ! important; + } + + +DIV.mynote0 { + background-color: #ccffff ! important; + text-align: justify; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-size: 85%; + color: #000066 ! important; + margin-top: 0em; + margin-left: 100px; + margin-right: 100px; + padding-top: 0.4em; + padding-bottom: 0.4em; + padding-left: 1.3em; + padding-right: 1.3em; + border-style: double +} + .mynote0 .outquote { + color: #7700b3 ! important; + } + + +.mynote A.Cullum { + color: #907d45 ! important; + background-color: #ccffff ! important; +} +.mynoteWide A.Cullum { + color: #907d45 ! important; + background-color: #ccffff ! important; +} + +DIV.mynoteNarrow { + background-color: #ccffff ! important; + text-align: justify; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-size: 85%; + color: #000066 ! important; + margin-top: 1.6em; + margin-bottom: 1.6em; + width: 50%; + margin-left: auto; + margin-right: auto; + padding-top: 0.4em; + padding-bottom: 0.4em; + padding-left: 1.3em; + padding-right: 1.3em; + border-style: double +} + .mynoteNarrow .outquote { + color: #7700b3 ! important; + } + +DIV.mynoteNarrowest { + background-color: #ccffff ! important; + text-align: justify; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-size: 85%; + color: #000066 ! important; + margin-top: 1.6em; + margin-bottom: 1.6em; + width: 30%; + margin-left: auto; + margin-right: auto; + padding-top: 0.4em; + padding-bottom: 0.4em; + padding-left: 1.3em; + padding-right: 1.3em; + border-style: double +} + .mynoteNarrowest .outquote { + color: #7700b3 ! important; + } + +DIV.mynoteWide { + background-color: #ccffff ! important; + text-align: justify; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-size: 85%; + color: #000066 ! important; + margin-top: 1.6em; + margin-bottom: 1.6em; + width: 85%; + margin-left: auto; + margin-right: auto; + padding-top: 0.4em; + padding-bottom: 0.4em; + padding-left: 1.3em; + padding-right: 1.3em; + border-style: double +} + DIV.mynoteWide .Latin { + color: #990000 ! important; + } + + +DIV.mynoteBasicH { + background-color: #ccffff ! important; + text-align: justify; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-size: 85%; + color: #000066 ! important; + margin-top: 1.6em; + margin-bottom: 1.6em; + width: 574px; + margin-left: auto; + margin-right: auto; + padding-top: 0.4em; + padding-bottom: 0.4em; + padding-left: 1.3em; + padding-right: 1.3em; + border-style: double +} + +DIV.mynoteBasicH1 { + background-color: #ccffff ! important; + text-align: justify; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-size: 85%; + color: #000066 ! important; + margin-top: 1.6em; + margin-bottom: 1.6em; + width: 574px; + margin-left: auto; + margin-right: auto; + padding-top: 0.4em; + padding-bottom: 0.4em; + border-style: double +} + +DIV.specialBox { +/* Omit + background-color: #ccffff ! important; + color: #000066 ! important; +so that the font+background combination can be further specified (colors stylesheet) +*/ + text-align: justify; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-size: 85%; + margin-top: 1.6em; + margin-left: 100px; + margin-right: 100px; + padding-top: 0.4em; + padding-bottom: 0.4em; + padding-left: 1.3em; + padding-right: 1.3em; + border-style: double +} + +DIV.caption-centered { + margin: .35em; + font-size: 85%; + text-align: center; +} + +DIV.margin2 { + margin-left: 65px; + margin-right: 65px; + font-size: 90%; +} + +DIV.padall { + margin: 10px; +} + +.padall { + margin: 10px; +} + +DIV.reference { + color: #660066 ! important; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-size: 75%; + font-weight: bold; + text-align: center; +} + +DIV.diary_summary { + margin-left: .6em; + margin-right: 1.2em; + text-align: justify; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-size: 85%; +} + +DIV.diary_summary_date { + margin-right: 0.4em; + text-align: right; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-size: 85%; +} + +DIV.no_diary { + margin-left: .6em; + margin-right: 1.2em; + text-align: justify; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-size: 85%; + color: #666666 ! important; +} + +DIV.no_diary_date { + margin-right: 0.4em; + text-align: right; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-size: 85%; + color: #666666 ! important; +} + +.noScript { + text-align: center; + font-family: Verdana, sans-serif; + font-size: 112%; + font-weight: bold; + color: #ff0000 ! important; +} + +.PlaceDescriptor { /* used in GoogleMaps.js*/ + margin-top: 1.5em; + text-align: justify; +} + +DIV.MapBubble { /* used in GoogleMaps.js*/ + width: 200px; /* I'd like it smaller, but Google doesn't allow it, setting a purported minimum width of 204, but in fact it's about 250. */ + margin-top: 0; + margin-left: 0; + margin-right: 0; + font-family: Verdana, sans-serif; + font-style: normal; + text-transform: none; + font-variant: normal; + text-align: justify; + font-size: 50%; + font-weight: normal; +} + +DIV.MapBubbleHeading { /* used in GoogleMaps.js*/ + width: 200px; /* I'd like it smaller, but Google doesn't allow it, setting a purported minimum width of 204, but in fact it's about 250. */ + margin-left: 0; + margin-right: 0; + font-family: Verdana, sans-serif; + font-style: normal; + text-transform: none; + font-variant: normal; + text-align: left; + font-size: 60%; + font-weight: bold; +} + +.map_blue { + color: #7eb3ff ! important; +} + +.map_green { + color: #8cff77 ! important; +} + +.map_orange { + color: #ffa82c ! important; +} + +.map_pink { + color: #ffb4b1 ! important; +} + +.map_purple { + color: #df87ff ! important; +} + +.map_red { + color: #ff7a78 ! important; +} + +.map_yellow { + color: #fdff78 ! important; +} + +.emphasis { + color: #003399 ! important; +} + +.emend { + color: #0066cc ! important; +} + + A:hover .emend { + color: #ff00ff ! important; + } + + .emend .Greek { + color: #dd8833 ! important; + } + + .emend .Latin { + color: #cc3399 ! important; + } + .emend:lang(la) { + color: #cc3399 ! important; + } + +.transcription .emend { + color: #ff6699 ! important; +} + +/* used to render digammas better: */ +.Geneva { + font-family: Geneva; +} + +.Courier { + font-family: Courier, monospace; +} + +I I { /* i.e., within */ + font-style: normal; + font-size: 90%; +} + +SPAN.star { + font-family: Verdana, Ariel, Helvetica, sans-serif; + font-size: 90%; + color: #8800cc ! important; + font-style: italic; +} + + A SPAN.star { + color: #3366ff ! important; + } + + A:hover SPAN.star { + color: #ff00ff ! important; + } + +.fondbleu { + border-top: 0px !important; + border-bottom: 0px !important; + border-left: 0px !important; + border-right: 0px !important; + background-color: #ccffff ! important; + color: #555555 ! important; + border-radius: 8px; + padding-top: 2px !important; + padding-left: 5px !important; + padding-right: 5px !important; + display: inline; + overflow: hidden; + white-space: nowrap; +} + +.fondrose { + border-top: 0px !important; + border-bottom: 0px !important; + border-left: 0px !important; + border-right: 0px !important; + background-color: #ffcccc ! important; + color: #555555 ! important; + border-radius: 8px; + padding-top: 2px !important; + padding-left: 5px !important; + padding-right: 5px !important; + display: inline; + overflow: hidden; + white-space: nowrap; +} + +.fondviolet { + border-top: 0px !important; + border-bottom: 0px !important; + border-left: 0px !important; + border-right: 0px !important; + background-color: #d9e6ff ! important; + color: #555555 ! important; + border-radius: 8px; + padding-top: 2px !important; + padding-left: 5px !important; + padding-right: 5px !important; + display: inline; + overflow: hidden; + white-space: nowrap; +} + +.fondjaune { + border-top: 0px !important; + border-bottom: 0px !important; + border-left: 0px !important; + border-right: 0px !important; + background-color: #ffffcc ! important; + color: #555555 ! important; + border-radius: 8px; + padding-top: 2px !important; + padding-left: 5px !important; + padding-right: 5px !important; + display: inline; + overflow: hidden; + white-space: nowrap; +} + +SPAN.proofread { + color: #28cccc ! important; +} + +SPAN.unproofread { + color: #ff6666 ! important; +} + +SPAN.proof { + color: #009933 ! important; + font-weight: bold; +} + +SPAN.GridRef { + font-family: Verdana, sans-serif; + color: #ff6600 ! important; +} + +.overline { + text-decoration: overline; +} + +.Fraktur { + font-family: TypographerFraktur, "Lucida Blackletter", serif; +} + +.sanserif { + font-family: Verdana, Ariel, Helvetica, sans-serif; +} + +.double { + font-size: 200%; +} + +.large { + font-size: 120%; +} + +.larger { + font-size: 140%; +} + +.largest { + font-size: 160%; +} + +.small { + font-size: 85%; +} + + .small .smaller { + font-size: 88%; + } + +.smaller { + font-size: 75%; +} + +.smallest { + font-size: 60%; +} + +.minuscule { + font-size: 50%; +} + +.sourcecode { + font-family: Courier, monospace; + color: #006600 ! important; + font-size: 85%; +} + +.primary_source { + color: #339900 ! important; +} + +.up215 { + margin-top: -2.15em; +} + +SPAN.subscript { + font-family: Verdana, Ariel, Helvetica, sans-serif; + font-size: 65%; + vertical-align: bottom; +} + +SPAN.superscript { + font-family: Verdana, Ariel, Helvetica, sans-serif; + font-size: 60%; + vertical-align: top; +} + +SPAN.ordinal { + font-family: Verdana, Ariel, Helvetica, sans-serif; + font-size: 60%; + vertical-align: top; + font-variant: none; +} + +SPAN.raised { + vertical-align: 10%; + line-height: 100%; +} + +SPAN.manuscript .superscript { + font-family: Verdana, Ariel, Helvetica, sans-serif; + font-size: 60%; + vertical-align: 70%; +} + +.midalign { + vertical-align: middle; +} + +.ten { + font-size: 62%; +} + +.eleven { + font-size: 69%; +} + +.twelve { + font-size: 75%; +} + +.teensy { + font-size: 37%; +} + +H1 { + font-size: 150%; + text-align: center; + hyphens: none; +} + +H2 { + font-size: 120%; + text-align: center; + hyphens: none; +} + +H3 { + margin-top: 3.5em; + margin-bottom: 2em; + font-size: 100%; + text-align: left; + hyphens: none; +} + +H4 { + font-size: 85%; + hyphens: none; +} + +H5 { + font-size: 60%; + hyphens: none; +} + +H6 { + hyphens: none; +} + +H1, H2, H4.default { + margin-top: 3.5em; + margin-bottom: 2em; +} + +H1.small { + font-size: 120%; + text-align: center; +} + +H1.small_default { + font-size: 120%; + text-align: center; + margin-top: 3.5em; + margin-bottom: 2em; +} + +H2.large_default { + font-size: 150%; + text-align: center; + margin-top: 3.5em; + margin-bottom: 2em; +} + +H2.left { + margin-left: -50px; + font-size: 120%; + text-align: left; +} + +H2.diary { + margin-left: -50px; + margin-top: 6em; + margin-bottom: 2em; + font-size: 120%; + text-align: left; +} + +H3.boxed { + margin-top: 1em; + margin-bottom: 1.5em; + text-align: center; +} + +H3.center { +/* + font-size: 100%; + */ + text-align: center; +} + +H3.start { + margin-top: 3.5em; + margin-bottom: 2em; +} + +H3.start2 { + margin-top: 7.5em; + margin-bottom: 2em; +} + +H3.center-start { + text-align: center; + margin-top: 3.5em; + margin-bottom: 2em; +} + +H4.lowcaps { + font-size: 72%; + text-transform: uppercase; +} + +H4.halfstart { + margin-top: 2.7em; + margin-bottom: 2em; +} + +H4.start { + margin-top: 3.5em; + margin-bottom: 2em; +} + +H5.start { + margin-top: 3.5em; + margin-bottom: 2em; +} + +H6.start { + margin-top: 3.5em; + margin-bottom: 2em; +} + +H4.center-start { + text-align: center; + margin-top: 3.5em; + margin-bottom: 2em; +} + +H3.document { + font-size: 90%; + text-align: center; + font-weight: 300; + font-style: italic; +} + +H4.center { + font-size: 85%; + text-align: center; +} + +H4.interTitle { + margin-top:0; + font-size: 85%; + text-align: center; +} + +H5.center { + font-size: 60%; + text-align: center; +} + +HR { + text-align: center; +} + +HR.endnotes { + text-align: center; + width: 60%; + margin-top:4em; + margin-bottom:2.5em; +} + +HR.default { + text-align: center; + width: 60%; + margin-top:2.5em; + margin-bottom:2.5em; +} + +HR.small { + text-align: center; + width: 15%; + margin-top:2.5em; + margin-bottom:2.5em; +} + +HR.blip { + text-align: center; + width: 50px; + margin-top:.5em; + margin-bottom:.5em; +} + +HR.left { + text-align: left; + margin-top: 0.5em; + margin-bottom: 0.5em; +} + +IMG { + border-width: 0; +/* The hyphenation and alignment specs are for the ALTs, to prevent hyphenation and justify them: */ + text-align: justify; + -webkit-hyphens: none; + -ms-hyphens: none; + hyphens: none; +} + +IMG.setPageWidth { + width: 608px; + height: 20px; +} + +IMG.hedera { + width: 15px; + height: 13px; + margin-top: 1.3em; + margin-bottom: 0.3em; +} + +IMG.rue { + width: 24px; + height: 24px; + margin-top: 1.3em; + margin-bottom: 0.3em; +} + +IMG.WP_grad { + width: 15px; + height: 13px; + border-width: 0; + vertical-align: top; +} + +/* the following is required to make "TR.topBorder" (etc.) work: */ +TABLE.noBorders { + border-collapse: collapse; + border-left: 0px; + border-right: 0px; +} + +TABLE TR.topBorder{ + border-collapse: collapse; + border-top: 1px solid; +} + +TABLE TR.bottomBorder{ + border-collapse: collapse; + border-bottom: 1px solid; +} + +TABLE TR.topandbottomBorder{ + border-collapse: collapse; + border-top: 1px solid; + border-bottom: 1px solid; +} + +TABLE TR.topBorderBold{ + border-collapse: collapse; + border-top: 2px solid; +} + +.leftBorder{ + border-collapse: collapse; + border-left: 1px solid; +} + +.rightBorder{ + border-collapse: collapse; + border-right: 1px solid; +} + +TABLE TR.discreetly_separated{ + border: 3px; + border-style: solid none none; +} + +TABLE.TOC TR.discreetly_separated{ + border-color: #ffffff; +} + +TABLE TR.bottomBorderBold{ + border-collapse: collapse; + border-bottom: 2px solid; +} + +TABLE.columnBorders { + border-collapse: collapse; + border-left: 1px solid; + border-right: 1px solid; +} + + TABLE.columnBorders TR TD { + border-left: 1px solid; + border-right: 1px solid; + } + +TABLE.basicH { + width: 567px; +} + +IMG.basicH { + width: 567px; + height: 378px; +} + +TABLE.iPhoneLargeH { + width: 800px; +} + +IMG.iPhoneLargeH { + width: 800px; + height: 600px; +} + +TABLE.iPhoneH { + width: 567px; +} + +IMG.iPhoneH { + width: 567px; + height: 425px; +} + +TABLE.basicV { + width: 252px; +} + +IMG.basicV { + width: 252px; + height: 378px; +} + +IMG.largeV { + width: 378px; + height: 567px; +} + +IMG.largeS { + width: 567px; + height: 567px; +} + +IMG.H320 { + width: 567px; + height: 320px; +} + +TABLE.V270 { + width: 270px; +} + +IMG.V270 { + width: 270px; + height: 378px; +} + +TABLE.V280 { + width: 280px; +} + +IMG.V280 { + width: 280px; + height: 378px; +} + +TABLE.V300 { + width: 300px; +} + +IMG.V300 { + width: 300px; + height: 378px; +} + +IMG.GoogleLogo { + width: 64px; + height: 26px; +} + +TABLE.leadoff { + border-style: outset; + border-color: #cccccc; + border-width: 12px; + margin-top: 5em; + margin-left: auto; + margin-right: auto; + font-size: 80%; +} + +TABLE.leadoff P{ + margin-left: 15px; + margin-right: 15px; +} + +P.photocredit { + text-align: right; + font-size: 69%; +} + +TABLE.photocreditX { +/* for odd widths; the table width should be set at the photo width + 23 */ + border: 0; + margin: auto; + text-align: right; + font-size: 69%; +} + +TABLE.photocreditH { + width: 590px; /* 567 + 23 */ + border: 0; + margin: auto; + text-align: right; + font-size: 69%; +} + +TABLE.photocreditV { + width: 275px; /* 252 + 23 */ + border: 0; + margin: auto; + text-align: right; + font-size: 69%; +} + +TABLE.photocreditS { + width: 401px; /* 378 + 23 */ + border: 0; + margin: auto; + text-align: right; + font-size: 69%; +} + +/* THIS IS JUST A TEMP PATCH TO PREVENT THE OPERATION OF "contents" INSIDE "leadoff" WHILE I REMOVE THE HUNDREDS OF INSTANCES: */ +TABLE.leadoff .contents{ + font-size: 100%; +} + +IMG.aliasS { + width: 279px; + height: 279px; +} + +TABLE.aliasS { + width: 279px; +} + +IMG.smallS { + width: 252px; + height: 252px; +} + +TABLE.smallS { + width: 252px; +} + +IMG.basicS { + width: 378px; + height: 378px; +} + +TABLE.basicS { + width: 378px; +} + +IMG.b1 { + margin-top: 0; + border-width: 1px; + border-style: solid; +} + +IMG.b2 { + border-width: 2px; + border-style: solid; +} + +IMG.b4 { + border-width: 4px; + border-style: solid; +} + +IMG.flag { + border-width: 1px; + border-style: solid; + width: 30px; + height: 20px; + margin-top: 2px; + margin-bottom: 2px; +} + +TABLE.verse A.flag { + float: left; + margin-left: -4em; +} + +.verse A.sec { + position: relative; + float: left; + left: -2.5em; + vertical-align: 10%; +} + +IMG.map_marker { + width: .6em; + height: .9em; +} + +IMG.miniflag { + border-width: 1px; + border-style: solid; + width: 12px; + height: 8px; +} + +IMG.small_flag { + border-width: 1px; + border-style: solid; + width: 18px; + height: 12px; +} + +IMG.small_flag_in_margin { + border-width: 0; + width: 18px; + height: 20px; +} + +IMG.inline { + margin-right: 2px; +} + +/* Jun 2017: not yet used */ +IMG.behind { + position: absolute; + z-index: -1; +} + +.caduceus { + text-align: center; + font-size: 187%; +} + +.ivy { + text-align: center; + font-size: 137%; + font-style: normal; + color: #008400 ! important; +} + +.ivy1 { + text-align: center; + font-size: 137%; + font-style: normal; + color: #008400 ! important; + margin-top: 2em; +} + +IMG.badge { + width: 16px; + height: 16px; + vertical-align: -2px; +} + +IMG.image0 { + border-width: 1px; + border-style: dotted; +} + +IMG.image1 { + border-width: 1px; + border-style: solid; +} + +IMG.image2 { + border-width: 2px; + border-style: solid; +} + +IMG.image4 { + border-width: 4px; + border-style: solid; +} + +IMG.alias0 { + border-width: 1px; + border-style: dotted; + width: 279px; + height: 186px; + margin: 5px; +} + +IMG.alias1 { + border-width: 1px; + border-style: solid; + width: 279px; + height: 186px; + margin: 5px; +} + +IMG.alias2 { + border-width: 2px; + border-style: solid; + width: 279px; + height: 186px; + margin: 4px; +} + +IMG.alias4 { + border-width: 4px; + border-style: solid; + width: 279px; + height: 186px; + margin: 2px; +} + +IMG.icon { + border-width: 0; + width: 132px; + height: 88px; +} + +IMG.icon0 { + border-width: 1px; + border-style: dotted; + width: 132px; + height: 88px; + margin-top: 10px; + margin-bottom: 5px; + margin-left: 5px; + margin-right: 5px; +} + +IMG.icon1 { + border-width: 1px; + border-style: solid; + width: 132px; + height: 88px; + margin-top: 10px; + margin-bottom: 5px; + margin-left: 5px; + margin-right: 5px; +} + +IMG.icon2 { + border-width: 2px; + border-style: solid; + width: 132px; + height: 88px; + margin-top: 11px; + margin-bottom: 4px; + margin-left: 4px; + margin-right: 4px; +} + +IMG.icon4 { + border-width: 4px; + border-style: solid; + width: 132px; + height: 88px; + margin-top: 13px; + margin-bottom: 2px; + margin-left: 2px; + margin-right: 2px; +} + +IMG.rubric0 { + border-width: 1px; + border-style: dotted; + width: 132px; + height: 88px; + margin-left: 15px; + margin-right: 15px; +} + +IMG.rubric1 { + border-width: 1px; + border-style: solid; + width: 132px; + height: 88px; + margin-left: 15px; + margin-right: 15px; +} + +IMG.rubric2 { + border-width: 2px; + border-style: solid; + width: 132px; + height: 88px; + margin-left: 14px; + margin-right: 14px; +} + +IMG.rubric4 { + border-width: 4px; + border-style: solid; + width: 132px; + height: 88px; + margin-left: 12px; + margin-right: 12px; +} + +IMG.minirubric1 { + border-width: 1px; + border-style: solid; + width: 60px; + height: 40px; + margin-left: 87px; + margin-right: 15px; +} + +IMG.minirubric2 { + border-width: 2px; + border-style: solid; + width: 60px; + height: 40px; + margin-left: 86px; + margin-right: 14px; +} + +IMG.minirubric4 { + border-width: 4px; + border-style: solid; + width: 60px; + height: 40px; + margin-left: 84px; + margin-right: 12px; +} + +IMG.start { + margin-top: 1.5em; +} + +IMG.thumb { + border-width:0; + width: 60px; + height: 40px; + margin-top: 6px; + margin-bottom: 6px; +} + +IMG.thumb0 { + border-width: 1px; + border-style: dotted; + width: 60px; + height: 40px; + margin-top: 5px; + margin-bottom: 5px; +} + +IMG.thumb1 { + border-width: 1px; + border-style: solid; + width: 60px; + height: 40px; + margin-top: 5px; + margin-bottom: 5px; +} + +IMG.thumb2 { + border-width: 2px; + border-style: solid; + width: 60px; + height: 40px; + margin-top: 4px; + margin-bottom: 4px; +} + +IMG.thumb4 { + border-width: 4px; + border-style: solid; + width: 60px; + height: 40px; + margin-top: 2px; + margin-bottom: 2px; +} + +IMG.W3C { + border-width: 0; + width: 88px; + height: 31px; +} + +P.W3C { + margin-top: 36em; + margin-right: 1em; + text-align: right; +} + +P.UCFooter { + margin-top: 3em; + margin-bottom: 0em; + background-color: #403f3f; + color: #d6d6cf; + font-family: Verdana, Arial, Helvetica, sans-serif; + font-size: 70%; + text-align: center; +} + .UCFooter A:link { + border-style: dotted; + border-top-width: 0px; + border-bottom-width: 1px; + border-left-width: 0px; + border-right-width: 0px; + color: #d6d6cf ! important; + } + .UCFooter A:visited { + color: #d6d6cf ! important; + } + .UCFooter A:hover { + color: #d6d6cf ! important; + } + .UCFooter A:active { + color: #d6d6cf ! important; + } + +LI.default { + margin-top: 1em; + margin-bottom: 1em; + text-align: justify; +} + +SPAN.default { + color: #000066 ! important; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; +} + +P.photo_credits { + text-align: right; + font-size: 75%; + margin-top: 0em; +} + +P.photo_credits_center { + text-align: center; + font-size: 75%; + margin-top: 0em; +} + +P.further { + text-align: center; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-style: normal; + font-weight: normal; + text-transform: none; + font-variant: normal; + font-size: 50%; + color: #cc00ff ! important; +} + +P.signature { + position: relative; + top: auto; + right: -6em; + text-align: right; + font-size: 85%; + color: #000066 ! important; +} + +P.default { + color: #000066 ! important; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; +} + +P.closing50 { + text-align: left; + margin-left: 50%; + margin-top: 0em; + margin-bottom: 0em; +} + +P.closing60 { + text-align: left; + margin-left: 60%; + margin-top: 0em; + margin-bottom: 0em; +} + +P.closing-b0-a0 { + text-align: right; + margin-right: 8em; + margin-top: 0em; + margin-bottom: 0em; +} + +P.closing-b1-a0 { + text-align: right; + margin-right: 8em; + margin-top: 3em; + margin-bottom: 0em; +} + +P.closing-b0-a1 { + text-align: right; + margin-right: 8em; + margin-top: 0em; + margin-bottom: 3em; +} + +P.closing-b1-a1 { + text-align: right; + margin-right: 8em; + margin-top: 3em; + margin-bottom: 3em; +} + +P.biblio1 { + margin-top: 0em; + margin-bottom: .5em; + text-align: right; + font-family: Verdana, sans-serif; + font-size: 69%; +} + +P.biblio { + margin-top: 0em; + margin-bottom: 3em; + text-align: right; + font-family: Verdana, sans-serif; + font-size: 69%; +} + +P.biblioA { + margin-top: 0em; + margin-bottom: 0em; + text-align: right; + font-family: Verdana, sans-serif; + font-size: 69%; +} + +P.biblio_intro { + margin-top: 0em; + margin-bottom: 0em; + text-align: right; + font-size: 69%; +} + +P.default { + color: #000066 ! important; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; +} + +P.summary { + font-size: 85%; + margin-top: 3em; + margin-left: 2em; + margin-right: 1em; + text-indent: -1em; + text-align: justify; +} + +P.postsummary { + font-size: 85%; + margin-top: .5em; + margin-left: 2em; + margin-right: 1em; + text-indent: -1em; + text-align: justify; +} + +P.summary_item { + font-size: 85%; + margin-top: 0em; + margin-bottom: 0em; + margin-left: 2em; + margin-right: 1em; + text-indent: -1em; + text-align: justify; +} + +.x1-b0-a0 { + text-align: justify; + margin-left: 30px; + text-indent: -30px; + margin-top: 0em; + margin-bottom: 0em; +} +.x2-b0-a0 { + text-align: justify; + margin-left: 60px; + text-indent: -60px; + margin-top: 0em; + margin-bottom: 0em; +} + +P.justify_indent { + text-align: justify; + margin-top: 0em; + margin-bottom: 0em; + text-indent: 1em; +} + +P.omitted_article { + text-align: justify; + font-weight: bold; + text-transform: uppercase; + color: #999999 ! important; +} + P.omitted_article .Greek { + text-align: justify; + font-weight: bold; + text-transform: none; + color: #999999 ! important; + } + +P.riassunto { + text-align: right; + font-family: Verdana, sans-serif; + font-size: 85%; + color: #ff9900 ! important; + margin-bottom: 40px; + font-weight: bold; +} + +P.riassunto0 { + text-align: right; + font-family: Verdana, sans-serif; + font-size: 85%; + color: #ff9900 ! important; + margin-bottom: 0em; +} + +P.temporarily_omitted { + margin-top: 3em; + text-align: center; + font-size: 160%; + font-weight: bold; + color: #009900 ! important; +} + +TABLE { + margin-bottom: 1em; +} + +TABLE.bodyheight { + line-height: 1.5; +} + +TABLE.GoogleMap { + color: #000099 ! important; + background-color: #ffffff ! important; + font-size: 80%; + margin-bottom: 2em; +} + + TABLE.GoogleMap P { + margin-top: 1em; + margin-bottom: 0em; + margin-left: 10px; + margin-right: 10px; + } + +TABLE.standard { + background-color: #ffffff ! important; + color: #000066 ! important; + font-size: 80%; +} + + TABLE.standard .outquote { + color: #8533ad ! important; + } + + TABLE.standard .bland { + color: #000066 ! important; + } + + TABLE.standard TR.neutral { + background-color: #b2ffff ! important; + } + + TABLE.standard TR TD.neutral { + background-color: #b2ffff ! important; + } + + TABLE.standard P { + margin-top: 0em; + margin-bottom: 0em; + margin-left: 20px; + margin-right: 10px; + text-indent: -10px; + } + + TABLE.standard P.nodent { + text-indent: 0px; + } + + TABLE.standard P.indent { + text-indent: 20px; + } + + TABLE.standard P.start { + margin-top: 1em; + } + + TABLE.standard P.halfstart { + margin-top: .5em; + } + + TABLE.standard A:link { + color: #0000ff ! important; + } + TABLE.standard A:visited { + color: #cc0000 ! important; + } + TABLE.standard A:hover { + color: #ff00ff ! important; + } + TABLE.standard A:active { + color: #ff00ff ! important; + } + + TABLE.standard .Latin { + color: #990000 ! important; + } + TABLE.standard .Latin .emend { + color: #ee6633 ! important; + } + + TABLE.standard .Greek { +/* + color: #994d00 ! important; + */ + color: #8d5c00 ! important; + } + +TR TD.grisaille { + background-color: #eeeeee ! important; + } +TR.odd TD.grisaille { + background-color: #c2f2f2 ! important; + } +TR.even TD.grisaille { + background-color: #92f2f2 ! important; + } + + +/*TABLE.rowspadded: separates the rows as well*/ +TABLE.rowspadded TD { + padding-top: 6px; + padding-bottom: 6px; + padding-left: 12px; + padding-right: 12px; +} + +TABLE.stats { + border-collapse: collapse; +} + + TABLE.stats TD.left { + border-left: 1px; + } + + TABLE.stats TD.right { + border-right: 1px; + } + +TD.b1 { + margin-top: 0; + border-width: 1px; + border-style: solid; +} + +TABLE.b1 { + border-width: 1px; + border-style: solid; +} + +TABLE.b2 { + border-collapse: separate; + border-spacing: 1px; + border: 4px ridge #f6f6f6; +} + + TABLE.b2 TD { + border: 1px solid gray; + } + + TABLE.b2 TD TD { + border: 0; + } + +TABLE.header { + margin: auto; + border-collapse: separate; + border-spacing: 2px; + width: 500px; + border: 0; +} + + TABLE.header TR { + vertical-align: bottom; + } + +/* If the width of headerbox is changed, change also the width of DIV.alert600: */ +TABLE.headerbox { + margin: auto; + border-collapse: separate; + border-spacing: 2px; + width: 600px; + border: 4px ridge #eeeeee; + background-color: #ffffff ! important; + line-height: 1.5; + -webkit-hyphens: none; + -ms-hyphens: none; + hyphens: none; +} + + TABLE.headerbox TD { + border: 1px solid gray; + } + + TABLE.headerbox TD TD { + border: 0; + } + + TABLE.headerbox A:link { + color: #0000ff ! important; + } + TABLE.headerbox A:visited { + color: #cc0000 ! important; + } + TABLE.headerbox A:hover { + color: #ff00ff ! important; + } + TABLE.headerbox A:active { + color: #ff00ff ! important; + } + +/*keep superchapter immediately after headerbox:*/ +H3.superchapter { + width: 588px; /*headerbox minus 12*/ + margin-top: 8em; + margin-left: auto; + margin-right: auto; + font-size: 85%; + text-transform: uppercase; + text-align: center; + font-weight: bold; + letter-spacing: .5em; + border-style: solid; + border-top-width: 1px; + border-bottom-width: 1px; + border-left-width: 0px; + border-right-width: 0px; +} + +TABLE.start { + margin-top: 2.5em; +} + +TABLE.footer { + margin: auto; + margin-top: 5em; + width: 576px; + table-layout: fixed ! important; + column-width: 78px ! important; + padding: 0; + border: 0em; + border-spacing: 0; + empty-cells: show; + background-color: #ffffcc ! important; + -webkit-hyphens: none; + -ms-hyphens: none; + hyphens: none; +} + +TABLE.transparent_image { + margin-left: auto; + margin-right: auto; + margin-top: 1em; + background-color: transparent ! important; +} + +TD.transparent { + background-color: transparent ! important; +} + + + +/* 4/14/11: Used only on homepages for MassaMartana, Monteleone di Spoleto, Trevi, Cannaiola */ +/* NOTE: Their own .js states that modification and hosting are allowed, in case I want to have a stab at my own better formatting */ +TABLE.TweetFeed { + margin: auto; + margin-top: 4em; + margin-bottom: -5em; + width: 576px; + padding: 0; + border: 0em; + border-spacing: 0; + background-color: transparent ! important; +} + +TABLE.twitter { + margin: auto; + margin-top: 5em; + margin-bottom: -5em; + width: 576px; + padding: 0; + border: 0em; + border-spacing: 0; + background-color: transparent ! important; +} + +TABLE.photo { + margin-top: 40px; +} + +TABLE.vertical_pair { + width: 567px; + margin-left: auto; + margin-right: auto; + border-collapse: separate; + border-spacing: 2px; +} + + TABLE.vertical_pair TR { + text-align: justify; + } + + TABLE.vertical_pair TD { + padding: 15px; + } + +TABLE.odd_vertical_pair { + margin-left: auto; + margin-right: auto; + border-collapse: separate; + border-spacing: 2px; +} + + TABLE.odd_vertical_pair TR { + text-align: justify; + } + + TABLE.odd_vertical_pair TD { + vertical-align: middle; + padding: 15px; + } + +TABLE.text_and_vertical { + margin: auto; + border-collapse: separate; + border-spacing: 2px; + width: 581px; +} + + TABLE.text_and_vertical TR { + text-align: justify; + } + + TABLE.text_and_vertical TD { + vertical-align: middle; + padding: 15px; + } + + TABLE.text_and_vertical TD.squeeze { + vertical-align: middle; + padding: 3px; + } + +TABLE.text_and_vertical0 { + margin: auto; + border-collapse: separate; + border-spacing: 0; + width: 573px; +} + + TABLE.text_and_vertical0 TR { + text-align: justify; + } + + TABLE.text_and_vertical0 TD { + vertical-align: middle; + } + + TABLE.text_and_vertical0 TD.squeeze { + vertical-align: middle; + padding: 3px; + } + +TABLE.center { + width: auto; + margin-left: auto; + margin-right: auto; +} + +TABLE.imageF { + border-collapse: separate; + border-spacing: 1px; + border: 4px ridge #f6f6f6; + margin-left: auto; + margin-right: auto; + margin-top: 1em; +} + + TABLE.imageF TD { + border: 1px solid gray; + margin-left: 10px; + margin-right: 10px; + text-align: justify; + font-size: 80%; + } + + TABLE.imageF TD TD { + border: 0; + } + +TABLE.image { + border: 1px solid; + margin-left: auto; + margin-right: auto; + margin-top: 1em; +} + +TABLE.image0 { + border: 1px solid; + margin-top: .30em; + margin-left: auto; + margin-right: auto; +} + +TABLE.startimage { + border: 1px solid; + margin-left: auto; + margin-right: auto; + margin-top: 3em; +} + +TABLE.logo { + border: 0; + margin-left: auto; + margin-right: auto; + width: 132px; +} + +TABLE.embed_left { + border: 1px solid; + float: left; + margin-top: 8px; + margin-right: 8px; +} + +.prose TABLE.embed_left { + border: 1px solid; + float: left; + margin-top: 8px; + margin-right: 16px; +} + +TABLE.embed_left_noborder { + border: 0; + float: left; + margin-top: 8px; + margin-right: 8px; +} + +.prose TABLE.embed_left_noborder { + border: 0; + float: left; + margin-top: 8px; + margin-right: 16px; +} + +TABLE.embed_right { + border: 1px solid; + float: right; + margin-top: 8px; + margin-left: 8px; +} + +.prose TABLE.embed_right { + border: 1px solid; + float: left; + margin-top: 8px; + margin-left: 16px; +} + +TABLE.embed_right_noborder { + border: 0; + float: right; + margin-top: 8px; + margin-left: 8px; +} + +.prose TABLE.embed_right_noborder { + border: 0; + float: left; + margin-top: 8px; + margin-left: 16px; +} + +/* THE FOLLOWING ALIGNMENTS DON'T WORK IN SAFARI OR EXPLORER: */ + +/* TD.decimal { */ +/* text-align: "."; */ +/* } */ + +/* TD.middot { */ +/* text-align: "°§"; */ +/* } */ + +TD.sidepadded { + padding: 0 1em; +} + +.sidebar { + margin-left: 2em; + margin-right: 2em; + font-size: 85%; + font-style: italic; + padding: 0 .5em; + border-style: solid; + border-top-width: 1px; + border-bottom-width: 1px; + border-left-width: 0; + border-right-width: 0; +} + +.arithmetic { + font-family: Courier, monospace; + padding: 0 .5em; + text-align: right; + margin-top: 0em; + margin-bottom: 0em; +} + +.arithmetic .underscore { + color: #ff0000 ! important; + border-style: solid; + border-bottom-width: 1px; +} + +TD.lineunder { + font-family: Courier, monospace; + padding: 0 .5em; + text-align: right; + border-style: solid; + border-top-width: 0px; + border-bottom-width: 1px; + border-left-width: 0px; + border-right-width: 0px; + margin-top: 0em; + margin-bottom: 0em; +} + +.total { + font-family: Courier, monospace; + padding: 0 .5em; + text-align: right; + border-style: solid; + border-top-width: 1px; + border-bottom-width: 0px; + border-left-width: 0px; + border-right-width: 0px; + margin-top: 0em; + margin-bottom: 0em; +} + +.totalwithleftBorder { + font-family: Courier, monospace; + padding: 0 .5em; + text-align: right; + border-style: solid; + border-top-width: 1px; + border-bottom-width: 0px; + border-left-width: 1px; + border-right-width: 0px; + margin-top: 0em; + margin-bottom: 0em; +} + +.totalwithrightBorder { + font-family: Courier, monospace; + padding: 0 .5em; + text-align: right; + border-style: solid; + border-top-width: 1px; + border-bottom-width: 0px; + border-left-width: 0px; + border-right-width: 1px; + margin-top: 0em; + margin-bottom: 0em; +} + +/* +double underscores, see: +E/Gazetteer/Places/Europe/Italy/_Texts/HODIHI/2d_edition/6/NoteF*.html + */ +.double_underscored_total { + font-family: Courier, monospace; + padding: 0 .5em; + text-align: right; + border-style: double; + border-top-width: 0px; + border-bottom-width: 4px; + border-left-width: 0px; + border-right-width: 0px; + margin-top: 0em; + margin-bottom: 0em; +} + +.doubleunder { + border-bottom-style: double; + border-bottom-width: 3px; +} + +.top_border { + border-style: solid; + border-top-width: 1px; +} + +.top_and_bottom_border { + border-style: solid; + border-top-width: 1px; + border-bottom-width: 1px; + border-left-width: 0px; + border-right-width: 0px; +} + +TD.alias { + width: 292px; + text-align: center; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-weight: bold; +} + +TD.quietalias { + width: 292px; + font-size: 80%; +} + +TD.right { + text-align: right; +} + +TD.cell { + text-align: center; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-size: 50%; +/* font-size was originally 9.1px */ +} + +TD.midcell { + vertical-align: middle; + text-align: center; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-size: 50%; +} + +TD.upcell1 { + width: 78px; + vertical-align: middle; + text-align: center; + font-family: Verdana, sans-serif; + font-size: 55%; + font-weight: bold; + color: #0000ff ! important; + background-color: #ffffcc ! important; +} + +TD.upcell { + width: 78px; + text-align: center; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-size: 50%; + background-color: #ffffcc ! important; + color: #cccccc ! important; /* grey only if no link; otherwise, overridden*/ +} + +/* The following is used for upcells, etc. that are just a text anchor, in order to line them up right. See examples in AOG Reunions. */ +.no_image { + vertical-align: middle; + margin-top: 24px; + margin-bottom: 24px; +} + +TD.alsocell1 { + vertical-align: middle; + text-align: center; + font-family: Verdana, sans-serif; + font-size: 55%; + font-weight: bold; + color: #0000ff ! important; + background-color: #ffff99 ! important; +} + +TD.alsocell { + width: 78px; + text-align: center; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-size: 50%; + background-color: #ffff99 ! important; + color: #cccccc ! important; /* grey only if no link; otherwise, overridden*/ +} + +TD.alsocell2 { + width: 156px; + text-align: center; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-size: 50%; + background-color: #ffff99 ! important; +} + +TD.offcell1 { + vertical-align: middle; + text-align: center; + font-family: Verdana, sans-serif; + font-size: 55%; + font-weight: bold; + color: #0000ff ! important; + background-color: #ffff66 ! important; +} + +TD.offcell { + width: 78px; + text-align: center; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-size: 50%; + color: #0000ff ! important; + background-color: #ffff66 ! important; +} + +TD.previouscell { + width: 100px; + vertical-align: middle; + text-align: center; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-size: 50%; +} + +TD.nextcell { + width: 100px; + vertical-align: middle; + text-align: center; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-size: 50%; +} + +TD.pinkcell { + width: 78px; + text-align: center; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-size: 50%; + background-color: #ffcccc ! important; +} + +TD.toughcell { + width: 78px; + text-align: center; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-size: 50%; + background-color: #ffff33 ! important; +} + +TD.churchcell { + width: 78px; + text-align: center; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-size: 50%; + background-color: #ecdaff ! important; +} + +TD.churchcell1 { + vertical-align: middle; + text-align: center; + font-family: Verdana, sans-serif; + font-size: 55%; + font-weight: bold; + color: #0000ff ! important; + background-color: #ecdaff ! important; +} + +TD.diarycell { + width: 78px; + text-align: center; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-size: 50%; + background-color: #99ffcc ! important; +} + +TD.diarycell1 { + vertical-align: middle; + text-align: center; + font-family: Verdana, sans-serif; + font-size: 55%; + font-weight: bold; + color: #0000ff ! important; + background-color: #99ffcc ! important; +} + +.transcription { + font-family: Verdana, sans-serif; + font-size: 90%; + color: #990000 ! important; + background-color: #ffffff ! important; +} + +.expansion { + font-family: Verdana, sans-serif; + font-size: 90%; + color: #990000 ! important; + background-color: #ffffcc ! important; +} + +.interpretation { + font-family: Verdana, sans-serif; + font-size: 90%; + color: #000033 ! important; + background-color: #ffcccc ! important; +} + +/* + the widths of "flag" and "mail" work together to add to 100%: + [1* the width of "mailN"] + [(N-1) * the width of "flagN"] add to 100% + + where "100%" is the width of TABLE.header or TABLE.headerbox +*/ + +TD.USMA_flag { + text-align: right; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-size: 50%; +} + +TD.flag { + text-align: center; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-size: 80%; +} + +TD.flagcell { + vertical-align: bottom; + text-align: center; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; +} + +TD.flagcell .Greek { + font-size: 95%; + line-height: 1.15; /* Greek fonts have more line-height built‑in, force smaller */ +} + +TD.flagcell .Ukrainian { + line-height: 1.00; /* Ukrainian fonts have more line-height built‑in, force smaller */ + color: #000066; /* to prevent Ukrainian-language color */ +} + +TD.mailcell { + vertical-align: bottom; + text-align: center; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; +} + +TR.header2 { + font-size: 80%; +} + TR.header2 .mailcell { + width: 75%; + } + TR.header2 .flagcell { + width: 25%; + } + +TR.header3 { + font-size: 80%; +} + TR.header3 .mailcell { + width: 40%; + } + TR.header3 .flagcell { + width: 30%; + } + +TR.header4 { + font-size: 80%; +} + TR.header4 .mailcell { + width: 28%; + } + TR.header4 .flagcell { + width: 24%; + } + +TR.header5 { + font-size: 80%; +} + TR.header5 .mailcell { + width: 28%; + } + TR.header5 .flagcell { + width: 18%; + } + +TR.header6 { + font-size: 75%; +} + TR.header6 .mailcell { + width: 20%; + } + + TR.header6 .flagcell { + width: 16%; + } + +TR.header7 { + font-size: 70%; +} + TR.header7 .mailcell { + width: 16%; + } + TR.header7 .flagcell { + width: 14%; + } + +TR.header7 { + font-size: 70%; +} + TR.header8 .mailcell { + font-size: 70%; + width: 16%; + } + TR.header8 .flagcell { + font-size: 70%; + width: 12%; + } + +TD.flag4 { + text-align: center; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-size: 80%; + width: 24%; +} + +TD.flag5 { + text-align: center; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-size: 80%; + width: 18%; +} + +TD.flag6 { + text-align: center; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-size: 75%; + width: 16%; +} + +TD.flag7 { + text-align: center; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-size: 70%; + width: 14%; +} + +TD.flag8 { + text-align: center; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-size: 70%; + width: 12%; +} + +TD.incipit { + text-align: center; + font-family: "Times New Roman", serif; + font-size: 85%; +} + +TD.mail { + width: 100px; + vertical-align: bottom; + text-align: center; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-size: 80%; +} + +TD.mail4 { + vertical-align: bottom; + text-align: center; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-size: 80%; + width: 28%; +} + +TD.mail5 { + vertical-align: bottom; + text-align: center; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-size: 80%; + width: 28%; +} + +TD.mail6 { + vertical-align: bottom; + text-align: center; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-size: 75%; + width: 20%; +} + +TD.mail7 { + vertical-align: bottom; + text-align: center; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-size: 70%; + width: 16%; +} + +TD.mail8 { + vertical-align: bottom; + text-align: center; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-size: 70%; + width: 16%; +} + +TD.icon { + width: 146px; + text-align: center; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-size: 69%; +} + TD.icon IMG.icon0 { + margin-top: 16px; + } + TD.icon IMG.icon1 { + margin-top: 16px; + } + TD.icon IMG.icon2 { + margin-top: 15px; + } + +/* PHASE OUT "TD.rubric": From now on, use TABLE.rubric (which specifies the 85% font); and each time, immediately delete all TD class attributes "CLASS="rubric" — leaving, however, any "TD CLASS="rubricB". When all "rubric" tables have been switched over, delete this style: it isn't needed at all. The model page is the main Umbertide page. */ +TD.rubric { + text-align: justify; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + margin-left: 10px; + margin-right: 10px; + font-size: 85%; +} + +TD.rubricTEMP { + text-align: justify; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + margin-left: 10px; + margin-right: 10px; +} + +TD.rubricB { + text-align: justify; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + margin-left: 10px; + margin-right: 10px; + vertical-align: bottom; +} + +TD.rubricT { + text-align: justify; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + margin-left: 10px; + margin-right: 10px; + vertical-align: top; +} + +TD.banner { + background-color: #ccffff ! important; + text-align: center; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-size: 100%; + color: #cc0066 ! important; + font-weight: bold; +} + +TD.update { + text-align: center; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + color: #cc0066 ! important; +} + +TR { + vertical-align: top; +} + +TR.down { + vertical-align: bottom; +} + +TR.middle { + vertical-align: middle; +} + +TR.up { + background-color: #ffffcc ! important; + empty-cells: show; + vertical-align: top; +} + +TR.also { + background-color: #ffff99 ! important; + empty-cells: show; + vertical-align: top; +} + +TR.church { + background-color: #ecdaff ! important; + empty-cells: show; + vertical-align: top; +} + +TR.diary { + background-color: #99ffcc ! important; + empty-cells: show; + vertical-align: top; +} + +TR.off { + background-color: #ffff66 ! important; + empty-cells: show; + vertical-align: top; +} + +TR.lapidary { + font-family: Verdana, sans-serif; + font-size: 90%; + color: #990000 ! important; + background-color: #ffffff ! important; +} + +.translation { + font-family: Verdana, sans-serif; + font-size: 90%; + color: #000066 ! important; + background-color: #ffff99 ! important; +} + +.sandstone .translation { + color: #000066 ! important; + background-color: #f0d9c7 ! important; +} + +TR.interpretation { + font-family: Verdana, sans-serif; + font-size: 90%; + color: #000033 ! important; + background-color: #ffcccc ! important; +} + +TABLE P.x1 { + margin-top: 0em; + margin-bottom: 0em; + margin-left: 20px; + margin-right: 10px; + text-indent: -10px; + } + +TABLE P.x2 { + margin-top: 0em; + margin-bottom: 0em; + margin-left: 30px; + margin-right: 30px; + text-indent: -30px; + } + +DIV.TOCbox { + width: 527px ! important; /* TOC minus 49 */ + background-color: #ccffff ! important; + text-align: justify; + font-size: 85%; + color: #000066 ! important; + margin: auto; + padding-top: 0.4em; + padding-bottom: 0.4em; + padding-left: 1.3em; + padding-right: 1.3em; + border-style: ridge +} + + .TOCbox H3 { + margin-top: 1.5em; /* same as halfstart */ + } + +TABLE.TOC { + background-color: #ffffff ! important; + color: #000066 ! important; + border-width: 5px; + border-collapse: collapse; + border-style: double; + font-size: 80%; +} + +TABLE.with_dividers { + border-collapse: collapse; +} + +TABLE.with_dividers TR.discreetly_separated{ + border-color: #ffffff; +} + + .TOC A { + color: #0000ff ! important; + } + .TOC A:link { + color: #0077cc ! important; + } + .TOC A:visited { + color: #ff0000 ! important; + } + .TOC A:hover { + color: #ff00ff ! important; + } + .TOC TD { + vertical-align: middle; + } + + .TOC P { + margin-top: 0em; + margin-bottom: 0em; + margin-left: 20px; + margin-right: 10px; + text-indent: -10px; + } + + .TOC P.center { + text-align: center; + margin-top: 0em; + margin-bottom: 0em; + margin-left: 0em; + margin-right: 0em; + text-indent: 0; + } + + .TOC P.white { + color: #000066; + } + + .TOC P.m1 { + margin-top: 0em; + margin-bottom: 0em; + margin-left: 30px; + margin-right: 20px; + text-indent: 0; + } + + .TOC P.m1x1 { + margin-top: 0em; + margin-bottom: 0em; + margin-left: 2em; + margin-right: 1em; + text-indent: -1em; + } + + .TOC P.m1x2 { + margin-top: 0em; + margin-bottom: 0em; + margin-left: 3em; + margin-right: 1em; + text-indent: -2em; + } + + .TOC P.m2 { + margin-top: 0em; + margin-bottom: 0em; + margin-left: 2em; + margin-right: 2em; + text-indent: 0; + } + + .TOC P.m2x1 { + margin-top: 0em; + margin-bottom: 0em; + margin-left: 3em; + margin-right: 2em; + text-indent: -1em; + } + + .TOC P.m2x2 { + margin-top: 0em; + margin-bottom: 0em; + margin-left: 4em; + margin-right: 2em; + text-indent: -2em; + } + + .TOC P.m3 { + margin-top: 0em; + margin-bottom: 0em; + margin-left: 3em; + margin-right: 3em; + text-indent: 0; + } + + .TOC P.m3x1 { + margin-top: 0em; + margin-bottom: 0em; + margin-left: 4em; + margin-right: 2em; + text-indent: -1em; + } + + .TOC P.m3x2 { + margin-top: 0em; + margin-bottom: 0em; + margin-left: 5em; + margin-right: 2em; + text-indent: -2em; + } + + .TOC P.m4 { + margin-top: 0em; + margin-bottom: 0em; + margin-left: 4em; + margin-right: 4em; + text-indent: 0; + } + + .TOC P.x2 { + margin-left: 50px; + text-indent: -40px; + } + +TABLE.TOC1 { + background-color: #ffffff ! important; + border-width: 5px; + border-style: double; + font-size: 80%; +} + + .TOC1 TD { + vertical-align: middle; + } + + .TOC1 P { + margin-top: 0.24em; + margin-bottom: 0.24em; + margin-left: 20px; + margin-right: 10px; + text-indent: -10px; + } + + .TOC1 .m1 { + margin-left: 30px; + margin-right: 30px; +} + +TABLE.newpages { + margin-top: 5em; + font-size: 85%; +} + + TABLE.newpages .m2x1 { + margin-left: 4em; + margin-right: 2em; + text-indent: -1em; + } + + TABLE.newpages .m3x1 { + margin-left: 5em; + margin-right: 3em; + text-indent: -1em; + } + + TABLE.newpages B { + color: #444444 ! important; + } + TABLE.newpages .bold { + color: #444444 ! important; + } + TABLE.newpages A.bold { + color: #0000ff ! important; + } + TABLE.newpages A:link { + color: #0000ff ! important; + } + TABLE.newpages A:visited { + color: #cc0000 ! important; + } + TABLE.newpages A:hover { + color: #ff00ff ! important; + } + TABLE.newpages A:active { + color: #ff00ff ! important; + } + +TABLE.dotpoints { + width: 90%; + margin: auto; + line-height: 1.5; + text-align: justify; +} + + TABLE.dotpoints TD { + padding-left: 10px; + padding-right: 10px; + } + +.TOCitem { + text-align: justify; + font-size: 80%; + margin-left: 2em; + margin-right: 1em; + text-indent: -1em; +} + +.TOCpagenum { + vertical-align: middle; + font-family: Courier, monospace; + text-align: right; + padding-right: 10px; + margin-left: 10px; +} + +.TOCchapnum { + vertical-align: middle; + text-align: center; + font-weight: bold; + font-size: 190%; +} + +TD.leadoff_summary { + background-color: #ccffff ! important; + font-family: Verdana, Arial, Helvetica, sans-serif; + font-size: 53%; + color: #000066 ! important; + text-align: center; + border-style: solid; + border-color: #990000; + border-width: 1px; +} + +TD.Roman_summary { + background-color: #ff99ff ! important; + font-family: Verdana, Arial, Helvetica, sans-serif; + font-size: 53%; + text-align: center; +} + +.big_caption { + text-align: center; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-weight: bold; +} + +.caption { + text-align: center; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-size: 80%; +} + + .caption .photo_credits { + margin-top: .5em; + margin-right: 0; +} + +.low_caption { + text-align: center; + font-size: 85%; + text-transform: uppercase; + margin-bottom: 0; +} + +.image_title { + text-align: center; + margin-top: 0.5em; + hyphens: none; +} + +TD.contents { + margin-left: 10px; + margin-right: 10px; + font-size: 80%; +} + +.contents { + margin-left: 10px; + margin-right: 10px; + font-size: 80%; +} + + .contents .inscription { + font-family: Verdana, sans-serif; + font-size: 80%; + line-height: 1.2; /* line-height of ".inscription" (1.5) multiplied by font-size of ".contents" */ +} + + .contents .small_inscription { + font-family: Verdana, sans-serif; + font-size: 80%; +} + + .contents .Ukrainian { + font-size: 80%; + line-height: 1.08; +} + + .contents .lapis { + font-family: Verdana, sans-serif; + font-size: 80%; + line-height: 1.2; +} + + .contents .nummus { + color: #990000 ! important; + font-family: Verdana, sans-serif; + font-size: 80%; + text-transform: uppercase; + line-height: 1.2; +} + + .contents P { + margin-left: 10px; + margin-right: 10px; +} + +.ecru1 { + background-color: #ffffcc ! important; +} + +.ecru2 { + background-color: #ffff99 ! important; +} + +.ecru3 { + background-color: #ffff66 ! important; +} + +.ex { + text-align: justify; + margin-left: 30px; + text-indent: -30px; +} + +.exdent { + text-align: justify; + margin-left: 30px; + text-indent: -30px; + font-family: Verdana, sans-serif; + font-size: 75%; + line-height: 120%; +} + +.exdent_quote { + text-align: justify; + margin-top: 0em; + margin-bottom: 0em; + margin-left: 30px; + text-indent: -30px; + font-family: Verdana, sans-serif; + font-size: 85%; + color: #990000 ! important; + line-height: 100%; +} + +.index { + text-align: justify; + margin-left: 30px; + text-indent: -30px; + font-size: 75%; +} + +.index-start { + margin-top: 3em; + text-align: justify; + margin-left: 30px; + text-indent: -30px; + font-size: 75%; +} + +.margin { + margin-left: 40px; + margin-right: 40px; +} + +.nomargin { + margin-left: -40px; + margin-right: -40px; +} + +.not_online1 { + background-color: #e0e0e0 ! important; + font-size: 90%; + color: #666666 ! important; +} + +.not_online2 { + background-color: #d0d0d0 ! important; + font-size: 90%; + color: #555555 ! important; +} + +.offsite1 { + background-color: #ccffe5 ! important; +} + +.offsite2 { + background-color: #99ffcc ! important; +} + +.pad { + margin-left: 10px; + margin-right: 10px; +} + +TABLE.padsides TD { + padding-left: 10px; + padding-right: 10px; + font-size: 90%; +} + +.proofread0 { + background-color: #b2ffff ! important; +} + +.proofread1 { /* 90% white */ + background-color: #ccffff ! important; +} + TR.proofread1 TD.not_online { + background-color: #e0e0e0 ! important; + font-size: 90%; + color: #555555 ! important; + } + + .proofread1 .comment { + font-weight: bold; + color: #990099! important; + } + + .proofread1 .emend { + color: #339933 ! important; + } + + .proofread1 .primary_source { + color: #2AA22A ! important; + } + + .proofread1 .source { + font-weight: bold; + color: #006600! important; + } + + TR.proofread1 TD A { + color: #0000ff! important; + } + TR.proofread1 TD A:link { + color: #0000ff ! important; + } + TR.proofread1 TD A:visited { + color: #ff0000 ! important; + } + TR.proofread1 TD A:hover { + color: #ff00ff ! important; + } + TR.proofread1 TD A:active { + color: #ff00ff ! important; + } + +.proofread2 { /* 80% white */ + background-color: #99ffff ! important; +} + TR.proofread2 TD.not_online { + background-color: #d0d0d0 ! important; + font-size: 90%; + color: #555555 ! important; + } + + .proofread2 .comment { + font-weight: bold; + color: #990099! important; + } + + .proofread2 .emend { + color: #339933 ! important; + } + + .proofread2 .source { + font-weight: bold; + color: #006600! important; + } + + TR.proofread2 TD A { + color: #0000ff! important; + } + + TR.proofread2 TD A:link { + color: #0000ff ! important; + } + TR.proofread2 TD A:visited { + color: #ff0000 ! important; + } + TR.proofread2 TD A:hover { + color: #ff00ff ! important; + } + TR.proofread2 TD A:active { + color: #ff00ff ! important; + } + +.needs_images0 { + background-color: #c6d9ff ! important; +} + +.needs_images1 { /* 90% white, and closer to proofread1 than to unproofread1 */ + background-color: #ccddff ! important; +} + TR.needs_images1 TD A { + color: #0000ff! important; + } + + TR.needs_images1 TD A:link { + color: #0000ff ! important; + } + TR.needs_images1 TD A:visited { + color: #ff0000 ! important; + } + TR.needs_images1 TD A:hover { + color: #ff00ff ! important; + } + TR.needs_images1 TD A:active { + color: #ff00ff ! important; + } + +.needs_images2 { /* 85% white, and closer to proofread2 than to unproofread2 */ + background-color: #b2ccff ! important; +} + TR.needs_images2 TD A { + color: #0000ff! important; + } + + TR.needs_images2 TD A:link { + color: #0000ff ! important; + } + TR.needs_images2 TD A:visited { + color: #ff0000 ! important; + } + TR.needs_images2 TD A:hover { + color: #ff00ff ! important; + } + TR.needs_images2 TD A:active { + color: #ff00ff ! important; + } + + +.gloss { + font-family: Verdana, sans-serif; + font-size: 90%; + color: #660099 ! important; + } + +/* An imperfect workaround used for pulling text up one line in order to superimpose two lines: the second line is the one that gets the style. */ +/* +Used in +E/Gazetteer/People/Robert_Edward_Coontz/From_the_Mississippi_to_the_Sea/Appendices/C*.html + */ +.up1line { + margin-top: -2.5em; +} + +.unindented_prose { + font-family: "Myriad Web Pro", Helvetica, Geneva, "Lucida Grande", sans-serif; + line-height: 1.5; + font-size: 85%; + text-align: justify; +} + +.allcaps { + text-transform: uppercase; + letter-spacing: .05em; +} + +.prose { + font-family: "Myriad Web Pro", Helvetica, Geneva, "Lucida Grande", sans-serif; + line-height: 1.5; + font-size: 85%; + margin-left: 2em; + margin-right: 2em; + text-align: justify; +} + + .prose .normal { + font-family: Verdana, sans-serif; + font-size: 90%; + color: #660099 ! important; + } + + .prose .citation { + font-weight: bold; + font-size: 85%; + font-variant: normal; + } + + .prose .manuscript { + font-size: 90%; + } + + .prose .Greek { + color: #996600 ! important; + font-family: "Lucida Grande", "Palatino Linotype", "Arial Unicode Ms", "Titus Cyberbit Basic", "Lucida Sans Unicode", sans-serif ! important; + font-size: 95%; + } + + .prose TABLE { + font-family: "Myriad Web Pro", Helvetica, Geneva, "Lucida Grande", sans-serif; + margin-left: -.2em; + margin-right: -.2em; + line-height: 1.5; + font-size: 100%; + text-align: justify; + } + +.outquote { + color: #7700b3 ! important; +} + +.quote { + font-family: Verdana, sans-serif; + font-size: 85%; +} + +.quote1 { + font-family: Verdana, sans-serif; + font-size: 85%; + margin-left: 2em; + margin-right: 2em; +} + + .quote1 P { + margin-top: 0em; + margin-bottom: 0em; + text-indent: 1em; + text-align: justify; + } + + .quote1 P.right { + margin-top: 0em; + margin-bottom: 0em; + text-align: right; + } + + .quote1 P.center { + margin-top: 0em; + margin-bottom: 0em; + text-align: center; + } + + .quote1 P.in{ + margin-top: 0em; + margin-bottom: 0em; + text-indent: 0em; + text-align: justify; + } + +.verseTEST { + font-family: Verdana, sans-serif; + font-size: 85%; + position: relative; + margin: auto; + height: 50%; + top: 25%; +} + +.verseTEST P { + margin: auto; + margin-top: 0em; + margin-bottom: 0em; + margin-left: 3em; + text-indent: -3em; +} + +/*Greek TEST (settled)*/ +.verse { + font-family: "Myriad Web Pro", Helvetica, Geneva, "Lucida Grande", sans-serif; + line-height: 1.5; + font-size: 85%; + letter-spacing: .06em; + margin-left: 2em; + margin-right: 2em; +} + + .mynote .verse { + color: #000066 ! important; + } + + .mynoteWide .verse { + color: #000066 ! important; + } + + +.verse .right { + font-family: "Myriad Web Pro", Helvetica, Geneva, "Lucida Grande", sans-serif; + font-size: 85%; + margin-left: 2em; + margin-right: 2em; +} + +.verse P { + margin-top: 0em; + margin-bottom: 0em; + margin-left: 3em; + margin-right: 3em; + text-indent: -3em; +} + +.verse P.nopad { + margin-top: 0em; + margin-bottom: 0em; + margin-left: 0em; + margin-right: 0em; + color: #ff6600 ! important;} + +/* +TABLE.verse P.center { + margin-top: 0em; + margin-bottom: 0em; + margin-left: 3em; + margin-right: 3em; +} +*/ + +.verse P.start { + margin-top: 1em; + margin-bottom: 0em; +} + +.verse P.start2 { + margin-top: 5em; + margin-bottom: 0em; +} + +.verse .verse { + font-size: 100%; + text-indent: -2em; +} + +.verse .verse1 { + text-indent: 0em; +} + +.verse .verse2 { + text-indent: 2em; +} + +.verse .verse3 { + text-indent: 4em; +} + +.verse .verse4 { + text-indent:6em; +} + +.verse .verse5 { + text-indent: 8em; +} + +.verse .verse6 { + text-indent: 10em; +} + +.verse .verse7 { + text-indent: 12em; +} + +.verse .verse8 { + text-indent: 14em; +} + +.verse .verse9 { + text-indent: 16em; +} + +.verse .verse10 { + text-indent: 18em; +} + +.verse .verse11 { + text-indent: 20em; +} + +.verse .verse12 { + text-indent: 22em; +} + +.unproofread0 { + background-color: #ffb2b2 ! important; +} + +.unproofread1 { /* 90% white */ + background-color: #ffcccc ! important; +} + TR.unproofread1 TD.not_online { + background-color: #e0e0e0 ! important; + font-size: 90%; + color: #555555 ! important; + } + + TR.unproofread1 TD A { + color: #0000ff! important; + } + + TR.unproofread1 TD A:link { + color: #0000ff ! important; + } + TR.unproofread1 TD A:visited { + color: #ff0000 ! important; + } + TR.unproofread1 TD A:hover { + color: #ff00ff ! important; + } + TR.unproofread1 TD A:active { + color: #ff00ff ! important; + } + +.unproofread2 { /* 80% white */ + background-color: #ff9999 ! important; +} + TR.unproofread2 TD.not_online { + background-color: #d0d0d0 ! important; + font-size: 90%; + color: #555555 ! important; + } + + TR.unproofread2 TD A { + color: #0000ff! important; + } + + TR.unproofread2 TD A:link { + color: #0000ff ! important; + } + TR.unproofread2 TD A:visited { + color: #ff0000 ! important; + } + TR.unproofread2 TD A:hover { + color: #ff00ff ! important; + } + TR.unproofread2 TD A:active { + color: #ff00ff ! important; + } + + +.unproofread3 { + background-color: #ff6666 ! important; +} + +.unproofread4 { + background-color: #ff3333 ! important; +} + +TR.thanks { + background-color: #ccffff ! important; +} + +.thanks { + margin-left: 10em; + font-size: 85%; + background-color: #ccffff ! important; + vertical-align: middle; + text-align: center; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + color: #cc3300 ! important; +} + +.thanks A:visited { + color: #00ff00 ! important; /* THIS DOESN'T WORK. */ +} + +.thanks A { + font-weight: bold; + font-size: 120%; + color: #0000ff ! important; +} + +P.thanks { + margin: 1em; +} + +/* COMPOUND SCHEMES: */ + +.callout1 { + font-family: sans-serif; + color: #8800cc ! important; +} + +.sans { + font-family: sans-serif; +} + +.callout-red { + font-family: sans-serif; + color: #cc0033 ! important; +} + +.callout-orange { + font-family: sans-serif; + color: #cc9900 ! important; +} + +.epitome { + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + color: #660066 ! important; +} + +.Tzetzes { + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + color: #003333 ! important; +} + +.nummus { + color: #990000 ! important; + font-family: Verdana, sans-serif ! important; + font-size: 80% ! important; + text-transform: uppercase ! important; +} + + .nummus .emend { + color: #ee6633 ! important; + } + + .nummus .superscript { + font-size: 50%; + vertical-align: top; + } + +.Tiny { + font-family: Tiny, sans-serif; + font-size: 62%; +} + +/* THIS SEEMS NOT TO BE USED. I COMMENTED IT OUT BECAUSE IT CONFLICTS WITH TR.up, CAUSING A MINOR BUT UNAESTHETIC GLITCH IN FOOTERS. IF IT NEEDS TO BE RESTORED, RENAME IT. +.up { + position: relative; + top: -4px; +} + */ + +.Verdana { + font-family: Verdana, sans-serif; + font-size: 85%; +} + +/* COLOR SCHEMES:*/ + /* for table columns and rows:*/ + +.green1 { + background-color: #ccffcc ! important; +} + +.green2 { + background-color: #99ff99 ! important; +} + +.beige1 { + background-color: #fff7f2 ! important; +} + +.beige2 { + background-color: #ffe7d9 ! important; +} + +.blue1 { + background-color: #ccffff ! important; +} + +.blue2 { + background-color: #99ffff ! important; +} + +.purple1 { + background-color: #ffddff ! important; +} + +.purple2 { + background-color: #ffaaff ! important; +} + +.red1 { + background-color: #ffbbbb ! important; +} + +.red2 { + background-color: #ff8888 ! important; +} + +.orange1 { + background-color: #ffddbb ! important; +} + +.orange2 { + background-color: #ffbb88 ! important; +} + +.yellow1 { + background-color: #ffffaa ! important; +} + +.yellow2 { + background-color: #ffff55 ! important; +} + +.grey0 { + background-color: #f6f6f6 ! important; +} + +.grey1 { + background-color: #e9e9e9 ! important; +} + +.grey2 { + background-color: #e3e3e3 ! important; +} + +.road1 { + background-color: #ffffcc ! important; +} + +.road2 { + background-color: #ffff99 ! important; +} + +.land1 { + background-color: #ccffcc ! important; +} + +.land2 { + background-color: #99ff99 ! important; +} + +.sandstone1 { + background-color: #ffeedd ! important; +} + +.sandstone2 { + background-color: #eeddcc ! important; +} + +.sea1 { + background-color: #ccffff ! important; +} + +.sea2 { + background-color: #99ffff ! important; +} + +.row1cell1 { + background-color: #ffffcc ! important; +} + +.row1cell2 { + background-color: #ccffff ! important; +} + +.row2cell1 { + background-color: #ffff99 ! important; +} + +.row2cell2 { + background-color: #99ffff ! important; +} + +.addendum { + color: #003399 ! important; +} + +.callout { + color: #8800cc ! important; +} + + +DIV.boxlinksprompt { + background-color: #E8E8E8 !important; + text-align: center; + font-size: 65%; + color: #061CBE !important; + width: 42em; + margin-left: auto; + margin-right: auto; + margin-top: 3em; + padding-top: 0.4em; + padding-bottom: 0.4em; + padding-left: 0.6em; + padding-right: 0.6em; + border: .25em ridge #ffffff !important; +} + +.GazetteerPrompt { + background-color: #ebebff ! important; + color: #0066ff ! important; +} + + .GazetteerPrompt .title { + margin-bottom: 0em; + text-align: center; + color: #0000ff ! important; +} + + .GazetteerPrompt P { + margin-top: 0em; +} + +.HistoryPrompt { + background-color: #ffebeb ! important; + color: #993333 ! important; +} + + .HistoryPrompt .title { + margin-bottom: 0em; + text-align: center; + color: #ff0000 ! important; +} + + .HistoryPrompt P { + margin-top: 0em; +} + +.MixedPrompt { + background-color: #ffe5ff ! important; + color: #663399 ! important; +} + + .MixedPrompt .title { + margin-bottom: 0em; + text-align: center; + color: #cc00ff ! important; +} + + .MixedPrompt P { + margin-top: 0em; +} + +.recommended { + background-color: #ccffcc ! important; +} + +.not_recommended { + background-color: #ffeedd ! important; +} + +/* +TABLE COLORS: use country name nouns, reserving adjectives for font styles +*/ +.France { + color: #001099 ! important; + border: 1px solid #cc0000 ! important; +} + +.Italy { + color: #309900 ! important; + border: 1px solid #cc0000 ! important; +} + +.Symbola{ + font-family: Symbola; +} diff --git a/sources/book_3_files/up.gif b/sources/book_3_files/up.gif new file mode 100644 index 0000000..526a178 Binary files /dev/null and b/sources/book_3_files/up.gif differ diff --git a/sources/book_4a.html b/sources/book_4a.html new file mode 100644 index 0000000..8b46df2 --- /dev/null +++ b/sources/book_4a.html @@ -0,0 +1,2154 @@ + + + + + + + + + + +LacusCurtius • Ad Herennium — Book IV, 1‑18 + + + + + + + + + + + + + + + +

+ + + + +
+
+ 
+[image ALT: Much of my site will be useless to you if you've got the images turned off!]
+
+ + + + + + + + + + + + + + + + + +
+mail: +
+Bill Thayer + +
+ + 
+[image ALT: Cliccare qui per una pagina di aiuto in Italiano.]
+
+Italiano +
+
+ + 
+[Link to a series of help pages]
+
+Help +
+
+ + [Link to the next level up]
+Up +
+
+ + [Link to my homepage]
+Home +
+
+ + + + + +
+ previous: +
+ 
+[image ALT: link to previous section]
+
+Book III +
+
+

+This webpage reproduces part of +
+a complete English translation of the +
+ +Rhetorica ad Herennium + +
+published in the +Loeb Classical Library, +
+1954 +

+The text is in the public domain. + +

+This page has been carefully proofread +
+and I believe it to be free of errors. +
+If you find a mistake though, +
+ +please let me know! + +

+ next: +
+ 
+[image ALT: link to next section]
+
+IV.19‑46 +
+
+
+ + +

+ +Rhetorica ad Herennium + +

+ +

+  p229  +Book IV +

+ + +

+ 1 +1 Inasmuch as in the present Book, +Herennius, I have written about Style, and wherever there was need +of examples, I have used those of my own making, and in so doing +have departed from the practice of the Greek writers​1 + on the subject, I must in a few words justify my method. And +that I make this explanation from necessity, and not from choice, +is sufficiently indicated by the fact that in the preceding Books +I have said nothing by way either of preface​2 + or of digression. Now, after a few indispensable observations, +I shall, as I undertook to do, discharge my task of explaining + to you the rest of the art. But you will more readily understand my +method when you have learned what the Greeks say.3 + +

+On several grounds they think that, after they have given their own +precepts on how to embellish style, they must for each kind of +embellishment offer an example drawn from a reputable orator or poet.​4 And their first ground is that in doing so they are + + + p231 prompted +by modesty, because it seems a kind of ostentation not to be content to +teach the art, but to appear desirous themselves of creating examples +artificially. That, they say, would be showing themselves off, not +showing what the art is. 2 Hence it is +in the first place a sense of shame which keeps us from following this +practice, for we should appear to be approving of ourselves alone,​5 + to be prizing ourselves, scorning and scoffing at others. For when we +can take an example from Ennius, or offer one from Gracchus,​6 it seems presumptuous to neglect these and to have recourse to our own examples. + +

+In the second place, examples, they say, serve the purpose of testimony; + for, like the testimony of a witness, the example enforces what the +precept has suggested and only to a slight degree effected.​7 Would not a man be ridiculous, then, if in a trial​8 or in a domestic procedure​9 + he should contest the issue on the basis of his own personal testimony? + For an example is used just like testimony to prove a point; it should +properly therefore be taken only from a writer of highest reputation, +lest what ought to serve as proof of something else should itself +require proof. In fact, inventors of examples must either prefer +themselves to all others and esteem their own products most of all, or +else deny that the best examples are those taken from the orators or +poets of highest reputation. If they should set themselves above all +others, they are unbearably conceited; if they should grant to any +others a superiority over themselves and yet not believe that + + + p233 the examples of these others excel their own, they cannot explain why they concede this superiority. + +

+ 2 +And furthermore, does not the very prestige of the ancients not only +lend greater authority to their doctrine but also sharpen in men the +desire to imitate them? Yes, it excites the ambitions and whets the zeal + of all men when the hope is implanted in them of being able by +imitation​10 to attain to the skill of a Gracchus or a Crassus. + +

+3 Finally, they say, the highest art +resides in this: in your selecting a great diversity of passages widely +scattered and interspersed among so many poems and speeches, and doing +this with such painstaking care that you can list examples, each +according to its kind, under the respective topics of the art. If this +could be accomplished by industry alone, we should yet deserve praise +for not having avoided such a task; but actually, without the highest +art it cannot be done. For who, unless he has a consummate grasp of the +art of rhetoric, could in so vast and diffuse a literature mark and +distinguish the demands of the art? Laymen, reading good orations and +poems, approve the orators and poets, but without comprehending what has + called forth their approval, because they cannot know where that which +especially delights them resides,​11 + or what it is, or how it was produced. But he who understands all this, + and selects examples that are most appropriate, and reduces to +individual principles of instruction everything that especially merits +inclusion in his treatise, must needs be a master artist​12 in this field. This, then, is the height of + + + p235 technical skill — in one's own treatise to succeed also in using borrowed examples! + +

+4 When the Greeks make such assertions, + they influence us more by their prestige than by the truth of their +argument. For what I really fear is that some one may consider the +view contrary to mine adequately recommended because its supporters are +the very men who invented this art and are now by reason of their +antiquity quite universally esteemed. If, however, leaving the prestige +of the ancients out of consideration, they are willing to compare all +the arguments, point for point, they will understand that we need not +yield to antiquity in everything. + +

+ 3 +First, then, let us beware lest the Greeks offer us too childish an +argument in their talk about modesty. For if modesty consists in saying +nothing or writing nothing, why do they write or speak at all? But if +they do write something of their own, then why does modesty keep them +from composing, themselves, everything they write? It is as if some one +should come to the Olympic games to run, and having taken a position for + the start, should accuse of impudence those who have begun the race — +should himself stand within the barrier and recount to others how Ladas​13 used to run, or Boïscus​14 + in the Isthmian games. These Greek rhetoricians do likewise. When they +have descended into the race-course of our art, they accuse of immodesty + those who put in practice the essence of the art; they praise some +ancient orator, poet, or literary work, but without themselves daring to + come forth into the stadium of + + + p237 rhetoric.​15 5 I should + not venture to say so, yet I fear that in their very pursuit of +praise for modesty they are impudent. Some one may say to them: "Now +what do you mean? You are writing a treatise of your own; you are +creating new precepts for us; you cannot confirm these yourself; so you +borrow examples from others. Beware of acting impudently in seeking to +extract from the labour of others praise for your own name." Indeed, if +the ancient orators and poets should take the books of these +rhetoricians and each remove therefrom what belongs to himself, the +rhetoricians would have nothing left to claim as their own.16 + +

+"But," they say, "since examples correspond to testimony, it is proper +that, like testimony, they should be taken from men of the highest +reputation."​17 First and foremost, examples are set forth, not to confirm​18 or to bear witness, but to clarify.​19 When I  p239 say there is a figure of speech which, for instance, consists of like-ending words, and take this example from Crassus: quibus possumus et debemus,​20 + I am setting up, not testimony, but an example. The difference +between testimony and example is this: by example we clarify the nature +of our statement, while by testimony we establish its truth. 6 Furthermore, + the testimony must accord with the proposition, for otherwise it cannot + confirm the proposition. But the rhetoricians' performance does not +accord with what they propose. How so? In that they promise to write a +treatise of the art, and then mostly bring forward examples from authors + who were ignorant of the art. Now who can give authority to his +writings on the art unless he writes something in conformity with the +art?​21 + Their performance is at variance with what they seem to promise; for +when they undertake to write the rules of their art, they appear to say +that they have themselves invented what they are teaching to others, but + when they actually write, they show us what others have invented. + +

+ 4 +"But," say they, "this very choice from among many is difficult." What +do you mean by difficult? That it requires labour? Or that it requires +art? The laborious is not necessarily the excellent. There are many +things requiring labour which you would not necessarily boast of having +done — unless, to be sure, you thought it a glorious + + + p241 feat to have transcribed by your own hand whole dramas​22 + or speeches! Or do you say that that kind of thing requires exceptional + art? Then beware of appearing inexperienced in greater matters, if you +are going to find the same delight in a petty thing as in a great. +Doubtless no one quite uncultivated can select in this way; yet many who + lack the highest art can. 7 For any +one at all who has heard more than a little about the art, especially in + the field of style, will be able to discern all the passages composed +in accordance with the rules; but the ability to compose them only the +trained man will possess. It is as if you should wish to choose maxims +from the tragedies of Ennius,​23 + or messengers' reports from the tragedies of Pacuvius; if, however, +just because no one who is quite illiterate can do this, you should +suppose that having done it, you are most highly cultivated, you would +be foolish, because any person moderately well-read could do it easily. +In the same fashion if, having chosen from orations or poems examples +marked by definite tokens of art, you should suppose that your +performance gives proof of superlative art on the ground that no +ignoramus is capable of it, you would be in error, because by this token + that you offer we see only that you have some knowledge, but we shall +need still other tokens to convince us that you know a great deal. Now +if to discern what is written artistically proves your mastery of the +art, then a far better proof of this mastery is to write artistically +yourself. For though the artistic writer will find it easy to discern +what has been skilfully written by others, the facile chooser of +examples will not necessarily write with skill himself. And even if it +is an especial mark of artistic skill, let them + + + p243 employ this faculty at another time, and not when they themselves should be conceiving, creating, and bringing forth.​24 + In short, let them devote their artistic power to this purpose — to win + esteem as worthy themselves to be chosen as models by others, rather +than as good choosers of others who should serve as models for them. + +

+Against the contentions of those who maintain that we should use +borrowed examples I have said enough. Now let us see what can be +said from my own particular point of view.25 + +

+ 5 +Accordingly I say that they are not only at fault in borrowing +examples, but make an even greater mistake in borrowing examples from a +great number of sources.​26 + And let us first look at my second point. Were I granting that we +should borrow examples, I should establish that we ought to select +from one author alone. In the first place, my opponents would then have +no ground​27 + for opposing this procedure, for they might choose and approve whom +they would, poet or orator, to supply them with examples for all cases, +one on whose authority they could rely.​28 Secondly, it is a matter of great concern to the + + + p245 student +whether he should believe that every one can attain the sum total of +qualities, or that no one can, or that one individual can attain one +quality and another individual another quality. For if the student +believes that all qualities can exist in one man, he himself will strive + for a mastery of them all. But if he despairs of this achievement, he +will occupy himself in acquiring a few qualities, and with these be + content. Nor is this surprising, since the teacher of the art himself +has been unable to find all the qualities in one author. Thus, when +examples have been drawn from Cato, the Gracchi, Laelius, Scipio, Galba, + Porcina, Crassus, Antonius,​29 + and the rest, and some as well from the poets and historians, the +learner will necessarily believe that the totality could have been taken + only from them all, and that barely a few examples could have been + taken from only one. 8 He will therefore be content with emulating some one author​30 + and distrust his own single power to possess the sum total of qualities + possessed by all the authors. Now it is disadvantageous for the student + to believe that one person cannot possess all qualities;​31 + and so I say, no one would fall into this opinion if the +rhetoricians had drawn examples from one author alone. Actually, the +fact that the writers on rhetoric have presented neither their own +examples nor those of some single author, or even two, but have borrowed + from all the orators and poets, is a sign that they themselves have not + believed that any one individual can be brilliant in all the + + + p247 branches +of style. Moreover, should any one wish to show that the art of rhetoric + is of no benefit for speaking, he might well in support employ the +argument that no one man has been able to master all the branches of +rhetoric. Is it not ridiculous for a rhetorician himself to approve by +his own judgement what thus supports the theory of those who utterly +condemn the art of rhetoric?32 + +

+I have, then, shown that if examples were always to be borrowed, the borrowing should have been from one author. 6 9 Now we shall learn from the following that they should not have been borrowed at all. + +

+Above all, an example which is cited by a writer on an art should be +proof of his own skill in that art. It is as if a merchant selling +purple or some other commodity should say: "Buy of me, but I shall +borrow from some one else a sample of this to show you." So do these +very people who offer merchandise for sale go in search of a sample of +it elsewhere; they say: "We have piles of wheat," but have not a handful + of grain to show as a sample.​33 + If Triptolemus, when dispensing seed to mankind, had himself borrowed +it from other men, or if Prometheus, wishing to distribute fire amongst +mortals, had himself gone about with an urn begging a few coals of +his neighbours, he would have appeared ridiculous. + + + p249 Do not +these schoolmasters, teachers of public speaking to all the world, see +that they are acting absurdly when they seek to borrow the very thing +they offer to bestow? If any one should say that he has discovered the +richest of deeply hidden springs, and tell of the discovery while +suffering extreme thirst and lacking the wherewithal to slake his +thirst, would he not be a laughingstock? When these writers declare that + they are not only the masters of the springs, but are themselves the +wellsprings​34 + of eloquence, and when it is their duty to water the talents of all, do + they not think it will be laughable if, whilst making the offer to do +so, they are themselves parched with drought? Not thus did Chares learn +from Lysippus how to make statues.​35 Lysippus did not show him a head by Myron,​36 + arms by Praxiteles, a chest by Polycleitus. Rather with his own eyes +would Chares see the master fashioning all the parts; the works of the +other sculptors he could if he wished study on his own initiative. These writers believe that students of this subject can be better taught by another method. + +

+ 7 +10 Furthermore, borrowed examples simply cannot be so well adapted to the rules of the art because + + + p251 in +speaking each single topic is in general touched lightly, so that the +art may not be obvious. In instructing, on the other hand, one must cite + examples that are draughted expressly to conform to the pattern of the +art. It is afterwards, in speaking, that the orator's skill conceals his + art,​37 + so that it may not obtrude and be apparent to all. Thus as to the end +that the art may be better understood is it preferable to use examples +of one's own creation. + +

+Finally, I have been led to this method by another consideration also​38 — the remoteness from our own usage of the technical terms​39 I have translated from the Greek. For concepts non-existent + among us could not have familiar appellations. The translated terms, +therefore, must seem rather harsh at first — that will be a fault of the + subject, not mine. The rest of my treatise will be devoted to examples. + If, however, these which I have here set down had been borrowed +from other sources, the result would have been that anything apt in this + book would not be mine, but whatever is a little rough or strange would + be assigned to me as my own particular contribution. So I have +escaped this disadvantage also. + +

+On these grounds, although esteeming the Greeks as the inventors of the art, I have not followed their + + + p253 theory of examples. Now it is time to turn to the principles of Style. + +

+I shall divide the teaching of Style into two parts. First +I shall state the kinds to which oratorical style should always +confine itself,​40 then I shall show what qualities style should always have. + +

+ 8 +11 There are, then, three kinds of style, called types,​41 to which discourse, if faultless, confines itself: the first we call the Grand; the second, the Middle; the third, the Simple.​42 The Grand type consists of a smooth and ornate arrangement of impressive words.​43 + The Middle type consists of words of a lower, yet not of the lowest and + most colloquial, class of words. The Simple type is brought down even +to the most current idiom of standard speech. + +

 p255  +A discourse will be composed in the Grand style if to each idea are + applied the most ornate words that can be found for it, whether literal + or figurative; if impressive thoughts are chosen, such as are used in +Amplification and Appeal to Pity; and if we employ figures of thought +and figures of diction which have grandeur — these I shall discuss +later.​44 The following will be an example of this type of style: + +

+

+12 "Who of you, pray, men of the jury, + could devise a punishment drastic enough for him who has plotted to +betray the fatherland to our enemies? What offence can compare with this + crime, what punishment can be found commensurate with this offence?​45 Upon those who had done violence to a freeborn youth, outraged the mother of a family, wounded,​46 + or — basest crime of all — slain a man, our ancestors exhausted the +catalogue of extreme punishments; while for this most savage and impious + villainy they bequeathed no specific penalty.​47 + In other wrongs, indeed, injury arising from another's crime extends to + one individual, or only to a few; but the participants in this +crime are plotting, with one stroke, the most horrible catastrophes for +the whole body of citizens. O such men of savage hearts! +O such cruel designs! O such human beings bereft of human +feeling! What have they dared to do, what can they now be planning? They + are planning how our enemies, after uprooting our fathers' graves, and +throwing down our walls, shall with triumphant cry rush into the city; +how when they have despoiled the temples + + + p257 of the +gods, slaughtered the Conservatives and dragged all others off into +slavery, and when they have subjected matrons and freeborn youths to a +foeman's lust, the city, put to the torch, shall collapse in the most +violent of conflagrations! They do not think, these scoundrels, that +they have fulfilled their desires to the utmost, unless they have gazed +upon the piteous ashes of our most holy fatherland. Men of the jury, +I cannot in words do justice to the shamefulness of their act; yet +that disquiets me but little, for you have no need of me. Indeed your +own hearts, overflowing with patriotism, readily tell you to drive this +man, who would have betrayed the fortunes of all, headlong from this +commonwealth,​48 which he would have buried under the impious domination of the foulest of enemies."​49 +

+ +

 p259  + 9 +13 Our discourse will belong to the Middle type if, as I have said above,​50 we have somewhat relaxed our style, and yet have not descended to the most ordinary prose, as follows: + +

+

+"Men of the jury, you see against whom we are waging war — against +allies who have been wont to fight in our defence, and together with us +to preserve our empire by their valour and zeal. Not only must they have + known themselves, their resources, and their manpower, but their +nearness to us and their alliance with us in all affairs enabled them no + less to learn and appraise the power of the Roman people in every +sphere. When they had resolved to fight against us, on what, I ask +you, did they rely in presuming to undertake the war, since they +understood that much the greater part of our allies remained faithful to + duty, and since they saw that they had at hand no great supply of +soldiers, no competent commanders, and no public money — in short, none +of the things needful for carrying on the war? Even if they were waging +war with neighbours on a question of boundaries, even if in their +opinion one battle would decide the contest, they would yet come to the +task in every way better prepared and equipped than they are now. It is +still less credible that with such meagre forces they would attempt to +usurp that sovereignty over the whole world which all the civilized +peoples, kings, and barbarous nations have accepted, in part compelled +by force, in part of their own will, when conquered either by the arms +of Rome or by her generosity. Some one will ask: 'What of the +Fregellans? Did they not make the attempt on their own initiative?' Yes, + but these allies would be less ready to make the attempt + + + p261 precisely because they saw how the Fregellans fared.​51 + For inexperienced peoples, unable to find in history a precedent for +every circumstance, are through imprudence easily led into error; whilst + those who know what has befallen others can easily from the fortunes of + these others draw profit for their own policies.​52 + Have they, then, in taking up arms, been impelled by no motive? Have +they relied on no hope? Who will believe that any one has been so mad as + to dare, with no forces to depend on, to challenge the sovereignty of +the Roman people? They must, therefore, have had some motive, and what +else can this be but what I say?"​53 +

+ +

+ 10 +14 Of the Simple type of style, which +is brought down to the most ordinary speech of every day, the following +will serve as an example: + +

+

+"Now our friend happened to enter the baths, and, after washing, was +beginning to be rubbed down. Then, just as he decided to go down into +the pool, suddenly this fellow turned up. 'Say, young chap,' said he, +'you slaveboys have just beat me; you must make it good.' The young man +grew red, for at his age he was not used to being hailed by a stranger. +This creature started to shout the same words, and more, in a louder +voice. With difficulty the youth replied: 'Well, but let me look into +the matter.' + + + p263 Right then + the fellow cries out in that tone of his that might well force blushes +from any one; this is how aggressive and harsh it is — a tone +certainly not practised in the neighbourhood of the Sundial, +I would say, but backstage, and in places of that kind.​54 + The young man was embarrassed. And no wonder, for his ears still rang +with the scoldings of his tutor, and he was not used to abusive language + of this kind. For where would he have seen a buffoon, with not a blush +left, who thought of himself as having no good name to lose, so that he +could do anything he liked without damage to his reputation?"​55 +

+ +

+15 Thus the examples themselves are +enough to make clear the types of style. For one arrangement of words is + of the simple type, another again belongs to the grand, and another +belongs to the middle. + +

+But in striving to attain these styles, we must avoid falling into faulty styles closely akin to them.​56 For instance, bordering on the Grand style, which is in itself praiseworthy, there is a style to be avoided. + + + p265 To call this the Swollen​57 + style will prove correct. For just as a swelling often resembles a +healthy condition of the body, so, to those who are inexperienced, +turgid and inflated language either in new or in archaic words, or in +clumsy metaphors, or in diction more impressive than the theme demands,​58 + as follows: "For he who by high treason betrays his nature land will +not have paid a condign penalty albeit hurl'd into gulfs Neptunian. So +pursue ye this man, who hath builded mounts of war, destroyed the plains + of peace."​59 + Most of those who fall into this type, straying from the type they +began with, are misled by the appearance of grandeur and cannot perceive + the tumidity of the style. + +

+ 11 +16 Those setting out to attain at Middle style, if unsuccess­ful, stray from the course and arrive at an adjacent type, which we call the Slack​60 because it is without any sinews​61 and joints; accordingly I may call it the Drifting, since it drifts to and fro, and cannot + + + p267 get under +way with resolution and virility. The following is an example: "Our +allies, when they wished to wage war with us, certainly would have +deliberated again and again on what they could do, if they were really +acting of their own accord and did not have many confederates from here, + evil men and bold.​62 For they are used to reflecting long, all who wish to enter upon great enterprises."​63 + Speech of this kind cannot hold the hearer's attention, for it is +altogether loose, and does not lay hold of a thought and encompass it in + a well-rounded period. + +

+Those who cannot skilfully employ that elegant simplicity of diction +discussed above, arrive at a dry and bloodless kind of style which may +aptly be called the Meager.​64 + The following is an example: "Now this fellow came up to this lad in +the baths. After that he says: 'Your slaveboy here has beat me.' After +that the lad says to him: "I'll think about it.' Afterwards this fellow +called the lad names and shouted louder and louder, while a lot of +people were there."​65 + This language, to be sure, is mean and trifling, having missed the goal + of the Simple type, which is speech composed of correct and well-chosen words. + +

+Each type of style, the grand, the middle, and the simple, gains distinction from rhetorical figures, + + + p269 which I shall discuss later.​66 + Distributed sparingly, these figures set the style in relief, as with +colours; if packed in close succession, they set the style awry.​67 + But in speaking we should vary the type of style, so that the middle +succeeds the grand and the simple the middle, and then again interchange + them, and yet again. Thus, by means of the variation,​68 satiety is easily avoided. + +

+ 12 +17 Since I have discussed the +types to which style should confine itself, let us now see what +qualities should characterize an appropriate and finished style. To be +in fullest measure suitable to the speaker's purpose such a style should + have three qualities: Taste, Artistic Composition,​69 and Distinction.70 + +

+Taste makes each and every topic seem to be expressed with purity and +perspicuity. The subheads under Taste are Correct Latinity and Clarity. + +

+It is Correct Latinity​71 which keeps the language pure, and free of any fault. The faults in language + + + p271 which can +mar its Latinity are two: the Solecism and the Barbarism. +A solecism occurs if the concord between a word and one before it +in a group of words is faulty. A barbarism occurs if the verbal +expression is incorrect. How to avoid these faults I shall clearly +explain in my tract on grammar.72 + +

+Clarity​73 renders language plain and intelligible. It is achieved by two means, the use of current terms​74 and of proper terms.​75 + Current terms are such as are habitually used in everyday speech. +Proper terms are such as are, or can be, the designations specially +characteristic of the subject of our discourse.76 + +

+18 Artistic Composition consists in an + arrangement of words which gives uniform finish to the discourse in +every part. To ensure this virtue we shall avoid the frequent collision +of vowels,​77 which makes the style harsh and gaping, as the following: "Bacae aeneae amoenissime inpendebant."​78 We shall also avoid the excessive recurrence of the same letter,79 + + + p273 and this +blemish the following verse will illustrate — for at this juncture, in +considering faults, nothing forbids me to use examples from others: + +

+ + + +
+

+O Tite, tute, Tati, tibi tanta, tyranne, tulisti.​80 +

+ +

+And this verse of the same poet: + +

+ + + +
+

+quoiquam quicquam quemquam, quemque quisque conveniat, neget.​81 +

+ +

+And again, we shall avoid the excessive repetition of the same word,​82 as follows: + +

+ + + +
+

+Nam cuius rationis ratio non extet, ei +

+rationi ratio non est fidem habere admodum;​83 +

+ +

+Again, we shall not use a continuous series of words with like case endings,​84 as follows: + +

+ + + +
+

+Flentes, plorantes, lacrimantes, obtestantes.​85 +

+ +

+Again, we shall avoid the dislocation of words,​86 + unless it is neatly effected — and this I shall discuss later. +Coelius persists in this fault, as the following illustrates: "In priore libro has res ad te scriptas, + + + p275 Luci, misimus, Aeli."​87 + One should likewise avoid a long period, which does violence both to +the ear of the listener and to the breathing of the speaker. + +

+These vices of composition avoided, we must devote the rest of our efforts to conferring Distinction upon the style. + + + +


+

+The Loeb Editor's Notes: +

+ +

+ 1 +See + +note on 4.v.7 + +below. + + +

+ + +

+ 2 +Cf. the long prefaces to the books of Cicero, De Inv. + + +

+ + +

+ 3 +The character of this Introduction to Book 4 (only the final +argument and some of the illustrations are Roman) suggests a Greek +origin. It reflects the debates between Greeks and Greeks — on Atticism +as against Asianism, or the old rhetoric, based on the imitation of the +ancients (μίμησις τῶν ἀρχαίων), as against the modern (νεωτερισμός). Hermagoras, to whose reliance on the ancients Cicero, + +De Inv. 1.vi.8, refers, and whom Cicero in his Introduction to that + + +work attacks, was doubtless also in the author's mind. See Paul Wendland, Quaestiones Rhetoricae, + Göttingen, 1914. As our notes show, in spite of the argument in this +Introduction, Book 4 contains numerous examples taken (though often + with considerable changes) from a variety of sources, both Roman and +Greek. + + +

+ + +

+ 4 +Rhetoric and poetry meet expressly also in 4.i.2, + +ii.3, + +iii.5, + +iv.7, + +v.7, + +v.8, + +xxxii.43, + +xxxii.44, and + +2.xxii.34. The Peripatetic school encouraged the close relation­ship between the two. + + +

+ + +

+ 5 +Cf. Horace, Ars Poet. 444. + + +

+ + +

+ 6 +Ennius and Gracchus served as models for Crassus in his youth; cf. Cicero, De Oratore 1.34.154. + + +

+ + +

+ 7 +See + +note on 4.iii.5 + +below. + + +

+ + +

+ 8 +Whether civil or criminal. + + +

+ + +

+ 9 +In which the paterfamilias exercises his jurisdiction. See Mommsen, pp16 ff.; Wenger, Institutes of the Roman Law of Civil Procedure, pp9 f. + + +

+ + +

+ 10 +Cf. the place of Imitation in our author's theory, as set forth in + +1.ii.3 + +above, with the position taken in this Preface (see esp. + +4.iv.7 + +and + +4.vi.9 + +below) against borrowing examples which should serve as models for imitation. + + +

+ + +

+ 11 +The like point, with respect to rhythm, is made by Cicero, + +Orator 51.173. + + +

+ + +

+ 12 +τεχνίτης, τεχνογράφος. On expertness in criticism see Cicero, Brutus 47.183, + +51.190, + +54.199 ff., + +93.320, + +Orator 11.36, + + +De Opt. Gen. Dic. 4.11, + +De Offic. 3.3.15; Dionysius Halic., De Thuc. 4. + + +

+ + +

+ 13 +Of Sparta, a celebrated long-distance runner (c. 450 B.C.), winner in the Olympic games, whose speed is often referred to by Roman authors; see P.‑W. 12.380‑1. + + +

+ + +

+ 14 +Text corrupt. The runner "Boïscus" (if that reading is correct) is elsewhere unknown. The name (of a Thessalian + + +boxer) occurs in Xenophon, Anab. 5.8, and (of a Samian) in W. Dittenberger, Syll. Inscript. Graec., 3rd ed., Leipzig, 1915, No 420. + + +

+ + +

+ 15 +Cf. Corpus Fabularum Aesopicarum, ed. Hausrath, Fab. 33(1), + about the man who, boasting when away from Rhodes that he had "beaten +the Olympic record" in a jump he had made at Rhodes, and promising to +produce witnesses of his exploit if his hearers would come to Rhodes, +was challenged to repeat the leap where he was. + + +

+ + +

+ 16 +In + +Horace, Epist. 1.3.15 ff., Celsus is advised to be self-reliant, + and not to draw upon writers whose works he has used in the library of +the temple of Apollo — "lest, if by chance some day the flock of birds +come to reclaim their feathers, the wretched crow stripped of his stolen + colours excite laughter." Cf. the jackdaw in + +Phaedrus, Fab. Aesop. 1.3 + +and + +Babrius, Mythiamb. Aesop. 72. Philodemus, Rhet., +ed. Sudhaus, 2.67‑8, says that in drawing certain technical +principles from other arts, such as dialectic, the rhetoricians have +"decked themselves out with borrowed plumage." Cf. also in Lucian, Pseudolog. 5, the sophist's speech, "like Aesop's jackdaw patched together with borrowed plumes of many colours." + + +

+ + +

+ 17 +Cf. the rule in Theon 8 (Spengel 2.110.25) that in epideictic the judgements must be taken from reputable men. + + +

+ + +

+ 18 +But cf., just above, eas confirmare, and + +4.xliv.57, end, exemplo conprobatum. + + +

+ + +

+ 19 +Cf. Aristotle, Problem. 18.3 (916B): + "We more readily believe in facts to which many bear witness, and +examples and tales are like witnesses; furthermore, belief through +witnesses is easy;" Rhet. 2.20 (1394A): + "If we lack enthymemes, we must use examples as logical proofs +. . . If we have enthymemes, we must use examples as +witnesses, subsequent and supplementary to the enthymemes. +. . . When they follow the enthymemes examples function like +witnesses." Cf. also the definition and functions of the figure exemplum, + +4.xlix.62 + +below, and note. On Example as rhetorical induction see Aristotle, Rhet. 1.2 (1356B, 1357B), and cf. Anal. Pr. 2.24 (68B ff.); its place in Cicero's theory of argumentation, De Inv. 1.xxix.44 ff., esp. 49, and + +De Oratore 2.40.169. See further + +Quintilian, 5.11.1 ff., and on the exemplum in deliberative speaking + +3.v.9 + +above. + + +

+ + +

+ 20 +From the celebrated speech delivered before an Assembly of the people in B.C. 106 + by L. Licinius Crassus in support of the law by which +Q. Servilius Caepio sought, on behalf of the Senate, to wrest the +judicial powers from the equites. In + +Cicero, De Oratore 1.52.225, the passage is fuller: +"Deliver us from our miseries, deliver us from the jaws of those whose +cruelty cannot have enough of our blood: suffer us not to be slaves to +any but yourselves as a whole, whom we both can and ought to serve." See also + +Cicero, Paradoxa Stoic. 5.41. The figure of speech is Homoeoteleuton; see + +4.xx.28 + +below. + + +

+ + +

+ 21 +Cf. Cicero, De Inv. 1.vi.8: + "But for a speaker it is a very unimportant thing to speak concerning +his art — that Hermagoras has done; by far the most important thing is +to speak in conformity with his art — and this, as we all see, +Hermagoras was altogether incapable of doing." + + +

+ + +

+ 22 +δράματα. Cf. fabula in + +1.viii.13, + +1.vi.10, and + +2.viii.12 + +above. The task of copying was usually entrusted to slaves. + + +

+ + +

+ 23 +Cf. Isocrates, Ad Nicocl. 44, on the selection of maxims from the outstanding poets. + + +

+ + +

+ 24 +Cf. the Preface to the Rhet. ad Alex. (1421A): "For the so‑called + Parian sophists, because they did not themselves give birth to what +they teach, have no love for it, in their tasteless indifference, and +peddle it about for money." + + +

+ + +

+ 25 +After the Greek writers have had their say, and have been refuted, our author takes up his own "constructive" case; see + +4.i.1. + + +

+ + +

+ 26 +The theory and practice of presenting examples from a variety of sources + were doubtless Peripatetic; the rhetoricians criticized belong perhaps +to the second century B.C. The use + + +of one's own examples, on the other hand, goes back to Corax (see Paul Wendland, Anaximenes von Lampsakos, Berlin, 1905, pp31 ff.) and was characteristic of the sophists and of the author of the Rhet. ad Alex. Note that neither point of view can be regarded as characteristically Greek. + + +

+ + +

+ 27 +Their theory is set forth in + +4.i.1‑ii.3 + +above. + + +

+ + +

+ 28 +In + +Cicero, De Oratore 2.22.90‑3, Antonius discusses the imitation of some one good model; Quintilian, in + +10.5.19, urges the student to follow this "custom of our ancestors," but in + +10.2.23 + +advises him not to devote himself entirely to imitating one particular style. Seneca, + +Contr. 1, Praef. 6, takes a stand against the adoption of a single model, however eminent. + + +

+ + +

+ 29 +On the eloquence of these orators see the following sections in Cicero, Brutus: M. Porcius Cato (cos. 195 B.C.) + +63 ff., + +293 ff.; Ti. Sempronius Gracchus (tr. pl. 133 B.C.) + +103‑4, + +296; C. Sempronius Gracchus (tr. pl. 123 B.C.) + +125‑6, + +296; C. Laelius (cos. 140 B.C.), P. Cornelius Scipio Aemilianus (Africanus Minor, cos. 147, 134 B.C.), and Ser. Sulpicius Galba (cos. 144 B.C.) + +82 ff.; M. Aemilius Lepidus Porcina (cos. 137 B.C.) + +95‑6; M. Antonius (cos. 99 B.C.) and L. Licinius Crassus (cos. 95 B.C.) + +139 ff.. + + +

+ + +

+ 30 +Who exemplifies only a few virtues. + + +

+ + +

+ 31 +On the popularity of this maxim in different forms see Otto, s.v. "omnis" 1 and 2, pp254‑5. + + +

+ + +

+ 32 +Here is reflected the quarrel, in the second century, between +philosophers and rhetoricians concerning education: see Hans +von Arnim, Leben und Werke des Dio von Prusa, Berlin, 1898, ch. 1, Hubbell, The Rhetorica of Philodemus, + pp364‑382, Kroll in P.‑W., "Rhetorik," coll. 1080‑90. For example, + the three Greek philosophers who came as ambassadors from Athens to +Rome in 155 B.C. (and wielded considerable influence there) were all opposed to rhetoric — + + +the Academic Carneades, the Peripatetic Critolaüs, and the Stoic Diogenes the Babylonian. + + +

+ + +

+ 33 +Cf.  +Plutarch, Demosth. 23: "Further, [when Alexander +demanded the surrender of the Athenian leaders,] Demosthenes said: 'Just + as we see merchants selling their stock of wheat by means of a few + grains which they carry about with them in a bowl as a sample, so by +giving us up, you, without knowing it, give yourselves up too, all of +you.' " + + +

+ + +

+ 34 +Cf. Longinus, De Sublim. 13.3: "Plato, who from that great Homeric spring drew to himself countless side streams;" + +Quintilian, 10.1.46, and Dionysius Halic., De Composit. Verb. 24, on Homer, as source of inspiration, representing his own conception of Ocean (Il. 21.196‑7). + + +

+ + +

+ 35 +In the eyes of Rhodians, Chares, who produced the Colossus in 280 B.C., + would belong in this list of celebrated sculptors of Greece. Lysippus, +his teacher, was a contemporary of Alexander the Great; Myron fl. 460 B.C.; Praxiteles was born c. 390 B.C.; Polycleitus fl. 450‑420 B.C. Rhetoricians liked to use the graphic arts for comparison in their theory. Cf., for example, Cicero, + +De Inv. 2.i.1 ff., + +Brutus 18.70, + +Orator 2.8 ff.; + +Horace, Ars Poet., init. + +(poem and painting, as in + +4.xxviii.39 + +below); + +Quintilian, 12.10.1 ff.; Dionysius Halic., De Imit. 6 (ed. Usener-Radermacher, + + +2[1].203, and for the method contrary to that in our author's analogy, fragm. 6A, p214); Theon 1, in Spengel 2.62.1 ff. Cf. also + +4.xi.16 + +below: "set the style in relief, as with colours"; Cousin, Études sur Quintilien, 1.658 ff.; Friedrich Blass, Die griechische Beredsamkeit in dem Zeitraum von Alexander bis auf Augustus, Berlin, 1865, pp222 ff.; E. Bertrand, De pictura et sculptura apud veteres rhetores, Paris, 1881; Julius Brzoska, De canone decem oratorum Atticorum quaestiones, Breslau, 1883, pp69 ff., 81 ff.; Lessing, Laokoon. + + +

+ + +

+ 36 +Cicero, + +Brutus 19.75, likens the pleasurable effect of Naevius' Bellum Punicum to that yielded by a work of Myron; cf. also Dionysius Halic., De Thuc. 4. + + +

+ + +

+ 37 +Cf. 1.x.17, + +2.xxx.47, and + +4.xxiii.32. The idea is widespread in ancient rhetoric; cf. Aristotle, Rhet. 3.2 (1404B): + "Hence may be inferred the need to disguise the art we employ, so that +we give the impression of speaking naturally, not artificially. +Naturalness is persuasive, artifice is the contrary. People take offence + at a speaker who employs artifice, and think he has designs on them — +as if he were mixing drinks for them;" also 3.7 (1408B). See further Philodemus, Rhet., ed. Sudhaus, 1.200; Dionysius Halic., De Lys. 8; Dionysius, Ars Rhet. 8.16 (ed. Usener-Radermacher, 2[1].322); Longinus, De Sublim. 22.1: + "For art is perfect when it seems to be nature, and nature is effective + when she contains art hidden within her," 17.1‑2, 38.3; +Anon. Seg. 94, in Spengel-Hammer 1(2).369; Hermogenes, De Meth. Gravit. 17 (ed. Rabe, p433); Philostratus, Vita + + +Apollon. 8.6; Longinus, in Spengel-Hammer 1(2).195.4; Cicero, De Inv. 1.xviii.25, + +1.lii.98, + +Brutus 37.139, De Oratore + +2.37.156, + +2.41.177, + +Orator 12.38, + +Part. Orat. 6.19; + +Ovid, Metam. 10.252; Quintilian, + +1.11.3, + +2.5.7, + +4.1.8‑9, + +4.1.54, + +4.1.56‑58, + +4.2.59, + +4.2.126‑7, + +9.4.144, + +11.2.47. + + +

+ + +

+ 38 +Postremo . . . rationem form a hexameter. + + +

+ + +

+ 39 +ὀνόματα τεχνικά. Cf. Varro in + +Cicero, Academ. 1.6.24: "Since we are treating unusual subjects you will no doubt allow me on occasion to use words unheard‑of before, as the Greeks themselves do, and they have now been treating these subjects for a long time"; + +Cicero, Orator 57.211. + + +

+ + +

+ 40 +The three kinds do not occur in every correct discourse, but the kinds of correct discourse are limited to these three. + + +

+ + +

+ 41 +χαρακτῆρες, πλάσματα. Notice the word figura. Our author's term corresponding to English "figure of speech" is exornatio (σχῆμα), as in + +4.xiii.18 + +below (Cicero's term, lumen, is used only in + +4.xxiii.32 + +below); figura as "figure of speech" first appears in Quintilian. + + +

+ + +

+ 42 +ἁδρόν (μεγαλοπρεπές, περιττόν), μέσον (μικτόν), ἰσχνόν (λιτόν), and for other terms see W. Schmid, Rhein. Mus. 49 (1894), 136 ff. Here is the first extant division of the styles into three. Cf. especially Cicero, De Oratore 3.45.177, + +52.199, + +55.212, Orator 5.20 ff., + +23.75 ff.; Dionys. Halic., De Demosth. 1 ff., and for the doctrine as transferred to Composition (σύνθεσις), De Composit. Verb., chaps. 21 ff.; + +Quintilian, 12.10.58 ff.; also Varro in + +Gellius 6.14. To Cicero + +(Orator 21.69 ff.), following a Hellenistic (and +doubtless Peripatetic) concept, each of the styles represents a function + of the orator, the plain (subtile) serving for proof (probare), the middle (modicum) for delight (delectare), and the vigorous (vehemens) + + +for swaying the hearers (flectere). + Scholars are not in agreement on the ultimate origin of the fixed +categories; some assign the doctrine to Theophrastus (see A. Körte, + Hermes 64 [1929], 80, and Wilhelm Kroll, Rhein. Mus. 62 [1907], 86 ff., Introd. to ed. of Cicero, Orator + [Berlin, 1913], p4, note 1, and "Rhetorik," +coll. 1074 f.), while others deny this attribution (see +G. L. Hendrickson, Amer. Journ. Philol. 25 [1904], 125‑46 +and 26 [1905], 249‑290, and Stroux, De Theophrasti virt. dic., + Leipzig, 1912, chaps. 1, 7, and 8). On varying views of the +part played by the Peripatetic ethical idea of the mean (μεσότης) in the development of the doctrine see especially the articles by Hendrickson and Kroll, and S. F. Bonner in Class. Philol. 33 (1938), 257‑266. Cf. the four types of style in Demetrius, De Elocut. 36, the twofold division in + +Cicero, Brutus 55.201; and see Fritz Wehrli, "Der erhabene und der schlichte Stil in der poetisch-rhetorischen Theorie der Antike," Phyllobolia für Peter von der Mühll, Basel, 1946, p29. Quintilian, + +12.10.66 ff., considers the limitation to three styles arbitrary. + + +

+ + +

+ 43 +Echoed below in connection with Epanaphora + +(xiii.19), Antithesis + +(xv.21), Interrogation + +(xv.22), Paronomasia + +(xxiii.32), Surrender (xxxix.39 + +— provoking pity), and Asyndeton (xxx.41 + +— animation). + + +

+ + +

+ 44 + +4.xiii.19 ff. + + +

+ + +

+ 45 +Cf. Cicero, Verr. 2.2.16.40: "How shall one deal with this man? What punishment can be found commensurate with his lawlessness?" + + +

+ + +

+ 46 +On the criminal law in respect to wounding with intent to kill, see Mommsen, p627. + + +

+ + +

+ 47 +Cf. the ninth commonplace in + +2.xxx.49 + +above, the comparison of crimes. + + +

+ + +

+ 48 +This passage (see also + +4.xxxvi.48 + +and + +4.xxxix.51 + +below, and + +2.xxviii.45 + +above) is not to be taken (with Mommsen, p972, note 1) as evidence +that interdiction was the legal punishment for treason exacted of a +citizen. Note "bequeathed no specific penalty" above in this example, +and see Ernst Levy, Die röm. Kapitalstrafe, Sitzungsber. Heidelberg. Akad. (philos.-hist. Klasse) 21, 5 (1930‑31), 20 ff. + + +

+ + +

+ 49 +The example is of an amplificatio criminis, belonging to the Conclusion of a speech. For an analysis of this passage, see Jules Marouzeau, Rev. de Philol. 45 (1921), 155‑6, and Traité de stylistique appliqué au Latin, + Paris, 1935, p181: The diction is grandiloquent, but not artificial as +in the passage below illustrating the swollen style. Note the elegant +and learned abstract in -tus (dominatu) for –ito, the archaic genitive deum, the far-fetched hostilem libidinem (adj. serving for genitive of noun), the artificial disjunctions (e.g., idoneam . . . poenam), the periods, the tripartite interjections, the chiasmus in violassent ingenuum, matremfamilias constuprassent, the play on words (hominem humanitate, excogitare cogitarit), the accumulation of epithets and of superlatives, the contrasts as in uno consilio, universis civibus, the variety in the echoes (quo pacto, quo modo), the periphrasis + + +in huius sceleris qui sunt adfines, the expressive verbs (excogitare, constuprassent, machinantur, conflagrata, trucidatis), and the poetic words (e.g.moenibus). Figures of speech are Paronomasia (see + +4.xxi.29 + +below) in excogitare . . . cogitarit, Isocolon (see + +4.xx.27 + +below) in Quod maleficium conparari, quod huic . . . inveniri, Apostrophe (see + +4.xv.22 + +below) in O feros animos . . . humanitate, Reasoning by Question and Answer (see + +4.xvi.23 + +below) in Quid agereetc., and Surrender (see + +4.xxix.39 + +below) in the last two sentences of the passage. The passage contains no + periods ending with monosyllables; the example of the middle style +below contains a few. It contains sixteen dichorees (A macronA breveA macronA breve over a macron) in the clausulae; the example of the middle style contains eight, and that of the simple style only one. See Friedrich Blass, Die Rhythmen der asianischen und römischen Kunstprosa, Leipzig, 1905, pp107‑9; Konrad Burdach, Schlesisch-böhmische Briefmuster aus der Wende des vierzehnten Jahrhunderts (Vom Mittelalter zur Reformation 5), Berlin, 1926, pp106 ff.; and the notes on + +4.xix.26 + +and + +4.xxxii.44 + +below. Dionysius Halic., De Demosth., ch. 1, chooses Gorgias and Thucydides as representatives of the grand style. + + +

+ + +

+ 50 + +4.viii.11. + + +

+ + +

+ 51 +By destroying Fregellae when, after a long history of loyalty, she rebelled in 125 B.C., Rome kept her Italian confederacy intact. See + +4.xv.22 + +and + +4.xxvii.37 + +below. The figure here is Hypophora; see + +4.xxiii.33 + +below. + + +

+ + +

+ 52 +For the maxim (see + +4.xvii.24 + +below) cf. Terence, Heaut. Tim. 221; Publilius Syrus 177 + +(ed. J. Wight Duff and A. M. Duff): "From another's fault a wise man corrects his own," +60: "In another's misfortune it is good to descry what to avoid," and +133; + +Livy, 22.39.10; + +Tacitus, Annals 4.33. + + +

+ + +

+ 53 +Whether the example is an excerpt from a speech actually delivered, or +our author's own creation, is uncertain. The sentiments are such as +Q. Varius Hybrida might have uttered + + +in support of his law (90 B.C.) + prosecuting those who by malicious fraud compelled the allies to war +against Rome; confederates at Rome are referred to in the example of the + slack style, + +4.xi.16 + +below. The present example belongs to the rationis confirmatio of an argument (see + +2.xviii.28 + +above), and is not so impassioned as the example of the grand style above. Dionysius Halic., De Demosth., ch. 3 ff., chooses Thrasymachus, Isocrates, and Plato as representatives of the middle style. + + +

+ + +

+ 54 +The Sundial, in the Forum, was a much frequented meeting-place for gossip; cf. Cicero, Pro Quinctio 18.59. + The Roman citizen ordinarily looked down upon actors as beneath his +dignity; they were usually freedmen or slaves. For the connection +between the stage and vice see, e.g.Cicero, In Cat. 2.5.9. + + +

+ + +

+ 55 +Analysing this example of the adtenuatum genus (the "thinness" refers to lack of adornment and fineness of texture), Marouzeau, Traité, pp181‑2 and art. cit., pp156‑7, points to the forms of colloquial usage (pedagogi, the diminutive oriculas), idioms like de traverso, coepit with the passive, the vulgar use of the archaism pone for post, and of the indicative potest in a characterizing clause, the expletive use as in conversation of the ethical dative tibi with ecce, the frequent use of the demonstrative iste for hic or is, the + + +accusative of quality in id aetatis, the asyndeton in satisfacias oportet, and the type of parataxis characteristic of comedy in ita petulans est . . . exercitata. See also J. B. Hofmann, Lat. Umgangssprache, Heidelberg, 1936, p207. For heus see ibid., sect. 17; for eicere (= efferre), sect. 138. For quod de existimatione perderet see Schmalz-Hofmann, pp526 f. Note also the brevity of Hic vix. The example is a factual, not primarily emotional, narratio, which is a division of sermo; see + +3.xiii.23 + +above. Dionysius Halic., De Demosth., ch. 2, chooses Lysias as representative of the simple style. + + +

+ + +

+ 56 +παρακείμενα ἁμαρτήματα. Cf. Longinus, De Sublim., ch. 3, and + +Horace, Ars Poet. 24‑8. These deviations (παρεκβάσεις) are Peripatetic in concept; excess in style is judged in relation to the mean. The faulty styles were known to Marcus Varro + +(Gellius 6.14); cf. also Demetrius, De Elocut. 114, 186, 236, 302. + + +

+ + +

+ 57 +οἰδοῦν, ἐπηρμένον, ὑπερβάλλον, φυσῶδες. Cf. Longinus, De Sublim. 3.4: "Evil are the swellings (ὄγκοι), + both in the body and in diction, which are inflated and unreal, and +threaten us with the reverse of our aim" (tr. W. Rhys +Roberts); + +Horace, Ars Poet. 27. + + +

+ + +

+ 58 +Thus violating propriety (τὸ πρέπον). See notes on + +3.xv.26, + +4.xi.16, + +4.xii.17, and + +4.xv.22, and + +Introduction, p. xx. For a study of the history of this principle, see Max Pohlenz, Nachrichten von der Gesellsch. der Wissensch. zu Göttingen (Philol.-histor. Klasse), 1933, pp53‑92. + + +

+ + +

+ 59 +Marouzeau, art. cit., pp157‑8, and Traité, p181, analyses the learned affectations in spelling, forms, and construction, all embraced by a tour de force in four lines. Note the archaic forms subplicii, poenite, and the Lucretian montis; the curious depultus, representing the primitive form + + +of the participle; the ancient deponent fabricari; the emphatic venditare; perduellionibus, rare example of an abstract in the plural (the author elsewhere uses maiestas; for the difference between the two crimes see H. F. Jolowicz, Historical Introd. to the Study of Roman Law, 2nd ed., Cambridge, 1952, p327); the highly poetic lacunas; the disjunction of Neptunias and lacunas; the adjective Neptunias for the genitive of the noun; the learned double metaphor in montis and campos. + These passages illustrating the faulty styles were doubtless made up by + our author, with the examples of the faultless styles in view. + + +

+ + +

+ 60 +ἐκλελυμένον, διαλελυμένον. Cf. Cicero, Orator 68.228. + + +

+ + +

+ 61 +For the analogy cf. Fortunatianus 3.9 + (Halm, p126): "What style is the reverse of the middle style? The +lukewarm, slack, and, as I may call it, sinewless style"; and + +Horace, Ars Poet. 26‑7. + + +

+ + +

+ 62 +The phrase malos et audaces is used by Sisenna, fragm. 110, Hist. Rom. Reliquiae, ed. Hermann Peter, Leipzig, 1914, 1.291. "Here" refers to Rome. + + +

+ + +

+ 63 +Cf. Sophocles, Electra 320: "Yes, a man entering upon a great enterprise likes to pause." + + +

+ + +

+ 64 +ταπεινόν, ξηρόν. + + +

+ + +

+ 65 +Analysing this example of the sermo inliberalis, Marouzeau, Traité, pp103 and 182, and art. cit., p157, calls attention to the unsyncopated balineis (cf. 4.x.14 + +and + + +4.l.63), the reinforced istic (cf. iste in the example of the simple style above), the violation of the concord of number in the Old Latin expression praesente multis (see Schmalz-Hofmann, p638; W. M. Lindsay, Syntax of Plautus, Oxford, 1907, p4), the adverbial post, the vulgar locution convicium facere, the abuse of the demonstrative in istic, hunc, hic, hic, illi, illi, the monotonous transitions, the awkward parataxis and short sentences, the employment thrice of post or postea, and the direct style for the short and insignificant reply. + + +

+ + +

+ 66 + +4.xiii.18 + +below. + + +

+ + +

+ 67 +Thus violating propriety; see + +note on 4.x.15 + +above. If oblitam be the correct reading, then "they produce an overloaded, or overdaubed, style." + + +

+ + +

+ 68 +Tractatio; see + +note to 2.xviii.27 + +above. Dionysius Halic., De Demosth., chaps. 8 ff., thinks that Demosthenes best blended all three types of style. + + +

+ + +

+ 69 +σύνθεσις ὀνομάτων, ἁρμονία. The scanty treatment of Artistic Composition in + +4.xii.18 + +below is confined to the avoidance of faults rather than to constructive theory. + + +

+ + +

+ 70 +The qualities were chiefly treated by the Peripatetics and Stoics. The +Theophrastan scheme is here modified. The four qualities in +Theophrastus' system were Purity (Ἑλληνισμός), Clarity (σαφήνεια), Appropriateness (τὸ πρέπον), and Ornamentation (κατασκευή), this last embra­cing Correct Choice of Words (ἐκλογὴ ὀνομάτων), Artistic Composition (ἁρμονία), and the Figures (σχήματα). Thus for our author, elegantia + + +comprises two primary qualities of Theophrastus' scheme; Appropriateness (see + +note on 4.x.15 + +above) is here missing; the ornamentation residing in the choice of words is left unconsidered (except for what he says under explanatio, and his treatment of Metaphor among the figures; see + +4.xxxiv.45 + +below); Artistic Composition is a primary quality, and is not treated as + a branch of Ornamentation; finally, Ornamentation, represented by dignitas, is limited to the Figures. See Stroux, De Theophrasti virt. dic., pp22‑3, 64‑7. + + +

+ + +

+ 71 +Corresponds to Ἑλληνισμός among the Greek rhetoricians. Solecism and barbarism were studied chiefly by the Stoics. Cf. Quintilian, + +1.5.5 ff., + +1.5.34 ff.; C. N. Smiley, Latinitas and ΕΛΛΗΝΙΣΜΟΣ, Madison, 1906; Hubbell, The Rhetorica of Philodemus, p295, note 4; Volkmann, p396, note 1; Alexander Numenii, De Schemat., in Spengel 3.9.25: "Barbarism involves correction of a word, solecism of the syntax." + + +

+ + +

+ 72 +At this juncture in the discussion of Style rhetoricians would refer to grammatical studies; cf. Quintilian, 8.1.2; Martianus Capella, 5.508. Whether our author ever wrote a tract on Grammar we do not know; see notes on + +3.ii.3 + +and + +3.xvi.28 + +above. This is the earliest mention in extant literature of a specific Latin ars grammatica. The close connection between grammatical and rhetorical studies is characteristic of Rhodian education. + + +

+ + +

+ 73 +σαφήνεια. + + +

+ + +

+ 74 +κοινὰ ἔπη. + + +

+ + +

+ 75 +οἰκεῖα ἔπη, κύρια ἔπη. + + +

+ + +

+ 76 +The regular designations of things, literal as against metaphorical, the + designations "which were so to speak born with the things themselves" + +(Cicero, De Oratore 3.37.149). + + +

+ + +

+ 77 +Hiatus, σύνκρουσις φωνηέντων. On this subject cf. Dionysius Halic., De Composit. Verb., ch. 23, and especially + + +Demetrius, De Elocut. 2.68 ff., +5.299, who, while warning against a jerky style, yet points to the +force, music, and harmony of speech that hiatus can bring. Isocrates and + his followers, and Demosthenes, avoided hiatus, Thucydides and Plato +[in his earlier dialogues] did not; see + +Cicero, Orator 44.150 ff. Philodemus, Rhet., ed. Sudhaus, 1.163, thinks hiatus rather frigid, but sometimes convenient. + + +

+ + +

+ 78 +The copper-coloured berries hung most invitingly"; Asian in style. + + +

+ + +

+ 79 +Alliteration; most often Paromoeon to the grammarians; Homoeoprophoron to Martianus Capella (5.514). Alliteration (as it has been called since early modern times) played a larger rôle in Latin than in Greek style; see Schmalz-Hofmann, pp801‑3, Marouzeau, Traité, pp42‑7, and Eduard Wölfflin, "Zur Allitteration," Mélanges Boissier, Paris, 1903, pp461‑4. + + +

+ + +

+ 80 +"Thyself to thyself, Titus Tatius the tyrant, thou tookest those +terrible troubles" (Fragm. 108, tr. Warmington); from Ennius' Annals, Bk. I. See Vahlen p18. Cf. Charisius, ed. Barwick, p370, and Donatus, in Keil, Gramm. Lat. 4.398.20. + + +

+ + +

+ 81 +Marx suggests that in the original play this verse might have been preceded by something like cum debere carnufex. "[Since the rascal] denies that anyone [owes] anything to + + +anyone, whoever sues whomever." We do not know from which play (comedy) of Ennius the verse comes. + + +

+ + +

+ 82 +Transplacement. See + +4.xiv.20 + +below. + + +

+ + +

+ 83 +"For when the reasonableness of a reason is not evident, in that reason +it is not reasonable to put any faith at all." These iambic senarii are +by Marx, Proleg., p118, thought to be in the style of Ennius. + + +

+ + +

+ 84 +Homoeoptoton. See + +4.xx.28 + +below. + + +

+ + +

+ 85 +"Bewailing, imploring, weeping, protesting." Spondaic hexameter, +assigned without certitude to Ennius; see Vahlen, p16, Warmington 1.462. + Cf. Charisius, ed. Barwick, p371; Diomedes, in Keil, Gramm. Lat. 1.447.16; and Donatus, in Keil 4.398.23. + + +

+ + +

+ 86 +Hyperbaton. See + +4.xxxii.44 + +below. + + +

+ + +

+ 87 +L. Coelius Antipater, after 121 B.C., dedicated his Punic War (in seven books) to L. Aelius Stilo. In the Preface to Book I he promised that he would use Hyperbaton only when necessary + +(Cicero, Orator 69.230), but he violated this principle, as here in the Preface to Book II: + "In the previous Book, Lucius Aelius, I dedicated to you the +account of these events." Following a normal word order the sentence +would read: In priore libro, Luci Aeli, has res scriptas ad te misimus. Note also that beginning with the fourth word we have a complete dactylic hexameter — an example of epic influence. + + + +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+ 
+[image ALT: Valid HTML 4.01.]
+	+

+Page updated: +31 Oct 17 +

+ + \ No newline at end of file diff --git a/sources/book_4a_files/401.png b/sources/book_4a_files/401.png new file mode 100644 index 0000000..c010842 Binary files /dev/null and b/sources/book_4a_files/401.png differ diff --git a/sources/book_4a_files/Ebox.js b/sources/book_4a_files/Ebox.js new file mode 100644 index 0000000..0c57824 --- /dev/null +++ b/sources/book_4a_files/Ebox.js @@ -0,0 +1,2921 @@ +//\//////////////////////////////// +//\ overLIB 3.33 -- This notice must remain untouched at all times. +//\ Copyright Erik Bosrup 1998-2001. All rights reserved. +//\ +//\ By Erik Bosrup (erik@bosrup.com). Last modified 2001-01-26. +//\ Portions by Dan Steinman (dansteinman.com). Additions by other people are +//\ listed on the overLIB homepage. +//\ +//\ Get the latest version at http://www.bosrup.com/web/overlib/ +//\ +//\ This script is published under an open source license. Please read the license +//\ agreement online at: http://www.bosrup.com/web/overlib/license.html +//\ If you have questions regarding the license please contact erik@bosrup.com. +//\ +//\ This script library was originally created for personal use. By request it has +//\ later been made public. This is free software. Do not sell this as your own +//\ work, or remove this copyright notice. For full details on copying or changing +//\ this script please read the license agreement at the link above. +//\ +//\ Please give credit on sites that use overLIB and submit changes of the script +//\ so other people can use them as well. This script is free to use, don't abuse. +//\//////////////////////////////// +//\mini + +//\//////////////////////////////// +//\ ▸ the URLs above, at "bosrup.com", are dead: the entire site went belly-up. +//\//////////////////////////////// + + +//\//////////////////////////////// +//\ Thayer flavor: +//\ I've renamed "overlib" to "Ebox", "Fbox", etc. +//\ to save 3 characters on each call +//\ while specifying the language (English, French, etc.) +//\//////////////////////////////// + + +//////////////////////////////////// +// CONSTANTS +// Don't touch these. :) +//////////////////////////////////// +var INARRAY = 1; +var CAPARRAY = 2; +var STICKY = 3; +var BACKGROUND = 4; +var NOCLOSE = 5; +var CAPTION = 6; +var LEFT = 7; +var RIGHT = 8; +var CENTER = 9; +var OFFSETX = 10; +var OFFSETY = 11; +var FGCOLOR = 12; +var BGCOLOR = 13; +var TEXTCOLOR = 14; +var CAPCOLOR = 15; +var CLOSECOLOR = 16; +var WIDTH = 17; +var BORDER = 18; +var STATUS = 19; +var AUTOSTATUS = 20; +var AUTOSTATUSCAP = 21; +var HEIGHT = 22; +var CLOSETEXT = 23; +var SNAPX = 24; +var SNAPY = 25; +var FIXX = 26; +var FIXY = 27; +var FGBACKGROUND = 28; +var BGBACKGROUND = 29; +var PADX = 30; +var PADY = 31; +var PADX2 = 32; +var PADY2 = 33; +var FULLHTML = 34; +var ABOVE = 35; +var BELOW = 36; +var CAPICON = 37; +var TEXTFONT = 38; +var CAPTIONFONT = 39; +var CLOSEFONT = 40; +var TEXTSIZE = 41; +var CAPTIONSIZE = 42; +var CLOSESIZE = 43; +var FRAME = 44; +var TIMEOUT = 45; +var FUNCTION = 46; +var DELAY = 47; +var HAUTO = 48; +var VAUTO = 49; + + +//////////////////////////////////// +// DEFAULT CONFIGURATION +// You don't have to change anything here if you don't want to. All of this can be +// changed on your html page or through an overLIB call. +//////////////////////////////////// + +// Main background color (the large area) +// Usually a bright color (white, yellow etc) +if (typeof ol_fgcolor == 'undefined') { var ol_fgcolor = "#FFFFDD";} + +// Border color and color of caption +// Usually a dark color (black, brown etc) +if (typeof ol_bgcolor == 'undefined') { var ol_bgcolor = "#333399";} + +// Text color +// Usually a dark color +if (typeof ol_textcolor == 'undefined') { var ol_textcolor = "#000066";} + +// Color of the caption text +// Usually a bright color +if (typeof ol_capcolor == 'undefined') { var ol_capcolor = "#FFFFFF";} + +// Color of "Close" when using Sticky +// Usually a semi-bright color +if (typeof ol_closecolor == 'undefined') { var ol_closecolor = "#9999FF";} + +// Font face for the main text +if (typeof ol_textfont == 'undefined') { var ol_textfont = "Courier, Courier New, serif";} + +// Font face for the caption +if (typeof ol_captionfont == 'undefined') { var ol_captionfont = "Courier, Courier New";} + +// Font face for the close text +if (typeof ol_closefont == 'undefined') { var ol_closefont = "Courier, Courier New";} + +// Font size for the main text +if (typeof ol_textsize == 'undefined') { var ol_textsize = "1";} + +// Font size for the caption +if (typeof ol_captionsize == 'undefined') { var ol_captionsize = "1";} + +// Font size for the close text +if (typeof ol_closesize == 'undefined') { var ol_closesize = "1";} + +// Width of the popups in pixels +// 100-300 pixels is typical +if (typeof ol_width == 'undefined') { var ol_width = "225";} + +// How thick the ol_border should be in pixels +// 1-3 pixels is typical +if (typeof ol_border == 'undefined') { var ol_border = "2";} + +// How many pixels to the right/left of the cursor to show the popup +// Values between 3 and 12 are best +if (typeof ol_offsetx == 'undefined') { var ol_offsetx = 10;} + +// How many pixels below the cursor to show the popup +// Values between 3 and 12 are best +if (typeof ol_offsety == 'undefined') { var ol_offsety = 10;} + +// Default text for popups +// Should you forget to pass something to overLIB this will be displayed. +if (typeof ol_text == 'undefined (but the link is good !)') { var ol_text = "Default Text"; } + +// Default caption +// You should leave this blank or you will have problems making non caps popups. +if (typeof ol_cap == 'undefined') { var ol_cap = ""; } + +// Decides if sticky popups are default. +// 0 for non, 1 for stickies. +if (typeof ol_sticky == 'undefined') { var ol_sticky = 0; } + +// Default background image. Better left empty unless you always want one. +if (typeof ol_background == 'undefined') { var ol_background = ""; } + +// Text for the closing sticky popups. +// Normal is "Close". +if (typeof ol_close == 'undefined') { var ol_close = "Close"; } + +// Default vertical alignment for popups. +// It's best to leave RIGHT here. Other options are LEFT and CENTER. +if (typeof ol_hpos == 'undefined') { var ol_hpos = RIGHT; } +// TO CHANGE THIS WITHIN A PAGE: see syntax on +// E/Gazetteer/Places/Asia/Russia/_Topics/history/_Texts/SMANPS/Appendices/C*.html +// (search for "ol_hpos") + +// Default status bar text when a popup is invoked. +if (typeof ol_status == 'undefined') { var ol_status = ""; } + +// If the status bar automatically should load either text or caption. +// 0=nothing, 1=text, 2=caption +if (typeof ol_autostatus == 'undefined') { var ol_autostatus = 0; } + +// Default height for popup. Often best left alone. +if (typeof ol_height == 'undefined') { var ol_height = -1; } + +// Horizontal grid spacing that popups will snap to. +// 0 makes no grid, anything else will cause a snap to that grid spacing. +if (typeof ol_snapx == 'undefined') { var ol_snapx = 0; } + +// Vertical grid spacing that popups will snap to. +// 0 makes no grid, anything else will cause a snap to that grid spacing. +if (typeof ol_snapy == 'undefined') { var ol_snapy = 0; } + +// Sets the popups horizontal position to a fixed column. +// Anything above -1 will cause fixed position. +if (typeof ol_fixx == 'undefined') { var ol_fixx = -1; } + +// Sets the popups vertical position to a fixed row. +// Anything above -1 will cause fixed position. +if (typeof ol_fixy == 'undefined') { var ol_fixy = -1; } + +// Background image for the popups inside. +if (typeof ol_fgbackground == 'undefined') { var ol_fgbackground = ""; } + +// Background image for the popups frame. +if (typeof ol_bgbackground == 'undefined') { var ol_bgbackground = ""; } + +// How much horizontal left padding text should get by default when BACKGROUND is used. +if (typeof ol_padxl == 'undefined') { var ol_padxl = 1; } + +// How much horizontal right padding text should get by default when BACKGROUND is used. +if (typeof ol_padxr == 'undefined') { var ol_padxr = 1; } + +// How much vertical top padding text should get by default when BACKGROUND is used. +if (typeof ol_padyt == 'undefined') { var ol_padyt = 1; } + +// How much vertical bottom padding text should get by default when BACKGROUND is used. +if (typeof ol_padyb == 'undefined') { var ol_padyb = 1; } + +// If the user by default must supply all html for complete popup control. +// Set to 1 to activate, 0 otherwise. +if (typeof ol_fullhtml == 'undefined') { var ol_fullhtml = 0; } + +// Default vertical position of the popup. Default should normally be BELOW. +// ABOVE only works when HEIGHT is defined. +if (typeof ol_vpos == 'undefined') { var ol_vpos = BELOW; } + +// Default height of popup to use when placing the popup above the cursor. +if (typeof ol_aboveheight == 'undefined') { var ol_aboveheight = 50; } + +// Default icon to place next to the popups caption. +if (typeof ol_caption == 'undefined') { var ol_capicon = ""; } + +// Default frame. We default to current frame if there is no frame defined. +if (typeof ol_frame == 'undefined') { var ol_frame = self; } + +// Default timeout. By default there is no timeout. +if (typeof ol_timeout == 'undefined') { var ol_timeout = 0; } + +// Default javascript function. By default there is none. +if (typeof ol_function == 'undefined') { var ol_function = Function(); } + +// Default timeout. By default there is no timeout. +if (typeof ol_delay == 'undefined') { var ol_delay = 0; } + +// If overLIB should decide the horizontal placement. +if (typeof ol_hauto == 'undefined') { var ol_hauto = 0; } + +// If overLIB should decide the vertical placement. +if (typeof ol_vauto == 'undefined') { var ol_vauto = 0; } + + +//////////////////////////////////// +// ARRAY CONFIGURATION +// You don't have to change anything here if you don't want to. The following +// arrays can be filled with text and html if you don't wish to pass it from +// your html page. +//////////////////////////////////// + +// THAYER'S BOILERPLATES: +var CClickHere = "

Feu clic aquí per
"; +var EClickHere = "

Click here for
"; +var FClickHere = "

Faire clic ici pour
"; +var IClickHere = "

Cliccare qui per
"; +var NClickHere = "

Klik hier voor
"; +var PClickHere = "

Clique aqui para
"; +var SClickHere = "

Haga clic aquí para
"; +var CZero = "

La pàgina s\'obre en
AQUESTA finestra
"; +var EZero = "

Page opens
in THIS window
"; +var FZero = "

S\'ouvre dans
CETTE fenêtre
"; +var IZero = "

Si apre in
QUESTO pannello
"; +var PZero = "

A página abre
NESTA janela
"; +var SZero = "

La página abre
en ESTA ventana
"; +var CThisWindow = "
La pàgina s\'obre
en AQUESTA finestra
"; +var EThisWindow = "
Page opens
in THIS window
"; +var FThisWindow = "
S\'ouvre dans
CETTE fenêtre
"; +var IThisWindow = "
Si apre in
QUESTO pannello
"; + +// THAYER'S ARRAYS: +// Array with texts. FOR SIMPLICITY, KEEP THIS AT LINE 280 (Number is then linenum minus 285) +// LANGUAGE ORDER: E:0 - F:10 - I:20 - L:30 - S:40 - P:90 (…0-4: EFILS) +// AFTER THE COMMA AT THE END OF EACH LINE: THERE MUST BE A SPACE! +// EXCEPT THE LAST LINE HAS NO COMMA, NO SPACE: FOR SIMPLICITY, KEEP IT AS A BLANK LINE. +var ol_texts = new Array( +EZero, +"

(Page opens in another window)", +"

Link is offsite:
page opens in
another window.
", +"

(This photo or a related one, opens in another window)", +"

(The photo will open in another window)", +"

(Elsewhere on this page)", +EClickHere+"the author\'s note at the bottom of this page.", +EClickHere+"my note at the bottom of this page.", +"

Click here
to go back
to the reference
in the text.", +"

If you don\'t know what this is about,
the explanation is only a click away.
(Opens in another window)", +FZero, +"

(La page s\'ouvre dans une autre fenêtre)", +"

Le lien est hors site :
la page s\'ouvre
dans une autre fenêtre
", +"

(Cette photo ou une photo apparentée, s\'ouvre dans une autre fenêtre)", +"

(Cette photo s\'ouvre dans une autre fenêtre)", +"

(Ailleurs sur cette page)", +FClickHere+"la note de l\'auteur au bas de la page.", +FClickHere+"ma note au bas de la page.", +FClickHere+"retourner au renvoi dans le texte.", +"

Si vous ne savez pas ce de quoi il s\'agit, il n\'y a qu\'à faire clic pour l\'explication.
(S'ouvre dans une autre fenêtre)", +"

(Die Seite öffnet sich in DIESEM Fenster)", +"

(Die Seite öffnet sich in einem anderen Fenster)", +"

(Auf externe Site: die Seite öffnet sich in einem anderen Fenster)", +"

(Dieses Foto oder ein Ähnliches Foto öffnet sich in einem anderen Fenster)", +"

(Die Foto öffnet sich in einem anderen Fenster)", +" ", +" ", +" ", +" ", +" ", +IZero, +"

(La pagina si apre in un altro pannello)", +"

Il link è fuori sito:
la pagina si apre
in un altro pannello
", +"

(Questa foto o una foto connessa, si apre in un altro pannello)", +"

(La foto si apre in un altro pannello)", +"

(Altrove su questa pagina)", +IClickHere+"la nota
dell\' autore a piè di pagina.", +IClickHere+"la mia nota a piè di pagina.", +IClickHere+"tornare al riferimento nel testo.", +"

Se questo non vi dice nulla, basta cliccare per la spiegazione.
(La pagina si apre in un altro pannello)", +"

(HAC in fenestra aperietur pagina)", +"

(Altera in fenestra aperietur pagina)", +"

(In alio situ: altera in fenestra aperietur pagina)", +"

(Altera in fenestra aperietur haec seu conexa photo)", +"

(Altera in fenestra aperietur photo)", +"

(Alibi in hac pagina)", +"

Cliccare hic
ad auctoris sive editoris
adnotationem legendam
in ima pagina", +"

Cliccare hic
ad adnotationem meam
in ima pagina legendam", +"

Cliccare hic
ad revertendum in textum", +" ", +SZero, +"

(La página abre en una otra ventana)", +"

(Fuera del sitio: la página abre en una otra ventana)", +"

(Esta foto o una foto relacionada, abre en una otra ventana)", +"

(La foto abre en una otra ventana)", +"

(Otra parte en esta página)", +SClickHere+"la nota del autor en bajo de la página.", +SClickHere+"mi nota en bajo de la página.", +SClickHere+"volver a la referencia en el texto.", +" ", +EClickHere+"the article in Smith\'s Dictionary."+EThisWindow, +FClickHere+"l\' article de Smith\'s Dictionary."+FThisWindow, +IClickHere+"
l\' articolo
di Smith\'s Dictionary."+IThisWindow, +" ", +SClickHere+"el artículo de Smith\'s Dictionary.
(Abre en ESTA ventana)", +EClickHere+"the article in Smith\'s Dictionary.
(Page opens in another window)", +FClickHere+"l\' article de Smith\'s Dictionary.
(S'ouvre dans une autre fenêtre)", +IClickHere+"l\' articolo di Smith\'s Dictionary.
(Si apre in un altro pannello)", +" ", +SClickHere+"el artículo de Smith\'s Dictionary.
(Abre en una otra ventana)", +"

If you don\'t know what this is about,
the explanation is only a click away."+EThisWindow, +"

Si vous ne savez pas ce de quoi il s\'agit,
il n\'y a qu\'à faire clic pour l\'explication."+FThisWindow, +"

Se non sapete che cosa è,
basta cliccare qui per la spiegazione."+IThisWindow, +" ", +" ", +"

If you don\'t know what this is about,
the explanation is only a click away.
(Offsite: opens in another window)", +"

Si vous ne savez pas ce de quoi il s\'agit,
il n\'y a qu\'à faire clic pour l\'explication.
(Hors site: s\'ouvre dans une autre fenêtre)", +"

Se non sapete che cosa è,
basta cliccare qui per la spiegazione.
(Fuori sito: si apre in un altro pannello)", +" ", +" ", +EClickHere+"the relevant section
of an article
in Smith\'s Dictionary."+EThisWindow, +FClickHere+"le passage ou le chapitre de l\' article
de Smith\'s Dictionary."+FThisWindow, +IClickHere+"la parte corrispettiva di un articolo
di Smith\'s Dictionary."+IThisWindow, +" ", +SClickHere+"la parte relativa del artículo de Smith\'s Dictionary.
(Abre en ESTA ventana)", +EClickHere+"the relevant section
of an article
in Smith\'s Dictionary.
(Page opens
in another window)
", +FClickHere+"le passage ou le chapitre de l\' article
de Smith\'s Dictionary.
(S'ouvre dans une autre fenêtre)", +IClickHere+"la parte corrispettiva di un articolo
di Smith\'s Dictionary.
(Si apre in un altro pannello)", +" ", +SClickHere+"la parte relativa del artículo de Smith\'s Dictionary.
(Abre en una otra ventana)", +PZero, +"

(A página abre em uma outra janela)", +"

(Offsite: a página abre em uma outra janela)", +"

(Esta foto ou uma foto relacionada, abre em uma outra janela)", +"

(A foto abre em uma outra janela)", +"

(Em outro lugar desta página)", +PClickHere+"a anotação do autor no fim da página.", +PClickHere+"a minha anotação no fim da página.", +PClickHere+"voltar para a referência no texto.", +" ", +EClickHere+"the main index page of Smith\'s Dictionary.
(Opens in a separate index window)", +FClickHere+"la page principale de Smith\'s Dictionary.
(S\'ouvre dans une autre fenêtre-index)", +IClickHere+"la pagina principale di Smith\'s Dictionary.
(Si apre in un altro pannello-indice)", +" ", +SClickHere+"la página principal de Smith\'s Dictionary.
(Abre en una otra ventana-indice)", +" ", +"

Click here
for the text discussion.
(Elsewhere on this page)", +EClickHere+"the main index page of Smith\'s Dictionary."+EThisWindow, +EClickHere+"the main index page of Daremberg & Saglio\'s Dictionary.
(Opens in a separate index window)", +EClickHere+"the main index page of Daremberg & Saglio\'s Dictionary."+EThisWindow, +EClickHere+"the article in Platner\'s Topographical Dictionary of Ancient Rome.
(Page opens in THIS window)", +FClickHere+"l\'article dans le Topographical Dictionary of Ancient Rome de Platner.
(La page s\'ouvre dans CETTE fenêtre)", +IClickHere+"l\' articolo nel Topographical Dictionary of Ancient Rome del Platner."+IThisWindow, +"

Cliccare hic ad articulum legendum
in Platneri Topographical Dictionary of Ancient Rome.
(Anglice, HANC in fenestram aperietur pagina)", +SClickHere+"el artículo en el Topographical Dictionary of Ancient Rome de Platner.
(Abre en ESTA ventana)", +EClickHere+"the article in Platner\'s Topographical Dictionary of Ancient Rome.
(Page opens in another window)", +FClickHere+"l\'article dans le Topographical Dictionary of Ancient Rome de Platner.
(La page s\'ouvre dans une autre fenêtre)", +IClickHere+"l\' articolo nel Topographical Dictionary of Ancient Rome del Platner.
(Si apre in un altro pannello)", +"

Cliccare hic ad articulum legendum
in Platneri Topographical Dictionary of Ancient Rome.
(Anglice, altera in fenestra aperietur pagina)", +SClickHere+"el artículo en el Topographical Dictionary of Ancient Rome de Platner.
(Abre en una otra ventana)", +EClickHere+"the article in Platner\'s Topographical Dictionary of Ancient Rome, with one or more photos.
(Page opens in THIS window)", +FClickHere+"l\'article dans le Topographical Dictionary of Ancient Rome de Platner, avec une ou plusieurs photos.
(La page s\'ouvre dans CETTE fenêtre)", +IClickHere+"l\' articolo nel Topographical Dictionary of Ancient Rome del Platner, con una o parecchie foto."+IThisWindow, +"

Cliccare hic ad articulum legendum
in Platneri Topographical Dictionary of Ancient Rome,
una pluribusve cum photographiis.
(Anglice, HANC in fenestram aperietur pagina)", +" ", +EClickHere+"the article in Platner\'s Topographical Dictionary of Ancient Rome, with one or more photos.
(Page opens in another window)", +FClickHere+"l\'article dans le Topographical Dictionary of Ancient Rome de Platner, avec une ou plusieurs photos.
(La page s\'ouvre dans une autre fenêtre)", +IClickHere+"l\' articolo nel Topographical Dictionary of Ancient Rome del Platner, con una o parecchie foto.
(Si apre in un altro pannello)", +"

Cliccare hic ad articulum legendum
in Platneri Topographical Dictionary of Ancient Rome,
una plurisve photographiis.
(Anglice, altera in fenestra aperietur pagina)", +" ", +EClickHere+"the relevant section of an article in Platner\'s Topographical Dictionary of Ancient Rome.
(Page opens in THIS window)", +FClickHere+"la partie relative à ce sujet dans l\'article du Topographical Dictionary of Ancient Rome de Platner.
(La page s\'ouvre dans CETTE fenêtre)", +IClickHere+"la parte pertinente di un articolo nel Topographical Dictionary of Ancient Rome del Platner."+IThisWindow, +" ", +SClickHere+"la parte pertinente de un artículo en el Topographical Dictionary of Ancient Rome de Platner.
(Abre en ESTA ventana)", +EClickHere+"the relevant section of an article in Platner\'s Topographical Dictionary of Ancient Rome.
(Page opens in another window)", +FClickHere+"la partie relative à ce sujet dans l\'article du Topographical Dictionary of Ancient Rome de Platner.
(La page s\'ouvre dans une autre fenêtre)", +IClickHere+"la parte pertinente di un articolo nel Topographical Dictionary of Ancient Rome del Platner.
(Si apre in un altro pannello)", +" ", +SClickHere+"la parte pertinente de un artículo en el Topographical Dictionary of Ancient Rome de Platner.
(Abre en una otra ventana)", +EClickHere+"the complete work(s), onsite.
(Page opens in THIS window)", +" ", +" ", +" ", +" ", +EClickHere+"the complete work(s), onsite.
(Page opens in another window)", +" ", +" ", +" ", +" ", +EClickHere+"Armellini\'s
Chiese di Roma,
to this passage.
(In Italian;
page opens in THIS window)
", +FClickHere+"Chiese di Roma de Mariano Armellini, à ce passage.
(en italien; la page s\'ouvre dans CETTE fenêtre)", +IClickHere+"le Chiese di Roma dell\' Armellini, a questo passo."+IThisWindow, +" ", +" ", +EClickHere+"Armellini\'s
Chiese di Roma,
to this passage.
(In Italian;
page opens
in another window)
", +FClickHere+"Chiese di Roma de Mariano Armellini, à ce passage.
(en italien; la page s\'ouvre dans une autre fenêtre)", +IClickHere+"le Chiese di Roma dell\' Armellini, a questo passo.
(Si apre in un altro pannello)", +" ", +" ", +EClickHere+"Christian Hülsen\'s
Chiese di Roma nel Medio Evo,
to this passage or section.
(In Italian;
page opens in THIS window)", +FClickHere+"Chiese di Roma nel Medio Evo de Christian Hülsen, à ce passage.
(en italien; la page s\'ouvre dans CETTE fenêtre)", +IClickHere+"le Chiese di Roma nel Medio Evo di Christian Hülsen, a questo passo."+IThisWindow, +" ", +" ", +EClickHere+"Christian Hülsen\'s
Chiese di Roma nel Medio Evo,
to this passage or section.
(In Italian;
page opens in another window)
", +FClickHere+"Chiese di Roma nel Medio Evo de Christian Hülsen, à ce passage.
(en italien; la page s\'ouvre dans une autre fenêtre)", +IClickHere+"le Chiese di Roma nel Medio Evo di Christian Hülsen, a questo passo.
(Si apre in un altro pannello)", +" ", +" ", +EClickHere+"my homepage for this church,
with the texts of Armellini, Hülsen, and Titi,
plus photos and offsite links.
(Page opens in THIS window)", +FClickHere+"mon site sur cette église,
avec les textes d\'Armellini, de Hülsen, et de Titi,
ainsi que des photos et des liens hors site."+FThisWindow, +IClickHere+"il mio sito sulla chiesa,
con i testi dell\' Armellini, del Hülsen, e/o del Titi;
e con fotografie e links fuori sito."+IThisWindow, +" ", +SClickHere+"mi sitio sobre esta iglesia, con los textos de Armellini, de Hülsen, y de Titi; y con fotos y enlaces externos.
(Abre en ESTA ventana)", +EClickHere+"my homepage for this church, with the texts of Armellini, Hülsen, and Titi, plus photos and offsite links.
(Page opens in another window)", +FClickHere+"mon site sur cette église, avec les textes d\'Armellini, de Hülsen, et de Titi, ainsi que des photos et des liens hors site.
(S\'ouvre dans une autre fenêtre)", +IClickHere+"il mio sito sulla chiesa, con i testi dell\' Armellini, del Hülsen, e/o del Titi; e con fotografie e links fuori sito.
(Si apre in un altro pannello)", +" ", +SClickHere+"mi sitio sobre esta iglesia, con los textos de Armellini, de Hülsen, y de Titi; y con fotos y enlaces externos.
(Abre en una otra ventana)", +EClickHere+"the article in Daremberg & Saglio\'s Dictionary.
(Page opens in THIS window)", +FClickHere+"l\' article du Dictionnaire de Daremberg & Saglio."+FThisWindow, +IClickHere+"l\' articolo del Dizionario di Daremberg e Saglio."+IThisWindow, +" ", +SClickHere+"el artículo del Diccionario de Daremberg y Saglio.
(Abre en ESTA ventana)", +EClickHere+"the article in Daremberg & Saglio\'s Dictionary.
(Page opens in another window)", +FClickHere+"l\' article du Dictionnaire de Daremberg & Saglio.
(S'ouvre dans une autre fenêtre)", +IClickHere+"l\' articolo del Dizionario di Daremberg e Saglio.
(Si apre in un altro pannello)", +" ", +SClickHere+"el artículo del Diccionario de Daremberg y Saglio.
(Abre en una otra ventana)", +EClickHere+"my page."+EThisWindow, +FClickHere+"ma page."+FThisWindow, +IClickHere+"la mia pagina."+IThisWindow, +" ", +SClickHere+"mi página.
(Abre en ESTA ventana)", +EClickHere+"my page.
(Opens in another window)", +FClickHere+"ma page.
(S'ouvre dans une autre fenêtre)", +IClickHere+"la mia pagina.
(Si apre in un altro pannello)", +" ", +SClickHere+"mi página.
(Abre en una otra ventana)", +EClickHere+"my pages.
(Orientation page opens in THIS window)", +FClickHere+"mes pages.
(La page d\'orientation s\'ouvre dans CETTE fenêtre)", +IClickHere+"le mie pagine.
(La pagina di orientazione si apre in QUESTO pannello)", +" ", +SClickHere+"mis páginas.
(La página de orientación abre en ESTA ventana)", +EClickHere+"my pages.
(Orientation page opens in another window)", +FClickHere+"mes pages.
(La page d\'orientation s\'ouvre dans une autre fenêtre)", +IClickHere+"le mie pagine.
(La pagina di orientazione si apre in un altro pannello)", +" ", +SClickHere+"mis páginas.
(La página de orientación abre en una otra ventana)", +EClickHere+"my page on this church, with photos."+EThisWindow, +FClickHere+"ma page sur cette église, avec photos."+FThisWindow, +IClickHere+"la mia pagina su questa chiesa, con delle foto."+IThisWindow, +" ", +SClickHere+"mi página sobre esta iglesia, con fotos.
(Abre en ESTA ventana)", +EClickHere+"my page on this church, with photos.
(Opens in another window)", +FClickHere+"ma page sur cette église, avec photos.
(S'ouvre dans une autre fenêtre)", +IClickHere+"la mia pagina su questa chiesa, con delle foto.
(Si apre in un altro pannello)", +" ", +SClickHere+"mi página sobre esta iglesia, con fotos.
(Abre en una otra ventana)", +EClickHere+"my pages on this church, with photos.
(Orientation page
opens in THIS window)
", +FClickHere+"mes pages sur cette église, avec photos.
(La page d\'orientation s\'ouvre dans CETTE fenêtre)", +IClickHere+"le mie pagine su questa chiesa, con delle foto.
(La pagina di orientazione si apre in QUESTO pannello)", +" ", +SClickHere+"mis páginas sobre esta iglesia, con fotos.
(La página de orientación abre en ESTA ventana)", +EClickHere+"my pages on this church, with photos.
(Orientation page
opens in another window)
", +FClickHere+"mes pages sur cette église, avec photos.
(La page d\'orientation s\'ouvre dans une autre fenêtre)", +IClickHere+"le mie pagine su questa chiesa, con delle foto.
(La pagina di orientazione si apre in un altro pannello)", +" ", +SClickHere+"mis páginas sobre esta iglesia, con fotos.
(La página de orientación abre en una otra ventana)", +EClickHere+"my site on this town,
with photos and links.
(Orientation page opens in THIS window)", +FClickHere+"mes pages sur cette ville,
avec photos et liens.
(La page d\'orientation s\'ouvre dans CETTE fenêtre)", +IClickHere+"le mie pagine su questa città,
con fotografie e un elenco di link.
(La pagina di orientazione si apre in QUESTO pannello)", +" ", +SClickHere+"mis páginas sobre esta ciudad,
con fotos y enlaces.
(La página de orientación abre en ESTA ventana)", +EClickHere+"my site on this town,
with photos and links.
(Orientation page opens in another window)", +FClickHere+"mes pages sur cette ville,
avec photos et liens.
(La page d\'orientation s\'ouvre dans une autre fenêtre)", +IClickHere+"le mie pagine su questa città,
con fotografie e un elenco di link.
(La pagina di orientazione si apre in un altro pannello)", +" ", +SClickHere+"mis páginas sobre esta ciudad,
con fotos y enlaces.
(La página de orientación abre en una otra ventana)", +EClickHere+"the passage
in an English translation
linked to the original Latin.
(Opens in another window)

", //"THIS IS WHAT REALLY BELONGS IN 520:
Click here for the passage
in the Latin text of Suetonius,
linked to an English translation.
(Opens in another window)", +FClickHere+"le passage
en traduction anglaise
lié au texte latin.
(S'ouvre dans une autre fenêtre)", +IClickHere+"il passo
in una traduzione inglese
collegato al testo latino.
(Si apre in un altro pannello)
", //"THIS IS WHAT REALLY BELONGS IN 522:
Cliccare qui per il passo
nel testo latino di Svetonio,
collegato a traduzioni in inglese e francese.
(Si apre in un altro pannello)", +"

Cliccare hic ad legendum
in anglica versione
ad Latinum textum conexum.
(Altera in fenestra aperietur pagina)", +SClickHere+"este pasaje
en una traducción inglesa
con enlace al texto latino.
(Abre en una otra ventana)", +EClickHere+"the passage
in an English translation
linked to the original Latin.
(Offsite, opens in another window)

", //"THIS IS WHAT REALLY BELONGS IN 525:
Click here for the passage
in the Latin text of Suetonius,
linked to an English translation.
(Opens in another window)", +FClickHere+"le passage
en traduction anglaise
lié au texte latin.
(Hors site, s\'ouvre dans une autre fenêtre)", +IClickHere+"il passo
in una traduzione inglese
collegato al testo latino.
(Fuori sito, si apre in un altro pannello)
", //"THIS IS WHAT REALLY BELONGS IN 507:
Cliccare qui per il passo
nel testo latino di Svetonio,
collegato a traduzioni in inglese e francese.
(Si apre in un altro pannello)", +"

Cliccare hic ad legendum
in anglica versione
ad Latinum textum conexum.
(Apud alios, altera in fenestra aperietur pagina)", +SClickHere+"este pasaje
en una traducción inglesa
con enlace al texto latino.
(Fuera del sitio, abre en una otra ventana)", +EClickHere+"the passage
in the original Latin
linked to an English translation.
(Opens in another window)

", //"THIS IS WHAT REALLY BELONGS IN 510:
Click here for the passage
in the Latin text of Suetonius,
linked to an English translation.
(Opens in another window)", +FClickHere+"le passage
dans le texte latin
lié à une traduction anglaise.
(S'ouvre dans une autre fenêtre)", +IClickHere+"il passo
nel testo latino
collegato ad una traduzione inglese.
(Si apre in un altro pannello)
", //"THIS IS WHAT REALLY BELONGS IN 512:
Cliccare qui per il passo
nel testo latino di Svetonio,
collegato a traduzioni in inglese e francese.
(Si apre in un altro pannello)", +"

Cliccare hic ad legendum
Latinum textum
ad anglicam versionem conexum.
(Altera in fenestra aperietur pagina)", +SClickHere+"este pasaje
en el texto latino
con enlace a una traducción inglesa.
(Abre en una otra ventana)", +EClickHere+"the passage
in the original Latin
linked to an English translation.
(Offsite, opens in another window)

", //"THIS IS WHAT REALLY BELONGS IN 515:
Click here for the passage
in the Latin text of Suetonius,
linked to an English translation.
(Opens in another window)", +FClickHere+"le passage
dans le texte latin
lié à une traduction anglaise.
(Hors site, s\'ouvre dans une autre fenêtre)", +IClickHere+"il passo
nel testo latino
collegato ad una traduzione inglese.
(Fuori sito, si apre in un altro pannello)
", //"THIS IS WHAT REALLY BELONGS IN 517:
Cliccare qui per il passo
nel testo latino di Svetonio,
collegato a traduzioni in inglese e francese.
(Si apre in un altro pannello)", +"

Cliccare hic ad legendum
Latinum textum
ad anglicam versionem conexum.
(Apud alios, altera in fenestra aperietur pagina)", +SClickHere+"este pasaje
en el texto latino
con enlace a una traducción inglesa.
(Fuera del sitio, abre en una otra ventana)", +EClickHere+"the passage
in Pliny the Elder\'s Natural History.
(Latin, opens in another window)", +FClickHere+"le passage
dans l\'Histoire Naturelle de Pline l\'ancien.
(En latin; s\'ouvre dans une autre fenêtre)", +IClickHere+"il passo
nella Storia Naturale di Plinio il Vecchio.
(In latino; si apre in un altro pannello)", +" ", +SClickHere+"el pasaje
en la Historia Natural de Plinio el Viejo.
(En latín; abre en una otra ventana)", +EClickHere+"the passage
in Ptolemy\'s Geography.
(English, opens in another window)", +FClickHere+"le passage
dans la Géographie de Ptolémé.
(En anglais; s\'ouvre dans une autre fenêtre)", +IClickHere+"il passo
nella Geografia di Tolomeo.
(In inglese; si apre in un altro pannello)", +"

Cliccare hic ad textum legendum
in Geographia Ptolemaei.
(Anglice, altera in fenestra aperietur pagina)", +" ", +EClickHere+"the passage
in Ammian
in an English translation
linked to the original Latin.
(Opens in another window)", +FClickHere+"le passage
dans Ammien
en traduction anglaise
liée au texte latin.(S'ouvre dans une autre fenêtre)", +"

Cliccare qui per il passo
in Ammiano
in una traduzione inglese
collegato al testo latino.
(Si apre in un altro pannello)", +" ", +" ", +EClickHere+"the passage
in Appian.
(English, opens in another window)", +FClickHere+"le passage
dans Appien.
(En anglais; s\'ouvre dans une autre fenêtre)", +IClickHere+"il passo
in Appiano.
(In inglese; si apre in un altro pannello)", +" ", +" ", +EClickHere+"the passage
in Cassius Dio\'s History.
(English, opens in another window)", +FClickHere+"le passage
dans l\'Histoire de Dion Cassius.
(En anglais; s\'ouvre dans une autre fenêtre)", +IClickHere+"il passo
nella Storia di Cassio Dione.
(In inglese; si apre in un altro pannello)", +" ", +SClickHere+"el pasaje
en Dion Cásio.
(en inglés, abre en una otra ventana)", +EClickHere+"the passage
in Plutarch.
(English, opens in another window)", +FClickHere+"le passage
dans Plutarque.
(En anglais; s\'ouvre dans une autre fenêtre)", +IClickHere+"il passo
in Plutarco.
(In inglese; si apre in un altro pannello)", +" ", +SClickHere+"el pasaje
en Plutarco.
(en inglés, abre en una otra ventana)", +EClickHere+"the passage
in Polybius\' Histories.
(English, opens in another window)", +FClickHere+"le passage
dans les Histoires de Polybe.
(En anglais; s\'ouvre dans une autre fenêtre)", +IClickHere+"il passo
nelle Storie di Polibio.
(In inglese; si apre in un altro pannello)", +"

Cliccare hic ad textum legendum
in Historiis Polybii.
(Anglice, altera in fenestra aperietur pagina)", +" ", +EClickHere+"the passage
in Strabo\'s Geography.
(English, opens in another window)", +FClickHere+"le passage
dans la Géographie de Strabon.
(En anglais; s\'ouvre dans une autre fenêtre)", +IClickHere+"il passo
nella Geografia di Strabone.
(In inglese; si apre in un altro pannello)", +"

Cliccare hic ad textum legendum
in Geographia Strabonis.
(Anglice, altera in fenestra aperietur pagina)", +" ", +IClickHere+"la scheda di questa chiesa.
(Rimane in questo pannello)", +IClickHere+"la scheda di questa chiesa.
(Un\' altra pagina si apre in QUESTO pannello)", +IClickHere+"la scheda di quest\' artista nell\' indice."+IThisWindow, +IClickHere+"la scheda di quest\' artista nell\' indice.
(Si apre in un altro pannello)", +IClickHere+"il catalogo,
al passo preciso.
(Si aprirà nel pannello dei cataloghi)", +IClickHere+"questo quadro della pianta.
(Si aprirà nel pannello delle piante)", +IClickHere+"QUESTO QUADRO ADIACENTE.
(Rimane in questo pannello)", +IClickHere+"questa chiesa.
(Si apre nel pannello principale del testo)", +EClickHere+"this artist\'s entry in the index.
(Open in THIS window)", +EClickHere+"this artist\'s entry in the index.
(Open in another window)", +EClickHere+"my site or page."+EThisWindow, +FClickHere+"mon site ou ma page."+FThisWindow, +IClickHere+"il mio sito o la mia pagina."+IThisWindow, +" ", +SClickHere+"mi sitio o página.
(Abre en ESTA ventana)", +EClickHere+"my site or page.
(Opens in another window)", +FClickHere+"mon site ou ma page.
(S'ouvre dans une autre fenêtre)", +IClickHere+"il mio sito o la mia pagina.
(Si apre in un altro pannello)", +" ", +SClickHere+"mi sitio o página.
(Abre en una otra ventana)", +EClickHere+"my subsite,
with several pages, photos, etc."+EThisWindow, +FClickHere+"mon sous-site,
qui comporte plusieurs pages, photos, etc."+FThisWindow, +IClickHere+"il mio sotto-sito,
con parecchie pagine e immagini, ecc."+IThisWindow, +" ", +SClickHere+"mi sub-sitio,
con varias páginas, imágenes, etc.
(Abre en ESTA ventana)", +EClickHere+"my subsite,
with several pages, photos, etc.
(Opens in another window)", +FClickHere+"mon sous-site,
qui comporte plusieurs pages, photos, etc.
(S'ouvre dans une autre fenêtre)", +IClickHere+"il mio sotto-sito,
con parecchie pagine e immagini, ecc.
(Si apre in un altro pannello)", +" ", +SClickHere+"mi sub-sitio,
con varias páginas, imágenes, etc.
(Abre en una otra ventana)", +EClickHere+"my subsite,
with many pages, photos, links."+EThisWindow, +FClickHere+"mon sous-site,
qui comporte de nombreux pages, photos, et liens."+FThisWindow, +IClickHere+"il mio sotto-sito,
con molti pagine, immagini, link."+IThisWindow, +" ", +SClickHere+"mi sub-sitio,
con muchas páginas, imágenes, y enlaces.
(Abre en ESTA ventana)", +EClickHere+"my subsite,
with many pages, photos, links.
(Opens in another window)", +FClickHere+"mon sous-site,
qui comporte de nombreuses pages et photos, et de nombreux liens.
(S'ouvre dans une autre fenêtre)", +IClickHere+"il mio sotto-sito,
con molte pagine e immagini, e molti link.
(Si apre in un altro pannello)", +" ", +SClickHere+"mi sub-sitio,
con muchas páginas y imagenes, y muchos enlaces.
(Abre en una otra ventana)", +"

The entire book is onsite.
(Orientation page opens in THIS window)", +"

Le livre entier se trouve sur le site.
(La page d\'orientation s\'ouvre dans CETTE fenêtre)", +"

Il libro intero si trova sul sito.
(La pagina di orientazione si apre in QUESTO pannello)", +" ", +"

El libro entero es reproducido en este sitio.
(La página de orientación abre en ESTA ventana)", +"

The entire book is onsite.
(Orientation page opens in another window)", +"

Le livre entier se trouve sur le site.
(La page d\'orientation s\'ouvre dans une autre fenêtre)", +"

Il libro intero si trova sul sito.
(La pagina di orientazione si apre in un altro pannello)", +" ", +"

El libro entero es reproducido en este sitio.
(La página de orientación abre en una otra ventana)", +EClickHere+"their website or page.
(Offsite, so it opens in another window)", +FClickHere+"leur site ou page.
(Hors site, s\'ouvrira donc dans une autre fenêtre)", +IClickHere+"loro sito o pagina.
(Fuori sito, si apre quindi in un altro pannello)", +" ", +SClickHere+"su sitio o página.
(Sitio externo: abre en una otra ventana)", +" ", +" ", +" ", +" ", +" ", +EClickHere+"the original Latin.
(Opens in another window)", +FClickHere+"le latin original.
(S'ouvre dans une autre fenêtre)", +IClickHere+"il latino originale.
(Si apre in un altro pannello)", +" ", +SClickHere+"el latino originale.
(Abre en una otra ventana)", +" ", +" ", +" ", +" ", +" ", +EClickHere+"the passage
in the Latin text.
(Opens in another window)", +FClickHere+"le passage du texte latin.
(S'ouvre dans une autre fenêtre)", +IClickHere+"il passo dell\' autore latino.
(Si apre in un altro pannello)", +" ", +SClickHere+"el pasaje del autor latino.
(Abre en una otra ventana)", +EClickHere+"the passage
in a Latin translation.
(Opens in another window)", +FClickHere+"le passage dans une traduction latine.
(S'ouvre dans une autre fenêtre)", +IClickHere+"il passo del testo tradotto in latino.
(Si apre in un altro pannello)", +" ", +SClickHere+"el pasaje del autor latino.
(Abre en una otra ventana)", +EClickHere+"the passage
in the Latin text.
(Offsite: opens in another window)", +FClickHere+"le passage du texte latin.
(Hors site: s\'ouvre dans une autre fenêtre)", +IClickHere+"il passo del testo latino.
(Fuori sito: si apre in un altro pannello)", +" ", +SClickHere+"el pasaje del texto latino.
(Fuera del sitio: abre en una otra ventana)", +EClickHere+"the passage
in the Latin text,
linked to a translation
(Offsite: opens in another window)", +FClickHere+"le passage du texte latin.
liée à une traduction(Hors site: s\'ouvre dans une autre fenêtre)", +IClickHere+"il passo del testo latino.
collegato ad una traduzione
(Fuori sito: si apre in un altro pannello)", +" ", +SClickHere+"el pasaje del texto latino.
con enlace a una traducción(Fuera del sitio: abre en una otra ventana)", +EClickHere+"the passage
in the Latin text,
linked to one or more translations.
(Opens in another window)", +FClickHere+"le passage du texte latin,
lié à une ou plusieurs traductions.
(S'ouvre dans une autre fenêtre)", +IClickHere+"il passo dell\' autore latino,
collegato ad una o più traduzioni.
(Si apre in un altro pannello)", +" ", +SClickHere+"el pasaje del autor latino,
con enlace a una o mas traducciones.
(Abre en una otra ventana)", +EClickHere+"the passage in the Latin text,
linked to one or more translations.
(Offsite: opens in another window)", +FClickHere+"le passage du texte latin,
lié à une ou plusieurs traductions.
(Hors site: s\'ouvre dans une autre fenêtre)", +IClickHere+"il passo dell\' autore latino,
collegato ad una o più traduzioni.
(Fuori sito: si apre in un altro pannello)", +" ", +SClickHere+"el pasaje del autor latino,
con enlace a una o mas traducciones.
(Fuera del sitio: abre en una otra ventana)", +EClickHere+"the text of this passage
in the original language.
(Opens in another window)", +FClickHere+"le texte de ce passage
dans la langue originale.
(S'ouvre dans une autre fenêtre)", +IClickHere+"il testo di questo passo
nella lingua originaria.
(Si apre in un altro pannello)", +"

Cliccare hic ad legendum textum
in lingua originali.
(Altera in fenestra aperietur pagina)", +SClickHere+"el texto de este pasaje
en la lingua original.
(Abre en una otra ventana)", +EClickHere+"the text of this passage
in the original language.
(Offsite: opens in another window)", +FClickHere+"le texte de ce passage
dans la langue originale.
(Hors site: s\'ouvre dans une autre fenêtre)", +IClickHere+"il testo di questo passo
nella lingua originaria.
(Fuori sito: si apre in un altro pannello)", +"

Cliccare hic ad legendum textum
in lingua originali.
(In situ externo: altera in fenestra aperietur pagina)", +SClickHere+"el texto de este pasaje
en la lingua original.
(Fuera del sitio: abre en una otra ventana)", +EClickHere+"an English translation
of this passage.
(Opens in another window)", +FClickHere+"une traduction en français de ce passage.
(S'ouvre dans une autre fenêtre)", +IClickHere+"una traduzione italiana di questo passo.
(Si apre in un altro pannello)", +" ", +SClickHere+"una traducción en castellano de este parágrafo.
(Abre en una otra ventana)", +EClickHere+"an English translation.
(Offsite: opens in another window)", +FClickHere+"une traduction en français.
(Hors site: s\'ouvre dans une autre fenêtre)", +IClickHere+"una traduzione italiana.
(Fuori sito: si apre in un altro pannello)", +" ", +SClickHere+"una traducción en castellano.
(Fuera del sitio: abre en una otra ventana)", +CZero, +"

(La pàgina s\'obre en una altra finestra)", +"

(Fora d\'aquest lloc: la pàgina s\'obre en una altra finestra)", +"

(Aquesta foto o una foto relacionada, s\'obre en una altra finestra)", +"

(La foto s\'obre en una altra finestra)", +"

(En una altra part d\'aquesta pàgina)", +CClickHere+"la nota de l'autor a peu de la pàgina.", +CClickHere+"la meva nota a peu de la pàgina.", +CClickHere+"torna a la referència en el text.", +" ", +"

(Offsite page
opens in another window)

Warning: PDF file.", +" ", +"

(La pagina, fuori sito,
si apre in un altro pannello)

Attenzione: documento PDF.", +" ", +" ", +"

(Page opens in another window)
JSTOR (limited access)", +" ", +" ", +" ", +" ", +"

(Page opens in another window)
Warning: The page contains coding errors and may not be visible in all browsers.", +" ", +"

(Si apre in un altro pannello)
Avvertimento: La pagina contiene errori di codaggio e può darsi che non sia visibile in tutti i navigatori.", +" ", +" ", +"

(Page opens in another window)
Warning: loud soundfile; you may want to turn down your volume level before going there.", +" ", +" ", +" ", +" ", +EClickHere+"the solution!
(Opens in another window)", +FClickHere+"la solution!
(S'ouvre dans une autre fenêtre)", +IClickHere+"la soluzione!
(Si apre in un altro pannello)", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +EClickHere+"the passage
in Diodorus\' Library of History.
(English, opens in another window)", +FClickHere+"le passage
dans l\'Histoire de Diodore.
(En anglais; s\'ouvre dans une autre fenêtre)", +IClickHere+"il passo
nella Storia di Diodoro.
(In inglese; si apre in un altro pannello)", +"

Cliccare hic ad textum legendum
in Historia Diodori.
(Anglice, altera in fenestra aperietur pagina)", +" ", +EClickHere+"the passage of Herodotus
(English, linked to the Greek original: opens in another window)", +FClickHere+"le passage d\'Hérodote
(En anglais, lié à l'original grec : s\'ouvre dans une autre fenêtre)", +IClickHere+"il passo di Erodoto
(In inglese, collegato all' originale greco; si apre in un altro pannello)", +" ", +" ", +EClickHere+"the passage of Pausanias
(Offsite: opens in another window)", +FClickHere+"le passage de Pausanias
(Hors site: s\'ouvre dans une autre fenêtre)", +IClickHere+"il passo di Pausania
(Fuori sito: si apre in un altro pannello)", +" ", +" ", +EClickHere+"the passage of Thucydides
(Offsite: opens in another window)", +FClickHere+"le passage de Thucydide
(Hors site: s\'ouvre dans une autre fenêtre)", +IClickHere+"il passo di Tucidide
(Fuori sito: si apre in un altro pannello)", +" ", +" ", +EClickHere+"the passage
in the Latin text of Frontinus,
linked to an English translation.
(Opens in another window)", +FClickHere+"le passage
dans le texte latin de Frontin,
lié à une traduction anglaise.
(S'ouvre dans une autre fenêtre)", +IClickHere+"il passo
nel testo latino di Frontino,
collegato ad una traduzione in inglese.
(Si apre in un altro pannello)", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +EClickHere+"the passage
in an English translation of Frontinus,
linked to the Latin text.
(Opens in another window)", +FClickHere+"le passage
dans une traduction anglaise de Frontin,
lié au texte latin.
(S'ouvre dans une autre fenêtre)", +" ", +" ", +" ", +EClickHere+"the passage
in Dionysius in English translation
(Opens in another window)", +" ", +IClickHere+"il passo
di Dionisio in traduzione inglese
(Si apre in un altro pannello)", +" ", +" ", +"

If you don\'t know what this is about,
the explanation is only a click away."+EThisWindow, +"

Si vous ne savez pas ce de quoi il s\'agit,
il n\'y a qu\'à faire clic pour l\'explication."+FThisWindow, +"

Se questo non vi dice nulla,
basta cliccare per la spiegazione.
(La pagina si apre in QUESTO pannello)", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +EClickHere+"the Latin original
of this passage.
(Opens in another window)", +FClickHere+"l\'original latin
de ce passage.
(S'ouvre dans une autre fenêtre)", +IClickHere+"l\' originale latino
di questo passo.
(Si apre in un altro pannello)", +" ", +" ", +EClickHere+"the Greek original
of this passage.
(Opens in another window)", +FClickHere+"l\'original grec
de ce passage.
(S'ouvre dans une autre fenêtre)", +IClickHere+"l\' originale greco
di questo passo.
(Si apre in un altro pannello)", +" ", +" ", +"

This site comprises roughly 15,000 pages of text and photos, mostly about American history, ancient Rome, classical Antiquity, and central Italy.
CLICK ON THE LINK FOR THE HOMEPAGE.
(Opens in THIS window.)", +"

Ce site comporte environ 15.000 pages de texte et de photos, surtout sur Rome antique et médiévale et l\'Italie centrale.
FAIRE CLIC SUR LE LIEN POUR LA PAGE D\'ACCUEIL.
(S\'ouvre dans CETTE fenêtre.)", +"

Questo sito contiene circa 15.000 pagine di testo e di foto, innanzitutto sulla Roma antica e medioevale e l\'Italia centrale.
CLICCARE SUL LINK PER LA PAGINA HOME.
(Si apre in QUESTO pannello.)", +"

Hic situs milia paginarum
textus photographiarumque
continet, plerumque
de historia Americana,
Roma antiqua et medievali,
antiquitate classica, et Italia centrali.
CLICCARE SUPER VINCULAM
AD PAGINAM PRINCIPALEM
VIDENDAM.

(HAC in fenestra
aperietur pagina.)
", +"

Deze site omvat ongeveer 15.000 pagina's tekst en foto's, meestal over de Amerikaanse geschiedenis, het oude Rome, de klassieke oudheid, en Midden-Italië.
KLIK OP DE LINK VOOR DE HOMEPAGE.
(Opent in DIT venster.)", +"

Este site contém cerca de 15.000 páginas de texto e fotos, especialmente sobre a história das Américas, a Roma antiga e medieval, e o centro da Itália.
CLIQUE NO LINK PARA A PÁGINA DE ACOLHIMENTO.
(A página abre NESTA janela.)", +"

Este sitio contiene aproximadamente 15.000 páginas de texto e fotos, sobre todo sobre la história de las Américas, Roma antigua y medieval, y el centro de Italia.
CLIC EN EL ENLACE PARA LA PÁGINA PRINCIPAL.
(La página abre en ESTA ventana.)", +" ", +" ", +" ", +"

This site comprises roughly 15,000 pages of text and photos, mostly about American history, ancient Rome, classical Antiquity, and central Italy.
CLICK HERE FOR THE HOMEPAGE.
(Opens in another window.)", +"

Ce site comporte environ 15.000 pages de texte et de photos, surtout sur Rome antique et médiévale et l\'Italie centrale.
FAIRE CLIC ICI POUR LA PAGE D\'ACCUEIL.
(S\'ouvre dans une autre fenêtre.)", +"

Questo sito contiene circa 15.000 pagine di testo e di foto, innanzitutto sulla Roma antica e medioevale e l\'Italia centrale.
CLICCARE QUI PER LA PAGINA HOME.
(Si apre in un altro pannello.)", +"

Hic situs milia paginarum
textus photographiarumque
continet, plerumque
de historia Americana,
Roma antiqua et medievali,
antiquitate classica, et Italia centrali.
CLICCARE HIC
AD PAGINAM PRINCIPALEM
VIDENDAM.

(In altera fenestra
aperietur pagina.)", +"

Deze site omvat ongeveer 15.000 pagina's tekst en foto's, meestal over de Amerikaanse geschiedenis, het oude Rome, de klassieke oudheid, en Midden-Italië.
KLIK OP DE LINK VOOR DE HOMEPAGE.
(Opent in DIT venster.)", +"

Este site contém cerca de 15.000 páginas de texto e fotos, especialmente sobre a Roma antiga e medieval, a história das Américas, e o centro da Itália.
CLIQUE NO LINK PARA A PÁGINA DE ACOLHIMENTO.
(A página abre em outra janela.)", +"

Este sitio contiene aproximadamente 15.000 páginas de texto e fotos, sobre todo sobre la história de las Américas, Roma antigua y medieval, y el centro de Italia.
HAGA CLIC AQUÍ PARA LA PÁGINA PRINCIPAL.
(La página abre en una otra ventana.)", +" ", +" ", +" ", +"

Click here to send me an e-mail; you\'ll first get a FAQ covering some of the commoner questions.
(Opens in another window)", +FClickHere+"m\'envoyer une e-mail; vous verrez d\'abord un FAQ traitant de quelques questions couramment posées.
(S'ouvre dans une autre fenêtre)", +IClickHere+"mandarmi un\' e-mail; vedrete prima un FAQ trattando di alcune frequenti questioni.
(Si apre in un altro pannello)", +"

Click here to send me an e-mail; you\'ll first get a FAQ covering some of the commoner things people write me about.
(Altera in fenestra aperietur)", +" ", +" ", +" ", +" ", +" ", +" ", +EClickHere+"the appropriate section of this page.
LET THE PAGE LOAD COMPLETELY BEFORE CLICKING.", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +EClickHere+"the author\'s note at the bottom of this page.", +" ", +IClickHere+"la nota
dell\' autore a piè di pagina.", +" ", +" ", +EClickHere+"the editor\'s note at the bottom of this page.", +FClickHere+"la note de l\'éditeur au bas de cette page.", +IClickHere+"la nota
dell\' editore a piè di pagina.", +"

Cliccare hic ad editoris notam legendam in ima pagina.", +" ", +EClickHere+"a textual note at the bottom of this page.", +" ", +IClickHere+"una nota testuale
a piè di pagina.", +" ", +" ", +EClickHere+"the Italian original
of this passage.
(Opens in another window)", +" ", +" ", +" ", +" ", +"

Click here to go one level up:
Opens in THIS window.", +"

Faire clic ici
pour remonter d\'un niveau
(S\'ouvre dans CETTE fenêtre.)", +"

Fare clic qui per risalire un livello
(Si apre in QUESTO pannello.)", +"

Cliccare hic ad paginam superiorem ingrediendam
(HAC in fenestra aperietur.)", +SClickHere+"ir al nivel superior
(Abre en ESTA ventana)", +" ", +" ", +" ", +" ", +" ", +"

Click here to go one level up
(Opens in another window.)", +FClickHere+"remonter d\'un niveau
(S\'ouvre dans une autre fenêtre.)", +"

Fare clic qui per risalire un livello
(Si apre in un altro pannello.)", +"

Cliccare hic ad paginam superiorem ingrediendam
(Altera in fenestra aperietur.)", +PClickHere+"subir um nivel
(Abre em uma outra janela)", +SClickHere+"ir al nivel superior
(Abre en una otra ventana)", +" ", +" ", +" ", +" ", +EClickHere+"the passage
in an English translation of Sallust,
linked to the Latin text.
(Opens in another window)", +FClickHere+"le passage
dans une traduction anglaise de Salluste,
lié au texte latin.
(S'ouvre dans une autre fenêtre)", +IClickHere+"il passo
in una traduzione inglese di Sallustio,
collegato al testo latino.
(Si apre in un altro pannello)", +" ", +" ", +EClickHere+"the passage
in the Latin text of Sallust,
linked to an English translation.
(Opens in another window)", +FClickHere+"le passage
dans le texte latin de Salluste,
lié à une traduction anglaise.
(S'ouvre dans une autre fenêtre)", +IClickHere+"il passo
nel testo latino di Sallustio,
collegato ad una traduzione in inglese.
(Si apre in un altro pannello)", +" ", +" ", +EClickHere+"the passage
in an English translation of Tacitus.
(Opens in another window)", +FClickHere+"le passage
dans une traduction anglaise de Tacite.
(S'ouvre dans une autre fenêtre)", +IClickHere+"il passo
in una traduzione inglese di Tacito.
(Si apre in un altro pannello)", +" ", +"

Haga clic aquí por el pasaje
en una traducción inglesa de Tacito.
(Abre en una otra ventana)", +EClickHere+"the passage
in the Latin text of Tacitus,
linked to an English translation.
(Opens in another window)", +FClickHere+"le passage
dans le texte latin de Tacite,
lié à une traduction anglaise.
(S'ouvre dans une autre fenêtre)", +IClickHere+"il passo
nel testo latino di Tacito,
collegato ad una traduzione in inglese.
(Si apre in un altro pannello)", +" ", +"

Haga clic aquí por el pasaje
en el texto latino de Tacito.
(Abre en una otra ventana)", +EClickHere+"the Bible verse
in Greek, Latin, English facing columns.
(Offsite, opens in another window)", +" ", +" ", +" ", +PClickHere+"o versículo da Bíblia
em colunas enfrentadas: grego, latim, inglês.
(Offsite: a página abre em uma outra janela)", +"

CULLUM NUMBER
(If you don\'t know what this is,
click here for an explanation
on the Cullum\'s Register homepage:
opens in another window.)
", +"

CLASS RANK
From 1818 to 1977, within each Class graduates are listed in order of their general merit: academic and military standing combined.", +" ", +" ", +" ", +"

(De pagina opent in DIT venster)", +"

(De pagina opent in een ander venster)", +"

(Offsite: de pagina opent in een ander venster)", +"

(Deze foto of een verwante foto, opent in een ander venster)", +"

(De foto wordt geopend in een ander venster)", +"

(Elders op deze pagina)", +NClickHere+"de nota van de auteur aan de onderkant van deze pagina.", +NClickHere+"mijn nota aan de onderkant van deze pagina.", +"

Klik hier om terug te gaan
de verwijzing in de tekst.", +"

Als je niet weet waar dit over gaat,
je alleen maar een klik verwijderd van de uitleg.
(Opent in een ander venster)", +"

Klik hier om een niveau omhoog gaan.
(Opent in DIT venster)
", +"

Klik hier om een niveau omhoog gaan.
(Opent in een ander venster)
", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +EClickHere+"the passage
in a Latin translation of Aelian.
(Opens in another window)", +FClickHere+"le passage
dans une traduction latine d\'Elien.
(S'ouvre dans une autre fenêtre)", +IClickHere+"il passo
in una traduzione latina di Eliano.
(Si apre in un altro pannello)", +" ", +SClickHere+"el pasaje
en una traducción latina de Eliano.
(Abre en una otra ventana)", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +EClickHere+"the passage
in the Greek text.
(Opens in another window)", +FClickHere+"le passage du texte grec.
(S'ouvre dans une autre fenêtre)", +IClickHere+"il passo dell\' autore greco.
(Si apre in un altro pannello)", +" ", +SClickHere+"el pasaje del autor griego.
(Abre en una otra ventana)", +EClickHere+"the passage
in the Greek text,
linked to a translation
(Opens in another window)", +FClickHere+"le passage du texte grec.
liée à une traduction(S'ouvre dans une autre fenêtre)", +IClickHere+"il passo dell\' autore greco.
collegato ad una traduzione
(Si apre in un altro pannello)", +" ", +SClickHere+"el pasaje del autor griego.
con enlace a una traducción(Abre en una otra ventana)", +EClickHere+"the passage
in the Greek text.
(Offsite: opens in another window)", +FClickHere+"le passage du texte grec.
(Hors site: s\'ouvre dans une autre fenêtre)", +IClickHere+"il passo dell\' autore greco.
(Fuori sito: si apre in un altro pannello)", +" ", +SClickHere+"el pasaje del autor griego.
(Fuera del sitio: abre en una otra ventana)", +EClickHere+"the passage
in the Greek text,
linked to a translation
(Offsite: opens in another window)", +FClickHere+"le passage du texte grec.
liée à une traduction(Hors site: s\'ouvre dans une autre fenêtre)", +IClickHere+"il passo dell\' autore greco.
collegato ad una traduzione
(Fuori sito: si apre in un altro pannello)", +" ", +SClickHere+"el pasaje del autor griego.
con enlace a una traducción(Fuera del sitio: abre en una otra ventana)", +EClickHere+"the passage
in an English translation
linked to the original Greek.
(Opens in another window)

", +FClickHere+"le passage
en traduction anglaise
lié au texte grec.
(S'ouvre dans une autre fenêtre)", +IClickHere+"il passo
in una traduzione inglese
collegato al testo greco.
(Si apre in un altro pannello)
", +"

Cliccare hic ad legendum
in anglica versione
ad Graecum textum conexum.
(Altera in fenestra aperietur pagina)", +SClickHere+"este pasaje
en una traducción inglesa
con enlace al texto greco.
(Abre en una otra ventana)", +EClickHere+"the passage
in an English translation
linked to the original Greek.
(Offsite, opens in another window)

", +FClickHere+"le passage
en traduction anglaise
lié au texte grec.
(Hors site, s\'ouvre dans une autre fenêtre)", +IClickHere+"il passo
in una traduzione inglese
collegato al testo greco.
(Fuori sito, si apre in un altro pannello)
", +"

Cliccare hic ad legendum
in anglica versione
ad Graecum textum conexum.
(Apud alios, altera in fenestra aperietur pagina)", +SClickHere+"este pasaje
en una traducción inglesa
con enlace al texto greco.
(Fuera del sitio, abre en una otra ventana)", +EClickHere+"the passage
in the original Greek
linked to an English translation.
(Opens in another window)

", +FClickHere+"le passage
dans le texte grec
lié à une traduction anglaise.
(S'ouvre dans une autre fenêtre)", +IClickHere+"il passo
nel testo greco
collegato ad una traduzione inglese.
(Si apre in un altro pannello)
", +"

Cliccare hic ad legendum
Graecum textum
ad anglicam versionem conexum.
(Altera in fenestra aperietur pagina)", +SClickHere+"este pasaje
en el texto greco
con enlace a una traducción inglesa.
(Abre en una otra ventana)", +EClickHere+"the passage
in the original Greek
linked to an English translation.
(Offsite, opens in another window)", +FClickHere+"le passage
dans le texte grec
lié à une traduction anglaise.
(Hors site, s\'ouvre dans une autre fenêtre)", +IClickHere+"il passo
nel testo greco
collegato ad una traduzione inglese.
(Fuori sito, si apre in un altro pannello)", +"

Cliccare hic ad legendum
Graecum textum
ad anglicam versionem conexum.
(Apud alios, altera in fenestra aperietur pagina)", +SClickHere+"este pasaje
en el texto greco
con enlace a una traducción inglesa.
(Fuera del sitio, abre en una otra ventana)", +EClickHere+"the passage in Plutarch
in an English translation
linked to the original Greek
(Opens in another window)", +FClickHere+"le passage dans Plutarque
en traduction anglaise
lié au texte grec(S\'ouvre dans une autre fenêtre)", +IClickHere+"il passo in Plutarco

in una traduzione inglese
collegato al testo greco.
(Si apre in un altro pannello)", +" ", +SClickHere+"el pasaje en Plutarco
en una traducción inglesa
con enlace al texto greco.
(en inglés, abre en una otra ventana)", +EClickHere+"the passage in the Res Gestae
— parallel texts:
Latin, Greek, English
(Opens in another window)", +" ", +" ", +" ", +" ", +"

Link is to the Livius.Org website:
page opens in
another window.
", +EClickHere+"Jona Lendering\'s note at the bottom of this page.", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +EClickHere+"the passage
in the original Latin
linked to a French translation.
(Opens in another window)", //"THIS IS WHAT REALLY BELONGS IN 510:

Click here for the passage
in the Latin text of Suetonius,
linked to an English translation.
(Opens in another window)", +FClickHere+"le passage
dans le texte latin
lié à une traduction française.
(S'ouvre dans une autre fenêtre)", +IClickHere+"il passo
nel testo latino
collegato ad una traduzione francese.
(Si apre in un altro pannello)
", //"THIS IS WHAT REALLY BELONGS IN 512:
Cliccare qui per il passo
nel testo latino di Svetonio,
collegato a traduzioni in inglese e francese.
(Si apre in un altro pannello)", +"

Cliccare hic ad legendum
Latinum textum
ad anglicam versionem conexum.
(Altera in fenestra aperietur pagina)", +SClickHere+"este pasaje
en el texto latino
con enlace a una traducción francesa.
(Abre en una otra ventana)", +EClickHere+"the passage
in the original Latin
linked to a French translation.
(Offsite, opens in another window)

", //"THIS IS WHAT REALLY BELONGS IN 515:
Click here for the passage
in the Latin text of Suetonius,
linked to an English translation.
(Opens in another window)", +FClickHere+"le passage
dans le texte latin
lié à une traduction française.
(Hors site, s\'ouvre dans une autre fenêtre)", +IClickHere+"il passo
nel testo latino
collegato ad una traduzione francese.
(Fuori sito, si apre in un altro pannello)
", //"THIS IS WHAT REALLY BELONGS IN 517:
Cliccare qui per il passo
nel testo latino di Svetonio,
collegato a traduzioni in inglese e francese.
(Si apre in un altro pannello)", +"

Cliccare hic ad legendum
Latinum textum
ad Francogallicam versionem conexum.
(Apud alios, altera in fenestra aperietur pagina)", +SClickHere+"este pasaje
en el texto latino
con enlace a una traducción francesa.
(Fuera del sitio, abre en una otra ventana)", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +"

THIS IS THE PAGE YOU\'RE ON.", +"

C\'EST LA PAGE QUE VOUS AVEZ DEVANT LES YEUX.", +"

QUESTA È LA PAGINA CHE AVETE DAVANTI AGLI OCCHI.", +" ", +" ", +"

ACTIVE AREAS:
WHEREVER THIS PROMPT
IS REPLACED BY ANOTHER", +"

ZONES ACTIVES :
PARTOUT OU CE MESSAGE EST REMPLACE PAR UN AUTRE", +"

AREE ATTIVE:
OVUNQUE QUESTO MESSAGGIO VIENE SOSTITUITO DA UN\' ALTRO", +"

Click here for the homepage of the
U. S. MILITARY ACADEMY.
(Offsite: opens in another window.)", +"

Click here for the homepage of the
U. S. NAVAL ACADEMY.
(Offsite: opens in another window.)", +"

Click here for the homepage of the
U. S. COAST GUARD ACADEMY.
(Offsite: opens in another window.)", + +" " //THIS LAST LINE MUST NOT END WITH A COMMA +); + +// Array with captions. +var ol_caps = new Array("Array Caption 0", "Array Caption 1"); + + +//\//////////////////////////////// +//\ Thayer CONSTANTS: +//\//////////////////////////////// + +var CarelessLoeb50 = "

The Loeb edition —
thru 50 years of reprintings! —
has "; +var CarelessLoeb60 = "
The Loeb edition —
thru 60 years of reprintings! —
has "; +var CarelessLoeb70 = "
The Loeb edition —
thru 70 years of reprintings! —
has "; +var CarelessLoeb80 = "
The Loeb edition —
thru 80 years of reprintings! —
has "; +var CarelessLoeb90 = "
The Loeb edition —
thru 90 years of reprintings! —
has "; +var CarelessLoebX = "
The Loeb edition —
thru many years of reprintings! —
has "; +var Cullum0 = ":
This is a link
to another entry
in Cullum\'s Register.
(Opens in THIS window)
"; +var Cullum1 = "
USMA, Class of "; +var Cullum2 = ":
This is a link to the biographical summary
in Cullum\'s Register.
(Opens in another window)
"; +var CullumR1 = "

CLASS RANK
— of "; +var CullumR2 = " in the Class"; + + +// ENGLISH: +var Eng2 = "
(English, opens in another window)"; +var EngSearch = "
then search for
"; + + +// FRENCH: +// var Fr0 = "

(La page s\'ouvre dans CETTE fenêtre)"; +// var Fr1 = "

(La page s\'ouvre dans une autre fenêtre)"; +// var Fr2 = "

Le lien est hors site :
la page s\'ouvre
dans une autre fenêtre
"; +// var Fr5 = "

(Ailleurs sur cette page)"; +var FrCullum0 = " :
Ceci est un lien à la notice biographique
dans Cullum\'s Register.
(S\'ouvre dans CETTE fenêtre)

"; +var FrCullum1 = "
USMA, Promotion de "; +var FrCullum2 = " :
Ceci est un lien à la notice biographique
dans Cullum\'s Register.
(S\'ouvre dans une autre fenêtre)
"; +var FrCullumR1 = "

CLASS RANK
— sur "; +var FrCullumR2 = " dans la Promotion"; +var FrGk2 = "
(Grec s\'ouvre dans une autre fenêtre)"; +var FrGkSearch = "
puis chercher
"; +var FrLat2 = "
(Latin, s\'ouvre dans une autre fenêtre)"; +var FrLatSearch = "
puis chercher
"; + + +// GREEK: +var Gk2 = "
(Greek, opens in another window)"; +var GkSearch = "
then search for
"; + + +// ITALIAN: +var It5 = "

(Altrove su questa pagina)"; +var ItGk2 = "
(in Greco, apre in un altro pannello)"; +var ItGkSearch = "
poi cercare
"; +var ItLat2 = "
(in Latino, apre in un altro pannello)"; +var ItLatSearch = "
poi cercare
"; + + +// LATIN: +var Lat2 = "
(Latin, opens in another window)"; +var LatSearch = "
then search for
"; +var RedSearch = "
then search for the word or passage in red"; + + +// SPANISH: +var SpGk2 = "
(Griego, abre en una otra ventana)"; +var SpGkSearch = "
pues buscar
"; +var SpLat2 = "
(Latín, abre en una otra ventana)"; +var SpLatSearch = "
pues buscar
"; + +//////////////////////////////////// +// END CONFIGURATION +//////////////////////////////////// + + + +//////////////////////////////////// +// INIT +//////////////////////////////////// + + +// Runtime variables init. Used for runtime only, don't change, not for config! +var o3_text = ""; +var o3_cap = ""; +var o3_sticky = 0; +var o3_background = ""; +var o3_close = "Close"; +var o3_hpos = RIGHT; +var o3_offsetx = 2; +var o3_offsety = -3; +var o3_fgcolor = ""; +var o3_bgcolor = ""; +var o3_textcolor = ""; +var o3_capcolor = ""; +var o3_closecolor = ""; +var o3_width = 100; +var o3_border = 1; +var o3_status = ""; +var o3_autostatus = 0; +var o3_height = -1; +var o3_snapx = 0; +var o3_snapy = 0; +var o3_fixx = -1; +var o3_fixy = -1; +var o3_fgbackground = ""; +var o3_bgbackground = ""; +var o3_padxl = 0; +var o3_padxr = 0; +var o3_padyt = 0; +var o3_padyb = 0; +var o3_fullhtml = 0; +var o3_vpos = ABOVE; +var o3_aboveheight = 3; +var o3_capicon = ""; +var o3_textfont = "Verdana,Arial,Helvetica"; +var o3_captionfont = "Verdana,Arial,Helvetica"; +var o3_closefont = "Verdana,Arial,Helvetica"; +var o3_textsize = "1"; +var o3_captionsize = "1"; +var o3_closesize = "1"; +var o3_frame = self; +var o3_timeout = 0; +var o3_timerid = 0; +var o3_allowmove = 0; +var o3_function = Function(); +var o3_delay = 0; +var o3_delayid = 0; +var o3_hauto = 0; +var o3_vauto = 0; + +// OTHER THAYER VARIABLES +var BadF = "
"; +var GreekF = "
"; +var LatinF = "
"; +var SearchF = "
"; + + + +var SourceErr = "

The printed text has
"; +var SourceOm = "

The printed text omits
"; +var SourceOmL = "

The printed text omits
"; +var SourceOmG = "

The printed text omits
"; +var SourceOm0 = "

The printed text
omits this."; +var SourceOm1 = "

The printed text
omits this word."; +var SourceOm2 = "

The printed text
omits these words."; + + + +var FrSourceErr = "

Le texte imprimé porte
"; +var FrSourceOm = "

Le texte imprimé omet
"; +var FrSourceOmL = "

Le texte imprimé omet
"; +var FrSourceOmG = "

Le texte imprimé omet
"; + +var FrSourceOm1 = "

Le texte imprimé omet ce mot."; +var FrSourceOm2 = "

Le texte imprimé omet ces mots."; + + + +var ItSourceErr = "

Il testo stampato reca
"; +var ItSourceOm = "

Il testo stampato omette
"; +var ItSourceOmL = "

Il testo stampato omette
"; +var ItSourceOmG = "

Il testo stampato omette
"; +var ItSourceOm0 = "

Il testo stampato
omette questo."; +var ItSourceOm1 = "

Il testo stampato
omette questa parola."; +var ItSourceOm2 = "

Il testo stampato
omette queste parole."; + + + +var NeSourceErr = "

In de gedrukte tekst leest
"; +var NeSourceOm = "

De gedrukte tekst weglaat
"; + + + + + + + + +var PgSourceOm0 = "

O texto impresso omite isso."; +var PgSourceErr = "

No texto impresso lê‑se
"; +var PgSourceOm = "

O texto impresso omite
"; +var PgSourceOmL = "

O texto impresso omite
"; +var PgSourceOmG = "

O texto impresso omite
"; + + + + + +var SpSourceErr = "

En el texto imprimido
se lee
"; +var SpSourceOm = "

El texto imprimido omite
"; +var SpSourceOmL = "

El texto imprimido omite
"; +var SpSourceOmG = "

El texto imprimido omite
"; + +var MyDiaryErr = "

In my diary, I wrote
"; + + + + +var SourceErrMe = "

I actually wrote
"; +var SourceOmMe = "

I omitted
"; + +var DivergenceFromLatin = "

The Latin text onsite is not the one on which this translation is based. It reads
"; +var DivergenceFromGreek = "

The Latin text onsite is not the one on which this translation is based. It reads
"; +var DivergenceInEnglish = "

The English translation onsite is not based on this text. It reads
"; + +var CloseF = ""; +var USMAPromptWidth = 205; +var USNAPromptWidth = 205; +var USCGAPromptWidth = 205; +var PDFPromptWidth = 216; +var DiaryErr = "

The diary actually reads
"; +var DiaryOm = "

The diary omits
"; + +var Ru2 = "

Ссылка выключен сайт:
страница открывается в другом окне
"; + + + +// THAYER'S ARRAY. (add 285 for the linenum of the corresponding text) +var ThisPhoto = 3; +var Photo = 4; +var OnPage = 5; +var Note = 6; +var MyNote = 7; +var BackRef = 8; +var Glossary = 9; + +var Ca0 = 420; var CaWidth0 = 210; +var Ca1 = 421; var CaWidth1 = 210; +var Ca2 = 422; var CaWidth2 = 140; +var CaThisPhoto = 423; var CaThisPhotoWidth = 180; +var CaPhoto = 424; +var CaOnPage = 425; var CaOnPageWidth = 150; +var CaNote = 426; +var CaMyNote = 427; +var CaBackRef = 428; +var CaGlossary = 429; + +var Fr0 = 10; var FrWidth0 = 180; +var Fr1 = 11; var FrWidth1 = 210; +var Fr2 = 12; +var FrThisPhoto = 13; +var FrPhoto = 14; +var FrOnPage = 15; +var FrNote = 16; +var FrMyNote = 17; +var FrBackRef = 18; +var FrGlossary = 19; + +var Ge0 = 20; +var Ge1 = 21; +var Ge2 = 22; +var GeThisPhoto = 23; +var GePhoto = 24; +var GeOnPage = 25; +var GeNote = 26; +var GeMyNote = 27; +var GeBackRef = 28; +var GeGlossary = 29; + +var It0 = 30; var ItWidth0 = 210; +var It1 = 31; var ItWidth1 = 210; +var It2 = 32; var ItWidth2 = 210; +var ItThisPhoto = 33; var ItThisPhotoWidth = 180; +var ItPhoto = 34; +var ItOnPage = 35; var ItOnPageWidth = 150; +var ItNote = 36; +var ItMyNote = 37; +var ItBackRef = 38; +var ItGlossary = 39; + +var La0 = 40; +var La1 = 41; +var La2 = 42; +var LaThisPhoto = 43; +var LaPhoto = 44; +var LaOnPage = 45; +var LaNote = 46; +var LaMyNote = 47; +var LaGlossary = 49; + +var Sp0 = 50; var SpWidth0 = 210; +var Sp1 = 51; var SpWidth1 = 210; +var Sp2 = 52; var SpWidth2 = 140; +var SpThisPhoto = 53; var SpThisPhotoWidth = 180; +var SpPhoto = 54; +var SpOnPage = 55; var SpOnPageWidth = 150; +var SpNote = 56; +var SpMyNote = 57; +var SpBackRef = 58; +var SpGlossary = 59; + +var Pt0 = 90; var PtWidth0 = 210; +var Pt1 = 91; var PtWidth1 = 210; +var Pt2 = 92; var PtWidth2 = 140; +var PtThisPhoto = 93; var PtThisPhotoWidth = 180; +var PtPhoto = 94; +var PtOnPage = 95; var PtOnPageWidth = 190; +var PtNote = 96; +var PtMyNote = 97; +var PtBackRef = 98; +var PtGlossary = 99; + +var Smith0 = 60; var SmithWidth0 = 200; +var FrSmith0 = 61; +var ItSmith0 = 62; +var SpSmith0 = 64; +var Smith1 = 65; var SmithWidth1 = 200; +var FrSmith1 = 66; +var ItSmith1 = 67; +var SpSmith1 = 69; + +var Glossary0 = 70; +var FrGlossary0 = 71; +var ItGlossary0 = 72; + +var Glossary2 = 75; +var FrGlossary2 = 76; +var ItGlossary2 = 77; + +var SmithSub0 = 80; +var FrSmithSub0 = 81; +var ItSmithSub0 = 82; +var SpSmithSub0 = 84; + +var SmithSub1 = 85; var SmithSubWidth1 = 190; +var FrSmithSub1 = 86; +var ItSmithSub1 = 87; +var SpSmithSub1 = 89; + +var XMarksTheSpot = 790; +var FrXMarksTheSpot = 791; +var ItXMarksTheSpot = 792; + +var ActiveAreas = 795; +var FrActiveAreas = 796; +var ItActiveAreas = 797; + +var USMA = 798; +var USNA = 799; +var USCGA = 800; + +var SmithHome = 100; +var FrSmithHome = 101; +var ItSmithHome = 102; +var SpSmithHome = 104; +var TextOnPage = 106; +var SmithHome0 = 107; +var DarembergHome = 108; +var DarembergHome0 = 109; + +var Platner0 = 110; +var FrPlatner0 = 111; +var ItPlatner0 = 112; +var LaPlatner0 = 113; +var SpPlatner0 = 114; +var Platner1 = 115; +var FrPlatner1 = 116; +var ItPlatner1 = 117; +var LaPlatner1 = 118; +var SpPlatner1 = 119; + +var PlatnerPhoto0 = 120; +var FrPlatnerPhoto0 = 121; +var ItPlatnerPhoto0 = 122; +var LaPlatnerPhoto0 = 123; +var SpPlatnerPhoto0 = 124; +var PlatnerPhoto1 = 125; +var FrPlatnerPhoto1 = 126; +var ItPlatnerPhoto1 = 127; +var LaPlatnerPhoto1 = 128; +var SpPlatnerPhoto1 = 129; + +var PlatnerSub0 = 130; +var FrPlatnerSub0 = 131; +var ItPlatnerSub0 = 132; +var SpPlatnerSub0 = 134; +var PlatnerSub1 = 135; +var FrPlatnerSub1 = 136; +var ItPlatnerSub1 = 137; +var SpPlatnerSub1 = 139; + +var CompleteWork0 = 140; +var FrCompleteWork0 = 141; +var ItCompleteWork0 = 142; +var SpCompleteWork0 = 144; +var CompleteWork1 = 145; +var FrCompleteWork1 = 146; +var ItCompleteWork1 = 147; +var SpCompleteWork1 = 149; + +var Armellini0 = 150; +var FrArmellini0 = 151; +var ItArmellini0 = 152; +var SpArmellini0 = 154; +var Armellini1 = 155; +var FrArmellini1 = 156; +var ItArmellini1 = 157; +var SpArmellini1 = 159; + +var Huelsen0 = 160; +var FrHuelsen0 = 161; +var ItHuelsen0 = 162; +var SpHuelsen0 = 164; +var Huelsen1 = 165; +var FrHuelsen1 = 166; +var ItHuelsen1 = 167; +var SpHuelsen1 = 169; + +var RomeChurch0 = 170; +var FrRomeChurch0 = 171; +var ItRomeChurch0 = 172; +var SpRomeChurch0 = 174; +var RomeChurch1 = 175; +var FrRomeChurch1 = 176; +var ItRomeChurch1 = 177; +var SpRomeChurch1 = 179; + +var Daremberg0 = 180; +var FrDaremberg0 = 181; +var ItDaremberg0 = 182; +var SpDaremberg0 = 184; +var Daremberg1 = 185; +var FrDaremberg1 = 186; +var ItDaremberg1 = 187; +var SpDaremberg1 = 189; + +var Page0 = 190; +var FrPage0 = 191; +var ItPage0 = 192; +var LaPage0 = 193; +var SpPage0 = 194; +var Page1 = 195; +var FrPage1 = 196; +var ItPage1 = 197; +var LaPage1 = 198; +var SpPage1 = 199; + +var Pages0 = 200; +var FrPages0 = 201; +var ItPages0 = 202; +var LaPages0 = 203; +var SpPages0 = 204; +var Pages1 = 205; +var FrPages1 = 206; +var ItPages1 = 207; +var LaPages1 = 208; +var SpPages1 = 209; + +var ChurchPage0 = 210; +var FrChurchPage0 = 211; +var ItChurchPage0 = 212; +var LaChurchPage0 = 213; +var SpChurchPage0 = 214; +var ChurchPage1 = 215; +var FrChurchPage1 = 216; +var ItChurchPage1 = 217; +var LaChurchPage1 = 218; +var SpChurchPage1 = 219; + +var ChurchPages0 = 220; +var FrChurchPages0 = 221; +var ItChurchPages0 = 222; +var LaChurchPages0 = 223; +var SpChurchPages0 = 224; +var ChurchPages1 = 225; +var FrChurchPages1 = 226; +var ItChurchPages1 = 227; +var LaChurchPages1 = 228; +var SpChurchPages1 = 229; + +var Town0 = 230; +var FrTown0 = 231; +var ItTown0 = 232; +var LaTown0 = 233; +var SpTown0 = 234; +var Town1 = 235; +var FrTown1 = 236; +var ItTown1 = 237; +var LaTown1 = 238; +var SpTown1 = 239; + +var EPlusL = 240; +var FrEPlusL = 241; +var ItEPlusL = 242; +var SpEPlusL = 244; +var EPlusL2 = 245; +var FrEPlusL2 = 246; +var ItEPlusL2 = 247; +var LaEPlusL2 = 248; +var SpEPlusL2 = 249; + +var LPlusE = 250; +var FrLPlusE = 251; +var ItLPlusE = 252; +var SpLPlusE = 254; +var LPlusE2 = 255; +var FrLPlusE2 = 256; +var ItLPlusE2 = 257; +var SpLPlusE2 = 259; + +var Pliny = 260; +var FrPliny = 261; +var ItPliny = 262; +var SpPliny = 264; + +var Ptolemy = 265; +var FrPtolemy = 266; +var ItPtolemy = 267; +var LaPtolemy = 268; + +var Ammian = 270; +var FrAmmian = 271; +var ItAmmian = 272; + +var Appian = 275; +var FrAppian = 276; +var ItAppian = 277; + +var Dio = 280; +var FrDio = 281; +var ItDio = 282; +var SpDio = 284; + +var Plutarch = 285; var PlutarchWidth = 230; +var FrPlutarch = 286; +var ItPlutarch = 287; +var SpPlutarch = 289; + +var Polybius = 290; +var FrPolybius = 291; +var ItPolybius = 292; +var LaPolybius = 293; + +var Strabo = 295; +var FrStrabo = 296; +var ItStrabo = 297; +var LaStrabo = 298; + +var Chiesa0 = 300; +var Chiesa1 = 301; +var Artista0 = 302; +var Artista = 303; +var Catalogo = 304; +var Pianta = 305; +var QuadroPianta = 306; +var ChiesaNelTesto = 307; +var ETitiArtista0 = 308; +var ETitiArtista = 309; + +var MySite0 = 310; +var FrMySite0 = 311; +var ItMySite0 = 312; +var SpMySite0 = 314; +var MySite1 = 315; +var FrMySite1 = 316; +var ItMySite1 = 317; +var SpMySite1 = 319; + +var MyMidSite0 = 320; +var FrMyMidSite0 = 321; +var ItMyMidSite0 = 322; +var SpMyMidSite0 = 324; +var MyMidSite1 = 325; +var FrMyMidSite1 = 326; +var ItMyMidSite1 = 327; +var SpMyMidSite1 = 329; + +var MyBigSite0 = 330; +var FrMyBigSite0 = 331; +var ItMyBigSite0 = 332; +var SpMyBigSite0 = 334; +var MyBigSite1 = 335; +var FrMyBigSite1 = 336; +var ItMyBigSite1 = 337; +var SpMyBigSite1 = 339; + +var MyBook0 = 340; +var FrMyBook0 = 341; +var ItMyBook0 = 342; +var LaMyBook0 = 343; +var SpMyBook0 = 344; +var MyBook1 = 345; +var FrMyBook1 = 346; +var ItMyBook1 = 347; +var LaMyBook1 = 348; +var SpMyBook1 = 349; + +var TheirSite = 350; +var FrTheirSite = 351; +var ItTheirSite = 352; +var SpTheirSite = 357; + +var LatinText = 360; +var FrLatinText = 361; +var ItLatinText = 362; +var SpLatinText = 367; + +var LatinRef1 = 370; +var FrLatinRef1 = 371; +var ItLatinRef1 = 372; +var SpLatinRef1 = 374; +var LatinTrans1 = 375; +var FrLatinTrans1 = 376; +var ItLatinTrans1 = 377; +var SpLatinTrans1 = 379; + +var LatinRef2 = 380; +var FrLatinRef2 = 381; +var ItLatinRef2 = 382; +var SpLatinRef2 = 384; +var LatinRef2PlusTranslation = 385; //KEEP. Use for texts with translations into languages other than English +var FrLatinRef2PlusTranslation = 386; +var ItLatinRef2PlusTranslation = 387; +var SpLatinRef2PlusTranslation = 389; + +var LatinPlus1 = 390; +var FrLatinPlus1 = 391; +var ItLatinPlus1 = 392; +var SpLatinPlus1 = 394; +var LatinPlus2 = 395; +var FrLatinPlus2 = 396; +var ItLatinPlus2 = 397; +var SpLatinPlus2 = 399; + +var Original1 = 400; +var FrOriginal1 = 401; +var ItOriginal1 = 402; +var LaOriginal1 = 403; +var SpOriginal1 = 404; +var Original2 = 405; +var FrOriginal2 = 406; +var ItOriginal2 = 407; +var LaOriginal2 = 408; +var SpOriginal2 = 409; + +var Translation1 = 410; +var FrTranslation1 = 411; +var ItTranslation1 = 412; +var SpTranslation1 = 414; +var Translation2 = 415; +var FrTranslation2 = 416; +var ItTranslation2 = 417; +var SpTranslation2 = 419; + +var PDF = 430; +var FrPDF = 431; +var ItPDF = 432; +var SpPDF = 434; + +var JSTOR = 435; +var FrJSTOR = 436; +var ItJSTOR = 437; +var SpJSTOR = 438; + +var BadCoding = 440; +var FrBadCoding = 441; +var ItBadCoding = 442; +var SpBadCoding = 444; +var Loud = 445; +var FrLoud = 446; +var ItLoud = 447; +var SpLoud = 448; + +var Solution = 450; +var FrSolution = 451; +var ItSolution = 452; +var SpSolution = 454; + +var Diodorus = 460; +var FrDiodorus = 461; +var ItDiodorus = 462; +var SpDiodorus = 464; + +var Herodotus = 465; +var FrHerodotus = 466; +var ItHerodotus = 467; +var SpHerodotus = 469; + +var Pausanias = 470; +var FrPausanias = 471; +var ItPausanias = 472; +var SpPausanias = 474; + +var Thucydides = 475; +var FrThucydides = 476; +var ItThucydides = 477; +var SpThucydides = 479; + +var FrontinusL = 480; +var FrFrontinusL = 481; +var ItFrontinusL = 482; +var SpFrontinusL = 484; + +var FrontinusE = 490; +var FrFrontinusF = 491; + +var Dionysius = 495; +var FrDionysius = 496; +var ItDionysius = 497; +var LaDionysius = 498; +var SpDionysius = 499; + +var Glossary0 = 500; +var FrGlossary0 = 501; +var ItGlossary0 = 502; +var SpGlossary0 = 507; + +var LatinOriginal = 510; +var FrLatinOriginal = 511; +var ItLatinOriginal = 512; +var SpLatinOriginal = 513; + +var GreekOriginal = 515; +var FrGreekOriginal = 516; +var ItGreekOriginal = 517; +var SpGreekOriginal = 518; + +var Home = 520; +var FrHome = 521; +var ItHome = 522; +var LaHome = 524; +var SpHome = 527; +var Home1 = 530; +var FrHome1 = 531; +var ItHome1 = 532; +var LaHome1 = 533; +var NeHome1 = 534; +var PtHome1 = 535; +var SpHome1 = 536; + +var Mail = 540; +var FrMail = 541; +var ItMail = 542; +var LaMail = 543; +var SpMail = 544; + +var LetLoad = 550; +var FrLetLoad = 551; +var ItLetLoad = 552; +var LaLetLoad = 553; +var SpLetLoad = 554; + +var AuNote = 560; +var ItAuNote = 562; + +var EdNote = 565; +var FrEdNote = 566; +var ItEdNote = 567; var ItEdNoteWidth = 230; + +var CritNote = 570; +var ItCritNote = 572; + +var ItalianOriginal = 575; +var FrItalianOriginal = 576; +var ItItalianOriginal = 577; +var SpItalianOriginal = 578; + +var Up = 580; +var FrUp = 581; +var ItUp = 582; +var LaUp = 583; +var SpUp = 584; +var Up1 = 590; +var FrUp1 = 591; +var ItUp1 = 592; +var LaUp1 = 593; +var PtUp1 = 594; +var SpUp1 = 595; + +var SallustE = 600; +var FrSallustE = 601; +var ItSallustE = 602; + +var SallustL = 605; +var FrSallustL = 606; +var ItSallustL = 607; + +var Tacitus = 610; +var FrTacitusE = 611; +var ItTacitusE = 612; +var SpTacitusE = 614; + +var TacitusL = 615; +var FrTacitusL = 616; +var ItTacitusL = 617; +var SpTacitusL = 619; + +var Bible = 620; +var FrBible = 621; +var ItBible = 622; +var PtBible = 624; +// var SpBible = 624; + +var CullumNo = 625; +var CullumRank = 626; + +var Ne0 = 630; var NeWidth0 = 190; +var Ne1 = 631; var NeWidth1 = 210; +var Ne2 = 632; var NeWidth2 = 140; +var NeThisPhoto = 633; var NeThisPhotoWidth = 180; +var NePhoto = 634; +var NeOnPage = 635; var NeOnPageWidth = 150; +var NeNote = 636; +var NeMyNote = 637; +var NeBackRef = 638; +var NeGlossary = 639; +var NeUp = 640; +var NeUp1 = 641; var NeUpWidth1 = 210; +var NeHome = 525; var NeHomeWidth = 240; + +var Aelian = 650; +var FrAelian = 651; +var ItAelian = 652; +var SpAelian = 654; + +var GreekRef1 = 670; +var FrGreekRef1 = 671; +var ItGreekRef1 = 672; +var SpGreekRef1 = 674; +var GreekTrans1 = 675; var GreekTransWidth1 = 240; +var FrGreekTrans1 = 676; +var ItGreekTrans1 = 677; +var SpGreekTrans1 = 679; + +var GreekRef2 = 680; +var FrGreekRef2 = 681; +var ItGreekRef2 = 682; +var SpGreekRef2 = 684; +var GreekRef2PlusTranslation = 685; //KEEP. Use for texts with translations into languages other than English +var FrGreekRef2PlusTranslation = 686; +var ItGreekRef2PlusTranslation = 687; +var SpGreekRef2PlusTranslation = 689; + +var EPlusG = 690; var EPlusGWidth = 240; +var FrEPlusG = 691; +var ItEPlusG = 692; +var LaEPlusG = 693; +var SpEPlusG = 694; +var EPlusG2 = 695; +var FrEPlusG2 = 696; +var ItEPlusG2 = 697; +var LaEPlusG2 = 698; +var SpEPlusG2 = 699; + +var GPlusE = 700; +var FrGPlusE = 701; +var ItGPlusE = 702; +var LaGPlusE = 703; +var SpGPlusE = 704; +var GPlusE2 = 705; +var FrGPlusE2 = 706; +var ItGPlusE2 = 707; +var LaGPlusE2 = 708; +var SpGPlusE2 = 709; + +var PlutarchPlusG = 710; /* var PlutarchWidth = 230; */ +var FrPlutarchPlusG = 286; +var ItPlutarchPlusG = 287; +var SpPlutarchPlusG = 289; + +var ResGestae = 715; + +var toLivius = 720; +var LenderingNote = 721; + +var EnLPlusF = 730; +var LPlusF = 731; +var ItLPlusF = 732; +var LaLPlusF = 733; +var SpLPlusF = 734; +var LPlusF2 = 735; +var FrLPlusF2 = 736; +var ItLPlusF2 = 737; +var LaLPlusF2 = 738; +var SpLPlusF2 = 739; + + +// Ссылка выключен сайт, страница открывается в другом окне. + + +// Display state variables +var o3_x = 0; +var o3_y = 0; +var o3_allow = 0; +var o3_showingsticky = 0; +var o3_removecounter = 0; + +// Our layer +var over = null; + + +// Decide browser version +var ns4 = (document.layers)? true:false; +var ns6 = (document.getElementById)? true:false; +var ie4 = (document.all)? true:false; +var ie5 = false; + +// Microsoft Stupidity Check(tm). +if (ie4) { + if (navigator.userAgent.indexOf('MSIE 5')>0) { + ie5 = true; + } + if (ns6) { + ns6 = false; + } +} + + +// Capture events, alt. diffuses the overlib function. +if ( (ns4) || (ie4) || (ns6)) { + document.onmousemove = mouseMove + if (ns4) document.captureEvents(Event.MOUSEMOVE) +} else { + Ebox = no_box; + nd = no_box; + ver3fix = true; +} + + +// Fake function for 3.0 users. +function no_box() { + return ver3fix; +} + + + +//////////////////////////////////// +// PUBLIC FUNCTIONS +//////////////////////////////////// + + +// Ebox(arg0, ..., argN) +// Loads parameters into global runtime variables. +function Ebox() { + + // Load defaults to runtime. + o3_text = ol_text; + o3_cap = ol_cap; + o3_sticky = ol_sticky; + o3_background = ol_background; + o3_close = ol_close; + o3_hpos = ol_hpos; + o3_offsetx = ol_offsetx; + o3_offsety = ol_offsety; + o3_fgcolor = ol_fgcolor; + o3_bgcolor = ol_bgcolor; + o3_textcolor = ol_textcolor; + o3_capcolor = ol_capcolor; + o3_closecolor = ol_closecolor; + o3_width = ol_width; + o3_border = ol_border; + o3_status = ol_status; + o3_autostatus = ol_autostatus; + o3_height = ol_height; + o3_snapx = ol_snapx; + o3_snapy = ol_snapy; + o3_fixx = ol_fixx; + o3_fixy = ol_fixy; + o3_fgbackground = ol_fgbackground; + o3_bgbackground = ol_bgbackground; + o3_padxl = ol_padxl; + o3_padxr = ol_padxr; + o3_padyt = ol_padyt; + o3_padyb = ol_padyb; + o3_fullhtml = ol_fullhtml; + o3_vpos = ol_vpos; + o3_aboveheight = ol_aboveheight; + o3_capicon = ol_capicon; + o3_textfont = ol_textfont; + o3_captionfont = ol_captionfont; + o3_closefont = ol_closefont; + o3_textsize = ol_textsize; + o3_captionsize = ol_captionsize; + o3_closesize = ol_closesize; + o3_timeout = ol_timeout; + o3_function = ol_function; + o3_delay = ol_delay; + o3_hauto = ol_hauto; + o3_vauto = ol_vauto; + + + + // Special for frame support, over must be reset... + if ( (ns4) || (ie4) || (ns6) ) { + o3_frame = ol_frame; + if (ns4) over = o3_frame.document.overDiv + if (ie4) over = o3_frame.overDiv.style + if (ns6) over = o3_frame.document.getElementById("overDiv"); + } + + + // What the next argument is expected to be. + var parsemode = -1; + + var ar = arguments; + + for (i = 0; i < ar.length; i++) { + + if (parsemode == 0) { + // Arg is command + if (ar[i] == INARRAY) { parsemode = INARRAY; } + if (ar[i] == CAPARRAY) { parsemode = CAPARRAY; } + if (ar[i] == STICKY) { parsemode = opt_STICKY(ar[i]); } + if (ar[i] == BACKGROUND) { parsemode = BACKGROUND; } + if (ar[i] == NOCLOSE) { parsemode = opt_NOCLOSE(ar[i]); } + if (ar[i] == CAPTION) { parsemode = CAPTION; } + if (ar[i] == LEFT) { parsemode = opt_HPOS(ar[i]); } + if (ar[i] == RIGHT) { parsemode = opt_HPOS(ar[i]); } + if (ar[i] == CENTER) { parsemode = opt_HPOS(ar[i]); } + if (ar[i] == OFFSETX) { parsemode = OFFSETX; } + if (ar[i] == OFFSETY) { parsemode = OFFSETY; } + if (ar[i] == FGCOLOR) { parsemode = FGCOLOR; } + if (ar[i] == BGCOLOR) { parsemode = BGCOLOR; } + if (ar[i] == TEXTCOLOR) { parsemode = TEXTCOLOR; } + if (ar[i] == CAPCOLOR) { parsemode = CAPCOLOR; } + if (ar[i] == CLOSECOLOR) { parsemode = CLOSECOLOR; } + if (ar[i] == WIDTH) { parsemode = WIDTH; } + if (ar[i] == BORDER) { parsemode = BORDER; } + if (ar[i] == STATUS) { parsemode = STATUS; } + if (ar[i] == AUTOSTATUS) { parsemode = opt_AUTOSTATUS(ar[i]); } + if (ar[i] == AUTOSTATUSCAP) { parsemode = opt_AUTOSTATUSCAP(ar[i]); } + if (ar[i] == HEIGHT) { parsemode = HEIGHT; } + if (ar[i] == CLOSETEXT) { parsemode = CLOSETEXT; } + if (ar[i] == SNAPX) { parsemode = SNAPX; } + if (ar[i] == SNAPY) { parsemode = SNAPY; } + if (ar[i] == FIXX) { parsemode = FIXX; } + if (ar[i] == FIXY) { parsemode = FIXY; } + if (ar[i] == FGBACKGROUND) { parsemode = FGBACKGROUND; } + if (ar[i] == BGBACKGROUND) { parsemode = BGBACKGROUND; } + if (ar[i] == PADX) { parsemode = PADX; } + if (ar[i] == PADY) { parsemode = PADY; } + if (ar[i] == FULLHTML) { parsemode = opt_FULLHTML(ar[i]); } + if (ar[i] == ABOVE) { parsemode = opt_VPOS(ar[i]); } + if (ar[i] == BELOW) { parsemode = opt_VPOS(ar[i]); } + if (ar[i] == CAPICON) { parsemode = CAPICON; } + if (ar[i] == TEXTFONT) { parsemode = TEXTFONT; } + if (ar[i] == CAPTIONFONT) { parsemode = CAPTIONFONT; } + if (ar[i] == CLOSEFONT) { parsemode = CLOSEFONT; } + if (ar[i] == TEXTSIZE) { parsemode = TEXTSIZE; } + if (ar[i] == CAPTIONSIZE) { parsemode = CAPTIONSIZE; } + if (ar[i] == CLOSESIZE) { parsemode = CLOSESIZE; } + if (ar[i] == FRAME) { parsemode = FRAME; } + if (ar[i] == TIMEOUT) { parsemode = TIMEOUT; } + if (ar[i] == FUNCTION) { parsemode = FUNCTION; } + if (ar[i] == DELAY) { parsemode = DELAY; } + if (ar[i] == HAUTO) { parsemode = opt_HAUTO(ar[i]); } + if (ar[i] == VAUTO) { parsemode = opt_VAUTO(ar[i]); } + + + } else { + if (parsemode < 0) { + // Arg is maintext, unless INARRAY + if (ar[i] == INARRAY) { + parsemode = INARRAY; + } else { + o3_text = ar[i]; + parsemode = 0; + } + } else { + // Arg is option for command + if (parsemode == INARRAY) { parsemode = opt_INARRAY(ar[i]); } + if (parsemode == CAPARRAY) { parsemode = opt_CAPARRAY(ar[i]); } + if (parsemode == BACKGROUND) { parsemode = opt_BACKGROUND(ar[i]); } + if (parsemode == CAPTION) { parsemode = opt_CAPTION(ar[i]); } + if (parsemode == OFFSETX) { parsemode = opt_OFFSETX(ar[i]); } + if (parsemode == OFFSETY) { parsemode = opt_OFFSETY(ar[i]); } + if (parsemode == FGCOLOR) { parsemode = opt_FGCOLOR(ar[i]); } + if (parsemode == BGCOLOR) { parsemode = opt_BGCOLOR(ar[i]); } + if (parsemode == TEXTCOLOR) { parsemode = opt_TEXTCOLOR(ar[i]); } + if (parsemode == CAPCOLOR) { parsemode = opt_CAPCOLOR(ar[i]); } + if (parsemode == CLOSECOLOR) { parsemode = opt_CLOSECOLOR(ar[i]); } + if (parsemode == WIDTH) { parsemode = opt_WIDTH(ar[i]); } + if (parsemode == BORDER) { parsemode = opt_BORDER(ar[i]); } + if (parsemode == STATUS) { parsemode = opt_STATUS(ar[i]); } + if (parsemode == HEIGHT) { parsemode = opt_HEIGHT(ar[i]); } + if (parsemode == CLOSETEXT) { parsemode = opt_CLOSETEXT(ar[i]); } + if (parsemode == SNAPX) { parsemode = opt_SNAPX(ar[i]); } + if (parsemode == SNAPY) { parsemode = opt_SNAPY(ar[i]); } + if (parsemode == FIXX) { parsemode = opt_FIXX(ar[i]); } + if (parsemode == FIXY) { parsemode = opt_FIXY(ar[i]); } + if (parsemode == FGBACKGROUND) { parsemode = opt_FGBACKGROUND(ar[i]); } + if (parsemode == BGBACKGROUND) { parsemode = opt_BGBACKGROUND(ar[i]); } + if (parsemode == PADX2) { parsemode = opt_PADX2(ar[i]); } // must be before PADX + if (parsemode == PADY2) { parsemode = opt_PADY2(ar[i]); } // must be before PADY + if (parsemode == PADX) { parsemode = opt_PADX(ar[i]); } + if (parsemode == PADY) { parsemode = opt_PADY(ar[i]); } + if (parsemode == CAPICON) { parsemode = opt_CAPICON(ar[i]); } + if (parsemode == TEXTFONT) { parsemode = opt_TEXTFONT(ar[i]); } + if (parsemode == CAPTIONFONT) { parsemode = opt_CAPTIONFONT(ar[i]); } + if (parsemode == CLOSEFONT) { parsemode = opt_CLOSEFONT(ar[i]); } + if (parsemode == TEXTSIZE) { parsemode = opt_TEXTSIZE(ar[i]); } + if (parsemode == CAPTIONSIZE) { parsemode = opt_CAPTIONSIZE(ar[i]); } + if (parsemode == CLOSESIZE) { parsemode = opt_CLOSESIZE(ar[i]); } + if (parsemode == FRAME) { parsemode = opt_FRAME(ar[i]); } + if (parsemode == TIMEOUT) { parsemode = opt_TIMEOUT(ar[i]); } + if (parsemode == FUNCTION) { parsemode = opt_FUNCTION(ar[i]); } + if (parsemode == DELAY) { parsemode = opt_DELAY(ar[i]); } + + } + } + } + + if (o3_delay == 0) { + return box333(); + } else { + o3_delayid = setTimeout("box333()", o3_delay); + + if (o3_sticky) { + return false; + } else { + return true; + } + } +} + + + +// Clears popups if appropriate +function nd() { + if ( o3_removecounter >= 1 ) { o3_showingsticky = 0 }; + if ( (ns4) || (ie4) || (ns6) ) { + if ( o3_showingsticky == 0 ) { + o3_allowmove = 0; + if (over != null) hideObject(over); + } else { + o3_removecounter++; + } + } + + return true; +} + + + + + + + +//////////////////////////////////// +// OVERLIB 3.33 FUNCTION +//////////////////////////////////// + + +// This function decides what it is we want to display and how we want it done. +function box333() { + + // Make layer content + var layerhtml; + + if (o3_background != "" || o3_fullhtml) { + // Use background instead of box. + layerhtml = ol_content_background(o3_text, o3_background, o3_fullhtml); + } else { + // They want a popup box. + + // Prepare popup background + if (o3_fgbackground != "") { + o3_fgbackground = "BACKGROUND=\""+o3_fgbackground+"\""; + } + if (o3_bgbackground != "") { + o3_bgbackground = "BACKGROUND=\""+o3_bgbackground+"\""; + } + + // Prepare popup colors + if (o3_fgcolor != "") { + o3_fgcolor = "BGCOLOR=\""+o3_fgcolor+"\""; + } + if (o3_bgcolor != "") { + o3_bgcolor = "BGCOLOR=\""+o3_bgcolor+"\""; + } + + // Prepare popup height + if (o3_height > 0) { + o3_height = "HEIGHT=" + o3_height; + } else { + o3_height = ""; + } + + // Decide which kinda box. + if (o3_cap == "") { + // Plain + layerhtml = ol_content_simple(o3_text); + } else { + // With caption + if (o3_sticky) { + // Show close text + layerhtml = ol_content_caption(o3_text, o3_cap, o3_close); + } else { + // No close text + layerhtml = ol_content_caption(o3_text, o3_cap, ""); + } + } + } + + // We want it to stick! + if (o3_sticky) { + o3_showingsticky = 1; + o3_removecounter = 0; + } + + // Write layer + layerWrite(layerhtml); + + // Prepare status bar + if (o3_autostatus > 0) { + o3_status = o3_text; + if (o3_autostatus > 1) { + o3_status = o3_cap; + } + } + + // When placing the layer the first time, even stickies may be moved. + o3_allowmove = 0; + + // Initiate a timer for timeout + if (o3_timeout > 0) { + if (o3_timerid > 0) clearTimeout(o3_timerid); + o3_timerid = setTimeout("cClick()", o3_timeout); + } + + // Show layer + disp(o3_status); + + // Stickies should stay where they are. + if (o3_sticky) { + o3_allowmove = 0; + return false; + } else { + return true; + } +} + + + +//////////////////////////////////// +// LAYER GENERATION FUNCTIONS +//////////////////////////////////// + +// Makes simple table without caption +function ol_content_simple(text) { + txt = "
"+text+"
"; + set_background(""); + return txt; +} + +// Makes table with caption and optional close link +function ol_content_caption(text, title, close) { + closing = ""; + if (close != "") { + closing = ""+close+""; + } + if (o3_capicon != "") { + o3_capicon = " "; + } + txt = "
"+closing+"
"+o3_capicon+title+"
"+text+"
"; + set_background(""); + return txt; +} + +// Sets the background picture, padding and lots more :) +function ol_content_background(text, picture, hasfullhtml) { + if (hasfullhtml) { + txt = text; + } else { + txt = "
"+text+"
"; + } + set_background(picture); + return txt; +} + +// Loads a picture into the div. +function set_background(pic) { + if (pic == "") { + if (ie4) over.backgroundImage = "none"; + if (ns6) over.style.backgroundImage = "none"; + } else { + if (ns4) { + over.background.src = pic; + } else if (ie4) { + over.backgroundImage = "url("+pic+")"; + } else if (ns6) { + over.style.backgroundImage = "url("+pic+")"; + } + } +} + + + +//////////////////////////////////// +// HANDLING FUNCTIONS +//////////////////////////////////// + + +// Displays the popup +function disp(statustext) { + if ( (ns4) || (ie4) || (ns6) ) { + if (o3_allowmove == 0) { + placeLayer(); + showObject(over); + o3_allowmove = 1; + } + } + + if (statustext != "") { + self.status = statustext; + } +} + +// Decides where we want the popup. +function placeLayer() { + var placeX, placeY; + + // HORIZONTAL PLACEMENT + if (o3_fixx > -1) { + // Fixed position + placeX = o3_fixx; + } else { + winoffset = (ie4) ? o3_frame.document.body.scrollLeft : o3_frame.pageXOffset; + if (ie4) iwidth = o3_frame.document.body.clientWidth; + if (ns4) iwidth = o3_frame.innerWidth; // was screwed in mozilla, fixed now? + if (ns6) iwidth = o3_frame.outerWidth; + + // If HAUTO, decide what to use. + if (o3_hauto == 1) { + if ( (o3_x - winoffset) > ((eval(iwidth)) / 2)) { + o3_hpos = LEFT; + } else { + o3_hpos = RIGHT; + } + } + + // From mouse + if (o3_hpos == CENTER) { // Center + placeX = o3_x+o3_offsetx-(o3_width/2); + } + if (o3_hpos == RIGHT) { // Right + placeX = o3_x+o3_offsetx; + if ( (eval(placeX) + eval(o3_width)) > (winoffset + iwidth) ) { + placeX = iwidth + winoffset - o3_width; + if (placeX < 0) placeX = 0; + } + } + if (o3_hpos == LEFT) { // Left + placeX = o3_x-o3_offsetx-o3_width; + if (placeX < winoffset) placeX = winoffset; + } + + // Snapping! + if (o3_snapx > 1) { + var snapping = placeX % o3_snapx; + if (o3_hpos == LEFT) { + placeX = placeX - (o3_snapx + snapping); + } else { + // CENTER and RIGHT + placeX = placeX + (o3_snapx - snapping); + } + if (placeX < 0) placeX = 0; + } + } + + + + // VERTICAL PLACEMENT + if (o3_fixy > -1) { + // Fixed position + placeY = o3_fixy; + } else { + // If VAUTO, decide what to use. + if (o3_vauto == 1) { + if (ie4) iheight = o3_frame.document.body.clientHeight; + if (ns4) iheight = o3_frame.innerHeight; + if (ns6) iheight = o3_frame.outerHeight; + + iheight = (eval(iheight)) / 2; + if (o3_y > iheight) { + o3_vpos = ABOVE; + } else { + o3_vpos = BELOW; + } + } + + // From mouse + if (o3_aboveheight > 0 && o3_vpos == ABOVE) { + placeY = o3_y - (o3_aboveheight + o3_offsety); + } else { + // BELOW + placeY = o3_y + o3_offsety; + } + + // Snapping! + if (o3_snapy > 1) { + var snapping = placeY % o3_snapy; + + if (o3_aboveheight > 0 && o3_vpos == ABOVE) { + placeY = placeY - (o3_snapy + snapping); + } else { + placeY = placeY + (o3_snapy - snapping); + } + + if (placeY < 0) placeY = 0; + } + } + + + // Actually move the object. + repositionTo(over, placeX, placeY); +} + + +// Moves the layer +function mouseMove(e) { + if ( (ns4) || (ns6) ) {o3_x=e.pageX; o3_y=e.pageY;} + if (ie4) {o3_x=event.x; o3_y=event.y;} + if (ie5) {o3_x=event.x+o3_frame.document.body.scrollLeft; o3_y=event.y+o3_frame.document.body.scrollTop;} + + if (o3_allowmove == 1) { + placeLayer(); + } +} + +// The Close onMouseOver function for stickies +function cClick() { + hideObject(over); + o3_showingsticky = 0; +} + + +// Makes sure target frame has overLIB +function compatibleframe(frameid) { + if (ns4) { + if (typeof frameid.document.overDiv =='undefined') return false; + } else if (ie4) { + if (typeof frameid.document.all["overDiv"] =='undefined') return false; + } else if (ns6) { + if (frameid.document.getElementById('overDiv') == null) return false; + } + + return true; +} + + + +//////////////////////////////////// +// LAYER FUNCTIONS +//////////////////////////////////// + + +// Writes to a layer +function layerWrite(txt) { + txt += "\n"; + + if (ns4) { + var lyr = o3_frame.document.overDiv.document + + lyr.write(txt) + lyr.close() + } else if (ie4) { + o3_frame.document.all["overDiv"].innerHTML = txt + } else if (ns6) { + range = o3_frame.document.createRange(); + range.setStartBefore(over); + domfrag = range.createContextualFragment(txt); + while (over.hasChildNodes()) { + over.removeChild(over.lastChild); + } + over.appendChild(domfrag); + } +} + +// Make an object visible +function showObject(obj) { + if (ns4) obj.visibility = "show"; + else if (ie4) obj.visibility = "visible"; + else if (ns6) obj.style.visibility = "visible"; +} + +// Hides an object +function hideObject(obj) { + if (ns4) obj.visibility = "hide"; + else if (ie4) obj.visibility = "hidden"; + else if (ns6) obj.style.visibility = "hidden"; + if (o3_timerid > 0) clearTimeout(o3_timerid); + if (o3_delayid > 0) clearTimeout(o3_delayid); + o3_timerid = 0; + o3_delayid = 0; + self.status = ""; +} + +// Move a layer +function repositionTo(obj,xL,yL) { + if ( (ns4) || (ie4) ) { + obj.left = xL; + obj.top = yL; + } else if (ns6) { + obj.style.left = xL + "px"; + obj.style.top = yL+ "px"; + } +} + + + +//////////////////////////////////// +// PARSER FUNCTIONS +//////////////////////////////////// + + +// Sets text from array. +function opt_INARRAY(id) { + o3_text = ol_texts[id]; + return 0; +} + +// Sets caption from array. +function opt_CAPARRAY(id) { + o3_cap = ol_caps[id]; + return 0; +} + +// Sets stickiness. +function opt_STICKY(unused) { + o3_sticky = 1; + return 0; +} + +// Sets background picture. +function opt_BACKGROUND(file) { + o3_background = file; + return 0; +} + +// Sets use of close text. +function opt_NOCLOSE(unused) { + o3_close = ""; + return 0; +} + +// Sets caption. +function opt_CAPTION(text) { + o3_cap = text; + return 0; +} + +// Sets hpos, for LEFT, RIGHT and CENTER. +function opt_HPOS(pos) { + o3_hpos = pos; + return 0; +} + +// Sets the x offset +function opt_OFFSETX(offset) { + o3_offsetx = offset; + return 0; +} + +// Sets the y offset +function opt_OFFSETY(offset) { + o3_offsety = offset; + return 0; +} + + +// Sets the fg color +function opt_FGCOLOR(clr) { + o3_fgcolor = clr; + return 0; +} + +// Sets the bg color +function opt_BGCOLOR(clr) { + o3_bgcolor = clr; + return 0; +} + +// Sets the text color +function opt_TEXTCOLOR(clr) { + o3_textcolor = clr; + return 0; +} + +// Sets the caption color +function opt_CAPCOLOR(clr) { + o3_capcolor = clr; + return 0; +} + +// Sets the close color +function opt_CLOSECOLOR(clr) { + o3_closecolor = clr; + return 0; +} + +// Sets the popup width +function opt_WIDTH(pixels) { + o3_width = pixels; + return 0; +} + +// Sets the popup border width +function opt_BORDER(pixels) { + o3_border = pixels; + return 0; +} + +// Sets the status bar text +function opt_STATUS(text) { + o3_status = text; + return 0; +} + +// Sets that status bar text to the text +function opt_AUTOSTATUS(val) { + o3_autostatus = 1; + return 0; +} + +// Sets that status bar text to the caption +function opt_AUTOSTATUSCAP(val) { + o3_autostatus = 2; + return 0; +} + +// Sets the popup height +function opt_HEIGHT(pixels) { + o3_height = pixels; + o3_aboveheight = pixels; + return 0; +} + +// Sets the close text. +function opt_CLOSETEXT(text) { + o3_close = text; + return 0; +} + +// Sets horizontal snapping +function opt_SNAPX(pixels) { + o3_snapx = pixels; + return 0; +} + +// Sets vertical snapping +function opt_SNAPY(pixels) { + o3_snapy = pixels; + return 0; +} + +// Sets horizontal position +function opt_FIXX(pos) { + o3_fixx = pos; + return 0; +} + +// Sets vertical position +function opt_FIXY(pos) { + o3_fixy = pos; + return 0; +} + +// Sets the fg background +function opt_FGBACKGROUND(picture) { + o3_fgbackground = picture; + return 0; +} + +// Sets the bg background +function opt_BGBACKGROUND(picture) { + o3_bgbackground = picture; + return 0; +} + +// Sets the left x padding for background +function opt_PADX(pixels) { + o3_padxl = pixels; + return PADX2; +} + +// Sets the top y padding for background +function opt_PADY(pixels) { + o3_padyt = pixels; + return PADY2; +} + +// Sets the right x padding for background +function opt_PADX2(pixels) { + o3_padxr = pixels; + return 0; +} + +// Sets the bottom y padding for background +function opt_PADY2(pixels) { + o3_padyb = pixels; + return 0; +} + +// Sets that user provides full html. +function opt_FULLHTML(unused) { + o3_fullhtml = 1; + return 0; +} + +// Sets vpos, for ABOVE and BELOW +function opt_VPOS(pos) { + o3_vpos = pos; + return 0; +} + +// Sets the caption icon. +function opt_CAPICON(icon) { + o3_capicon = icon; + return 0; +} + +// Sets the text font +function opt_TEXTFONT(fontname) { + o3_textfont = fontname; + return 0; +} + +// Sets the caption font +function opt_CAPTIONFONT(fontname) { + o3_captionfont = fontname; + return 0; +} + +// Sets the close font +function opt_CLOSEFONT(fontname) { + o3_closefont = fontname; + return 0; +} + +// Sets the text font size +function opt_TEXTSIZE(fontsize) { + o3_textsize = fontsize; + return 0; +} + +// Sets the caption font size +function opt_CAPTIONSIZE(fontsize) { + o3_captionsize = fontsize; + return 0; +} + +// Sets the close font size +function opt_CLOSESIZE(fontsize) { + o3_closesize = fontsize; + return 0; +} + +// Defines which frame we should point to. +function opt_FRAME(frm) { + o3_frame = compatibleframe(frm) ? frm : ol_frame; + + if ( (ns4) || (ie4 || (ns6)) ) { + if (ns4) over = o3_frame.document.overDiv; + if (ie4) over = o3_frame.overDiv.style; + if (ns6) over = o3_frame.document.getElementById("overDiv"); + } + + return 0; +} + +// Sets the popup timeout (note: 1 sec = 1000) +function opt_TIMEOUT(maxtime) { + o3_timeout = maxtime; + return 0; +} + +// Calls an external function +function opt_FUNCTION(callme) { + o3_text = callme() + return 0; +} + +// Sets the popup delay (note: 1 sec = 1000) +function opt_DELAY(waittime) { + o3_delay = waittime; + return 0; +} + +// Sets the auto horizontal option +function opt_HAUTO(onoff) { + if (o3_hauto == 0) { + o3_hauto = 1; + } else { + o3_hauto = 0; + } + return 0; +} + +// Sets the auto vertical option +function opt_VAUTO(onoff) { + if (o3_vauto == 0) { + o3_vauto = 1; + } else { + o3_vauto = 0; + } + return 0; +} + + +//end (OF OVERLIB. OTHER ITEMS MAY FOLLOW) + + +// Opens a single window of parametered size, called "pannellino" +function makeWindow(W,H) { + if (W == null) { W = 567; } + if (H == null) { H = 378; } +W = W+16; +H = H+16; +window.open("","pannellino","width="+W+",height="+H+",innerwidth="+W+",innerheight="+H+",titlebar=no,title=no,resizable=no"); +} + +// Opens multiple windows of parametered size, each called "pannellinoN" (N = 1, 2, etc.) +// used in SMIGRA Coma +function makeWindow1(W,H,N) { + if (W == null) { W = 567; } + if (H == null) { H = 378; } +N = "pannellino"+N; +W = W+16; +H = H+16; +window.open("",N,"width="+W+",height="+H+",innerwidth="+W+",innerheight="+H+",titlebar=no,title=no,resizable=no"); +} + +// Opens a single window of parametered size, called "pannellone" +function makeWindow2(W,H) { + if (W == null) { W = 567; } + if (H == null) { H = 378; } +W = W+16; +H = H+16; +window.open("","pannellone","width="+W+",height="+H+",innerwidth="+W+",innerheight="+H+",titlebar=no,title=no,resizable=no"); +} + diff --git a/sources/book_4a_files/Italy.gif b/sources/book_4a_files/Italy.gif new file mode 100644 index 0000000..4e82f2c Binary files /dev/null and b/sources/book_4a_files/Italy.gif differ diff --git a/sources/book_4a_files/LIGHT.css b/sources/book_4a_files/LIGHT.css new file mode 100644 index 0000000..e46698f --- /dev/null +++ b/sources/book_4a_files/LIGHT.css @@ -0,0 +1,10 @@ +.running_title { + color: #000066 ! important; +} + .running_title .emend { + color: #0066cc ! important; + } + +.my_running_title { + color: #0066cc ! important; /* matches .emend */ +} diff --git a/sources/book_4a_files/breve.gif b/sources/book_4a_files/breve.gif new file mode 100644 index 0000000..133a104 Binary files /dev/null and b/sources/book_4a_files/breve.gif differ diff --git a/sources/book_4a_files/breve_or_macron.gif b/sources/book_4a_files/breve_or_macron.gif new file mode 100644 index 0000000..59b72e7 Binary files /dev/null and b/sources/book_4a_files/breve_or_macron.gif differ diff --git a/sources/book_4a_files/colors.css b/sources/book_4a_files/colors.css new file mode 100644 index 0000000..dc4a17a --- /dev/null +++ b/sources/book_4a_files/colors.css @@ -0,0 +1,2173 @@ +/* +KEEP IN THE FOLLOWING ORDER: + 1. GOOGLEMAP COLORS FIRST ▸ search for <1> + 2. PLAIN FONT COLORS NO BACKGROUNDS ▸ search for <2> + 3. PLAIN BACKGROUND COLORS ▸ search for <3> + 4. COMBINED FONT+BACKGROUND SCHEMES ▸ search for <4> +*/ + +/* +ideally: + plain color names should be for plain font colors + evocative names should be for combined schemes + */ + +/* +TABLES WITH ALTERNATING ROWS/BANDS: + Across all backgrounds and stylesheets, they are CLASS="Orvieto", + differently defined in the various stylesheets. + Model use: +E/Gazetteer/Places/America/United_States/_Topics/history/_Texts/DULOCT/Appendix*.html + */ + +/*<1>*/ + +SPAN.WalkColor { + color: #00bf40 ! important; +} + +SPAN.RideColor { + color: #cc6600 ! important; +} + +SPAN.ApproximateColor { + color: #ff99ff ! important; +} + +/*<2>*/ +/* +KEEP IN THE FOLLOWING ORDER: + 1. NAMED COLORS ▸ search for + 2. colorNNNNNN PLACEHOLDERS ▸ search for , within which: + 2a. WEBSAFE: xxyyzz with x, y, z = {0,3,6,9,C,F} + 2b. OTHER +*/ + +/**/ +.black { + color: #000000 ! important; + } + +.blue { + color: #0000ff ! important; +} + +.celadon { + color: #33CCFF ! important; + } + +.chancery { + color: #FF33FF ! important; + } + +.cordovan { + color: #993300 ! important; + } + +.fuchsia { + color: #ff00ff ! important; + } + +.green { + color: #009900 ! important; +} + +.dark_green { + color: #003300 ! important; + } + +.lawngreen { + color: #7cfc00 ! important; +} + +.light_green { + color: #33ff33 ! important; +} + + A.light_green { + background-color: inherit ! important; + color: #33ff33 ! important; + } + +.light_red { + color: #ff3333 ! important; +} + +.light_yellow { + color: #ffff33 ! important; +} + +.pale_green { + color: #ccffcc ! important; +} + + A.pale_green { + background-color: inherit ! important; + color: #ccffcc ! important; + } + +.pale_yellow { + color: #ffffcc ! important; +} + +.lemon { + color: #FFFF99 ! important; + } + +.maroon { + color: #990000 ! important; + } + +.muted { + color: #666666 ! important; + } + +.semimuted { + color: #999999 ! important; + } + +.ochre { + color: #996600 ! important; + } + +.ochre_yellow { + color: #ccad00 ! important; +} + +.orange { + color: #FFAA22 ! important; + } + +.pale_magenta { + color: #ff6699 ! important; +} + +.pale_purple { + color: #ffccff ! important; +} + + A.pale_purple { + background-color: inherit ! important; + color: #ffccff ! important; + } + +.purple { + color: #990099 ! important; + } + +.red { + color: #ff0000 ! important; +} + +.rust { + color: #CC6600 ! important; + } + +.salmon { + color: #ff6666 ! important; +} + +.USMA_gold { + color: #ffdd00 ! important; + } + +.USMA_stripes { + color: #fffb98 ! important; + } + +.violet { + color: #200080 ! important; +} + +/**/ + /**/ + /* Should eventually be replaced by mnemonic names */ + +.color001100 { + color: #001100 ! important; + } + +.color000033 { + color: #000033 ! important; + } + +.color000066 { + color: #000066 ! important; + } + +.color000099 { + color: #000099 ! important; + } + +.color0000CC { + color: #0000CC ! important; + } + +.color003333 { + color: #003333 ! important; + } + +.color003366 { + color: #003366 ! important; + } + +.color0033CC { + color: #0033CC ! important; + } + +.color006600 { + color: #006600 ! important; + } + +.color006633 { + color: #006633 ! important; + } + +.color0066CC { + color: #0066CC ! important; + } + +.color0066FF { + color: #0066FF ! important; + } + +.color00CC99 { + color: #00CC99 ! important; + } + +.color00FF99 { + color: #00FF99 ! important; + } + +.color330000 { + color: #330000 ! important; + } + +.color330033 { + color: #330033 ! important; + } + +.color333333 { + color: #333333 ! important; + } + +.color333300 { + color: #333300 ! important; + } + +.color333366 { + color: #333366 ! important; + } + +.color333399 { + color: #333399 ! important; + } + +.color3333CC { + color: #3333CC ! important; + } + +.color3333FF { + color: #3333FF ! important; + } + +.color336600 { + color: #336600 ! important; + } + +.color336633 { + color: #336633 ! important; + } + +.color3366FF { + color: #3366FF ! important; + } + +.color339900 { + color: #339900 ! important; + } + +.color339933 { + color: #339933 ! important; + } + +.color33FFFF { + color: #33FFFF ! important; + } + +.color660000 { + color: #660000 ! important; + } + +.color660033 { + color: #660033 ! important; + } + +.color660066 { + color: #660066 ! important; + } + +.color660099 { + color: #660099 ! important; + } + +.color663300 { + color: #663300 ! important; + } + +.color663333 { + color: #663333 ! important; + } + +.color6699CC { + color: #6699CC ! important; + } + +.color993333 { + color: #993333 ! important; + } + +.color996666 { + color: #996666 ! important; + } + +.color999999 { + color: #999999 ! important; + } + +.color99CCFF { + color: #99CCFF ! important; + } + +.color99FF66 { + color: #99FF66 ! important; + } + +.color99FFFF { + color: #99FFFF ! important; + } + +.colorCC0000 { + color: #CC0000 ! important; + } + +.colorCC0033 { + color: #CC0033 ! important; + } + +.colorCC0066 { + color: #CC0066 ! important; + } + +.colorCC0099 { + color: #CC0099 ! important; + } + +.colorCC00CC { + color: #CC00CC ! important; + } + +.colorCC3300 { + color: #CC3300 ! important; + } + +.colorCC6666 { + color: #CC6666 ! important; + } + +.colorCC9900 { + color: #CC9900 ! important; + } + +.colorCCCCFF { + color: #CCCCFF ! important; + } + +.colorCCFFCC { + color: #CCFFCC ! important; + } + +.colorCCFFFF { + color: #CCFFFF ! important; + } + +.colorFF0066 { + color: #FF0066 ! important; + } + +.colorFF0099 { + color: #FF0099 ! important; + } + +.colorFF3300 { + color: #FF3300 ! important; + } + +.colorFF6600 { + color: #FF6600 ! important; + } + +.colorFF9900 { + color: #FF9900 ! important; + } + +.colorFF9933 { + color: #FF9933 ! important; + } + +.colorFF9966 { + color: #FF9966 ! important; + } + +.colorFF9999 { + color: #FF9999 ! important; + } + +.colorFF99CC { + color: #FF99CC ! important; + } + +.colorFF99FF { + color: #FF99FF ! important; + } + +.colorFFCC00 { + color: #FFCC00 ! important; + } + +.colorFFCC33 { + color: #FFCC33 ! important; + } + +.colorFFCC66 { + color: #FFCC66 ! important; + } + +.colorFFCC99 { + color: #FFCC99 ! important; + } + +.colorFFCCCC { + color: #FFCCCC ! important; + } + +.colorFFFF00 { + color: #FFFF00 ! important; + } + +.colorFFFF66 { + color: #FFFF66 ! important; + } + +.colorFFFFFF { + color: #FFFFFF ! important; + } + + /**/ + +.color000090 { + color: #000090 ! important; + } + +.color002200 { + color: #002200 ! important; + } + +.color004000 { + color: #004000 ! important; + } + +.color0040B0 { + color: #0040B0 ! important; + } + +.color004400 { + color: #004400 ! important; + } + +.color004A00 { + color: #004A00 ! important; + } + +.color0060FF { + color: #0060FF ! important; + } + +.color006E3A { + color: #006E3A ! important; + } + +.color007000 { + color: #007000 ! important; + } + +.color008000 { + color: #008000 ! important; + } + +.color0080FF { + color: #0080FF ! important; + } + +.color008800 { + color: #008800 ! important; + } + +.color008C00 { + color: #008C00 ! important; + } + +.color0C3000 { + color: #0C3000 ! important; + } + +.color110000 { + color: #110000 ! important; + } + +.color110011 { + color: #110011 ! important; + } + +.color112200 { + color: #112200 ! important; + } + +.color200000 { + color: #200000 ! important; + } + +.color223344 { + color: #223344 ! important; + } + +.color330010 { + color: #330010 ! important; + } + +.color332222 { + color: #332222 ! important; + } + +.color3900D6 { + color: #3900D6 ! important; + } + +.color3900E6 { + color: #3900E6 ! important; + } + +.color400080 { + color: #400080 ! important; + } + +.color4040FF { + color: #4040FF ! important; + } + +.color410000 { + color: #410000 ! important; + } + +.color4B2700 { + color: #4B2700 ! important; + } + +.color4C1900 { + color: #4C1900 ! important; + } + +.color4C9900 { + color: #4C9900 ! important; + } + +.color5000D0 { + color: #5000D0 ! important; + } + +.color600000 { + color: #600000 ! important; + } + +.color6A0080 { + color: #6A0080 ! important; + } + +.color6F0000 { + color: #6F0000 ! important; + } + +.color800000 { + color: #800000 ! important; + } + +.color800080 { + color: #800080 ! important; + } + +.color802600 { + color: #802600 ! important; + } + +.color900000 { + color: #900000 ! important; + } + +.color903030 { + color: #903030 ! important; + } + +.color992200 { + color: #992200 ! important; + } + +.color994C4C { + color: #994C4C ! important; + } + +.color9C2973 { + color: #9C2973 ! important; + } + +.color9C6342 { + color: #9C6342 ! important; + } + +.colorA00000 { + color: #A00000 ! important; + } + +.colorAACC00 { + color: #AACC00 ! important; + } + +.colorBE5F00 { + color: #BE5F00 ! important; + } + +.colorC03A3A { + color: #C03A3A ! important; + } + +.colorCCCCDD { + color: #CCCCDD ! important; + } + +.colorD00000 { + color: #D00000 ! important; + } + +.colorD10022 { + color: #D10022 ! important; + } + +.colorD56A00 { + color: #D56A00 ! important; + } + +.colorDDDDCC { + color: #DDDDCC ! important; + } + +.colorDDDDDD { + color: #DDDDDD ! important; + } + +.colorDDDDEE { + color: #DDDDEE ! important; + } + +.colorDDDDFF { + color: #DDDDFF ! important; + } + +.colorDDFFCC { + color: #DDFFCC ! important; + } + +.colorE0FFCC { + color: #E0FFCC ! important; + } + +.colorE77300 { + color: #E77300 ! important; + } + +.colorEECC99 { + color: #EECC99 ! important; + } + +.colorEEEEEE { + color: #EEEEEE ! important; + } + +.colorEEEEFF { + color: #EEEEFF ! important; + } + +.colorEEFFFF { + color: #EEFFFF ! important; + } + +.colorFF002A { + color: #FF002A ! important; + } + +.colorFF4000 { + color: #FF4000 ! important; + } + +.colorFF5500 { + color: #FF5500 ! important; + } + +.colorFF6633 { + color: #FF6633 ! important; + } + +.colorFF7F00 { + color: #FF7F00 ! important; + } + +.colorFFAA00 { + color: #FFAA00 ! important; + } + +.colorFFBB88 { + color: #FFBB88 ! important; + } + +.colorFFDD00 { + color: #FFDD00 ! important; + } + +.colorFFDD99 { + color: #FFDD99 ! important; + } + +.colorFFDDBB { + color: #FFDDBB ! important; + } + +.colorFFDDDD { + color: #FFDDDD ! important; + } + +.colorFFDDEE { + color: #FFDDEE ! important; + } + +.colorFFEEDD { + color: #FFEEDD ! important; + } + +.colorFFEEEE { + color: #FFEEEE ! important; + } + +.colorFFFFEE { + color: #FFFFEE ! important; + } + +/*<3>*/ + +.aquawhite { + background-color: #f7fbff ! important; +} + +.bluewhite { + background-color: #f7f7ff ! important; +} + +.ecruwhite { + background-color: #fffff7 ! important; +} + +.redwhite { + background-color: #fff7f7 ! important; +} + +.bistre { + background-color: #cccc99 ! important; +} + +SPAN.bistre { + background-color: inherit ! important; + color: #cccc99 ! important; +} + +.ecru { + background-color: #ffffcc ! important; + color: #000066 ! important; +} + +SPAN.ecru { + background-color: inherit ! important; + color: #ffffcc ! important; +} + +.grey { + background-color: #cccccc ! important; +} + +SPAN.grey { + color: #cccccc ! important; +} + +.pale_grey { + background-color: #ddddee ! important; + } + +.paler_grey { + background-color: #eeeef6 ! important; + } + +.lagoon { + background-color: #99ffff ! important; + color: #000066 ! important; +} + + SPAN.lagoon { + background-color: inherit ! important; + color: #99ffff ! important; +} + +.lime { + background-color: #ccff99 ! important; +} + +.mist_green { + background-color: #e8ffe8 ! important; +} + +.mustard { + background-color: #ffcc44 ! important; +} + +.pale_blue { + background-color: #ccccff ! important; +} + SPAN.pale_blue { + background-color: inherit ! important; + color: #ccccff ! important; + } + +.hospital_wall { + background-color: #ccffcc ! important; +} + SPAN.hospital_wall { + background-color: inherit ! important; + color: #ccffcc ! important; + } + + A.hospital_wall { + background-color: inherit ! important; + color: #ccffcc ! important; + } + +.pale_red { + background-color: #ffcccc ! important; +} + SPAN.pale_red { + background-color: inherit ! important; + color: #ffcccc ! important; + } + + A.pale_red { + background-color: inherit ! important; + color: #ffcccc ! important; + } + +.pink { + background-color: #fff2ff ! important; +} + +.plaster { + background-color: #ffeedd ! important; +} + +.pumpkin { + background-color: #ff9933 ! important; +} + +.silver { + background-color: #f6f6ff ! important; +} + +.silver .emend { + color: #0066cc ! important; +} + +.sky { + background-color: #99ccff ! important; +} + SPAN.sky { + background-color: inherit ! important; + color: #99ccff ! important; + } + +.sunset { + background-color: #ffff99 ! important; +} + +.tawny { + background-color: #ffcc66 ! important; +} + + .tawny .Latin { + color: #660000 ! important; + } + + .tawny .lapis { + color: #660000 ! important; + } + + .tawny .nummus { + color: #660000 ! important; + } + + .tawny .Latin .emend { + color: #cc3399 ! important; + } + + .tawny .lapis .emend { + color: #cc3399 ! important; + } + + .tawny .nummus .emend { + color: #cc3399 ! important; + } + +.terracotta { + background-color: #ff9966 ! important; +} + +.white { + background-color: #ffffff ! important; + color: #000066 ! important; +} + + SPAN.white { + background-color: inherit ! important; + color: #ffffff ! important; + } + +/*<4>*/ + +.Acquaeortus { + background-color: #ff6666 ! important; + color: #ffffff ! important; +} + +.Air_Force { + background-color: #003366 ! important; + color: #ffffff ! important; +} + .Air_Force A { + color: #ffff33 ! important; + } + +.Algol { + background-color: #444444 ! important; + color: #ff6600 ! important; +} + + .Algol P { + color: #ff6600 ! important; + } + + .Algol .Italian { + color: #99ff99 ! important; + } + + .Algol .source { + color: #99ff99 ! important; + } + .Algol A { + color: #ffcccc ! important; + } + +.Algol2 { + background-color: #333333 ! important; + color: #ff6633 ! important; +} + + .Algol2 P { + color: #ff6633 ! important; + } + + .Algol2 .source { + color: #99ff99 ! important; + } + .Algol2 A { + color: #ffcccc ! important; + } + +.Americas { + background-color: #bbffff ! important; + color: #336633 ! important; +} + +.amphora { + background-color: #993333 ! important; + color: #ffffcc ! important; +} + + .amphora .Latin { + color: #ffff99 ! important; + } + + .amphora .lapis { + color: #ff9999 ! important; + } + + .amphora .nummus { + color: #ff9999 ! important; + } + .amphora A { + color: #33ff33 ! important; + } + +.angelica { + background-color: #99cc33 ! important; +} + +.angels { + background-color: #000099 ! important; + color: #ffff66 ! important; +} + .angels A { + color: #99ffff ! important; + } + +.Antares { + background-color: #000000 ! important; + color: #ff3300 ! important; +} + .Antares A { + color: #ffff66 ! important; + } + +.aqua { + background-color: #ccffff ! important; + color: #000066 ! important; +} + A.aqua { + background-color: inherit ! important; + color: #ccffff ! important; + } + + SPAN.aqua { + background-color: inherit ! important; + color: #ccffff ! important; + } + +.Arizona { + background-color: #ffe6cc ! important; +} + .Arizona .Italian { + color: #20bb44 ! important; + } + +.Arnhem { + background-color: #3333ff ! important; + color: #ffffff ! important; +} + + A.Arnhem { + background-color: inherit ! important; + color: #3333ff ! important; + } + + SPAN.Arnhem { + color: #ffffff ! important; + } + +.Augustus { + background-color: #660022 ! important; + color: #ffffff ! important; +} + .Augustus A { + color: #00ffcc ! important; + } + +.autumn { + background-color: #663333 ! important; + color: #ffcc99 ! important; +} + .autumn A { + color: #99ffff ! important; + } + +.autumn_gold { + background-color: #663333 ! important; + color: #ffff66 ! important; +} + +.autumn_sand { + background-color: #663333 ! important; + color: #ffffcc ! important; +} + +.azure { + background-color: #150080 ! important; + color: #ffffcc ! important; +} + +.Bonely { + background-color: #cccccc ! important; + color: #000011 ! important; +} + +.Boston_red { + color: #cc0000 ! important; +} + +.brick { + background-color: #773300 ! important; + color: #ffffff ! important; +} + + .brick .Latin { + color: #ffff99 ! important; + } + + .brick .lapis { + color: #ffff99 ! important; + } + + .brick .nummus { + color: #ffff99 ! important; + } + .brick A { + color: #33ff33 ! important; + } + +.brickstamp { + background-color: #ffcc99 ! important; +} + +.brickstamp1 { + background-color: #ffcc99 ! important; + color: #cc3333 ! important; +} + +.brickstamp2 { + background-color: #ffcc99 ! important; + color: #993333 ! important; +} + +.Britain { + background-color: #00237d ! important; + /*must be the same color as BODY in Britannia.css*/ + color: #ffffff ! important; +} + +.brown { + background-color: #330000 ! important; + color: #ffffcc ! important; +} + + .brown .Latin { + color: #ffcc66 ! important; + } + + .brown .lapis { + color: #ffcc66 ! important; + } + + .brown .nummus { + color: #ffcc66 ! important; + } + + .brown .source { + color: #99ff33 ! important; + } + + SPAN.brown { + background-color: inherit ! important; + color: #330000 ! important; + } + + SPAN.brown A { + color: #0000ff ! important; + } + .brown A { + color: #99ff99 ! important; + } + +.dark_brown { + background-color: #332222 ! important; + color: #ffffcc ! important; +} + + .dark_brown .Latin { + color: #ffcc66 ! important; + } + + .dark_brown .lapis { + color: #ffcc66 ! important; + } + + .dark_brown .nummus { + color: #ffcc66 ! important; + } + + .dark_brown .source { + color: #99ff33 ! important; + } + +.burgundy { + background-color: #330000 ! important; + color: #ffcccc ! important; +} + +.butterscotch { + background-color: #995500 ! important; + color: #ffffff ! important; +} + + .butterscotch .Latin { + color: #ffff99 ! important; + } + + .butterscotch .lapis { + color: #ffff99 ! important; + } + + .butterscotch .nummus { + color: #ffff99 ! important; + } + .butterscotch A { + color: #33ff33 ! important; + } + +.cadet_grey { + background-color: #a5a6bb ! important; + color: #000066 ! important; +} + +.light_cadet_grey { + background-color: #c5c6d3 ! important; + color: #000066 ! important; +} + +/* The red of the Cambodian flag is e00025; the color here is slightly bluer, and much darker, for readability and so as not to confuse it with a link. */ +/* OLD: +.Cambodia { + background-color: #ffffff ! important; + color: #bf0050 ! important; + border-color: #032ea1 ! important; + border-width: 2px ! important; +} + .Cambodia A { + color: #cc00ff ! important; + } + */ + +.Cambodia { + background-color: #e00025 ! important; + color: #ffffff ! important; + border-color: #032ea1 ! important; + border-width: 2px ! important; +} + .Cambodia A { + color: #99ffff ! important; + } + .Cambodia A.ref { + color: #99ffff ! important; + } + +.Canada { + background-color: #ffffff ! important; + color: #37495f ! important; /* matches the Canadian Government's site */ + border-color: #ff0000 ! important; +} + .Canada A { + color: #cc00ff ! important; + } + +.Capella { + background-color: #000000 ! important; + color: #ffffcc ! important; +} + .Capella A { + color: #ffff66 ! important; + } + + .Capella .source { + color: #66ff66 ! important; + } + +.caramel { + background-color: #996633 ! important; + color: #ffffff ! important; +} + .caramel A { + color: #bbbbff ! important; + } + +.Cartagena { + background-color: #ff6666 ! important; + color: #ffff99 ! important; +} + +.Catalunya { + background-color: #fcdd09 ! important; + color: #da131a ! important; + border-color: #da131a ! important; +} + .Catalunya A { + color: #cc00ff ! important; + } + +/* +The following style was called "Catholic" but I renamed it to avoid conflict with BODY CLASS= "Catholic". It appears to be very rarely called; but if in fact it is called a lot, I may have to revert the name. + */ +.Kapaun { + background-color: #90191b ! important; + color: #ffff33 ! important; + font-size: 90%; +} + .Kapaun A { + color: #ffff00 ! important; + } + +.charcoal { + background-color: #333333 ! important; + color: #ffffff ! important; +} + .charcoal A { + color: #ffff33 ! important; + } + +.checkColor { /* = ecru */ + background-color: #ffffcc ! important; +} + +.Chicago_maroon { + background-color: #cccccc ! important; + color: #990000 ! important; +} + +.Chile { + background-color: #ffffff ! important; + color: #0044cc ! important; + border-color: #d83820 ! important; +} + .Chile A { + color: #cc00ff ! important; + } + +.chocolate { + background-color: #330000 ! important; + color: #ffff99 ! important; +} + .chocolate A { + color: #33ff33 ! important; + } + +.Claudian { + background-color: #333333 ! important; + color: #cccccc ! important; +} + + .Claudian P { + color: #cccccc ! important; + } + + .Claudian .source { + color: #99ff99 ! important; + } + .Claudian A { + color: #66ccff ! important; + } + +.cobblestone { + background-color: #999999 ! important; + color: #ffffff ! important; +} + +.cocoa { + background-color: #665555 ! important; + color: #ffffcc ! important; +} + .cocoa A { + color: #33ccff ! important; + } + +.coffee { + background-color: #998866 ! important; + color: #ffffee ! important; +} + .coffee A { + color: #0033ff ! important; + } + +.crimson { + background-color: #990033 ! important; + color: #ffcc00 ! important; +} + + .crimson P { + color: #ffcc00 ! important; + } + +.daffodil { + background-color: #ffffff ! important; + color: #70a000 ! important; +} + +.Dalmatian { + background-color: #ffffff ! important; + color: #000000 ! important; +} + +.dandelion { + background-color: #003300 ! important; + color: #ffcc00 ! important; +} + .dandelion A { + color: #9999ff ! important; + } + + .dandelion .source { + color: #99ff99 ! important; + } + +.Daniel { + background-color: #006600 ! important; + color: #ffff99 ! important; +} + .Daniel A { + color: #ff6633 ! important; + } + +.dark_blue { + background-color: #003399 ! important; + color: #ffffff ! important; +} + .dark_blue A { + background-color: inherit ! important; + font-weight: bold; + color: #ffff33 ! important; + } + + SPAN.dark_blue { + color: #003399 ! important; + } + +.dark_pines { + background-color: #003300 ! important; + color: #ffffff ! important; +} + .dark_pines A { + color: #9999ff ! important; + } + + .dark_pines .source { + color: #99ff99 ! important; + } + +.dark_sepia { + background-color: #888877 ! important; + color: #ddddcc ! important; +} + .dark_sepia A { + color: #99ffff ! important; + } + + .dark_sepia .source { + color: #99ff99 ! important; + } + +.dark_slate { + background-color: #444444 ! important; + color: #ffffff ! important; +} + +.doughboy { + background-color: #a67c41 ! important; + color: #e5c68e ! important; +} + +.Dutch2 { + background-color: #ddffff ! important; /*e9feff*/ + color: #ee8800 ! important; /*eb810f*/ +} + +.early_spring { + background-color: #99cc66 ! important; + color: #ffffff ! important; +} + +.empyrean { + background-color: #000033 ! important; + color: #ffcc99 ! important; +} + .empyrean A { + color: #99ffff ! important; + } + + .empyrean .Latin { + color: #ff9999 ! important; + } + + .empyrean .lapis { + color: #ff9999 ! important; + } + + .empyrean .nummus { + color: #ff9999 ! important; + } + +.eucalyptus { + background-color: #669966 ! important; + color: #0033cc ! important; +} + .eucalyptus A { + color: #33ff33 ! important; + } + +.farmhouse { + background-color: #113300 ! important; + color: #ffffcc ! important; +} + .farmhouse A { + color: #99ccff ! important; + } + +.fertile { + background-color: #663300 ! important; + color: #33ff00 ! important; +} + +.Firenze_ghibellino { + background-color: #ff3333 ! important; + color: #ffffff ! important; +} + +.Firenze { + background-color: #ffffff ! important; + color: #ff3333 ! important; +} + +.forest_sunset { + background-color: #336633 ! important; + color: #ffddbb ! important; +} + .forest_sunset A { + color: #ccccff ! important; + } + +.French2 { + background-color: #99ccff ! important; + color: #ee4037 ! important; +} + +.French_paperback { + background-color: #fff7f2 ! important; + color: #b7375c ! important; +} + +.fudge { + background-color: #996600 ! important; + color: #ffffff ! important; +} + +.glauque { + background-color: #669999 ! important; + color: #ffffff ! important; +} + .glauque A { + color: #ccccff ! important; + } + .glauque A:visited { + color: #ffcccc ! important; + } + +.Gran_Colombia { + background-color: #fee88a ! important; + color: #0044cc ! important; /* why doesn't this work? */ + border-color: #d83820 ! important; +} + .Gran_Colombia TD { + color: #0044cc ! important; /* workaround because previous doesn't work! */ + } + + .Gran_Colombia A { + color: #339900 ! important; + } + +.grey_pines { + background-color: #336600 ! important; + color: #ccccff ! important; +} + .grey_pines A { + color: #ffffcc ! important; + } + + .grey_pines .source { + color: #99ff99 ! important; + } + + .grey_pines .Italian { + color: #7acc7a ! important; + } + +.Harlequin { + background-color: #000000 ! important; + color: #ffffff ! important; +} + .Harlequin A { + color: #ffff66 ! important; + } + + .Harlequin .source { + color: #66ff66 ! important; + } + + .Harlequin .bland { + color: #ffffff ! important; + } + +.imperial { + background-color: #4d0099 ! important; + color: #ffff66 ! important; +} + +.ink_blue { + background-color: #000033 ! important; + color: #ffffff ! important; +} + .ink_blue A { + color: #99ffff ! important; + } + + .ink_blue P { + color: #ffffff ! important; + } + + SPAN.ink_blue { + color: #000033 ! important; + } + +.Labro { + background-color: #506600 ! important; + color: #fff9e5 ! important; +} + +.landscape { + background-color: #559900 ! important; + color: #ffffff ! important; +} + +.laterite { + background-color: #cc6633 ! important; + color: #ccffff ! important; +} + +.late_spring { + background-color: #339900 ! important; + color: #ffcccc ! important; +} + .late_spring A { + font-weight: bold; + color: #ffff33 ! important; + } + +.light_ochre { + background-color: #cc9933 ! important; + color: #ffffff ! important; +} + +.limestone { + background-color: #ffffcc ! important; + color: #663300 ! important; +} + +.London { + background-color: #cccccc ! important; + color: #993333 ! important; +} + +.lupine { + background-color: #113300 ! important; + color: #ffffff ! important; +} + .lupine A { + color: #99ccff ! important; + } + +.marl { + background-color: #ffcccc ! important; + color: #333366 ! important; +} + +.mahogany { + background-color: #330000 ! important; + color: #ffffff ! important; +} + .mahogany A { + color: #33ff33 ! important; + } + + .mahogany A.comment { + color: #33ccff ! important; + font-weight: bold; + font-size: 85%; + } + + .mahogany .Latin { + color: #ff6600 ! important; + } + + .mahogany .Latin .emend { + color: #ffaa00 ! important; + } + + .mahogany .lapis { + color: #ff6600 ! important; + } + + .mahogany .lapis .emend { + color: #ffaa00 ! important; + } + +.masoor_dal { + background-color: #cc6600 ! important; + color: #ffffff ! important; +} + + .masoor_dal .Latin { + color: #ffff99 ! important; + } + + .masoor_dal .lapis { + color: #ffff99 ! important; + } + + .masoor_dal .nummus { + color: #ffff99 ! important; + } + .masoor_dal A { + color: #33ff33 ! important; + } + +.mimosa { + background-color: #336633 ! important; + color: #ffff99 ! important; +} + +.minium { + background-color: #ffe0aa ! important; + color: #cc0000 ! important; +} + +.mint { + background-color: #003300 ! important; + color: #ccffcc ! important; +} + .mint A { + color: #9999ff ! important; + } + + .mint .source { + color: #99ff99 ! important; + } + +.mordore { + background-color: #663300 ! important; + color: #ffffcc ! important; +} + .mordore A { + color: #33ff33 ! important; + } + + .mordore .emend { + color: #99ffff ! important; + } + + .mordore .Latin { + color: #ff3300 ! important; + } + + .mordore .Latin .emend { + color: #cc3399 ! important; + } + +.mossy_pavement { + background-color: #cccccc ! important; + color: #006600 ! important; +} + +.mourning_dove { + background-color: #a8a99b ! important; + color: #f1e0d6 ! important; +} + .mourning_dove A { + color: #4662d0 ! important; + } + +.MrWhite { + background-color: #ffffff ! important; + color: #993333 ! important; +} + +.Nar { + background-color: #808066 ! important; + color: #ffffcc ! important; +} + +.Navajo { + background-color: #330000 ! important; + color: #33ff00 ! important; +} + .Navajo A { + color: #99ff33 ! important; + } + +.navy { + background-color: #110044 ! important; + color: #ffffff ! important; +} + +.Netherlands { + background-color: #ffffff ! important; + color: #3075f6 ! important; + border-color: #f29e39 ! important; +} + .Netherlands A { + color: #cc00ff ! important; + } + +.Newburgh { + background-color: #b4b5cc ! important; + color: #fff600 ! important; +} + +.nicotine { + background-color: #ffffcc ! important; + color: #993333 ! important; +} + +.Nigeria { + background-color: #006600 ! important; + color: #ffffff ! important; +} + .Nigeria A { + color: #ff6633 ! important; + } + +.North_Carolina { + background-color: #ffffff ! important; + color: #003399 ! important;/*102f5f*/ + border-color: #bf2b45 ! important; +} + .North_Carolina A { + color: #ff6633 ! important; + } + +.old_belfry { + background-color: #998866 ! important; + color: #ddffff ! important; +} + +.olive { + background-color: #666633 ! important; + color: #ffffcc ! important; +} + .olive A { + color: #ccccff ! important; + } + +.dark_olive { + background-color: #333300 ! important; + color: #ffffff ! important; +} + .dark_olive A { + color: #99ffff ! important; + } + + .dark_olive .emend { + color: #ccffff ! important; + } + +.light_olive { + background-color: #999966 ! important; + color: #ffffcc ! important; +} + .light_olive A { + color: #ccccff ! important; + } + +.Oxford { + background-color: #ddeeff ! important; + color: #f36512 ! important; + font-weight: bold; +} + .Oxford A { + color: #993333 ! important; + } + + .Oxford .bland { + color: #000066 ! important; + font-weight: normal; +} + +SPAN.pale_yellow { + background-color: inherit ! important; + color: #ffffcc ! important; + } + +A.pale_yellow { + background-color: inherit ! important; + color: #ffffcc ! important; + } + +.paleo { + background-color: #e6d7b8 ! important; + color: #331900 ! important; +} + .paleo .Italian { + color: #20bb44 ! important; + } + +.parchment { + background-color: #ffffff ! important; + color: #663300 ! important; +} + +.Pentecost { + background-color: #660000 ! important; + color: #ffff66 ! important; +} + +.pietra_morta { + background-color: #ccccb0 ! important; + color: #330000 ! important; +} + +.pigeon { + background-color: #99cccc ! important; + color: #660000 ! important; +} + +.pines { + background-color: #447711 ! important; + color: #ffffff ! important; +} + .pines A { + color: #66ffff ! important; + } + + .pines .source { + color: #99ff99 ! important; + } + +.Ravenna { + background-color: #440055 ! important; + color: #ccffcc ! important; +} + +.red_wax { + background-color: #cc3333 ! important; + color: #ffffff ! important; +} + .red_wax A { + color: #66ffff ! important; + } + +.rockscape { + background-color: #330000 ! important; + color: #ccffff ! important; +} + .rockscape A { + color: #66ffff ! important; + } + +.sand { + background-color: #ffeeee ! important; + color: #663300 ! important; +} + +.sandstone { + background-color: #ffeedd ! important; + color: #663300 ! important; +} + +.shaded_stone { + background-color: #cccccc ! important; + color: #663300 ! important; +} + +.sigillata { + background-color: #660000 ! important; + color: #ffffff ! important; +} + .sigillata .Latin { + color: #ffff99 ! important; + } + .sigillata .lapis { + color: #ff9999 ! important; + } + .sigillata .nummus { + color: #ff9999 ! important; + } + .sigillata A { + color: #33ff33 ! important; + } + +.slate { + background-color: #666666 ! important; + color: #ffffff ! important; +} + +.spaceflight { + background-color: #150080 ! important; + color: #ffff66 ! important; +} + +.spearmint { + background-color: #ffffff ! important; + color: #006600 ! important; +} + +.spring { + background-color: #66cc00 ! important; + color: #ffffff ! important; +} + +.stone_walls { + background-color: #221100 ! important; + color: #cc7733 ! important; +} + .stone_walls A { + color: #66ffff ! important; + } + +.storm_pines { + background-color: #003300 ! important; + color: #cccccc ! important; +} + .storm_pines A { + color: #9999ff ! important; + } + .storm_pines .source { + color: #99ff99 ! important; + } + +.straw { + background-color: #ffffff ! important; + color: #996600 ! important; +} + +.summer { + background-color: #7c9645 ! important; + color: #ffffff ! important; +} + .summer A { + color: #0044ff ! important; + } + +.tobacco { + background-color: #663300 ! important; + color: #ffcc00 ! important; +} + +.toffee { + background-color: #cc9966 ! important; + color: #660000 ! important; +} + + .toffee .Latin { + color: #cc3300 ! important; + } + + .toffee .lapis { + color: #ffff99 ! important; + } + + .toffee .nummus { + color: #ffff99 ! important; + } + +.Ukraine { + background-color: #ffffff ! important; + color: #0056bd ! important; + border-color: #fed700 ! important; +} + +.umber { + background-color: #663300 ! important; + color: #ffffff ! important; +} + .umber A { + color: #33ff33 ! important; + } + .umber .emend { + color: #99ffff ! important; + } + .umber .Latin { + color: #ff3300 ! important; + } + .umber .Latin .emend { + color: #cc3399 ! important; + } + +.Venezuela { + background-color: #ffea80 ! important; + color: #152169 ! important; +} + +.very_green { + background-color: #002200 ! important; + color: #aacc00 ! important; +} + .very_green A { + color: #ccccff ! important; + } + +.wintergreen { + background-color: #ffffff ! important; + color: #0099cc ! important; +} + +.woodruff { + background-color: #336633 ! important; + color: #ffffff ! important; +} + .woodruff A { + color: #ccccff ! important; + } + .woodruff .emend { + color: #ddffff ! important; + } + +.Wyoming { + background-color: #ffffff ! important; + color: #003399 ! important; + border-color: #bf0b32 ! important; +} + .Wyoming A { + color: #ff6633 ! important; + } + +.zinnia { + background-color: #003300 ! important; + color: #ff8800 ! important; +} + + SPAN.zinnia { + background-color: inherit ! important; + color: #003300 ! important; +} + .zinnia A { + color: #6699ff ! important; + } + +/* ORVIETO */ +/* +BODY. TABLE.Orvieto { +} + */ diff --git a/sources/book_4a_files/empty.gif b/sources/book_4a_files/empty.gif new file mode 100644 index 0000000..d37a0bb Binary files /dev/null and b/sources/book_4a_files/empty.gif differ diff --git a/sources/book_4a_files/home_.gif b/sources/book_4a_files/home_.gif new file mode 100644 index 0000000..4ec156c Binary files /dev/null and b/sources/book_4a_files/home_.gif differ diff --git a/sources/book_4a_files/home__small.gif b/sources/book_4a_files/home__small.gif new file mode 100644 index 0000000..cf2137e Binary files /dev/null and b/sources/book_4a_files/home__small.gif differ diff --git a/sources/book_4a_files/logo__.gif b/sources/book_4a_files/logo__.gif new file mode 100644 index 0000000..0fbb441 Binary files /dev/null and b/sources/book_4a_files/logo__.gif differ diff --git a/sources/book_4a_files/macron.gif b/sources/book_4a_files/macron.gif new file mode 100644 index 0000000..79ff63b Binary files /dev/null and b/sources/book_4a_files/macron.gif differ diff --git a/sources/book_4a_files/next.gif b/sources/book_4a_files/next.gif new file mode 100644 index 0000000..2f1682a Binary files /dev/null and b/sources/book_4a_files/next.gif differ diff --git a/sources/book_4a_files/ol.js b/sources/book_4a_files/ol.js new file mode 100644 index 0000000..8ed611d --- /dev/null +++ b/sources/book_4a_files/ol.js @@ -0,0 +1,8 @@ +!function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e():"function"==typeof define&&define.amd?define([],e):"object"==typeof exports?exports.ol=e():t.ol=e()}(window,function(){return function(t){var e={};function i(r){if(e[r])return e[r].exports;var n=e[r]={i:r,l:!1,exports:{}};return t[r].call(n.exports,n,n.exports,i),n.l=!0,n.exports}return i.m=t,i.c=e,i.d=function(t,e,r){i.o(t,e)||Object.defineProperty(t,e,{enumerable:!0,get:r})},i.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},i.t=function(t,e){if(1&e&&(t=i(t)),8&e)return t;if(4&e&&"object"==typeof t&&t&&t.__esModule)return t;var r=Object.create(null);if(i.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:t}),2&e&&"string"!=typeof t)for(var n in t)i.d(r,n,function(e){return t[e]}.bind(null,n));return r},i.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return i.d(e,"a",e),e},i.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},i.p="",i(i.s=9)}([function(t,e,i){"use strict";t.exports=n,t.exports.default=n;var r=i(5);function n(t,e){if(!(this instanceof n))return new n(t,e);this._maxEntries=Math.max(4,t||9),this._minEntries=Math.max(2,Math.ceil(.4*this._maxEntries)),e&&this._initFormat(e),this.clear()}function o(t,e,i){if(!i)return e.indexOf(t);for(var r=0;r=t.minX&&e.maxY>=t.minY}function y(t){return{children:t,height:1,leaf:!0,minX:1/0,minY:1/0,maxX:-1/0,maxY:-1/0}}function v(t,e,i,n,o){for(var s,a=[e,i];a.length;)(i=a.pop())-(e=a.pop())<=n||(s=e+Math.ceil((i-e)/n/2)*n,r(t,s,e,i,o),a.push(e,s,s,i))}n.prototype={all:function(){return this._all(this.data,[])},search:function(t){var e=this.data,i=[],r=this.toBBox;if(!g(t,e))return i;for(var n,o,s,a,h=[];e;){for(n=0,o=e.children.length;n=0&&o[e].children.length>this._maxEntries;)this._split(o,e),e--;this._adjustParentBBoxes(n,o,e)},_split:function(t,e){var i=t[e],r=i.children.length,n=this._minEntries;this._chooseSplitAxis(i,n,r);var o=this._chooseSplitIndex(i,n,r),a=y(i.children.splice(o,i.children.length-o));a.height=i.height,a.leaf=i.leaf,s(i,this.toBBox),s(a,this.toBBox),e?t[e-1].children.push(a):this._splitRoot(i,a)},_splitRoot:function(t,e){this.data=y([t,e]),this.data.height=t.height+1,this.data.leaf=!1,s(this.data,this.toBBox)},_chooseSplitIndex:function(t,e,i){var r,n,o,s,h,l,u,c;for(l=u=1/0,r=e;r<=i-e;r++)s=f(n=a(t,0,r,this.toBBox),o=a(t,r,i,this.toBBox)),h=p(n)+p(o),s=e;n--)o=t.children[n],h(u,t.leaf?s(o):o),p+=c(u);return p},_adjustParentBBoxes:function(t,e,i){for(var r=i;r>=0;r--)h(e[r],t)},_condense:function(t){for(var e,i=t.length-1;i>=0;i--)0===t[i].children.length?i>0?(e=t[i-1].children).splice(e.indexOf(t[i]),1):this.clear():s(t[i],this.toBBox)},_initFormat:function(t){var e=["return a"," - b",";"];this.compareMinX=new Function("a","b",e.join(t[0])),this.compareMinY=new Function("a","b",e.join(t[1])),this.toBBox=new Function("a","return {minX: a"+t[0]+", minY: a"+t[1]+", maxX: a"+t[2]+", maxY: a"+t[3]+"};")}}},function(t,e,i){"use strict";t.exports=n;var r=i(6);function n(t){this.buf=ArrayBuffer.isView&&ArrayBuffer.isView(t)?t:new Uint8Array(t||0),this.pos=0,this.type=0,this.length=this.buf.length}n.Varint=0,n.Fixed64=1,n.Bytes=2,n.Fixed32=5;function o(t){return t.type===n.Bytes?t.readVarint()+t.pos:t.pos+1}function s(t,e,i){return i?4294967296*e+(t>>>0):4294967296*(e>>>0)+(t>>>0)}function a(t,e,i){var r=e<=16383?1:e<=2097151?2:e<=268435455?3:Math.ceil(Math.log(e)/(7*Math.LN2));i.realloc(r);for(var n=i.pos-1;n>=t;n--)i.buf[n+r]=i.buf[n]}function h(t,e){for(var i=0;i>>8,t[i+2]=e>>>16,t[i+3]=e>>>24}function m(t,e){return(t[e]|t[e+1]<<8|t[e+2]<<16)+(t[e+3]<<24)}n.prototype={destroy:function(){this.buf=null},readFields:function(t,e,i){for(i=i||this.length;this.pos>3,o=this.pos;this.type=7&r,t(n,e,this),this.pos===o&&this.skip(r)}return e},readMessage:function(t,e){return this.readFields(t,e,this.readVarint()+this.pos)},readFixed32:function(){var t=y(this.buf,this.pos);return this.pos+=4,t},readSFixed32:function(){var t=m(this.buf,this.pos);return this.pos+=4,t},readFixed64:function(){var t=y(this.buf,this.pos)+4294967296*y(this.buf,this.pos+4);return this.pos+=8,t},readSFixed64:function(){var t=y(this.buf,this.pos)+4294967296*m(this.buf,this.pos+4);return this.pos+=8,t},readFloat:function(){var t=r.read(this.buf,this.pos,!0,23,4);return this.pos+=4,t},readDouble:function(){var t=r.read(this.buf,this.pos,!0,52,8);return this.pos+=8,t},readVarint:function(t){var e,i,r=this.buf;return e=127&(i=r[this.pos++]),i<128?e:(e|=(127&(i=r[this.pos++]))<<7,i<128?e:(e|=(127&(i=r[this.pos++]))<<14,i<128?e:(e|=(127&(i=r[this.pos++]))<<21,i<128?e:function(t,e,i){var r,n,o=i.buf;if(n=o[i.pos++],r=(112&n)>>4,n<128)return s(t,r,e);if(n=o[i.pos++],r|=(127&n)<<3,n<128)return s(t,r,e);if(n=o[i.pos++],r|=(127&n)<<10,n<128)return s(t,r,e);if(n=o[i.pos++],r|=(127&n)<<17,n<128)return s(t,r,e);if(n=o[i.pos++],r|=(127&n)<<24,n<128)return s(t,r,e);if(n=o[i.pos++],r|=(1&n)<<31,n<128)return s(t,r,e);throw new Error("Expected varint not more than 10 bytes")}(e|=(15&(i=r[this.pos]))<<28,t,this))))},readVarint64:function(){return this.readVarint(!0)},readSVarint:function(){var t=this.readVarint();return t%2==1?(t+1)/-2:t/2},readBoolean:function(){return Boolean(this.readVarint())},readString:function(){var t=this.readVarint()+this.pos,e=function(t,e,i){var r="",n=e;for(;n239?4:h>223?3:h>191?2:1;if(n+u>i)break;1===u?h<128&&(l=h):2===u?128==(192&(o=t[n+1]))&&(l=(31&h)<<6|63&o)<=127&&(l=null):3===u?(o=t[n+1],s=t[n+2],128==(192&o)&&128==(192&s)&&((l=(15&h)<<12|(63&o)<<6|63&s)<=2047||l>=55296&&l<=57343)&&(l=null)):4===u&&(o=t[n+1],s=t[n+2],a=t[n+3],128==(192&o)&&128==(192&s)&&128==(192&a)&&((l=(15&h)<<18|(63&o)<<12|(63&s)<<6|63&a)<=65535||l>=1114112)&&(l=null)),null===l?(l=65533,u=1):l>65535&&(l-=65536,r+=String.fromCharCode(l>>>10&1023|55296),l=56320|1023&l),r+=String.fromCharCode(l),n+=u}return r}(this.buf,this.pos,t);return this.pos=t,e},readBytes:function(){var t=this.readVarint()+this.pos,e=this.buf.subarray(this.pos,t);return this.pos=t,e},readPackedVarint:function(t,e){var i=o(this);for(t=t||[];this.pos127;);else if(e===n.Bytes)this.pos=this.readVarint()+this.pos;else if(e===n.Fixed32)this.pos+=4;else{if(e!==n.Fixed64)throw new Error("Unimplemented type: "+e);this.pos+=8}},writeTag:function(t,e){this.writeVarint(t<<3|e)},realloc:function(t){for(var e=this.length||16;e268435455||t<0?function(t,e){var i,r;t>=0?(i=t%4294967296|0,r=t/4294967296|0):(r=~(-t/4294967296),4294967295^(i=~(-t%4294967296))?i=i+1|0:(i=0,r=r+1|0));if(t>=0x10000000000000000||t<-0x10000000000000000)throw new Error("Given varint doesn't fit into 10 bytes");e.realloc(10),function(t,e,i){i.buf[i.pos++]=127&t|128,t>>>=7,i.buf[i.pos++]=127&t|128,t>>>=7,i.buf[i.pos++]=127&t|128,t>>>=7,i.buf[i.pos++]=127&t|128,t>>>=7,i.buf[i.pos]=127&t}(i,0,e),function(t,e){var i=(7&t)<<4;if(e.buf[e.pos++]|=i|((t>>>=3)?128:0),!t)return;if(e.buf[e.pos++]=127&t|((t>>>=7)?128:0),!t)return;if(e.buf[e.pos++]=127&t|((t>>>=7)?128:0),!t)return;if(e.buf[e.pos++]=127&t|((t>>>=7)?128:0),!t)return;if(e.buf[e.pos++]=127&t|((t>>>=7)?128:0),!t)return;e.buf[e.pos++]=127&t}(r,e)}(t,this):(this.realloc(4),this.buf[this.pos++]=127&t|(t>127?128:0),t<=127||(this.buf[this.pos++]=127&(t>>>=7)|(t>127?128:0),t<=127||(this.buf[this.pos++]=127&(t>>>=7)|(t>127?128:0),t<=127||(this.buf[this.pos++]=t>>>7&127))))},writeSVarint:function(t){this.writeVarint(t<0?2*-t-1:2*t)},writeBoolean:function(t){this.writeVarint(Boolean(t))},writeString:function(t){t=String(t),this.realloc(4*t.length),this.pos++;var e=this.pos;this.pos=function(t,e,i){for(var r,n,o=0;o55295&&r<57344){if(!n){r>56319||o+1===e.length?(t[i++]=239,t[i++]=191,t[i++]=189):n=r;continue}if(r<56320){t[i++]=239,t[i++]=191,t[i++]=189,n=r;continue}r=n-55296<<10|r-56320|65536,n=null}else n&&(t[i++]=239,t[i++]=191,t[i++]=189,n=null);r<128?t[i++]=r:(r<2048?t[i++]=r>>6|192:(r<65536?t[i++]=r>>12|224:(t[i++]=r>>18|240,t[i++]=r>>12&63|128),t[i++]=r>>6&63|128),t[i++]=63&r|128)}return i}(this.buf,t,this.pos);var i=this.pos-e;i>=128&&a(e,i,this),this.pos=e-1,this.writeVarint(i),this.pos+=i},writeFloat:function(t){this.realloc(4),r.write(this.buf,t,this.pos,!0,23,4),this.pos+=4},writeDouble:function(t){this.realloc(8),r.write(this.buf,t,this.pos,!0,52,8),this.pos+=8},writeBytes:function(t){var e=t.length;this.writeVarint(e),this.realloc(e);for(var i=0;i=128&&a(i,r,this),this.pos=i-1,this.writeVarint(r),this.pos+=r},writeMessage:function(t,e,i){this.writeTag(t,n.Bytes),this.writeRawMessage(e,i)},writePackedVarint:function(t,e){this.writeMessage(t,h,e)},writePackedSVarint:function(t,e){this.writeMessage(t,l,e)},writePackedBoolean:function(t,e){this.writeMessage(t,c,e)},writePackedFloat:function(t,e){this.writeMessage(t,u,e)},writePackedDouble:function(t,e){this.writeMessage(t,p,e)},writePackedFixed32:function(t,e){this.writeMessage(t,d,e)},writePackedSFixed32:function(t,e){this.writeMessage(t,f,e)},writePackedFixed64:function(t,e){this.writeMessage(t,_,e)},writePackedSFixed64:function(t,e){this.writeMessage(t,g,e)},writeBytesField:function(t,e){this.writeTag(t,n.Bytes),this.writeBytes(e)},writeFixed32Field:function(t,e){this.writeTag(t,n.Fixed32),this.writeFixed32(e)},writeSFixed32Field:function(t,e){this.writeTag(t,n.Fixed32),this.writeSFixed32(e)},writeFixed64Field:function(t,e){this.writeTag(t,n.Fixed64),this.writeFixed64(e)},writeSFixed64Field:function(t,e){this.writeTag(t,n.Fixed64),this.writeSFixed64(e)},writeVarintField:function(t,e){this.writeTag(t,n.Varint),this.writeVarint(e)},writeSVarintField:function(t,e){this.writeTag(t,n.Varint),this.writeSVarint(e)},writeStringField:function(t,e){this.writeTag(t,n.Bytes),this.writeString(e)},writeFloatField:function(t,e){this.writeTag(t,n.Fixed32),this.writeFloat(e)},writeDoubleField:function(t,e){this.writeTag(t,n.Fixed64),this.writeDouble(e)},writeBooleanField:function(t,e){this.writeVarintField(t,Boolean(e))}}},function(t,e,i){var r=i(7);e.Processor=r},,,function(t,e,i){t.exports=function(){"use strict";function t(t,e,i){var r=t[e];t[e]=t[i],t[i]=r}function e(t,e){return te?1:0}return function(i,r,n,o,s){!function e(i,r,n,o,s){for(;o>n;){if(o-n>600){var a=o-n+1,h=r-n+1,l=Math.log(a),u=.5*Math.exp(2*l/3),p=.5*Math.sqrt(l*u*(a-u)/a)*(h-a/2<0?-1:1),c=Math.max(n,Math.floor(r-h*u/a+p)),d=Math.min(o,Math.floor(r+(a-h)*u/a+p));e(i,r,c,d,s)}var f=i[r],_=n,g=o;for(t(i,n,r),s(i[o],f)>0&&t(i,n,o);_0;)g--}0===s(i[n],f)?t(i,n,g):t(i,++g,o),g<=r&&(n=g+1),r<=g&&(o=g-1)}}(i,r,n||0,o||i.length-1,s||e)}}()},function(t,e){e.read=function(t,e,i,r,n){var o,s,a=8*n-r-1,h=(1<>1,u=-7,p=i?n-1:0,c=i?-1:1,d=t[e+p];for(p+=c,o=d&(1<<-u)-1,d>>=-u,u+=a;u>0;o=256*o+t[e+p],p+=c,u-=8);for(s=o&(1<<-u)-1,o>>=-u,u+=r;u>0;s=256*s+t[e+p],p+=c,u-=8);if(0===o)o=1-l;else{if(o===h)return s?NaN:1/0*(d?-1:1);s+=Math.pow(2,r),o-=l}return(d?-1:1)*s*Math.pow(2,o-r)},e.write=function(t,e,i,r,n,o){var s,a,h,l=8*o-n-1,u=(1<>1,c=23===n?Math.pow(2,-24)-Math.pow(2,-77):0,d=r?0:o-1,f=r?1:-1,_=e<0||0===e&&1/e<0?1:0;for(e=Math.abs(e),isNaN(e)||e===1/0?(a=isNaN(e)?1:0,s=u):(s=Math.floor(Math.log(e)/Math.LN2),e*(h=Math.pow(2,-s))<1&&(s--,h*=2),(e+=s+p>=1?c/h:c*Math.pow(2,1-p))*h>=2&&(s++,h/=2),s+p>=u?(a=0,s=u):s+p>=1?(a=(e*h-1)*Math.pow(2,n),s+=p):(a=e*Math.pow(2,p-1)*Math.pow(2,n),s=0));n>=8;t[i+d]=255&a,d+=f,a/=256,n-=8);for(s=s<0;t[i+d]=255&s,d+=f,s/=256,l-=8);t[i+d-f]|=128*_}},function(t,e,i){var r=i(8).newImageData;function n(t){var e=!0;try{new ImageData(10,10)}catch(t){e=!1}function i(t,i,r){return e?new ImageData(t,i,r):{data:t,width:i,height:r}}return function(e){var r,n,o=e.buffers,s=e.meta,a=e.imageOps,h=e.width,l=e.height,u=o.length,p=o[0].byteLength;if(a){var c=new Array(u);for(n=0;nthis._maxQueueLength;)this._queue.shift().callback(null,null)},s.prototype._dispatch=function(){if(0===this._running&&this._queue.length>0){var t=this._job=this._queue.shift(),e=t.inputs[0].width,i=t.inputs[0].height,r=t.inputs.map(function(t){return t.data.buffer}),n=this._workers.length;if(this._running=n,1===n)this._workers[0].postMessage({buffers:r,meta:t.meta,imageOps:this._imageOps,width:e,height:i},r);else for(var o=t.inputs[0].data.length,s=4*Math.ceil(o/4/n),a=0;a0},e.prototype.removeEventListener=function(t,e){var i=this.listeners_[t];if(i){var r=i.indexOf(e);t in this.pendingRemovals_?(i[r]=I,++this.pendingRemovals_[t]):(i.splice(r,1),0===i.length&&delete this.listeners_[t])}},e}(C),M={CHANGE:"change",CLEAR:"clear",CONTEXTMENU:"contextmenu",CLICK:"click",DBLCLICK:"dblclick",DRAGENTER:"dragenter",DRAGOVER:"dragover",DROP:"drop",ERROR:"error",KEYDOWN:"keydown",KEYPRESS:"keypress",LOAD:"load",MOUSEDOWN:"mousedown",MOUSEMOVE:"mousemove",MOUSEOUT:"mouseout",MOUSEUP:"mouseup",MOUSEWHEEL:"mousewheel",MSPOINTERDOWN:"MSPointerDown",RESIZE:"resize",TOUCHSTART:"touchstart",TOUCHMOVE:"touchmove",TOUCHEND:"touchend",WHEEL:"wheel"};var F=function(t){function e(){t.call(this),this.revision_=0}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.changed=function(){++this.revision_,this.dispatchEvent(M.CHANGE)},e.prototype.getRevision=function(){return this.revision_},e.prototype.on=function(t,e){if(Array.isArray(t)){for(var i=t.length,r=new Array(i),n=0;n0;)this.pop()},e.prototype.extend=function(t){for(var e=0,i=t.length;ee?1:t=0}function z(t,e,i){var r,n=t.length;if(t[0]<=e)return 0;if(e<=t[n-1])return n-1;if(i>0){for(r=1;r>>0,n=0;nn&&(h|=$.RIGHT),ao&&(h|=$.ABOVE),h===$.UNKNOWN&&(h=$.INTERSECTING),h}function ht(){return[1/0,1/0,-1/0,-1/0]}function lt(t,e,i,r,n){return n?(n[0]=t,n[1]=e,n[2]=i,n[3]=r,n):[t,e,i,r]}function ut(t){return lt(1/0,1/0,-1/0,-1/0,t)}function pt(t,e){var i=t[0],r=t[1];return lt(i,r,i,r,e)}function ct(t,e,i,r,n){return yt(ut(n),t,e,i,r)}function dt(t,e){return t[0]==e[0]&&t[2]==e[2]&&t[1]==e[1]&&t[3]==e[3]}function ft(t,e){return e[0]t[2]&&(t[2]=e[2]),e[1]t[3]&&(t[3]=e[3]),t}function _t(t,e){e[0]t[2]&&(t[2]=e[0]),e[1]t[3]&&(t[3]=e[1])}function gt(t,e){for(var i=0,r=e.length;ie[0]?r[0]=t[0]:r[0]=e[0],t[1]>e[1]?r[1]=t[1]:r[1]=e[1],t[2]=e[0]&&t[1]<=e[3]&&t[3]>=e[1]}function bt(t){return t[2]1?(i=n,r=o):h>0&&(i+=s*h,r+=a*h)}return Yt(t,e,i,r)}function Yt(t,e,i,r){var n=i-t,o=r-e;return n*n+o*o}function Bt(t){return 180*t/Math.PI}function Vt(t){return t*Math.PI/180}function Xt(t,e){var i=t%e;return i*e<0?i+e:i}function zt(t,e,i){return t+i*(e-t)} +/** + * @license + * Latitude/longitude spherical geodesy formulae taken from + * http://www.movable-type.co.uk/scripts/latlong.html + * Licensed under CC-BY-3.0. + */var Wt=6371008.8;function Kt(t,e,i){var r=i||Wt,n=Vt(t[1]),o=Vt(e[1]),s=(o-n)/2,a=Vt(e[0]-t[0])/2,h=Math.sin(s)*Math.sin(s)+Math.sin(a)*Math.sin(a)*Math.cos(n)*Math.cos(o);return 2*r*Math.atan2(Math.sqrt(h),Math.sqrt(1-h))}function Ht(t,e){for(var i=0,r=0,n=t.length;r1?i:2,o=e;void 0===o&&(o=n>2?t.slice():new Array(r));for(var s=re,a=0;as?h=s:h<-s&&(h=-s),o[a+1]=h}return o}function le(t,e,i){var r=t.length,n=i>1?i:2,o=e;void 0===o&&(o=n>2?t.slice():new Array(r));for(var s=0;s=2;--l)s[a+l]=e[a+l]}return s}}function we(t,e,i,r){var n=Ee(t),o=Ee(e);ge(n,o,Re(i)),ge(o,n,Re(r))}function Ie(t,e){if(t===e)return!0;var i=t.getUnits()===e.getUnits();return t.getCode()===e.getCode()?i:Le(t,e)===ve&&i}function Le(t,e){var i=ye(t.getCode(),e.getCode());return i||(i=me),i}function Oe(t,e){return Le(Ee(t),Ee(e))}function Pe(t,e,i){return Oe(e,i)(t,void 0,t.length)}function be(t,e,i){return Ft(t,Oe(e,i))}Te(ae),Te(de),function(t,e,i,r){t.forEach(function(t){e.forEach(function(e){ge(t,e,i),ge(e,t,r)})})}(de,ae,he,le);var Me=new Array(6);function Fe(t){return Ne(t,1,0,0,1,0,0)}function Ae(t,e){var i=t[0],r=t[1],n=t[2],o=t[3],s=t[4],a=t[5],h=e[0],l=e[1],u=e[2],p=e[3],c=e[4],d=e[5];return t[0]=i*h+n*l,t[1]=r*h+o*l,t[2]=i*u+n*p,t[3]=r*u+o*p,t[4]=i*c+n*d+s,t[5]=r*c+o*d+a,t}function Ne(t,e,i,r,n,o,s){return t[0]=e,t[1]=i,t[2]=r,t[3]=n,t[4]=o,t[5]=s,t}function Ge(t,e){return t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[4]=e[4],t[5]=e[5],t}function De(t,e){var i=e[0],r=e[1];return e[0]=t[0]*i+t[2]*r+t[4],e[1]=t[1]*i+t[3]*r+t[5],e}function ke(t,e){var i=Math.cos(e),r=Math.sin(e);return Ae(t,Ne(Me,i,r,-r,i,0,0))}function je(t,e,i){return Ae(t,Ne(Me,e,0,0,i,0,0))}function Ue(t,e,i){return Ae(t,Ne(Me,1,0,0,1,e,i))}function Ye(t,e,i,r,n,o,s,a){var h=Math.sin(o),l=Math.cos(o);return t[0]=r*l,t[1]=n*h,t[2]=-r*h,t[3]=n*l,t[4]=s*r*l-a*r*h+e,t[5]=s*n*h+a*n*l+i,t}function Be(t){var e=function(t){return t[0]*t[3]-t[1]*t[2]}(t);Y(0!==e,32);var i=t[0],r=t[1],n=t[2],o=t[3],s=t[4],a=t[5];return t[0]=o/e,t[1]=-r/e,t[2]=-n/e,t[3]=i/e,t[4]=(n*a-o*s)/e,t[5]=-(i*a-r*s)/e,t}var Ve=[1,0,0,1,0,0],Xe=function(t){function e(){t.call(this),this.extent_=[1/0,1/0,-1/0,-1/0],this.extentRevision_=-1,this.simplifiedGeometryCache={},this.simplifiedGeometryMaxMinSquaredTolerance=0,this.simplifiedGeometryRevision=0}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.clone=function(){return r()},e.prototype.closestPointXY=function(t,e,i,n){return r()},e.prototype.containsXY=function(t,e){return!1},e.prototype.getClosestPoint=function(t,e){var i=e||[NaN,NaN];return this.closestPointXY(t[0],t[1],i,1/0),i},e.prototype.intersectsCoordinate=function(t){return this.containsXY(t[0],t[1])},e.prototype.computeExtent=function(t){return r()},e.prototype.getExtent=function(t){return this.extentRevision_!=this.getRevision()&&(this.extent_=this.computeExtent(this.extent_),this.extentRevision_=this.getRevision()),function(t,e){return e?(e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],e):t}(this.extent_,t)},e.prototype.rotate=function(t,e){r()},e.prototype.scale=function(t,e,i){r()},e.prototype.simplify=function(t){return this.getSimplifiedGeometry(t*t)},e.prototype.getSimplifiedGeometry=function(t){return r()},e.prototype.getType=function(){return r()},e.prototype.applyTransform=function(t){r()},e.prototype.intersectsExtent=function(t){return r()},e.prototype.translate=function(t,e){r()},e.prototype.transform=function(t,e){var i=Ee(t),r=i.getUnits()==$t.TILE_PIXELS?function(t,r,n){var o=i.getExtent(),s=i.getWorldExtent(),a=Rt(s)/Rt(o);return Ye(Ve,s[0],s[3],a,-a,0,0,0),Gt(t,0,t.length,n,Ve,r),Oe(i,e)(t,r,n)}:Oe(i,e);return this.applyTransform(r),this},e}(D);function ze(t){var e;return t==At.XY?e=2:t==At.XYZ||t==At.XYM?e=3:t==At.XYZM&&(e=4),e}var We=function(t){function e(){t.call(this),this.layout=At.XY,this.stride=2,this.flatCoordinates=null}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.computeExtent=function(t){return ct(this.flatCoordinates,0,this.flatCoordinates.length,this.stride,t)},e.prototype.getCoordinates=function(){return r()},e.prototype.getFirstCoordinate=function(){return this.flatCoordinates.slice(0,this.stride)},e.prototype.getFlatCoordinates=function(){return this.flatCoordinates},e.prototype.getLastCoordinate=function(){return this.flatCoordinates.slice(this.flatCoordinates.length-this.stride)},e.prototype.getLayout=function(){return this.layout},e.prototype.getSimplifiedGeometry=function(t){if(this.simplifiedGeometryRevision!=this.getRevision()&&(p(this.simplifiedGeometryCache),this.simplifiedGeometryMaxMinSquaredTolerance=0,this.simplifiedGeometryRevision=this.getRevision()),t<0||0!==this.simplifiedGeometryMaxMinSquaredTolerance&&t<=this.simplifiedGeometryMaxMinSquaredTolerance)return this;var e=t.toString();if(this.simplifiedGeometryCache.hasOwnProperty(e))return this.simplifiedGeometryCache[e];var i=this.getSimplifiedGeometryInternal(t);return i.getFlatCoordinates().length1)a=i;else{if(c>0){for(var d=0;dn&&(n=l),o=a,s=h}return n}function Je(t,e,i,r,n){for(var o=0,s=i.length;o0;){for(var p=l.pop(),c=l.pop(),d=0,f=t[c],_=t[c+1],g=t[p],y=t[p+1],v=c+r;vd&&(u=v,d=m)}d>n&&(h[(u-e)/r]=1,c+r0&&_>d)&&(f<0&&g0&&g>f)?(a=p,h=c):(o[s++]=a,o[s++]=h,l=a,u=h,a=p,h=c)}}return o[s++]=a,o[s++]=h,s}function ui(t,e,i,r,n,o,s,a){for(var h=0,l=i.length;ho&&(l-a)*(o-h)-(n-a)*(u-h)>0&&s++:u<=o&&(l-a)*(o-h)-(n-a)*(u-h)<0&&s--,a=l,h=u}return 0!==s}function _i(t,e,i,r,n,o){if(0===i.length)return!1;if(!fi(t,e,i[0],r,n,o))return!1;for(var s=1,a=i.length;sx&&_i(t,e,i,r,l=(u+p)/2,f)&&(m=l,x=E),u=p}return isNaN(m)&&(m=n[o]),s?(s.push(m,f,x),s):[m,f,x]}function yi(t,e,i,r,n){for(var o=[],s=0,a=i.length;s=n[0]&&o[2]<=n[2]||(o[1]>=n[1]&&o[3]<=n[3]||vi(t,e,i,r,function(t,e){return function(t,e,i){var r=!1,n=at(t,e),o=at(t,i);if(n===$.INTERSECTING||o===$.INTERSECTING)r=!0;else{var s,a,h=t[0],l=t[1],u=t[2],p=t[3],c=e[0],d=e[1],f=i[0],_=i[1],g=(_-d)/(f-c);o&$.ABOVE&&!(n&$.ABOVE)&&(r=(s=f-(_-p)/g)>=h&&s<=u),r||!(o&$.RIGHT)||n&$.RIGHT||(r=(a=_-(f-u)*g)>=l&&a<=p),r||!(o&$.BELOW)||n&$.BELOW||(r=(s=f-(_-l)/g)>=h&&s<=u),r||!(o&$.LEFT)||n&$.LEFT||(r=(a=_-(f-h)*g)>=l&&a<=p)}return r}(n,t,e)}))))}function xi(t,e,i,r,n){if(!function(t,e,i,r,n){return!!(mi(t,e,i,r,n)||fi(t,e,i,r,n[0],n[1])||fi(t,e,i,r,n[0],n[3])||fi(t,e,i,r,n[2],n[1])||fi(t,e,i,r,n[2],n[3]))}(t,e,i[0],r,n))return!1;if(1===i.length)return!0;for(var o=1,s=i.length;o0}function Ti(t,e,i,r,n){for(var o=void 0!==n&&n,s=0,a=i.length;se?r:new Array(1+e-n).join("0")+r}function Ki(t,e){for(var i=(""+t).split("."),r=(""+e).split("."),n=0;ns)return 1;if(s>o)return-1}return 0}function Hi(t,e){return t[0]+=e[0],t[1]+=e[1],t}function Zi(t,e){var i,r,n=t[0],o=t[1],s=e[0],a=e[1],h=s[0],l=s[1],u=a[0],p=a[1],c=u-h,d=p-l,f=0===c&&0===d?0:(c*(n-h)+d*(o-l))/(c*c+d*d||0);return f<=0?(i=h,r=l):f>=1?(i=u,r=p):(i=h+f*c,r=l+f*d),[i,r]}function qi(t,e,i){var r=Xt(e+180,360)-180,n=Math.abs(3600*r),o=i||0,s=Math.pow(10,o),a=Math.floor(n/3600),h=Math.floor((n-3600*a)/60),l=n-3600*a-60*h;return(l=Math.ceil(l*s)/s)>=60&&(l=0,h+=1),h>=60&&(h=0,a+=1),a+"° "+Wi(h,2)+"′ "+Wi(l,2,o)+"″"+(0==r?"":" "+t.charAt(r<0?1:0))}function Ji(t,e,i){return t?e.replace("{x}",t[0].toFixed(i)).replace("{y}",t[1].toFixed(i)):""}function Qi(t,e){for(var i=!0,r=t.length-1;r>=0;--r)if(t[r]!=e[r]){i=!1;break}return i}function $i(t,e){var i=Math.cos(e),r=Math.sin(e),n=t[0]*i-t[1]*r,o=t[1]*i+t[0]*r;return t[0]=n,t[1]=o,t}function tr(t,e){return t[0]*=e,t[1]*=e,t}function er(t,e){var i=t[0]-e[0],r=t[1]-e[1];return i*i+r*r}function ir(t,e){return Math.sqrt(er(t,e))}function rr(t,e){return er(t,Zi(t,e))}function nr(t,e){return Ji(t,"{x}, {y}",e)}function or(t,e,i,r,n,o){var s=NaN,a=NaN,h=(i-e)/r;if(1===h)s=t[e],a=t[e+1];else if(2==h)s=(1-n)*t[e]+n*t[e+r],a=(1-n)*t[e+1]+n*t[e+r+1];else if(0!==h){for(var l=t[e],u=t[e+1],p=0,c=[0],d=e+r;d>1)],e))<0?s=r+1:(a=r,h=!n);return h?s:~s}(c,g);if(y<0){var v=(g-c[-y-2])/(c[-y-1]-c[-y-2]),m=e+(-y-2)*r;s=zt(t[m],t[m+r],v),a=zt(t[m+1],t[m+r+1],v)}else s=t[e+y*r],a=t[e+y*r+1]}return o?(o[0]=s,o[1]=a,o):[s,a]}function sr(t,e,i,r,n,o){if(i==e)return null;var s;if(n>1;n0&&g.length>0;)o=g.pop(),u=f.pop(),c=_.pop(),(h=o.toString())in y||(l.push(c[0],c[1]),y[h]=!0),s=g.pop(),p=f.pop(),d=_.pop(),Ut((n=e(r=t(a=(o+s)/2)))[0],n[1],c[0],c[1],d[0],d[1])=1024){var n=0;for(var o in t)0==(3&n++)&&(delete t[o],--e)}r=function(t){var e,i,r,n,o;cr.exec(t)&&(t=function(t){var e=document.createElement("div");if(e.style.color=t,""!==e.style.color){document.body.appendChild(e);var i=getComputedStyle(e).color;return document.body.removeChild(e),i}return""}(t));if(pr.exec(t)){var s,a=t.length-1;s=a<=4?1:2;var h=4===a||8===a;e=parseInt(t.substr(1+0*s,s),16),i=parseInt(t.substr(1+1*s,s),16),r=parseInt(t.substr(1+2*s,s),16),n=h?parseInt(t.substr(1+3*s,s),16):255,1==s&&(e=(e<<4)+e,i=(i<<4)+i,r=(r<<4)+r,h&&(n=(n<<4)+n)),o=[e,i,r,n/255]}else 0==t.indexOf("rgba(")?gr(o=t.slice(5,-1).split(",").map(Number)):0==t.indexOf("rgb(")?((o=t.slice(4,-1).split(",").map(Number)).push(1),gr(o)):Y(!1,14);return o}(i),t[i]=r,++e}return r}}();function _r(t){return Array.isArray(t)?t:fr(t)}function gr(t){return t[0]=kt(t[0]+.5|0,0,255),t[1]=kt(t[1]+.5|0,0,255),t[2]=kt(t[2]+.5|0,0,255),t[3]=kt(t[3],0,1),t}function yr(t){var e=t[0];e!=(0|e)&&(e=e+.5|0);var i=t[1];i!=(0|i)&&(i=i+.5|0);var r=t[2];return r!=(0|r)&&(r=r+.5|0),"rgba("+e+","+i+","+r+","+(void 0===t[3]?1:t[3])+")"}var vr=function(t){var e=t||{};this.color_=void 0!==e.color?e.color:null,this.checksum_=void 0};vr.prototype.clone=function(){var t=this.getColor();return new vr({color:Array.isArray(t)?t.slice():t||void 0})},vr.prototype.getColor=function(){return this.color_},vr.prototype.setColor=function(t){this.color_=t,this.checksum_=void 0},vr.prototype.getChecksum=function(){if(void 0===this.checksum_){var t=this.color_;t?Array.isArray(t)||"string"==typeof t?this.checksum_="f"+dr(t):this.checksum_=o(this.color_):this.checksum_="f-"}return this.checksum_};var mr=vr,xr=function(t){var e=t||{};this.color_=void 0!==e.color?e.color:null,this.lineCap_=e.lineCap,this.lineDash_=void 0!==e.lineDash?e.lineDash:null,this.lineDashOffset_=e.lineDashOffset,this.lineJoin_=e.lineJoin,this.miterLimit_=e.miterLimit,this.width_=e.width,this.checksum_=void 0};xr.prototype.clone=function(){var t=this.getColor();return new xr({color:Array.isArray(t)?t.slice():t||void 0,lineCap:this.getLineCap(),lineDash:this.getLineDash()?this.getLineDash().slice():void 0,lineDashOffset:this.getLineDashOffset(),lineJoin:this.getLineJoin(),miterLimit:this.getMiterLimit(),width:this.getWidth()})},xr.prototype.getColor=function(){return this.color_},xr.prototype.getLineCap=function(){return this.lineCap_},xr.prototype.getLineDash=function(){return this.lineDash_},xr.prototype.getLineDashOffset=function(){return this.lineDashOffset_},xr.prototype.getLineJoin=function(){return this.lineJoin_},xr.prototype.getMiterLimit=function(){return this.miterLimit_},xr.prototype.getWidth=function(){return this.width_},xr.prototype.setColor=function(t){this.color_=t,this.checksum_=void 0},xr.prototype.setLineCap=function(t){this.lineCap_=t,this.checksum_=void 0},xr.prototype.setLineDash=function(t){this.lineDash_=t,this.checksum_=void 0},xr.prototype.setLineDashOffset=function(t){this.lineDashOffset_=t,this.checksum_=void 0},xr.prototype.setLineJoin=function(t){this.lineJoin_=t,this.checksum_=void 0},xr.prototype.setMiterLimit=function(t){this.miterLimit_=t,this.checksum_=void 0},xr.prototype.setWidth=function(t){this.width_=t,this.checksum_=void 0},xr.prototype.getChecksum=function(){return void 0===this.checksum_&&(this.checksum_="s",this.color_?"string"==typeof this.color_?this.checksum_+=this.color_:this.checksum_+=o(this.color_):this.checksum_+="-",this.checksum_+=","+(void 0!==this.lineCap_?this.lineCap_.toString():"-")+","+(this.lineDash_?this.lineDash_.toString():"-")+","+(void 0!==this.lineDashOffset_?this.lineDashOffset_:"-")+","+(void 0!==this.lineJoin_?this.lineJoin_:"-")+","+(void 0!==this.miterLimit_?this.miterLimit_.toString():"-")+","+(void 0!==this.width_?this.width_.toString():"-")),this.checksum_};var Er=xr,Sr="point",Tr="line",Cr=function(t){var e=t||{};this.font_=e.font,this.rotation_=e.rotation,this.rotateWithView_=e.rotateWithView,this.scale_=e.scale,this.text_=e.text,this.textAlign_=e.textAlign,this.textBaseline_=e.textBaseline,this.fill_=void 0!==e.fill?e.fill:new mr({color:"#333"}),this.maxAngle_=void 0!==e.maxAngle?e.maxAngle:Math.PI/4,this.placement_=void 0!==e.placement?e.placement:Sr,this.overflow_=!!e.overflow,this.stroke_=void 0!==e.stroke?e.stroke:null,this.offsetX_=void 0!==e.offsetX?e.offsetX:0,this.offsetY_=void 0!==e.offsetY?e.offsetY:0,this.backgroundFill_=e.backgroundFill?e.backgroundFill:null,this.backgroundStroke_=e.backgroundStroke?e.backgroundStroke:null,this.padding_=void 0===e.padding?null:e.padding};Cr.prototype.clone=function(){return new Cr({font:this.getFont(),placement:this.getPlacement(),maxAngle:this.getMaxAngle(),overflow:this.getOverflow(),rotation:this.getRotation(),rotateWithView:this.getRotateWithView(),scale:this.getScale(),text:this.getText(),textAlign:this.getTextAlign(),textBaseline:this.getTextBaseline(),fill:this.getFill()?this.getFill().clone():void 0,stroke:this.getStroke()?this.getStroke().clone():void 0,offsetX:this.getOffsetX(),offsetY:this.getOffsetY(),backgroundFill:this.getBackgroundFill()?this.getBackgroundFill().clone():void 0,backgroundStroke:this.getBackgroundStroke()?this.getBackgroundStroke().clone():void 0})},Cr.prototype.getOverflow=function(){return this.overflow_},Cr.prototype.getFont=function(){return this.font_},Cr.prototype.getMaxAngle=function(){return this.maxAngle_},Cr.prototype.getPlacement=function(){return this.placement_},Cr.prototype.getOffsetX=function(){return this.offsetX_},Cr.prototype.getOffsetY=function(){return this.offsetY_},Cr.prototype.getFill=function(){return this.fill_},Cr.prototype.getRotateWithView=function(){return this.rotateWithView_},Cr.prototype.getRotation=function(){return this.rotation_},Cr.prototype.getScale=function(){return this.scale_},Cr.prototype.getStroke=function(){return this.stroke_},Cr.prototype.getText=function(){return this.text_},Cr.prototype.getTextAlign=function(){return this.textAlign_},Cr.prototype.getTextBaseline=function(){return this.textBaseline_},Cr.prototype.getBackgroundFill=function(){return this.backgroundFill_},Cr.prototype.getBackgroundStroke=function(){return this.backgroundStroke_},Cr.prototype.getPadding=function(){return this.padding_},Cr.prototype.setOverflow=function(t){this.overflow_=t},Cr.prototype.setFont=function(t){this.font_=t},Cr.prototype.setMaxAngle=function(t){this.maxAngle_=t},Cr.prototype.setOffsetX=function(t){this.offsetX_=t},Cr.prototype.setOffsetY=function(t){this.offsetY_=t},Cr.prototype.setPlacement=function(t){this.placement_=t},Cr.prototype.setFill=function(t){this.fill_=t},Cr.prototype.setRotation=function(t){this.rotation_=t},Cr.prototype.setScale=function(t){this.scale_=t},Cr.prototype.setStroke=function(t){this.stroke_=t},Cr.prototype.setText=function(t){this.text_=t},Cr.prototype.setTextAlign=function(t){this.textAlign_=t},Cr.prototype.setTextBaseline=function(t){this.textBaseline_=t},Cr.prototype.setBackgroundFill=function(t){this.backgroundFill_=t},Cr.prototype.setBackgroundStroke=function(t){this.backgroundStroke_=t},Cr.prototype.setPadding=function(t){this.padding_=t};var Rr=Cr,wr=new Er({color:"rgba(0,0,0,0.2)"}),Ir=[90,45,30,20,10,5,2,1,.5,.2,.1,.05,.01,.005,.002,.001],Lr=function(t){var e=t||{};this.map_=null,this.postcomposeListenerKey_=null,this.projection_=null,this.maxLat_=1/0,this.maxLon_=1/0,this.minLat_=-1/0,this.minLon_=-1/0,this.maxLatP_=1/0,this.maxLonP_=1/0,this.minLatP_=-1/0,this.minLonP_=-1/0,this.targetSize_=void 0!==e.targetSize?e.targetSize:100,this.maxLines_=void 0!==e.maxLines?e.maxLines:100,this.meridians_=[],this.parallels_=[],this.strokeStyle_=void 0!==e.strokeStyle?e.strokeStyle:wr,this.fromLonLatTransform_=void 0,this.toLonLatTransform_=void 0,this.projectionCenterLonLat_=null,this.meridiansLabels_=null,this.parallelsLabels_=null,1==e.showLabels&&(this.lonLabelFormatter_=void 0==e.lonLabelFormatter?qi.bind(this,"EW"):e.lonLabelFormatter,this.latLabelFormatter_=void 0==e.latLabelFormatter?qi.bind(this,"NS"):e.latLabelFormatter,this.lonLabelPosition_=void 0==e.lonLabelPosition?0:e.lonLabelPosition,this.latLabelPosition_=void 0==e.latLabelPosition?1:e.latLabelPosition,this.lonLabelStyle_=void 0!==e.lonLabelStyle?e.lonLabelStyle:new Rr({font:"12px Calibri,sans-serif",textBaseline:"bottom",fill:new mr({color:"rgba(0,0,0,1)"}),stroke:new Er({color:"rgba(255,255,255,1)",width:3})}),this.latLabelStyle_=void 0!==e.latLabelStyle?e.latLabelStyle:new Rr({font:"12px Calibri,sans-serif",textAlign:"end",fill:new mr({color:"rgba(0,0,0,1)"}),stroke:new Er({color:"rgba(255,255,255,1)",width:3})}),this.meridiansLabels_=[],this.parallelsLabels_=[]),this.intervals_=void 0!==e.intervals?e.intervals:Ir,this.setMap(void 0!==e.map?e.map:null)};Lr.prototype.addMeridian_=function(t,e,i,r,n,o){var s=this.getMeridian_(t,e,i,r,o);if(Pt(s.getExtent(),n)){if(this.meridiansLabels_){var a=this.getMeridianPoint_(s,n,o);this.meridiansLabels_[o]={geom:a,text:this.lonLabelFormatter_(t)}}this.meridians_[o++]=s}return o},Lr.prototype.getMeridianPoint_=function(t,e,i){var r,n=t.getFlatCoordinates(),o=Math.max(e[1],n[1]),s=Math.min(e[3],n[n.length-1]),a=kt(e[1]+Math.abs(e[1]-e[3])*this.lonLabelPosition_,o,s),h=[n[0],a];return i in this.meridiansLabels_?(r=this.meridiansLabels_[i].geom).setCoordinates(h):r=new ci(h),r},Lr.prototype.addParallel_=function(t,e,i,r,n,o){var s=this.getParallel_(t,e,i,r,o);if(Pt(s.getExtent(),n)){if(this.parallelsLabels_){var a=this.getParallelPoint_(s,n,o);this.parallelsLabels_[o]={geom:a,text:this.latLabelFormatter_(t)}}this.parallels_[o++]=s}return o},Lr.prototype.getParallelPoint_=function(t,e,i){var r,n=t.getFlatCoordinates(),o=Math.max(e[0],n[0]),s=Math.min(e[2],n[n.length-2]),a=[kt(e[0]+Math.abs(e[0]-e[2])*this.latLabelPosition_,o,s),n[1]];return i in this.parallelsLabels_?(r=this.parallelsLabels_[i].geom).setCoordinates(a):r=new ci(a),r},Lr.prototype.createGraticule_=function(t,e,i,r){var n=this.getInterval_(i);if(-1==n)return this.meridians_.length=this.parallels_.length=0,this.meridiansLabels_&&(this.meridiansLabels_.length=0),void(this.parallelsLabels_&&(this.parallelsLabels_.length=0));var o,s,a,h,l=this.toLonLatTransform_(e),u=l[0],p=l[1],c=this.maxLines_,d=[Math.max(t[0],this.minLonP_),Math.max(t[1],this.minLatP_),Math.min(t[2],this.maxLonP_),Math.min(t[3],this.maxLatP_)],f=(d=be(d,this.projection_,"EPSG:4326"))[3],_=d[2],g=d[1],y=d[0];for(h=kt(u=Math.floor(u/n)*n,this.minLon_,this.maxLon_),s=this.addMeridian_(h,g,f,r,t,0),o=0;h!=this.minLon_&&o++0&&this.points_[i+2]>t;)i-=3;var r=this.points_[e+2]-this.points_[i+2];if(r<1e3/60)return!1;var n=this.points_[e]-this.points_[i],o=this.points_[e+1]-this.points_[i+1];return this.angle_=Math.atan2(o,n),this.initialVelocity_=Math.sqrt(n*n+o*o)/r,this.initialVelocity_>this.minVelocity_},Pr.prototype.getDistance=function(){return(this.minVelocity_-this.initialVelocity_)/this.decay_},Pr.prototype.getAngle=function(){return this.angle_};var br=Pr,Mr=function(t){function e(e,i,r){t.call(this,e),this.map=i,this.frameState=void 0!==r?r:null}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e}(P),Fr=function(t){function e(e,i,r,n,o){t.call(this,e,i,o),this.originalEvent=r,this.pixel=i.getEventPixel(r),this.coordinate=i.getCoordinateFromPixel(this.pixel),this.dragging=void 0!==n&&n}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.preventDefault=function(){t.prototype.preventDefault.call(this),this.originalEvent.preventDefault()},e.prototype.stopPropagation=function(){t.prototype.stopPropagation.call(this),this.originalEvent.stopPropagation()},e}(Mr),Ar={SINGLECLICK:"singleclick",CLICK:M.CLICK,DBLCLICK:M.DBLCLICK,POINTERDRAG:"pointerdrag",POINTERMOVE:"pointermove",POINTERDOWN:"pointerdown",POINTERUP:"pointerup",POINTEROVER:"pointerover",POINTEROUT:"pointerout",POINTERENTER:"pointerenter",POINTERLEAVE:"pointerleave",POINTERCANCEL:"pointercancel"},Nr=function(t){function e(e,i,r,n,o){t.call(this,e,i,r.originalEvent,n,o),this.pointerEvent=r}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e}(Fr),Gr={POINTERMOVE:"pointermove",POINTERDOWN:"pointerdown",POINTERUP:"pointerup",POINTEROVER:"pointerover",POINTEROUT:"pointerout",POINTERENTER:"pointerenter",POINTERLEAVE:"pointerleave",POINTERCANCEL:"pointercancel"},Dr=function(t,e){this.dispatcher=t,this.mapping_=e};Dr.prototype.getEvents=function(){return Object.keys(this.mapping_)},Dr.prototype.getHandlerForEvent=function(t){return this.mapping_[t]};var kr=Dr,jr=1,Ur="mouse";function Yr(t){if(!this.isEventSimulatedFromTouch_(t)){jr.toString()in this.pointerMap&&this.cancel(t);var e=Wr(t,this.dispatcher);this.pointerMap[jr.toString()]=t,this.dispatcher.down(e,t)}}function Br(t){if(!this.isEventSimulatedFromTouch_(t)){var e=Wr(t,this.dispatcher);this.dispatcher.move(e,t)}}function Vr(t){if(!this.isEventSimulatedFromTouch_(t)){var e=this.pointerMap[jr.toString()];if(e&&e.button===t.button){var i=Wr(t,this.dispatcher);this.dispatcher.up(i,t),this.cleanupMouse()}}}function Xr(t){if(!this.isEventSimulatedFromTouch_(t)){var e=Wr(t,this.dispatcher);this.dispatcher.enterOver(e,t)}}function zr(t){if(!this.isEventSimulatedFromTouch_(t)){var e=Wr(t,this.dispatcher);this.dispatcher.leaveOut(e,t)}}function Wr(t,e){var i=e.cloneEvent(t,t),r=i.preventDefault;return i.preventDefault=function(){t.preventDefault(),r()},i.pointerId=jr,i.isPrimary=!0,i.pointerType=Ur,i}var Kr=function(t){function e(e){var i={mousedown:Yr,mousemove:Br,mouseup:Vr,mouseover:Xr,mouseout:zr};t.call(this,e,i),this.pointerMap=e.pointerMap,this.lastTouches=[]}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.isEventSimulatedFromTouch_=function(t){for(var e=this.lastTouches,i=t.clientX,r=t.clientY,n=0,o=e.length,s=void 0;n=e.length){for(var n=[],o=0;o-1;r&&t.splice(i,1)}(e,r)},this.dedupTimeout_)}},e}(kr),Sn=[["bubbles",!1],["cancelable",!1],["view",null],["detail",null],["screenX",0],["screenY",0],["clientX",0],["clientY",0],["ctrlKey",!1],["altKey",!1],["shiftKey",!1],["metaKey",!1],["button",0],["relatedTarget",null],["buttons",0],["pointerId",0],["width",0],["height",0],["pressure",0],["tiltX",0],["tiltY",0],["pointerType",""],["hwTimestamp",0],["isPrimary",!1],["type",""],["target",null],["currentTarget",null],["which",0]],Tn=function(t){function e(e){t.call(this),this.element_=e,this.pointerMap={},this.eventMap_={},this.eventSourceList_=[],this.registerSources()}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.registerSources=function(){if(Yi)this.registerSource("native",new dn(this));else if(Bi)this.registerSource("ms",new nn(this));else{var t=new Kr(this);this.registerSource("mouse",t),Ui&&this.registerSource("touch",new En(this,t))}this.register_()},e.prototype.registerSource=function(t,e){var i=e,r=i.getEvents();r&&(r.forEach(function(t){var e=i.getHandlerForEvent(t);e&&(this.eventMap_[t]=e.bind(i))}.bind(this)),this.eventSourceList_.push(i))},e.prototype.register_=function(){for(var t=this.eventSourceList_.length,e=0;ethis.moveTolerance_||Math.abs(t.clientY-this.down_.clientY)>this.moveTolerance_},e.prototype.disposeInternal=function(){this.relayedListenerKey_&&(E(this.relayedListenerKey_),this.relayedListenerKey_=null),this.pointerdownListenerKey_&&(E(this.pointerdownListenerKey_),this.pointerdownListenerKey_=null),this.dragListenerKeys_.forEach(E),this.dragListenerKeys_.length=0,this.documentPointerEventHandler_&&(this.documentPointerEventHandler_.dispose(),this.documentPointerEventHandler_=null),this.pointerEventHandler_&&(this.pointerEventHandler_.dispose(),this.pointerEventHandler_=null),t.prototype.disposeInternal.call(this)},e}(b),Rn="postrender",wn="movestart",In="moveend",Ln={LAYERGROUP:"layergroup",SIZE:"size",TARGET:"target",VIEW:"view"},On={IDLE:0,LOADING:1,LOADED:2,ERROR:3,EMPTY:4,ABORT:5},Pn=function(t,e){this.priorityFunction_=t,this.keyFunction_=e,this.elements_=[],this.priorities_=[],this.queuedElements_={}};Pn.prototype.clear=function(){this.elements_.length=0,this.priorities_.length=0,p(this.queuedElements_)},Pn.prototype.dequeue=function(){var t=this.elements_,e=this.priorities_,i=t[0];1==t.length?(t.length=0,e.length=0):(t[0]=t.pop(),e[0]=e.pop(),this.siftUp_(0));var r=this.keyFunction_(i);return delete this.queuedElements_[r],i},Pn.prototype.enqueue=function(t){Y(!(this.keyFunction_(t)in this.queuedElements_),31);var e=this.priorityFunction_(t);return e!=1/0&&(this.elements_.push(t),this.priorities_.push(e),this.queuedElements_[this.keyFunction_(t)]=!0,this.siftDown_(0,this.elements_.length-1),!0)},Pn.prototype.getCount=function(){return this.elements_.length},Pn.prototype.getLeftChildIndex_=function(t){return 2*t+1},Pn.prototype.getRightChildIndex_=function(t){return 2*t+2},Pn.prototype.getParentIndex_=function(t){return t-1>>1},Pn.prototype.heapify_=function(){var t;for(t=(this.elements_.length>>1)-1;t>=0;t--)this.siftUp_(t)},Pn.prototype.isEmpty=function(){return 0===this.elements_.length},Pn.prototype.isKeyQueued=function(t){return t in this.queuedElements_},Pn.prototype.isQueued=function(t){return this.isKeyQueued(this.keyFunction_(t))},Pn.prototype.siftUp_=function(t){for(var e=this.elements_,i=this.priorities_,r=e.length,n=e[t],o=i[t],s=t;t>1;){var a=this.getLeftChildIndex_(t),h=this.getRightChildIndex_(t),l=ht;){var s=this.getParentIndex_(e);if(!(r[s]>o))break;i[e]=i[s],r[e]=r[s],e=s}i[e]=n,r[e]=o},Pn.prototype.reprioritize=function(){var t,e,i,r=this.priorityFunction_,n=this.elements_,o=this.priorities_,s=0,a=n.length;for(e=0;e0;)n=(r=this.dequeue()[0]).getKey(),(i=r.getState())===On.ABORT?s=!0:i!==On.IDLE||n in this.tilesLoadingKeys_||(this.tilesLoadingKeys_[n]=!0,++this.tilesLoading_,++o,r.load());0===o&&s&&this.tileChangeCallback_()},e}(bn),Fn=42,An=256;function Nn(t){return t}function Gn(t,e){return void 0!==t?0:void 0}function Dn(t,e){return void 0!==t?t+e:void 0}var kn=0,jn=1,Un="center",Yn="resolution",Bn="rotation";function Vn(t){return Math.pow(t,3)}function Xn(t){return 1-Vn(1-t)}function zn(t){return 3*t*t-2*t*t*t}function Wn(t){return t}var Kn=0;function Hn(t,e){setTimeout(function(){t(e)},0)}function Zn(t){return!(t.sourceCenter&&t.targetCenter&&!Qi(t.sourceCenter,t.targetCenter))&&(t.sourceResolution===t.targetResolution&&t.sourceRotation===t.targetRotation)}var qn=function(t){function e(e){t.call(this);var i=u({},e);this.hints_=[0,0],this.animations_=[],this.updateAnimationKey_,this.updateAnimations_=this.updateAnimations_.bind(this),this.projection_=Ce(i.projection,"EPSG:3857"),this.applyOptions_(i)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.applyOptions_=function(t){var e={};e[Un]=void 0!==t.center?t.center:null;var i=function(t){var e,i,r,n=void 0!==t.minZoom?t.minZoom:Kn,o=void 0!==t.maxZoom?t.maxZoom:28,s=void 0!==t.zoomFactor?t.zoomFactor:2;if(void 0!==t.resolutions){var a=t.resolutions;i=a[n],r=void 0!==a[o]?a[o]:a[a.length-1],e=function(t){return function(e,i,r){if(void 0!==e){var n=z(t,e,r);n=kt(n+i,0,t.length-1);var o=Math.floor(n);if(n!=o&&o1&&"function"==typeof arguments[r-1]&&(e=arguments[r-1],--r),!this.isDef()){var n=arguments[r-1];return n.center&&this.setCenter(n.center),void 0!==n.zoom&&this.setZoom(n.zoom),void 0!==n.rotation&&this.setRotation(n.rotation),void(e&&Hn(e,!0))}for(var o=Date.now(),s=this.getCenter().slice(),a=this.getResolution(),h=this.getRotation(),l=[],u=0;u0},e.prototype.getInteracting=function(){return this.hints_[jn]>0},e.prototype.cancelAnimations=function(){this.setHint(kn,-this.hints_[kn]);for(var t=0,e=this.animations_.length;t=0;--i){for(var r=this.animations_[i],n=!0,o=0,s=r.length;o0?h/a.duration:1;l>=1?(a.complete=!0,l=1):n=!1;var u=a.easing(l);if(a.sourceCenter){var p=a.sourceCenter[0],c=a.sourceCenter[1],d=p+u*(a.targetCenter[0]-p),f=c+u*(a.targetCenter[1]-c);this.set(Un,[d,f])}if(a.sourceResolution&&a.targetResolution){var _=1===u?a.targetResolution:a.sourceResolution+u*(a.targetResolution-a.sourceResolution);a.anchor&&this.set(Un,this.calculateCenterZoom(_,a.anchor)),this.set(Yn,_)}if(void 0!==a.sourceRotation&&void 0!==a.targetRotation){var g=1===u?Xt(a.targetRotation+Math.PI,2*Math.PI)-Math.PI:a.sourceRotation+u*(a.targetRotation-a.sourceRotation);a.anchor&&this.set(Un,this.calculateCenterRotate(g,a.anchor)),this.set(Bn,g)}if(e=!0,!a.complete)break}}if(n){this.animations_[i]=null,this.setHint(kn,-1);var y=r[0].callback;y&&Hn(y,!0)}}this.animations_=this.animations_.filter(Boolean),e&&void 0===this.updateAnimationKey_&&(this.updateAnimationKey_=requestAnimationFrame(this.updateAnimations_))}},e.prototype.calculateCenterRotate=function(t,e){var i,r=this.getCenter();return void 0!==r&&($i(i=[r[0]-e[0],r[1]-e[1]],t-this.getRotation()),Hi(i,e)),i},e.prototype.calculateCenterZoom=function(t,e){var i,r=this.getCenter(),n=this.getResolution();void 0!==r&&void 0!==n&&(i=[e[0]-t*(e[0]-r[0])/n,e[1]-t*(e[1]-r[1])/n]);return i},e.prototype.getSizeFromViewport_=function(){var t=[100,100],e='.ol-viewport[data-view="'+o(this)+'"]',i=document.querySelector(e);if(i){var r=getComputedStyle(i);t[0]=parseInt(r.width,10),t[1]=parseInt(r.height,10)}return t},e.prototype.constrainCenter=function(t){return this.constraints_.center(t)},e.prototype.constrainResolution=function(t,e,i){var r=e||0,n=i||0;return this.constraints_.resolution(t,r,n)},e.prototype.constrainRotation=function(t,e){var i=e||0;return this.constraints_.rotation(t,i)},e.prototype.getCenter=function(){return this.get(Un)},e.prototype.getConstraints=function(){return this.constraints_},e.prototype.getHints=function(t){return void 0!==t?(t[0]=this.hints_[0],t[1]=this.hints_[1],t):this.hints_.slice()},e.prototype.calculateExtent=function(t){var e=t||this.getSizeFromViewport_(),i=this.getCenter();Y(i,1);var r=this.getResolution();Y(void 0!==r,2);var n=this.getRotation();return Y(void 0!==n,3),Ct(i,r,n,e)},e.prototype.getMaxResolution=function(){return this.maxResolution_},e.prototype.getMinResolution=function(){return this.minResolution_},e.prototype.getMaxZoom=function(){return this.getZoomForResolution(this.minResolution_)},e.prototype.setMaxZoom=function(t){this.applyOptions_(this.getUpdatedOptions_({maxZoom:t}))},e.prototype.getMinZoom=function(){return this.getZoomForResolution(this.maxResolution_)},e.prototype.setMinZoom=function(t){this.applyOptions_(this.getUpdatedOptions_({minZoom:t}))},e.prototype.getProjection=function(){return this.projection_},e.prototype.getResolution=function(){return this.get(Yn)},e.prototype.getResolutions=function(){return this.resolutions_},e.prototype.getResolutionForExtent=function(t,e){var i=e||this.getSizeFromViewport_(),r=Ot(t)/i[0],n=Rt(t)/i[1];return Math.max(r,n)},e.prototype.getResolutionForValueFunction=function(t){var e=t||2,i=this.maxResolution_,r=this.minResolution_,n=Math.log(i/r)/Math.log(e);return function(t){return i/Math.pow(e,t*n)}},e.prototype.getRotation=function(){return this.get(Bn)},e.prototype.getValueForResolutionFunction=function(t){var e=t||2,i=this.maxResolution_,r=this.minResolution_,n=Math.log(i/r)/Math.log(e);return function(t){return Math.log(i/t)/Math.log(e)/n}},e.prototype.getState=function(t){var e=this.getCenter(),i=this.getProjection(),r=this.getResolution(),n=r/t,o=this.getRotation();return{center:[Math.round(e[0]/n)*n,Math.round(e[1]/n)*n],projection:void 0!==i?i:null,resolution:r,rotation:o,zoom:this.getZoom()}},e.prototype.getZoom=function(){var t,e=this.getResolution();return void 0!==e&&(t=this.getZoomForResolution(e)),t},e.prototype.getZoomForResolution=function(t){var e,i,r=this.minZoom_||0;if(this.resolutions_){var n=z(this.resolutions_,t,1);r=n,e=this.resolutions_[n],i=n==this.resolutions_.length-1?2:e/this.resolutions_[n+1]}else e=this.maxResolution_,i=this.zoomFactor_;return r+Math.log(e/t)/Math.log(i)},e.prototype.getResolutionForZoom=function(t){return this.constrainResolution(this.maxResolution_,t-this.minZoom_,0)},e.prototype.fit=function(t,e){var i,r=e||{},n=r.size;n||(n=this.getSizeFromViewport_()),Y(Array.isArray(t)||"function"==typeof t.getSimplifiedGeometry,24),Array.isArray(t)?(Y(!bt(t),25),i=Oi(t)):t.getType()===Nt.CIRCLE?(i=Oi(t=t.getExtent())).rotate(this.getRotation(),Tt(t)):i=t;var o,s=void 0!==r.padding?r.padding:[0,0,0,0],a=void 0===r.constrainResolution||r.constrainResolution,h=void 0!==r.nearest&&r.nearest;o=void 0!==r.minResolution?r.minResolution:void 0!==r.maxZoom?this.constrainResolution(this.maxResolution_,r.maxZoom-this.minZoom_,0):0;for(var l=i.getFlatCoordinates(),u=this.getRotation(),p=Math.cos(-u),c=Math.sin(-u),d=1/0,f=1/0,_=-1/0,g=-1/0,y=i.getStride(),v=0,m=l.length;v=0;i--){var r=e[i];if(r.getActive())if(!r.handleEvent(t))break}}},e.prototype.handlePostRender=function(){var t=this.frameState_,e=this.tileQueue_;if(!e.isEmpty()){var i=this.maxTilesLoading_,r=i;if(t){var n=t.viewHints;n[kn]&&(i=this.loadTilesWhileAnimating_?8:0,r=2),n[jn]&&(i=this.loadTilesWhileInteracting_?8:0,r=2)}e.getTilesLoading()0&&t[1]>0}(i)&&r&&r.isDef()){for(var h=r.getHints(this.frameState_?this.frameState_.viewHints:void 0),l=this.getLayerGroup().getLayerStatesArray(),u={},p=0,c=l.length;p=t.minResolution&&e0;if(this.renderedVisible_!=i&&(this.element.style.display=i?"":"none",this.renderedVisible_=i),!Z(e,this.renderedAttributions_)){to(this.ulElement_);for(var r=0,n=e.length;r0?t.animate({rotation:0,duration:this.duration_,easing:Xn}):t.setRotation(0))},e}(uo),Ro=function(t){function e(e){var i=e||{};t.call(this,{element:document.createElement("div"),target:i.target});var r=void 0!==i.className?i.className:"ol-zoom",n=void 0!==i.delta?i.delta:1,o=void 0!==i.zoomInLabel?i.zoomInLabel:"+",s=void 0!==i.zoomOutLabel?i.zoomOutLabel:"−",a=void 0!==i.zoomInTipLabel?i.zoomInTipLabel:"Zoom in",h=void 0!==i.zoomOutTipLabel?i.zoomOutTipLabel:"Zoom out",l=document.createElement("button");l.className=r+"-in",l.setAttribute("type","button"),l.title=a,l.appendChild("string"==typeof o?document.createTextNode(o):o),v(l,M.CLICK,this.handleClick_.bind(this,n));var u=document.createElement("button");u.className=r+"-out",u.setAttribute("type","button"),u.title=h,u.appendChild("string"==typeof s?document.createTextNode(s):s),v(u,M.CLICK,this.handleClick_.bind(this,-n));var p=r+" "+fo+" "+go,c=this.element;c.className=p,c.appendChild(l),c.appendChild(u),this.duration_=void 0!==i.duration?i.duration:250}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.handleClick_=function(t,e){e.preventDefault(),this.zoomByDelta_(t)},e.prototype.zoomByDelta_=function(t){var e=this.getMap().getView();if(e){var i=e.getResolution();if(i){var r=e.constrainResolution(i,t);this.duration_>0?(e.getAnimating()&&e.cancelAnimations(),e.animate({resolution:r,duration:this.duration_,easing:Xn})):e.setResolution(r)}}},e}(uo);function wo(t){var e=t||{},i=new U;return(void 0===e.zoom||e.zoom)&&i.push(new Ro(e.zoomOptions)),(void 0===e.rotate||e.rotate)&&i.push(new Co(e.rotateOptions)),(void 0===e.attribution||e.attribution)&&i.push(new So(e.attributionOptions)),i}var Io={ACTIVE:"active"};function Lo(t,e,i,r){Oo(t,e=t.constrainRotation(e,0),i,r)}function Oo(t,e,i,r){if(void 0!==e){var n=t.getRotation(),o=t.getCenter();void 0!==n&&o&&r>0?t.animate({rotation:e,anchor:i,duration:r,easing:Xn}):t.rotate(e,i)}}function Po(t,e,i,r,n){Mo(t,e=t.constrainResolution(e,0,n),i,r)}function bo(t,e,i,r){var n=t.getResolution(),o=t.constrainResolution(n,e,0);if(void 0!==o){var s=t.getResolutions();o=kt(o,t.getMinResolution()||s[s.length-1],t.getMaxResolution()||s[0])}if(i&&void 0!==o&&o!==n){var a=t.getCenter(),h=t.calculateCenterZoom(o,i);h=t.constrainCenter(h),i=[(o*a[0]-n*h[0])/(o-n),(o*a[1]-n*h[1])/(o-n)]}Mo(t,o,i,r)}function Mo(t,e,i,r){if(e){var n=t.getResolution(),o=t.getCenter();if(void 0!==n&&o&&e!==n&&r)t.animate({resolution:e,anchor:i,duration:r,easing:Xn});else{if(i){var s=t.calculateCenterZoom(e,i);t.setCenter(s)}t.setResolution(e)}}}var Fo=function(t){function e(e){t.call(this),e.handleEvent&&(this.handleEvent=e.handleEvent),this.map_=null,this.setActive(!0)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.getActive=function(){return this.get(Io.ACTIVE)},e.prototype.getMap=function(){return this.map_},e.prototype.handleEvent=function(t){return!0},e.prototype.setActive=function(t){this.set(Io.ACTIVE,t)},e.prototype.setMap=function(t){this.map_=t},e}(D);function Ao(t){var e=!1;if(t.type==Ar.DBLCLICK){var i=t.originalEvent,r=t.map,n=t.coordinate,o=i.shiftKey?-this.delta_:this.delta_;bo(r.getView(),o,n,this.duration_),t.preventDefault(),e=!0}return!e}var No=function(t){function e(e){t.call(this,{handleEvent:Ao});var i=e||{};this.delta_=i.delta?i.delta:1,this.duration_=void 0!==i.duration?i.duration:250}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e}(Fo),Go=function(t){var e=t.originalEvent;return e.altKey&&!(e.metaKey||e.ctrlKey)&&!e.shiftKey},Do=function(t){var e=t.originalEvent;return e.altKey&&!(e.metaKey||e.ctrlKey)&&e.shiftKey},ko=function(t){return t.target.getTargetElement()===document.activeElement},jo=R,Uo=function(t){var e=t.originalEvent;return 0==e.button&&!(Ni&&Gi&&e.ctrlKey)},Yo=w,Bo=function(t){return"pointermove"==t.type},Vo=function(t){return t.type==Ar.SINGLECLICK},Xo=function(t){var e=t.originalEvent;return!e.altKey&&!(e.metaKey||e.ctrlKey)&&!e.shiftKey},zo=function(t){var e=t.originalEvent;return!e.altKey&&!(e.metaKey||e.ctrlKey)&&e.shiftKey},Wo=function(t){var e=t.originalEvent.target.tagName;return"INPUT"!==e&&"SELECT"!==e&&"TEXTAREA"!==e},Ko=function(t){var e=t.pointerEvent;return Y(void 0!==e,56),"mouse"==e.pointerType},Ho=function(t){var e=t.pointerEvent;return Y(void 0!==e,56),e.isPrimary&&0===e.button};function Zo(t){for(var e=t.length,i=0,r=0,n=0;n0}}else if(t.type==Ar.POINTERDOWN){var r=this.handleDownEvent(t);r&&t.preventDefault(),this.handlingDownUpSequence=r,e=this.stopDown(r)}else t.type==Ar.POINTERMOVE&&this.handleMoveEvent(t);return!e},e.prototype.handleMoveEvent=function(t){},e.prototype.handleUpEvent=function(t){return!1},e.prototype.stopDown=function(t){return t},e.prototype.updateTrackedPointers_=function(t){if(function(t){var e=t.type;return e===Ar.POINTERDOWN||e===Ar.POINTERDRAG||e===Ar.POINTERUP}(t)){var e=t.pointerEvent,i=e.pointerId.toString();t.type==Ar.POINTERUP?delete this.trackedPointers_[i]:t.type==Ar.POINTERDOWN?this.trackedPointers_[i]=e:i in this.trackedPointers_&&(this.trackedPointers_[i]=e),this.targetPointers=c(this.trackedPointers_)}},e}(Fo),Jo=function(t){function e(e){t.call(this,{stopDown:w});var i=e||{};this.kinetic_=i.kinetic,this.lastCentroid=null,this.lastPointersCount_,this.panning_=!1,this.condition_=i.condition?i.condition:Xo,this.noKinetic_=!1}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.handleDragEvent=function(t){this.panning_||(this.panning_=!0,this.getMap().getView().setHint(jn,1));var e=this.targetPointers,i=Zo(e);if(e.length==this.lastPointersCount_){if(this.kinetic_&&this.kinetic_.update(i[0],i[1]),this.lastCentroid){var r=this.lastCentroid[0]-i[0],n=i[1]-this.lastCentroid[1],o=t.map.getView(),s=[r,n];tr(s,o.getResolution()),$i(s,o.getRotation()),Hi(s,o.getCenter()),s=o.constrainCenter(s),o.setCenter(s)}}else this.kinetic_&&this.kinetic_.begin();this.lastCentroid=i,this.lastPointersCount_=e.length},e.prototype.handleUpEvent=function(t){var e=t.map,i=e.getView();if(0===this.targetPointers.length){if(!this.noKinetic_&&this.kinetic_&&this.kinetic_.end()){var r=this.kinetic_.getDistance(),n=this.kinetic_.getAngle(),o=i.getCenter(),s=e.getPixelFromCoordinate(o),a=e.getCoordinateFromPixel([s[0]-r*Math.cos(n),s[1]-r*Math.sin(n)]);i.animate({center:i.constrainCenter(a),duration:500,easing:Xn})}return this.panning_&&(this.panning_=!1,i.setHint(jn,-1)),!1}return this.kinetic_&&this.kinetic_.begin(),this.lastCentroid=null,!0},e.prototype.handleDownEvent=function(t){if(this.targetPointers.length>0&&this.condition_(t)){var e=t.map.getView();return this.lastCentroid=null,e.getAnimating()&&e.setCenter(t.frameState.viewState.center),this.kinetic_&&this.kinetic_.begin(),this.noKinetic_=this.targetPointers.length>1,!0}return!1},e}(qo),Qo=function(t){function e(e){var i=e||{};t.call(this,{stopDown:w}),this.condition_=i.condition?i.condition:Do,this.lastAngle_=void 0,this.duration_=void 0!==i.duration?i.duration:250}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.handleDragEvent=function(t){if(Ko(t)){var e=t.map,i=e.getView();if(i.getConstraints().rotation!==Gn){var r=e.getSize(),n=t.pixel,o=Math.atan2(r[1]/2-n[1],n[0]-r[0]/2);if(void 0!==this.lastAngle_){var s=o-this.lastAngle_;Oo(i,i.getRotation()-s)}this.lastAngle_=o}}},e.prototype.handleUpEvent=function(t){if(!Ko(t))return!0;var e=t.map.getView();return e.setHint(jn,-1),Lo(e,e.getRotation(),void 0,this.duration_),!1},e.prototype.handleDownEvent=function(t){return!!Ko(t)&&(!(!Uo(t)||!this.condition_(t))&&(t.map.getView().setHint(jn,1),this.lastAngle_=void 0,!0))},e}(qo),$o=function(t){function e(e){t.call(this),this.geometry_=null,this.element_=document.createElement("div"),this.element_.style.position="absolute",this.element_.className="ol-box "+e,this.map_=null,this.startPixel_=null,this.endPixel_=null}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.disposeInternal=function(){this.setMap(null)},e.prototype.render_=function(){var t=this.startPixel_,e=this.endPixel_,i=this.element_.style;i.left=Math.min(t[0],e[0])+"px",i.top=Math.min(t[1],e[1])+"px",i.width=Math.abs(e[0]-t[0])+"px",i.height=Math.abs(e[1]-t[1])+"px"},e.prototype.setMap=function(t){if(this.map_){this.map_.getOverlayContainer().removeChild(this.element_);var e=this.element_.style;e.left=e.top=e.width=e.height="inherit"}this.map_=t,this.map_&&this.map_.getOverlayContainer().appendChild(this.element_)},e.prototype.setPixels=function(t,e){this.startPixel_=t,this.endPixel_=e,this.createOrUpdateGeometry(),this.render_()},e.prototype.createOrUpdateGeometry=function(){var t=this.startPixel_,e=this.endPixel_,i=[t,[t[0],e[1]],e,[e[0],t[1]]].map(this.map_.getCoordinateFromPixel,this.map_);i[4]=i[0].slice(),this.geometry_?this.geometry_.setCoordinates([i]):this.geometry_=new Ii([i])},e.prototype.getGeometry=function(){return this.geometry_},e}(C),ts="boxstart",es="boxdrag",is="boxend",rs=function(t){function e(e,i,r){t.call(this,e),this.coordinate=i,this.mapBrowserEvent=r}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e}(P),ns=function(t){function e(e){t.call(this);var i=e||{};this.box_=new $o(i.className||"ol-dragbox"),this.minArea_=void 0!==i.minArea?i.minArea:64,this.onBoxEnd_=i.onBoxEnd?i.onBoxEnd:I,this.startPixel_=null,this.condition_=i.condition?i.condition:jo,this.boxEndCondition_=i.boxEndCondition?i.boxEndCondition:this.defaultBoxEndCondition}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.defaultBoxEndCondition=function(t,e,i){var r=i[0]-e[0],n=i[1]-e[1];return r*r+n*n>=this.minArea_},e.prototype.getGeometry=function(){return this.box_.getGeometry()},e.prototype.handleDragEvent=function(t){Ko(t)&&(this.box_.setPixels(this.startPixel_,t.pixel),this.dispatchEvent(new rs(es,t.coordinate,t)))},e.prototype.handleUpEvent=function(t){return!Ko(t)||(this.box_.setMap(null),this.boxEndCondition_(t,this.startPixel_,t.pixel)&&(this.onBoxEnd_(t),this.dispatchEvent(new rs(is,t.coordinate,t))),!1)},e.prototype.handleDownEvent=function(t){return!!Ko(t)&&(!(!Uo(t)||!this.condition_(t))&&(this.startPixel_=t.pixel,this.box_.setMap(t.map),this.box_.setPixels(this.startPixel_,this.startPixel_),this.dispatchEvent(new rs(ts,t.coordinate,t)),!0))},e}(qo);function os(){var t=this.getMap(),e=t.getView(),i=t.getSize(),r=this.getGeometry().getExtent();if(this.out_){var n=e.calculateExtent(i),o=function(t,e){return gt(ut(e),t)}([t.getPixelFromCoordinate(Et(r)),t.getPixelFromCoordinate(Lt(r))]);Mt(n,1/e.getResolutionForExtent(o,i)),r=n}var s=e.constrainResolution(e.getResolutionForExtent(r,i)),a=Tt(r);a=e.constrainCenter(a),e.animate({resolution:s,center:a,duration:this.duration_,easing:Xn})}var ss=function(t){function e(e){var i=e||{},r=i.condition?i.condition:zo;t.call(this,{condition:r,className:i.className||"ol-dragzoom",onBoxEnd:os}),this.duration_=void 0!==i.duration?i.duration:200,this.out_=void 0!==i.out&&i.out}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e}(ns),as={LEFT:37,UP:38,RIGHT:39,DOWN:40};function hs(t){var e=!1;if(t.type==M.KEYDOWN){var i=t.originalEvent.keyCode;if(this.condition_(t)&&(i==as.DOWN||i==as.LEFT||i==as.RIGHT||i==as.UP)){var r=t.map.getView(),n=r.getResolution()*this.pixelDelta_,o=0,s=0;i==as.DOWN?s=-n:i==as.LEFT?o=-n:i==as.RIGHT?o=n:s=n;var a=[o,s];$i(a,r.getRotation()),function(t,e,i){var r=t.getCenter();if(r){var n=t.constrainCenter([r[0]+e[0],r[1]+e[1]]);i?t.animate({duration:i,easing:Wn,center:n}):t.setCenter(n)}}(r,a,this.duration_),t.preventDefault(),e=!0}}return!e}var ls=function(t){function e(e){t.call(this,{handleEvent:hs});var i=e||{};this.defaultCondition_=function(t){return Xo(t)&&Wo(t)},this.condition_=void 0!==i.condition?i.condition:this.defaultCondition_,this.duration_=void 0!==i.duration?i.duration:100,this.pixelDelta_=void 0!==i.pixelDelta?i.pixelDelta:128}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e}(Fo);function us(t){var e=!1;if(t.type==M.KEYDOWN||t.type==M.KEYPRESS){var i=t.originalEvent.charCode;if(this.condition_(t)&&(i=="+".charCodeAt(0)||i=="-".charCodeAt(0))){var r=t.map,n=i=="+".charCodeAt(0)?this.delta_:-this.delta_;bo(r.getView(),n,void 0,this.duration_),t.preventDefault(),e=!0}}return!e}var ps=function(t){function e(e){t.call(this,{handleEvent:us});var i=e||{};this.condition_=i.condition?i.condition:Wo,this.delta_=i.delta?i.delta:1,this.duration_=void 0!==i.duration?i.duration:100}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e}(Fo),cs="trackpad",ds="wheel",fs=function(t){function e(e){var i=e||{};t.call(this,i),this.delta_=0,this.duration_=void 0!==i.duration?i.duration:250,this.timeout_=void 0!==i.timeout?i.timeout:80,this.useAnchor_=void 0===i.useAnchor||i.useAnchor,this.constrainResolution_=i.constrainResolution||!1,this.condition_=i.condition?i.condition:jo,this.lastAnchor_=null,this.startTime_=void 0,this.timeoutId_,this.mode_=void 0,this.trackpadEventGap_=400,this.trackpadTimeoutId_,this.trackpadDeltaPerZoom_=300,this.trackpadZoomBuffer_=1.5}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.decrementInteractingHint_=function(){this.trackpadTimeoutId_=void 0,this.getMap().getView().setHint(jn,-1)},e.prototype.handleEvent=function(t){if(!this.condition_(t))return!0;var e=t.type;if(e!==M.WHEEL&&e!==M.MOUSEWHEEL)return!0;t.preventDefault();var i,r=t.map,n=t.originalEvent;if(this.useAnchor_&&(this.lastAnchor_=t.coordinate),t.type==M.WHEEL?(i=n.deltaY,Fi&&n.deltaMode===WheelEvent.DOM_DELTA_PIXEL&&(i/=Di),n.deltaMode===WheelEvent.DOM_DELTA_LINE&&(i*=40)):t.type==M.MOUSEWHEEL&&(i=-n.wheelDeltaY,Ai&&(i/=3)),0===i)return!1;var o=Date.now();if(void 0===this.startTime_&&(this.startTime_=o),(!this.mode_||o-this.startTime_>this.trackpadEventGap_)&&(this.mode_=Math.abs(i)<4?cs:ds),this.mode_===cs){var s=r.getView();this.trackpadTimeoutId_?clearTimeout(this.trackpadTimeoutId_):s.setHint(jn,1),this.trackpadTimeoutId_=setTimeout(this.decrementInteractingHint_.bind(this),this.trackpadEventGap_);var a=s.getResolution()*Math.pow(2,i/this.trackpadDeltaPerZoom_),h=s.getMinResolution(),l=s.getMaxResolution(),u=0;if(al&&(a=Math.min(a,l*this.trackpadZoomBuffer_),u=-1),this.lastAnchor_){var p=s.calculateCenterZoom(a,this.lastAnchor_);s.setCenter(s.constrainCenter(p))}return s.setResolution(a),0===u&&this.constrainResolution_&&s.animate({resolution:s.constrainResolution(a,i>0?-1:1),easing:Xn,anchor:this.lastAnchor_,duration:this.duration_}),u>0?s.animate({resolution:h,easing:Xn,anchor:this.lastAnchor_,duration:500}):u<0&&s.animate({resolution:l,easing:Xn,anchor:this.lastAnchor_,duration:500}),this.startTime_=o,!1}this.delta_+=i;var c=Math.max(this.timeout_-(o-this.startTime_),0);return clearTimeout(this.timeoutId_),this.timeoutId_=setTimeout(this.handleWheelZoom_.bind(this,r),c),!1},e.prototype.handleWheelZoom_=function(t){var e=t.getView();e.getAnimating()&&e.cancelAnimations();bo(e,-kt(this.delta_,-1,1),this.lastAnchor_,this.duration_),this.mode_=void 0,this.delta_=0,this.lastAnchor_=null,this.startTime_=void 0,this.timeoutId_=void 0},e.prototype.setMouseAnchor=function(t){this.useAnchor_=t,t||(this.lastAnchor_=null)},e}(Fo),_s=function(t){function e(e){var i=e||{},r=i;r.stopDown||(r.stopDown=w),t.call(this,r),this.anchor_=null,this.lastAngle_=void 0,this.rotating_=!1,this.rotationDelta_=0,this.threshold_=void 0!==i.threshold?i.threshold:.3,this.duration_=void 0!==i.duration?i.duration:250}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.handleDragEvent=function(t){var e=0,i=this.targetPointers[0],r=this.targetPointers[1],n=Math.atan2(r.clientY-i.clientY,r.clientX-i.clientX);if(void 0!==this.lastAngle_){var o=n-this.lastAngle_;this.rotationDelta_+=o,!this.rotating_&&Math.abs(this.rotationDelta_)>this.threshold_&&(this.rotating_=!0),e=o}this.lastAngle_=n;var s=t.map,a=s.getView();if(a.getConstraints().rotation!==Gn){var h=s.getViewport().getBoundingClientRect(),l=Zo(this.targetPointers);if(l[0]-=h.left,l[1]-=h.top,this.anchor_=s.getCoordinateFromPixel(l),this.rotating_){var u=a.getRotation();s.render(),Oo(a,u+e,this.anchor_)}}},e.prototype.handleUpEvent=function(t){if(this.targetPointers.length<2){var e=t.map.getView();if(e.setHint(jn,-1),this.rotating_)Lo(e,e.getRotation(),this.anchor_,this.duration_);return!1}return!0},e.prototype.handleDownEvent=function(t){if(this.targetPointers.length>=2){var e=t.map;return this.anchor_=null,this.lastAngle_=void 0,this.rotating_=!1,this.rotationDelta_=0,this.handlingDownUpSequence||e.getView().setHint(jn,1),!0}return!1},e}(qo),gs=function(t){function e(e){var i=e||{},r=i;r.stopDown||(r.stopDown=w),t.call(this,r),this.constrainResolution_=i.constrainResolution||!1,this.anchor_=null,this.duration_=void 0!==i.duration?i.duration:400,this.lastDistance_=void 0,this.lastScaleDelta_=1}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.handleDragEvent=function(t){var e=1,i=this.targetPointers[0],r=this.targetPointers[1],n=i.clientX-r.clientX,o=i.clientY-r.clientY,s=Math.sqrt(n*n+o*o);void 0!==this.lastDistance_&&(e=this.lastDistance_/s),this.lastDistance_=s;var a=t.map,h=a.getView(),l=h.getResolution(),u=h.getMaxResolution(),p=h.getMinResolution(),c=l*e;c>u?(e=u/l,c=u):ce.getMaxResolution()){var r=this.lastScaleDelta_-1;Po(e,i,this.anchor_,this.duration_,r)}return!1}return!0},e.prototype.handleDownEvent=function(t){if(this.targetPointers.length>=2){var e=t.map;return this.anchor_=null,this.lastDistance_=void 0,this.lastScaleDelta_=1,this.handlingDownUpSequence||e.getView().setHint(jn,1),!0}return!1},e}(qo);function ys(t){var e=t||{},i=new U,r=new br(-.005,.05,100);return(void 0===e.altShiftDragRotate||e.altShiftDragRotate)&&i.push(new Qo),(void 0===e.doubleClickZoom||e.doubleClickZoom)&&i.push(new No({delta:e.zoomDelta,duration:e.zoomDuration})),(void 0===e.dragPan||e.dragPan)&&i.push(new Jo({condition:e.onFocusOnly?ko:void 0,kinetic:r})),(void 0===e.pinchRotate||e.pinchRotate)&&i.push(new _s),(void 0===e.pinchZoom||e.pinchZoom)&&i.push(new gs({constrainResolution:e.constrainResolution,duration:e.zoomDuration})),(void 0===e.keyboard||e.keyboard)&&(i.push(new ls),i.push(new ps({delta:e.zoomDelta,duration:e.zoomDuration}))),(void 0===e.mouseWheelZoom||e.mouseWheelZoom)&&i.push(new fs({condition:e.onFocusOnly?ko:void 0,constrainResolution:e.constrainResolution,duration:e.zoomDuration})),(void 0===e.shiftDragZoom||e.shiftDragZoom)&&i.push(new ss({duration:e.zoomDuration})),i}var vs=.5,ms=function(t){function e(e,i,r,n){t.call(this),this.extent=e,this.pixelRatio_=r,this.resolution=i,this.state=n}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.changed=function(){this.dispatchEvent(M.CHANGE)},e.prototype.getExtent=function(){return this.extent},e.prototype.getImage=function(){return r()},e.prototype.getPixelRatio=function(){return this.pixelRatio_},e.prototype.getResolution=function(){return this.resolution},e.prototype.getState=function(){return this.state},e.prototype.load=function(){r()},e}(b),xs={IDLE:0,LOADING:1,LOADED:2,ERROR:3},Es=function(t){function e(e,i,r,n,o){var s=void 0!==o?xs.IDLE:xs.LOADED;t.call(this,e,i,r,s),this.loader_=void 0!==o?o:null,this.canvas_=n,this.error_=null}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.getError=function(){return this.error_},e.prototype.handleLoad_=function(t){t?(this.error_=t,this.state=xs.ERROR):this.state=xs.LOADED,this.changed()},e.prototype.load=function(){this.state==xs.IDLE&&(this.state=xs.LOADING,this.changed(),this.loader_(this.handleLoad_.bind(this)))},e.prototype.getImage=function(){return this.canvas_},e}(ms),Ss={IMAGE:"IMAGE",TILE:"TILE",VECTOR_TILE:"VECTOR_TILE",VECTOR:"VECTOR"},Ts={IMAGE:"image",VECTOR:"vector"},Cs=function(t){function e(e,i,r,n,o){t.call(this,e),this.vectorContext=i,this.frameState=r,this.context=n,this.glContext=o}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e}(P),Rs=function(t){function e(e){t.call(this),this.highWaterMark=void 0!==e?e:2048,this.count_=0,this.entries_={},this.oldest_=null,this.newest_=null}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.canExpireCache=function(){return this.getCount()>this.highWaterMark},e.prototype.clear=function(){this.count_=0,this.entries_={},this.oldest_=null,this.newest_=null,this.dispatchEvent(M.CLEAR)},e.prototype.containsKey=function(t){return this.entries_.hasOwnProperty(t)},e.prototype.forEach=function(t,e){for(var i=this.oldest_;i;)t.call(e,i.value_,i.key_,this),i=i.newer},e.prototype.get=function(t){var e=this.entries_[t];return Y(void 0!==e,15),e===this.newest_?e.value_:(e===this.oldest_?(this.oldest_=this.oldest_.newer,this.oldest_.older=null):(e.newer.older=e.older,e.older.newer=e.newer),e.newer=null,e.older=this.newest_,this.newest_.newer=e,this.newest_=e,e.value_)},e.prototype.remove=function(t){var e=this.entries_[t];return Y(void 0!==e,15),e===this.newest_?(this.newest_=e.older,this.newest_&&(this.newest_.newer=null)):e===this.oldest_?(this.oldest_=e.newer,this.oldest_&&(this.oldest_.older=null)):(e.newer.older=e.older,e.older.newer=e.newer),delete this.entries_[t],--this.count_,e.value_},e.prototype.getCount=function(){return this.count_},e.prototype.getKeys=function(){var t,e=new Array(this.count_),i=0;for(t=this.newest_;t;t=t.older)e[i++]=t.key_;return e},e.prototype.getValues=function(){var t,e=new Array(this.count_),i=0;for(t=this.newest_;t;t=t.older)e[i++]=t.value_;return e},e.prototype.peekLast=function(){return this.oldest_.value_},e.prototype.peekLastKey=function(){return this.oldest_.key_},e.prototype.peekFirstKey=function(){return this.newest_.key_},e.prototype.pop=function(){var t=this.oldest_;return delete this.entries_[t.key_],t.newer&&(t.newer.older=null),this.oldest_=t.newer,this.oldest_||(this.newest_=null),--this.count_,t.value_},e.prototype.replace=function(t,e){this.get(t),this.entries_[t].value_=e},e.prototype.set=function(t,e){Y(!(t in this.entries_),16);var i={key_:t,newer:null,older:this.newest_,value_:e};this.newest_?this.newest_.newer=i:this.oldest_=i,this.newest_=i,this.entries_[t]=i,++this.count_},e.prototype.setSize=function(t){this.highWaterMark=t},e.prototype.prune=function(){for(;this.canExpireCache();)this.pop()},e}(b),ws=[0,0,0,1],Is=[],Ls=[0,0,0,1],Os=[0,0,0,0],Ps=new Rs,bs={},Ms=null,Fs={},As=function(){var t,e,i=60,r=bs,n="32px ",o=["monospace","serif"],s=o.length,a="wmytzilWMYTZIL@#/&?$%10";function h(t){for(var i=Ns(),r=100;r<=700;r+=300){for(var h=r+" ",l=!0,u=0;uthis.maxCacheSize_){var t=0;for(var e in this.cache_){var i=this.cache_[e];0!=(3&t++)||i.hasListener()||(delete this.cache_[e],--this.cacheSize_)}}},zs.prototype.get=function(t,e,i){var r=Ws(t,e,i);return r in this.cache_?this.cache_[r]:null},zs.prototype.set=function(t,e,i,r){var n=Ws(t,e,i);this.cache_[n]=r,++this.cacheSize_},zs.prototype.setSize=function(t){this.maxCacheSize_=t,this.expire()};var Ks=new zs;function Hs(t,e){Ks.expire()}function Zs(t,e){return t.zIndex-e.zIndex}var qs=function(t){function e(e){t.call(this),this.map_=e,this.layerRenderers_={},this.layerRendererListeners_={},this.layerRendererConstructors_=[]}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.dispatchRenderEvent=function(t,e){r()},e.prototype.registerLayerRenderers=function(t){this.layerRendererConstructors_.push.apply(this.layerRendererConstructors_,t)},e.prototype.calculateMatrices2D=function(t){var e=t.viewState,i=t.coordinateToPixelTransform,r=t.pixelToCoordinateTransform;Ye(i,t.size[0]/2,t.size[1]/2,1/e.resolution,-1/e.resolution,-e.rotation,-e.center[0],-e.center[1]),Be(Ge(r,i))},e.prototype.removeLayerRenderers=function(){for(var t in this.layerRenderers_)this.removeLayerRendererByKey_(t).dispose()},e.prototype.forEachFeatureAtCoordinate=function(t,e,i,r,n,s,a){var h,l=e.viewState,u=l.resolution;function p(t,i){var s=e.layerStates[o(i)].managed;if(!(o(t)in e.skippedFeatureUids)||s)return r.call(n,t,s?i:null)}var c=l.projection,d=t;if(c.canWrapX()){var f=c.getExtent(),_=Ot(f),g=t[0];if(gf[2])d=[g+_*Math.ceil((f[0]-g)/_),t[1]]}var y,v=e.layerStatesArray;for(y=v.length-1;y>=0;--y){var m=v[y],x=m.layer;if(mo(m,u)&&s.call(a,x)){var E=this.getLayerRenderer(x),S=x.getSource();if(S&&(h=E.forEachFeatureAtCoordinate(S.getWrapX()?d:t,e,i,p)),h)return h}}},e.prototype.forEachLayerAtPixel=function(t,e,i,n,o,s,a){return r()},e.prototype.hasFeatureAtCoordinate=function(t,e,i,r,n){return void 0!==this.forEachFeatureAtCoordinate(t,e,i,R,this,r,n)},e.prototype.getLayerRenderer=function(t){var e=o(t);if(e in this.layerRenderers_)return this.layerRenderers_[e];for(var i,r=0,n=this.layerRendererConstructors_.length;r=0;--h){var d=u[h],f=d.layer;if(mo(d,l)&&o.call(s,f))if(a=this.getLayerRenderer(f).forEachLayerAtCoordinate(c,e,i,r,n))return a}},e.prototype.registerLayerRenderers=function(e){t.prototype.registerLayerRenderers.call(this,e);for(var i=0,r=e.length;i=.5&&p>=.5&&i.drawImage(r,0,0,+r.width,+r.height,Math.round(h),Math.round(l),Math.round(u),Math.round(p)),i.globalAlpha=a,o&&i.restore()}this.postCompose(i,t,e)},e.prototype.getImage=function(){return r()},e.prototype.getImageTransform=function(){return r()},e.prototype.forEachLayerAtCoordinate=function(t,e,i,r,n){if(this.getImage()){var o=De(this.coordinateToCanvasPixelTransform,t.slice());tr(o,e.viewState.resolution/this.renderedResolution),this.hitCanvasContext_||(this.hitCanvasContext_=Jn(1,1)),this.hitCanvasContext_.clearRect(0,0,1,1),this.hitCanvasContext_.drawImage(this.getImage(),o[0],o[1],1,1,0,0,1,1);var s=this.hitCanvasContext_.getImageData(0,0,1,1).data;return s[3]>0?r.call(n,this.getLayer(),s):void 0}},e}(ta),ia=function(t){function e(i){if(t.call(this,i),this.image_=null,this.imageTransform_=[1,0,0,1,0,0],this.skippedFeatures_=[],this.vectorRenderer_=null,i.getType()===Ss.VECTOR)for(var r=0,n=Js.length;rthis.maxX&&(this.maxX=t.maxX),t.minYthis.maxY&&(this.maxY=t.maxY)},na.prototype.getHeight=function(){return this.maxY-this.minY+1},na.prototype.getSize=function(){return[this.getWidth(),this.getHeight()]},na.prototype.getWidth=function(){return this.maxX-this.minX+1},na.prototype.intersects=function(t){return this.minX<=t.maxX&&this.maxX>=t.minX&&this.minY<=t.maxY&&this.maxY>=t.minY};var sa=na,aa=function(t){function e(e,i){t.call(this,e),this.context=i?null:Jn(),this.oversampling_,this.renderedExtent_=null,this.renderedRevision,this.renderedTiles=[],this.newTiles_=!1,this.tmpExtent=[1/0,1/0,-1/0,-1/0],this.tmpTileRange_=new sa(0,0,0,0),this.imageTransform_=[1,0,0,1,0,0],this.zDirection=0}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.isDrawableTile_=function(t){var e=this.getLayer(),i=t.getState(),r=e.getUseInterimTilesOnError();return i==On.LOADED||i==On.EMPTY||i==On.ERROR&&!r},e.prototype.getTile=function(t,e,i,r,n){var o=this.getLayer(),s=o.getSource().getTile(t,e,i,r,n);return s.getState()==On.ERROR&&(o.getUseInterimTilesOnError()?o.getPreload()>0&&(this.newTiles_=!0):s.setState(On.LOADED)),this.isDrawableTile_(s)||(s=s.getInterimTile()),s},e.prototype.prepareFrame=function(t,e){var i=t.pixelRatio,r=t.size,n=t.viewState,s=n.projection,a=n.resolution,h=n.center,l=this.getLayer(),u=l.getSource(),p=u.getRevision(),c=u.getTileGridForProjection(s),d=c.getZForResolution(a,this.zDirection),f=c.getResolution(d),_=Math.round(a/f)||1,g=t.extent;if(void 0!==e.extent&&(g=wt(g,e.extent)),bt(g))return!1;var y=c.getTileRangeForExtentAndZ(g,d),v=c.getTileRangeExtent(d,y),m=u.getTilePixelRatio(i),x={};x[d]={};var E,S,T,C=this.createLoadedTileFinder(u,s,x),R=t.viewHints,w=R[kn]||R[jn],I=this.tmpExtent,L=this.tmpTileRange_;for(this.newTiles_=!1,S=y.minX;S<=y.maxX;++S)for(T=y.minY;T<=y.maxY;++T)if(!(Date.now()-t.time>16&&w)){if(E=this.getTile(d,S,T,i,s),this.isDrawableTile_(E)){var O=o(this);if(E.getState()==On.LOADED){x[d][E.tileCoord.toString()]=E;var P=E.inTransition(O);this.newTiles_||!P&&-1!==this.renderedTiles.indexOf(E)||(this.newTiles_=!0)}if(1===E.getAlpha(O,t.time))continue}var b=c.getTileCoordChildTileRange(E.tileCoord,L,I),M=!1;b&&(M=C(d+1,b)),M||c.forEachTileCoordParentTileRange(E.tileCoord,C,null,L,I)}var F=f*i/m*_;if(!(this.renderedResolution&&Date.now()-t.time>16&&w)&&(this.newTiles_||!this.renderedExtent_||!ot(this.renderedExtent_,g)||this.renderedRevision!=p||_!=this.oversampling_||!w&&F!=this.renderedResolution)){var A=this.context;if(A){var N=u.getTilePixelSize(d,i,s),G=Math.round(y.getWidth()*N[0]/_),D=Math.round(y.getHeight()*N[1]/_),k=A.canvas;k.width!=G||k.height!=D?(this.oversampling_=_,k.width=G,k.height=D):(this.renderedExtent_&&!dt(v,this.renderedExtent_)&&A.clearRect(0,0,G,D),_=this.oversampling_)}this.renderedTiles.length=0;var j,U,Y,B,V,X,z,W,K,H,Z=Object.keys(x).map(Number);for(Z.sort(function(t,e){return t===d?1:e===d?-1:t>e?1:t0},e.prototype.drawTileImage=function(t,e,i,r,n,s,a,h,l){var u=this.getTileImage(t);if(u){var p=o(this),c=l?t.getAlpha(p,e.time):1,d=this.getLayer().getSource();1!==c||d.getOpaque(e.viewState.projection)||this.context.clearRect(r,n,s,a);var f=c!==this.context.globalAlpha;f&&(this.context.save(),this.context.globalAlpha=c),this.context.drawImage(u,h,h,u.width-2*h,u.height-2*h,r,n,s,a),f&&this.context.restore(),1!==c?e.animate=!0:l&&t.endTransition(p)}},e.prototype.getImage=function(){var t=this.context;return t?t.canvas:null},e.prototype.getImageTransform=function(){return this.imageTransform_},e.prototype.getTileImage=function(t){return t.getImage()},e}(ea);aa.handles=function(t){return t.getType()===Ss.TILE},aa.create=function(t,e){return new aa(e)},aa.prototype.getLayer;var ha=aa,la=i(0),ua=i.n(la),pa=function(){};pa.prototype.getReplay=function(t,e){return r()},pa.prototype.isEmpty=function(){return r()},pa.prototype.addDeclutter=function(t){return r()};var ca=pa,da={CIRCLE:"Circle",DEFAULT:"Default",IMAGE:"Image",LINE_STRING:"LineString",POLYGON:"Polygon",TEXT:"Text"};function fa(t,e,i,r,n,o,s,a){for(var h,l,u,p=[],c=t[e]>t[i-r],d=n.length,f=t[e],_=t[e+1],g=t[e+=r],y=t[e+1],v=0,m=Math.sqrt(Math.pow(g-f,2)+Math.pow(y-_,2)),x="",E=0,S=0;S0?-Math.PI:Math.PI),void 0!==u){var L=I-u;if(L+=L>Math.PI?-2*Math.PI:L<-Math.PI?2*Math.PI:0,Math.abs(L)>a)return null}var O=w/m,P=zt(f,g,O),b=zt(_,y,O);u==I?(c&&(h[0]=P,h[1]=b,h[2]=C/2),h[4]=x):(E=C,h=[P,b,C/2,I,x=T],c?p.unshift(h):p.push(h),u=I),s+=C}return p}var _a={BEGIN_GEOMETRY:0,BEGIN_PATH:1,CIRCLE:2,CLOSE_PATH:3,CUSTOM:4,DRAW_CHARS:5,DRAW_IMAGE:6,END_GEOMETRY:7,FILL:8,MOVE_TO_LINE_TO:9,SET_FILL_STYLE:10,SET_STROKE_STYLE:11,STROKE:12},ga=[_a.FILL],ya=[_a.STROKE],va=[_a.BEGIN_PATH],ma=[_a.CLOSE_PATH],xa=_a,Ea=[da.POLYGON,da.CIRCLE,da.LINE_STRING,da.IMAGE,da.TEXT,da.DEFAULT],Sa={left:0,end:0,center:.5,right:1,start:1,top:0,middle:.5,hanging:.2,alphabetic:.8,ideographic:.8,bottom:1},Ta=[1/0,1/0,-1/0,-1/0],Ca=[1,0,0,1,0,0],Ra=function(t){function e(e,i,r,n,o,s){t.call(this),this.declutterTree=s,this.tolerance=e,this.maxExtent=i,this.overlaps=o,this.pixelRatio=n,this.maxLineWidth=0,this.resolution=r,this.alignFill_,this.beginGeometryInstruction1_=null,this.beginGeometryInstruction2_=null,this.bufferedMaxExtent_=null,this.instructions=[],this.coordinates=[],this.coordinateCache_={},this.renderedTransform_=[1,0,0,1,0,0],this.hitDetectionInstructions=[],this.pixelCoordinates_=null,this.state={},this.viewRotation_=0}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.replayTextBackground_=function(t,e,i,r,n,o,s){t.beginPath(),t.moveTo.apply(t,e),t.lineTo.apply(t,i),t.lineTo.apply(t,r),t.lineTo.apply(t,n),t.lineTo.apply(t,e),o&&(this.alignFill_=o[2],this.fill_(t)),s&&(this.setStrokeStyle_(t,s),t.stroke())},e.prototype.replayImage_=function(t,e,i,r,n,o,s,a,h,l,u,p,c,d,f,_,g,y){var v=g||y;e-=n*=c,i-=o*=c;var m,x,E,S,T=f+l>r.width?r.width-l:f,C=a+u>r.height?r.height-u:a,R=_[3]+T*c+_[1],w=_[0]+C*c+_[2],I=e-_[3],L=i-_[0];(v||0!==p)&&(m=[I,L],x=[I+R,L],E=[I+R,L+w],S=[I,L+w]);var O=null;if(0!==p){var P=e+n,b=i+o;O=Ye(Ca,P,b,1,1,p,-P,-b),ut(Ta),_t(Ta,De(Ca,m)),_t(Ta,De(Ca,x)),_t(Ta,De(Ca,E)),_t(Ta,De(Ca,S))}else lt(I,L,I+R,L+w,Ta);var M=t.canvas,F=y?y[2]*c/2:0,A=Ta[0]-F<=M.width&&Ta[2]+F>=0&&Ta[1]-F<=M.height&&Ta[3]+F>=0;if(d&&(e=Math.round(e),i=Math.round(i)),s){if(!A&&1==s[4])return;ft(s,Ta);var N=A?[t,O?O.slice(0):null,h,r,l,u,T,C,e,i,c]:null;N&&v&&N.push(g,y,m,x,E,S),s.push(N)}else A&&(v&&this.replayTextBackground_(t,m,x,E,S,g,y),Us(t,O,h,r,l,u,T,C,e,i,c))},e.prototype.applyPixelRatio=function(t){var e=this.pixelRatio;return 1==e?t:t.map(function(t){return t*e})},e.prototype.appendFlatCoordinates=function(t,e,i,r,n,o){var s=this.coordinates.length,a=this.getBufferedMaxExtent();o&&(e+=r);var h,l,u,p=[t[e],t[e+1]],c=[NaN,NaN],d=!0;for(h=e+r;h5){var i=t[4];if(1==i||i==t.length-5){var r={minX:t[0],minY:t[1],maxX:t[2],maxY:t[3],value:e};if(!this.declutterTree.collides(r)){this.declutterTree.insert(r);for(var n=5,o=t.length;n11&&this.replayTextBackground_(s[0],s[13],s[14],s[15],s[16],s[11],s[12]),Us.apply(void 0,s))}}t.length=5,ut(t)}}},e.prototype.replay_=function(t,e,i,r,n,s,a){var h;this.pixelCoordinates_&&Z(e,this.renderedTransform_)?h=this.pixelCoordinates_:(this.pixelCoordinates_||(this.pixelCoordinates_=[]),h=Gt(this.coordinates,0,this.coordinates.length,2,e,this.pixelCoordinates_),Ge(this.renderedTransform_,e));for(var l,u,p,c,f,_,g,y,v,m,x,E,S=!d(i),T=0,C=r.length,R=0,w=0,I=0,L=null,O=null,P=this.coordinateCache_,b=this.viewRotation_,M={context:t,pixelRatio:this.pixelRatio,resolution:this.resolution,rotation:b},F=this.instructions!=r||this.overlaps?0:200;TF&&(this.fill_(t),w=0),I>F&&(t.stroke(),I=0),w||I||(t.beginPath(),c=f=NaN),++T;break;case xa.CIRCLE:var N=h[R=A[1]],G=h[R+1],D=h[R+2]-N,k=h[R+3]-G,j=Math.sqrt(D*D+k*k);t.moveTo(N+j,G),t.arc(N,G,j,0,2*Math.PI,!0),++T;break;case xa.CLOSE_PATH:t.closePath(),++T;break;case xa.CUSTOM:R=A[1],l=A[2];var U=A[3],Y=A[4],B=6==A.length?A[5]:void 0;M.geometry=U,M.feature=m,T in P||(P[T]=[]);var V=P[T];B?B(h,R,l,2,V):(V[0]=h[R],V[1]=h[R+1],V.length=2),Y(V,M),++T;break;case xa.DRAW_IMAGE:R=A[1],l=A[2],v=A[3],u=A[4],p=A[5],y=s?null:A[6];var X=A[7],z=A[8],W=A[9],K=A[10],H=A[11],q=A[12],J=A[13],Q=A[14],$=void 0,tt=void 0,et=void 0;for(A.length>16?($=A[15],tt=A[16],et=A[17]):($=Os,tt=et=!1),H&&(q+=b);Rthis.maxLineWidth&&(this.maxLineWidth=i.lineWidth,this.bufferedMaxExtent_=null)}else i.strokeStyle=void 0,i.lineCap=void 0,i.lineDash=null,i.lineDashOffset=void 0,i.lineJoin=void 0,i.lineWidth=void 0,i.miterLimit=void 0},e.prototype.createFill=function(t,e){var i=t.fillStyle,r=[xa.SET_FILL_STYLE,i];return"string"!=typeof i&&r.push(!0),r},e.prototype.applyStroke=function(t){this.instructions.push(this.createStroke(t))},e.prototype.createStroke=function(t){return[xa.SET_STROKE_STYLE,t.strokeStyle,t.lineWidth*this.pixelRatio,t.lineCap,t.lineJoin,t.miterLimit,this.applyPixelRatio(t.lineDash),t.lineDashOffset*this.pixelRatio]},e.prototype.updateFillStyle=function(t,e,i){var r=t.fillStyle;"string"==typeof r&&t.currentFillStyle==r||(void 0!==r&&this.instructions.push(e.call(this,t,i)),t.currentFillStyle=r)},e.prototype.updateStrokeStyle=function(t,e){var i=t.strokeStyle,r=t.lineCap,n=t.lineDash,o=t.lineDashOffset,s=t.lineJoin,a=t.lineWidth,h=t.miterLimit;(t.currentStrokeStyle!=i||t.currentLineCap!=r||n!=t.currentLineDash&&!Z(t.currentLineDash,n)||t.currentLineDashOffset!=o||t.currentLineJoin!=s||t.currentLineWidth!=a||t.currentMiterLimit!=h)&&(void 0!==i&&e.call(this,t),t.currentStrokeStyle=i,t.currentLineCap=r,t.currentLineDash=n,t.currentLineDashOffset=o,t.currentLineJoin=s,t.currentLineWidth=a,t.currentMiterLimit=h)},e.prototype.endGeometry=function(t,e){this.beginGeometryInstruction1_[2]=this.instructions.length,this.beginGeometryInstruction1_=null,this.beginGeometryInstruction2_[2]=this.hitDetectionInstructions.length,this.beginGeometryInstruction2_=null;var i=[xa.END_GEOMETRY,e];this.instructions.push(i),this.hitDetectionInstructions.push(i)},e.prototype.getBufferedMaxExtent=function(){if(!this.bufferedMaxExtent_&&(this.bufferedMaxExtent_=it(this.maxExtent),this.maxLineWidth>0)){var t=this.resolution*(this.maxLineWidth+1)/2;et(this.bufferedMaxExtent_,t,this.bufferedMaxExtent_)}return this.bufferedMaxExtent_},e}(Vs),wa=function(t){function e(e,i,r,n,o,s){t.call(this,e,i,r,n,o,s),this.declutterGroup_=null,this.hitDetectionImage_=null,this.image_=null,this.anchorX_=void 0,this.anchorY_=void 0,this.height_=void 0,this.opacity_=void 0,this.originX_=void 0,this.originY_=void 0,this.rotateWithView_=void 0,this.rotation_=void 0,this.scale_=void 0,this.width_=void 0}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.drawCoordinates_=function(t,e,i,r){return this.appendFlatCoordinates(t,e,i,r,!1,!1)},e.prototype.drawPoint=function(t,e){if(this.image_){this.beginGeometry(t,e);var i=t.getFlatCoordinates(),r=t.getStride(),n=this.coordinates.length,o=this.drawCoordinates_(i,0,i.length,r);this.instructions.push([xa.DRAW_IMAGE,n,o,this.image_,this.anchorX_,this.anchorY_,this.declutterGroup_,this.height_,this.opacity_,this.originX_,this.originY_,this.rotateWithView_,this.rotation_,this.scale_*this.pixelRatio,this.width_]),this.hitDetectionInstructions.push([xa.DRAW_IMAGE,n,o,this.hitDetectionImage_,this.anchorX_,this.anchorY_,this.declutterGroup_,this.height_,this.opacity_,this.originX_,this.originY_,this.rotateWithView_,this.rotation_,this.scale_,this.width_]),this.endGeometry(t,e)}},e.prototype.drawMultiPoint=function(t,e){if(this.image_){this.beginGeometry(t,e);var i=t.getFlatCoordinates(),r=t.getStride(),n=this.coordinates.length,o=this.drawCoordinates_(i,0,i.length,r);this.instructions.push([xa.DRAW_IMAGE,n,o,this.image_,this.anchorX_,this.anchorY_,this.declutterGroup_,this.height_,this.opacity_,this.originX_,this.originY_,this.rotateWithView_,this.rotation_,this.scale_*this.pixelRatio,this.width_]),this.hitDetectionInstructions.push([xa.DRAW_IMAGE,n,o,this.hitDetectionImage_,this.anchorX_,this.anchorY_,this.declutterGroup_,this.height_,this.opacity_,this.originX_,this.originY_,this.rotateWithView_,this.rotation_,this.scale_,this.width_]),this.endGeometry(t,e)}},e.prototype.finish=function(){this.reverseHitDetectionInstructions(),this.anchorX_=void 0,this.anchorY_=void 0,this.hitDetectionImage_=null,this.image_=null,this.height_=void 0,this.scale_=void 0,this.opacity_=void 0,this.originX_=void 0,this.originY_=void 0,this.rotateWithView_=void 0,this.rotation_=void 0,this.width_=void 0},e.prototype.setImageStyle=function(t,e){var i=t.getAnchor(),r=t.getSize(),n=t.getHitDetectionImage(1),o=t.getImage(1),s=t.getOrigin();this.anchorX_=i[0],this.anchorY_=i[1],this.declutterGroup_=e,this.hitDetectionImage_=n,this.image_=o,this.height_=r[1],this.opacity_=t.getOpacity(),this.originX_=s[0],this.originY_=s[1],this.rotateWithView_=t.getRotateWithView(),this.rotation_=t.getRotation(),this.scale_=t.getScale(),this.width_=r[0]},e}(Ra),Ia=function(t){function e(e,i,r,n,o,s){t.call(this,e,i,r,n,o,s)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.drawFlatCoordinates_=function(t,e,i,r){var n=this.coordinates.length,o=this.appendFlatCoordinates(t,e,i,r,!1,!1),s=[xa.MOVE_TO_LINE_TO,n,o];return this.instructions.push(s),this.hitDetectionInstructions.push(s),i},e.prototype.drawLineString=function(t,e){var i=this.state,r=i.strokeStyle,n=i.lineWidth;if(void 0!==r&&void 0!==n){this.updateStrokeStyle(i,this.applyStroke),this.beginGeometry(t,e),this.hitDetectionInstructions.push([xa.SET_STROKE_STYLE,i.strokeStyle,i.lineWidth,i.lineCap,i.lineJoin,i.miterLimit,i.lineDash,i.lineDashOffset],va);var o=t.getFlatCoordinates(),s=t.getStride();this.drawFlatCoordinates_(o,0,o.length,s),this.hitDetectionInstructions.push(ya),this.endGeometry(t,e)}},e.prototype.drawMultiLineString=function(t,e){var i=this.state,r=i.strokeStyle,n=i.lineWidth;if(void 0!==r&&void 0!==n){this.updateStrokeStyle(i,this.applyStroke),this.beginGeometry(t,e),this.hitDetectionInstructions.push([xa.SET_STROKE_STYLE,i.strokeStyle,i.lineWidth,i.lineCap,i.lineJoin,i.miterLimit,i.lineDash,i.lineDashOffset],va);for(var o=t.getEnds(),s=t.getFlatCoordinates(),a=t.getStride(),h=0,l=0,u=o.length;lt&&(y>g&&(g=y,f=v,_=o),y=0,v=o-n)),s=a,u=c,p=d),h=m,l=x}return(y+=a)>g?[v,o]:[f,_]}var Pa={Circle:La,Default:Ra,Image:wa,LineString:Ia,Polygon:La,Text:function(t){function e(e,i,r,n,o,s){t.call(this,e,i,r,n,o,s),this.declutterGroup_,this.labels_=null,this.text_="",this.textOffsetX_=0,this.textOffsetY_=0,this.textRotateWithView_=void 0,this.textRotation_=0,this.textFillState_=null,this.fillStates={},this.textStrokeState_=null,this.strokeStates={},this.textState_={},this.textStates={},this.textKey_="",this.fillKey_="",this.strokeKey_="",this.widths_={},Ps.prune()}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.drawText=function(t,e){var i=this.textFillState_,r=this.textStrokeState_,n=this.textState_;if(""!==this.text_&&n&&(i||r)){var o,s,a=this.coordinates.length,h=t.getType(),l=null,u=2,p=2;if(n.placement===Tr){if(!Pt(this.getBufferedMaxExtent(),t.getExtent()))return;var c;if(l=t.getFlatCoordinates(),p=t.getStride(),h==Nt.LINE_STRING)c=[l.length];else if(h==Nt.MULTI_LINE_STRING)c=t.getEnds();else if(h==Nt.POLYGON)c=t.getEnds().slice(0,1);else if(h==Nt.MULTI_POLYGON){var d=t.getEndss();for(c=[],o=0,s=d.length;o=E)&&l.push(S[o],S[o+1]);if(0==(u=l.length))return}u=this.appendFlatCoordinates(l,0,u,p,!1,!1),(n.backgroundFill||n.backgroundStroke)&&(this.setFillStrokeStyle(n.backgroundFill,n.backgroundStroke),n.backgroundFill&&(this.updateFillStyle(this.state,this.createFill,t),this.hitDetectionInstructions.push(this.createFill(this.state,t))),n.backgroundStroke&&(this.updateStrokeStyle(this.state,this.applyStroke),this.hitDetectionInstructions.push(this.createStroke(this.state)))),this.beginGeometry(t,e),this.drawTextImage_(x,a,u),this.endGeometry(t,e)}}},e.prototype.getImage=function(t,e,i,r){var n,o=r+e+t+i+this.pixelRatio;if(!Ps.containsKey(o)){var s=r?this.strokeStates[r]||this.textStrokeState_:null,a=i?this.fillStates[i]||this.textFillState_:null,h=this.textStates[e]||this.textState_,l=this.pixelRatio,u=h.scale*l,p=Sa[h.textAlign||"center"],c=r&&s.lineWidth?s.lineWidth:0,d=t.split("\n"),f=d.length,_=[],g=function(t,e,i){for(var r=e.length,n=0,o=0;o=o;)Fa(i,t+n,t+o),Fa(i,t+o,t+n),Fa(i,t-o,t+n),Fa(i,t-n,t+o),Fa(i,t-n,t-o),Fa(i,t-o,t-n),Fa(i,t+o,t-n),Fa(i,t+n,t-o),2*((s+=1+2*++o)-n)+1>0&&(s+=1-2*(n-=1));return Ma[t]=i,i}(r);function f(t){for(var e=u.getImageData(0,0,h,h).data,i=0;i0){var n=void 0;return(!p||c!=da.IMAGE&&c!=da.TEXT||-1!==p.indexOf(t))&&(n=o(t)),n||void u.clearRect(0,0,h,h)}}this.declutterTree_&&(p=this.declutterTree_.all().map(function(t){return t.value}));var _,g,y,v,m,x=Object.keys(this.replaysByZIndex_).map(Number);for(x.sort(V),_=x.length-1;_>=0;--_){var E=x[_].toString();for(y=this.replaysByZIndex_[E],g=Ea.length-1;g>=0;--g)if(void 0!==(v=y[c=Ea[g]]))if(!s||c!=da.IMAGE&&c!=da.TEXT){if(m=v.replayHitDetection(u,l,i,n,f,a))return m}else{var S=s[E];S?S.push(v,l.slice(0)):s[E]=[v,l.slice(0)]}}},e.prototype.getClipCoords=function(t){var e=this.maxExtent_,i=e[0],r=e[1],n=e[2],o=e[3],s=[i,r,i,o,n,o,n,r];return Gt(s,0,8,2,t,s),s},e.prototype.getReplay=function(t,e){var i=void 0!==t?t.toString():"0",r=this.replaysByZIndex_[i];void 0===r&&(r={},this.replaysByZIndex_[i]=r);var n=r[e];void 0===n&&(n=new(0,Pa[e])(this.tolerance_,this.maxExtent_,this.resolution_,this.pixelRatio_,this.overlaps_,this.declutterTree_),r[e]=n);return n},e.prototype.getReplays=function(){return this.replaysByZIndex_},e.prototype.isEmpty=function(){return d(this.replaysByZIndex_)},e.prototype.replay=function(t,e,i,r,n,o,s){var a=Object.keys(this.replaysByZIndex_).map(Number);a.sort(V),t.save(),this.clip(t,e);var h,l,u,p,c,d,f=o||Ea;for(h=0,l=a.length;h=n)for(r=n;rl[2];)O=b*++M,p=this.getTransform(e,O),f.replay(_,p,h,o,w),P-=b}if(ks(_,h,I/2,L/2),x&&this.dispatchRenderEvent(_,e,p),_!=t){if(m){var F=t.globalAlpha;t.globalAlpha=i.opacity,t.drawImage(_.canvas,-y,-v),t.globalAlpha=F}else t.drawImage(_.canvas,-y,-v);_.translate(-y,-v)}m||(_.globalAlpha=C)}d&&t.restore()},e.prototype.composeFrame=function(t,e,i){var r=this.getTransform(t,0);this.preCompose(i,t,r),this.compose(i,t,e),this.postCompose(i,t,e,r)},e.prototype.forEachFeatureAtCoordinate=function(t,e,i,r,n){if(this.replayGroup_){var s=e.viewState.resolution,a=e.viewState.rotation,h=this.getLayer(),l={};return this.replayGroup_.forEachFeatureAtCoordinate(t,s,a,i,{},function(t){var e=o(t);if(!(e in l))return l[e]=!0,r.call(n,t,h)},null)}},e.prototype.handleFontsChanged_=function(t){var e=this.getLayer();e.getVisible()&&this.replayGroup_&&e.changed()},e.prototype.handleStyleImageChange_=function(t){this.renderIfReadyAndVisible()},e.prototype.prepareFrame=function(t,e){var i=this.getLayer(),r=i.getSource(),n=t.viewHints[kn],o=t.viewHints[jn],s=i.getUpdateWhileAnimating(),a=i.getUpdateWhileInteracting();if(!this.dirty_&&!s&&n||!a&&o)return!0;var h=t.extent,l=t.viewState,u=l.projection,p=l.resolution,c=t.pixelRatio,d=i.getRevision(),f=i.getRenderBuffer(),_=i.getRenderOrder();void 0===_&&(_=Da);var g=et(h,f*p),y=l.projection.getExtent();if(r.getWrapX()&&l.projection.canWrapX()&&!ot(y,t.extent)){var v=Ot(y),m=Math.max(Ot(g)/2,v);g[0]=y[0]-m,g[2]=y[2]+m}if(!this.dirty_&&this.renderedResolution_==p&&this.renderedRevision_==d&&this.renderedRenderOrder_==_&&ot(this.renderedExtent_,g))return this.replayGroupChanged=!1,!0;this.replayGroup_=null,this.dirty_=!1;var x=new Aa(ja(p,c),g,p,c,r.getOverlaps(),this.declutterTree_,i.getRenderBuffer());r.loadFeatures(g,p,u);var E=function(t){var e,r=t.getStyleFunction()||i.getStyleFunction();if(r&&(e=r(t,p)),e){var n=this.renderFeature(t,p,c,e,x);this.dirty_=this.dirty_||n}}.bind(this);if(_){var S=[];r.forEachFeatureInExtent(g,function(t){S.push(t)}),S.sort(_);for(var T=0,C=S.length;T=0;--x){var E=g[x];if(E.getState()!=On.ABORT)for(var S=E.tileCoord,T=y.getTileCoordExtent(S,this.tmpExtent)[0]-E.extent[0],C=void 0,R=0,w=E.tileKeys.length;R radius + v_halfWidth) {\n if (u_strokeColor.a == 0.0) {\n gl_FragColor = u_fillColor;\n } else {\n gl_FragColor = u_strokeColor;\n }\n gl_FragColor.a = gl_FragColor.a - (dist - (radius + v_halfWidth));\n } else if (u_fillColor.a == 0.0) {\n // Hooray, no fill, just stroke. We can use real antialiasing.\n gl_FragColor = u_strokeColor;\n if (dist < radius - v_halfWidth) {\n gl_FragColor.a = gl_FragColor.a - (radius - v_halfWidth - dist);\n }\n } else {\n gl_FragColor = u_fillColor;\n float strokeDist = radius - v_halfWidth;\n float antialias = 2.0 * v_pixelRatio;\n if (dist > strokeDist) {\n gl_FragColor = u_strokeColor;\n } else if (dist >= strokeDist - antialias) {\n float step = smoothstep(strokeDist - antialias, strokeDist, dist);\n gl_FragColor = mix(u_fillColor, u_strokeColor, step);\n }\n }\n gl_FragColor.a = gl_FragColor.a * u_opacity;\n if (gl_FragColor.a <= 0.0) {\n discard;\n }\n}\n"),ch=new uh("varying vec2 v_center;\nvarying vec2 v_offset;\nvarying float v_halfWidth;\nvarying float v_pixelRatio;\n\n\nattribute vec2 a_position;\nattribute float a_instruction;\nattribute float a_radius;\n\nuniform mat4 u_projectionMatrix;\nuniform mat4 u_offsetScaleMatrix;\nuniform mat4 u_offsetRotateMatrix;\nuniform float u_lineWidth;\nuniform float u_pixelRatio;\n\nvoid main(void) {\n mat4 offsetMatrix = u_offsetScaleMatrix * u_offsetRotateMatrix;\n v_center = vec4(u_projectionMatrix * vec4(a_position, 0.0, 1.0)).xy;\n v_pixelRatio = u_pixelRatio;\n float lineWidth = u_lineWidth * u_pixelRatio;\n v_halfWidth = lineWidth / 2.0;\n if (lineWidth == 0.0) {\n lineWidth = 2.0 * u_pixelRatio;\n }\n vec2 offset;\n // Radius with anitaliasing (roughly).\n float radius = a_radius + 3.0 * u_pixelRatio;\n // Until we get gl_VertexID in WebGL, we store an instruction.\n if (a_instruction == 0.0) {\n // Offsetting the edges of the triangle by lineWidth / 2 is necessary, however\n // we should also leave some space for the antialiasing, thus we offset by lineWidth.\n offset = vec2(-1.0, 1.0);\n } else if (a_instruction == 1.0) {\n offset = vec2(-1.0, -1.0);\n } else if (a_instruction == 2.0) {\n offset = vec2(1.0, -1.0);\n } else {\n offset = vec2(1.0, 1.0);\n }\n\n gl_Position = u_projectionMatrix * vec4(a_position + offset * radius, 0.0, 1.0) +\n offsetMatrix * vec4(offset * lineWidth, 0.0, 0.0);\n v_offset = vec4(u_projectionMatrix * vec4(a_position.x + a_radius, a_position.y,\n 0.0, 1.0)).xy;\n\n if (distance(v_center, v_offset) > 20000.0) {\n gl_Position = vec4(v_center, 0.0, 1.0);\n }\n}\n\n\n"),dh=function(t,e){this.u_projectionMatrix=t.getUniformLocation(e,"u_projectionMatrix"),this.u_offsetScaleMatrix=t.getUniformLocation(e,"u_offsetScaleMatrix"),this.u_offsetRotateMatrix=t.getUniformLocation(e,"u_offsetRotateMatrix"),this.u_lineWidth=t.getUniformLocation(e,"u_lineWidth"),this.u_pixelRatio=t.getUniformLocation(e,"u_pixelRatio"),this.u_opacity=t.getUniformLocation(e,"u_opacity"),this.u_fillColor=t.getUniformLocation(e,"u_fillColor"),this.u_strokeColor=t.getUniformLocation(e,"u_strokeColor"),this.u_size=t.getUniformLocation(e,"u_size"),this.a_position=t.getAttribLocation(e,"a_position"),this.a_instruction=t.getAttribLocation(e,"a_instruction"),this.a_radius=t.getAttribLocation(e,"a_radius")};function fh(t,e){return t[0]=e[0],t[1]=e[1],t[4]=e[2],t[5]=e[3],t[12]=e[4],t[13]=e[5],t}var _h=function(t){function e(e,i){t.call(this),this.tolerance=e,this.maxExtent=i,this.origin=Tt(i),this.projectionMatrix_=[1,0,0,1,0,0],this.offsetRotateMatrix_=[1,0,0,1,0,0],this.offsetScaleMatrix_=[1,0,0,1,0,0],this.tmpMat4_=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1],this.indices=[],this.indicesBuffer=null,this.startIndices=[],this.startIndicesFeature=[],this.vertices=[],this.verticesBuffer=null,this.lineStringReplay=void 0}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.getDeleteResourcesFunction=function(t){return r()},e.prototype.finish=function(t){r()},e.prototype.setUpProgram=function(t,e,i,n){return r()},e.prototype.shutDownProgram=function(t,e){r()},e.prototype.drawReplay=function(t,e,i,n){r()},e.prototype.drawHitDetectionReplayOneByOne=function(t,e,i,n,o){return r()},e.prototype.drawHitDetectionReplay=function(t,e,i,r,n,o){return n?this.drawHitDetectionReplayOneByOne(t,e,i,r,o):this.drawHitDetectionReplayAll(t,e,i,r)},e.prototype.drawHitDetectionReplayAll=function(t,e,i,r){t.clear(t.COLOR_BUFFER_BIT|t.DEPTH_BUFFER_BIT),this.drawReplay(t,e,i,!0);var n=r(null);return n||void 0},e.prototype.replay=function(t,e,i,r,n,o,s,a,h,l,u){var p,c,d,f,_,g,y,v,m=t.getGL();this.lineStringReplay&&(p=m.isEnabled(m.STENCIL_TEST),c=m.getParameter(m.STENCIL_FUNC),d=m.getParameter(m.STENCIL_VALUE_MASK),f=m.getParameter(m.STENCIL_REF),_=m.getParameter(m.STENCIL_WRITEMASK),g=m.getParameter(m.STENCIL_FAIL),y=m.getParameter(m.STENCIL_PASS_DEPTH_PASS),v=m.getParameter(m.STENCIL_PASS_DEPTH_FAIL),m.enable(m.STENCIL_TEST),m.clear(m.STENCIL_BUFFER_BIT),m.stencilMask(255),m.stencilFunc(m.ALWAYS,1,255),m.stencilOp(m.KEEP,m.KEEP,m.REPLACE),this.lineStringReplay.replay(t,e,i,r,n,o,s,a,h,l,u),m.stencilMask(0),m.stencilFunc(m.NOTEQUAL,1,255)),t.bindBuffer(34962,this.verticesBuffer),t.bindBuffer(34963,this.indicesBuffer);var x=this.setUpProgram(m,t,n,o),E=Fe(this.projectionMatrix_);je(E,2/(i*n[0]),2/(i*n[1])),ke(E,-r),Ue(E,-(e[0]-this.origin[0]),-(e[1]-this.origin[1]));var S=Fe(this.offsetScaleMatrix_);je(S,2/n[0],2/n[1]);var T,C=Fe(this.offsetRotateMatrix_);return 0!==r&&ke(C,-r),m.uniformMatrix4fv(x.u_projectionMatrix,!1,fh(this.tmpMat4_,E)),m.uniformMatrix4fv(x.u_offsetScaleMatrix,!1,fh(this.tmpMat4_,S)),m.uniformMatrix4fv(x.u_offsetRotateMatrix,!1,fh(this.tmpMat4_,C)),m.uniform1f(x.u_opacity,s),void 0===h?this.drawReplay(m,t,a,!1):T=this.drawHitDetectionReplay(m,t,a,h,l,u),this.shutDownProgram(m,x),this.lineStringReplay&&(p||m.disable(m.STENCIL_TEST),m.clear(m.STENCIL_BUFFER_BIT),m.stencilFunc(c,f,d),m.stencilMask(_),m.stencilOp(g,v,y)),T},e.prototype.drawElements=function(t,e,i,r){var n=e.hasOESElementIndexUint?5125:5123,o=r-i,s=i*(e.hasOESElementIndexUint?4:2);t.drawElements(4,o,n,s)},e}(Vs),gh=[0,0,0,1],yh=[],vh=[0,0,0,1],mh=Number.EPSILON||2.220446049250313e-16,xh=function(t,e,i,r,n,o){var s=(i-t)*(o-e)-(n-t)*(r-e);return s<=mh&&s>=-mh?void 0:s>0},Eh=35044,Sh=function(t,e){this.arr_=void 0!==t?t:[],this.usage_=void 0!==e?e:Eh};Sh.prototype.getArray=function(){return this.arr_},Sh.prototype.getUsage=function(){return this.usage_};var Th=Sh,Ch=function(t){function e(e,i){t.call(this,e,i),this.defaultLocations_=null,this.styles_=[],this.styleIndices_=[],this.radius_=0,this.state_={fillColor:null,strokeColor:null,lineDash:null,lineDashOffset:void 0,lineWidth:void 0,changed:!1}}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.drawCoordinates_=function(t,e,i,r){var n,o,s=this.vertices.length,a=this.indices.length,h=s/4;for(n=e,o=i;n0&&(this.styles_=[]),this.vertices=null,this.indices=null},e.prototype.getDeleteResourcesFunction=function(t){var e=this.verticesBuffer,i=this.indicesBuffer;return function(){t.deleteBuffer(e),t.deleteBuffer(i)}},e.prototype.setUpProgram=function(t,e,i,r){var n,o=e.getProgram(ph,ch);return this.defaultLocations_?n=this.defaultLocations_:(n=new dh(t,o),this.defaultLocations_=n),e.useProgram(o),t.enableVertexAttribArray(n.a_position),t.vertexAttribPointer(n.a_position,2,5126,!1,16,0),t.enableVertexAttribArray(n.a_instruction),t.vertexAttribPointer(n.a_instruction,1,5126,!1,16,8),t.enableVertexAttribArray(n.a_radius),t.vertexAttribPointer(n.a_radius,1,5126,!1,16,12),t.uniform2fv(n.u_size,i),t.uniform1f(n.u_pixelRatio,r),n},e.prototype.shutDownProgram=function(t,e){t.disableVertexAttribArray(e.a_position),t.disableVertexAttribArray(e.a_instruction),t.disableVertexAttribArray(e.a_radius)},e.prototype.drawReplay=function(t,e,i,r){var n,o,s,a;if(d(i))for(s=this.startIndices[this.startIndices.length-1],n=this.styleIndices_.length-1;n>=0;--n)o=this.styleIndices_[n],a=this.styles_[n],this.setFillStyle_(t,a[0]),this.setStrokeStyle_(t,a[1],a[2]),this.drawElements(t,e,o,s),s=o;else this.drawReplaySkipping_(t,e,i)},e.prototype.drawHitDetectionReplayOneByOne=function(t,e,i,r,n){var s,a,h,l,u,p,c;for(c=this.startIndices.length-2,h=this.startIndices[c+1],s=this.styleIndices_.length-1;s>=0;--s)for(l=this.styles_[s],this.setFillStyle_(t,l[0]),this.setStrokeStyle_(t,l[1],l[2]),u=this.styleIndices_[s];c>=0&&this.startIndices[c]>=u;){if(a=this.startIndices[c],void 0===i[o(p=this.startIndicesFeature[c])]&&p.getGeometry()&&(void 0===n||Pt(n,p.getGeometry().getExtent()))){t.clear(t.COLOR_BUFFER_BIT|t.DEPTH_BUFFER_BIT),this.drawElements(t,e,a,h);var d=r(p);if(d)return d}c--,h=a}},e.prototype.drawReplaySkipping_=function(t,e,i){var r,n,s,a,h,l,u;for(l=this.startIndices.length-2,s=n=this.startIndices[l+1],r=this.styleIndices_.length-1;r>=0;--r){for(a=this.styles_[r],this.setFillStyle_(t,a[0]),this.setStrokeStyle_(t,a[1],a[2]),h=this.styleIndices_[r];l>=0&&this.startIndices[l]>=h;)u=this.startIndices[l],i[o(this.startIndicesFeature[l])]&&(n!==s&&this.drawElements(t,e,n,s),s=u),l--,n=u;n!==s&&this.drawElements(t,e,n,s),n=s=h}},e.prototype.setFillStyle_=function(t,e){t.uniform4fv(this.defaultLocations_.u_fillColor,e)},e.prototype.setStrokeStyle_=function(t,e,i){t.uniform4fv(this.defaultLocations_.u_strokeColor,e),t.uniform1f(this.defaultLocations_.u_lineWidth,i)},e.prototype.setFillStrokeStyle=function(t,e){var i,r;if(e){var n=e.getLineDash();this.state_.lineDash=n||yh;var o=e.getLineDashOffset();this.state_.lineDashOffset=o||0,i=(i=e.getColor())instanceof CanvasGradient||i instanceof CanvasPattern?vh:_r(i).map(function(t,e){return 3!=e?t/255:t})||vh,r=void 0!==(r=e.getWidth())?r:1}else i=[0,0,0,0],r=0;var s=t?t.getColor():[0,0,0,0];s=s instanceof CanvasGradient||s instanceof CanvasPattern?gh:_r(s).map(function(t,e){return 3!=e?t/255:t})||gh,this.state_.strokeColor&&Z(this.state_.strokeColor,i)&&this.state_.fillColor&&Z(this.state_.fillColor,s)&&this.state_.lineWidth===r||(this.state_.changed=!0,this.state_.fillColor=s,this.state_.strokeColor=i,this.state_.lineWidth=r,this.styles_.push([s,i,r]))},e}(_h),Rh=new lh("precision mediump float;\nvarying vec2 v_texCoord;\nvarying float v_opacity;\n\nuniform float u_opacity;\nuniform sampler2D u_image;\n\nvoid main(void) {\n vec4 texColor = texture2D(u_image, v_texCoord);\n gl_FragColor.rgb = texColor.rgb;\n float alpha = texColor.a * v_opacity * u_opacity;\n if (alpha == 0.0) {\n discard;\n }\n gl_FragColor.a = alpha;\n}\n"),wh=new uh("varying vec2 v_texCoord;\nvarying float v_opacity;\n\nattribute vec2 a_position;\nattribute vec2 a_texCoord;\nattribute vec2 a_offsets;\nattribute float a_opacity;\nattribute float a_rotateWithView;\n\nuniform mat4 u_projectionMatrix;\nuniform mat4 u_offsetScaleMatrix;\nuniform mat4 u_offsetRotateMatrix;\n\nvoid main(void) {\n mat4 offsetMatrix = u_offsetScaleMatrix;\n if (a_rotateWithView == 1.0) {\n offsetMatrix = u_offsetScaleMatrix * u_offsetRotateMatrix;\n }\n vec4 offsets = offsetMatrix * vec4(a_offsets, 0.0, 0.0);\n gl_Position = u_projectionMatrix * vec4(a_position, 0.0, 1.0) + offsets;\n v_texCoord = a_texCoord;\n v_opacity = a_opacity;\n}\n\n\n"),Ih=function(t,e){this.u_projectionMatrix=t.getUniformLocation(e,"u_projectionMatrix"),this.u_offsetScaleMatrix=t.getUniformLocation(e,"u_offsetScaleMatrix"),this.u_offsetRotateMatrix=t.getUniformLocation(e,"u_offsetRotateMatrix"),this.u_opacity=t.getUniformLocation(e,"u_opacity"),this.u_image=t.getUniformLocation(e,"u_image"),this.a_position=t.getAttribLocation(e,"a_position"),this.a_texCoord=t.getAttribLocation(e,"a_texCoord"),this.a_offsets=t.getAttribLocation(e,"a_offsets"),this.a_opacity=t.getAttribLocation(e,"a_opacity"),this.a_rotateWithView=t.getAttribLocation(e,"a_rotateWithView")},Lh={LOST:"webglcontextlost",RESTORED:"webglcontextrestored"};function Oh(t,e,i){var r=t.createTexture();return t.bindTexture(t.TEXTURE_2D,r),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MAG_FILTER,t.LINEAR),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MIN_FILTER,t.LINEAR),void 0!==e&&t.texParameteri(eh,$a,e),void 0!==i&&t.texParameteri(eh,th,i),r}function Ph(t,e,i,r,n){var o=Oh(t,r,n);return t.texImage2D(t.TEXTURE_2D,0,t.RGBA,e,i,0,t.RGBA,t.UNSIGNED_BYTE,null),o}function bh(t,e,i,r){var n=Oh(t,i,r);return t.texImage2D(t.TEXTURE_2D,0,t.RGBA,t.RGBA,t.UNSIGNED_BYTE,e),n}var Mh=function(t){function e(e,i){t.call(this),this.canvas_=e,this.gl_=i,this.bufferCache_={},this.shaderCache_={},this.programCache_={},this.currentProgram_=null,this.hitDetectionFramebuffer_=null,this.hitDetectionTexture_=null,this.hitDetectionRenderbuffer_=null,this.hasOESElementIndexUint=X(oh,"OES_element_index_uint"),this.hasOESElementIndexUint&&i.getExtension("OES_element_index_uint"),v(this.canvas_,Lh.LOST,this.handleWebGLContextLost,this),v(this.canvas_,Lh.RESTORED,this.handleWebGLContextRestored,this)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.bindBuffer=function(t,e){var i=this.getGL(),r=e.getArray(),n=o(e);if(n in this.bufferCache_){var s=this.bufferCache_[n];i.bindBuffer(t,s.buffer)}else{var a,h=i.createBuffer();i.bindBuffer(t,h),34962==t?a=new Float32Array(r):34963==t&&(a=this.hasOESElementIndexUint?new Uint32Array(r):new Uint16Array(r)),i.bufferData(t,a,e.getUsage()),this.bufferCache_[n]={buf:e,buffer:h}}},e.prototype.deleteBuffer=function(t){var e=this.getGL(),i=o(t),r=this.bufferCache_[i];e.isContextLost()||e.deleteBuffer(r.buffer),delete this.bufferCache_[i]},e.prototype.disposeInternal=function(){S(this.canvas_);var t=this.getGL();if(!t.isContextLost()){for(var e in this.bufferCache_)t.deleteBuffer(this.bufferCache_[e].buffer);for(var i in this.programCache_)t.deleteProgram(this.programCache_[i]);for(var r in this.shaderCache_)t.deleteShader(this.shaderCache_[r]);t.deleteFramebuffer(this.hitDetectionFramebuffer_),t.deleteRenderbuffer(this.hitDetectionRenderbuffer_),t.deleteTexture(this.hitDetectionTexture_)}},e.prototype.getCanvas=function(){return this.canvas_},e.prototype.getGL=function(){return this.gl_},e.prototype.getHitDetectionFramebuffer=function(){return this.hitDetectionFramebuffer_||this.initHitDetectionFramebuffer_(),this.hitDetectionFramebuffer_},e.prototype.getShader=function(t){var e=o(t);if(e in this.shaderCache_)return this.shaderCache_[e];var i=this.getGL(),r=i.createShader(t.getType());return i.shaderSource(r,t.getSource()),i.compileShader(r),this.shaderCache_[e]=r,r},e.prototype.getProgram=function(t,e){var i=o(t)+"/"+o(e);if(i in this.programCache_)return this.programCache_[i];var r=this.getGL(),n=r.createProgram();return r.attachShader(n,this.getShader(t)),r.attachShader(n,this.getShader(e)),r.linkProgram(n),this.programCache_[i]=n,n},e.prototype.handleWebGLContextLost=function(){p(this.bufferCache_),p(this.shaderCache_),p(this.programCache_),this.currentProgram_=null,this.hitDetectionFramebuffer_=null,this.hitDetectionTexture_=null,this.hitDetectionRenderbuffer_=null},e.prototype.handleWebGLContextRestored=function(){},e.prototype.initHitDetectionFramebuffer_=function(){var t=this.gl_,e=t.createFramebuffer();t.bindFramebuffer(t.FRAMEBUFFER,e);var i=Ph(t,1,1),r=t.createRenderbuffer();t.bindRenderbuffer(t.RENDERBUFFER,r),t.renderbufferStorage(t.RENDERBUFFER,t.DEPTH_COMPONENT16,1,1),t.framebufferTexture2D(t.FRAMEBUFFER,t.COLOR_ATTACHMENT0,t.TEXTURE_2D,i,0),t.framebufferRenderbuffer(t.FRAMEBUFFER,t.DEPTH_ATTACHMENT,t.RENDERBUFFER,r),t.bindTexture(t.TEXTURE_2D,null),t.bindRenderbuffer(t.RENDERBUFFER,null),t.bindFramebuffer(t.FRAMEBUFFER,null),this.hitDetectionFramebuffer_=e,this.hitDetectionTexture_=i,this.hitDetectionRenderbuffer_=r},e.prototype.useProgram=function(t){return t!=this.currentProgram_&&(this.getGL().useProgram(t),this.currentProgram_=t,!0)},e}(C),Fh=function(t){function e(e,i){t.call(this,e,i),this.anchorX=void 0,this.anchorY=void 0,this.groupIndices=[],this.hitDetectionGroupIndices=[],this.height=void 0,this.imageHeight=void 0,this.imageWidth=void 0,this.defaultLocations=null,this.opacity=void 0,this.originX=void 0,this.originY=void 0,this.rotateWithView=void 0,this.rotation=void 0,this.scale=void 0,this.width=void 0}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.getDeleteResourcesFunction=function(t){var e=this.verticesBuffer,i=this.indicesBuffer,r=this.getTextures(!0),n=t.getGL();return function(){var o,s;if(!n.isContextLost())for(o=0,s=r.length;o0?n[s-1]:0,u=n[s],p=l,c=l;h=0;--s)for(t.bindTexture(eh,c[s]),a=s>0?this.hitDetectionGroupIndices[s-1]:0,l=this.hitDetectionGroupIndices[s];p>=0&&this.startIndices[p]>=a;){if(h=this.startIndices[p],void 0===i[o(u=this.startIndicesFeature[p])]&&u.getGeometry()&&(void 0===n||Pt(n,u.getGeometry().getExtent()))){t.clear(t.COLOR_BUFFER_BIT|t.DEPTH_BUFFER_BIT),this.drawElements(t,e,h,l);var d=r(u);if(d)return d}l=h,p--}},e.prototype.finish=function(t){this.anchorX=void 0,this.anchorY=void 0,this.height=void 0,this.imageHeight=void 0,this.imageWidth=void 0,this.indices=null,this.opacity=void 0,this.originX=void 0,this.originY=void 0,this.rotateWithView=void 0,this.rotation=void 0,this.scale=void 0,this.vertices=null,this.width=void 0},e.prototype.getTextures=function(t){return r()},e.prototype.getHitDetectionTextures=function(){return r()},e}(_h),Ah=function(t){function e(e,i){t.call(this,e,i),this.images_=[],this.hitDetectionImages_=[],this.textures_=[],this.hitDetectionTextures_=[]}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.drawMultiPoint=function(t,e){this.startIndices.push(this.indices.length),this.startIndicesFeature.push(e);var i=t.getFlatCoordinates(),r=t.getStride();this.drawCoordinates(i,0,i.length,r)},e.prototype.drawPoint=function(t,e){this.startIndices.push(this.indices.length),this.startIndicesFeature.push(e);var i=t.getFlatCoordinates(),r=t.getStride();this.drawCoordinates(i,0,i.length,r)},e.prototype.finish=function(e){var i=e.getGL();this.groupIndices.push(this.indices.length),this.hitDetectionGroupIndices.push(this.indices.length),this.verticesBuffer=new Th(this.vertices);var r=this.indices;this.indicesBuffer=new Th(r);var n={};this.createTextures(this.textures_,this.images_,n,i),this.createTextures(this.hitDetectionTextures_,this.hitDetectionImages_,n,i),this.images_=null,this.hitDetectionImages_=null,t.prototype.finish.call(this,e)},e.prototype.setImageStyle=function(t){var e=t.getAnchor(),i=t.getImage(1),r=t.getImageSize(),n=t.getHitDetectionImage(1),s=t.getOpacity(),a=t.getOrigin(),h=t.getRotateWithView(),l=t.getRotation(),u=t.getSize(),p=t.getScale();0===this.images_.length?this.images_.push(i):o(this.images_[this.images_.length-1])!=o(i)&&(this.groupIndices.push(this.indices.length),this.images_.push(i)),0===this.hitDetectionImages_.length?this.hitDetectionImages_.push(n):o(this.hitDetectionImages_[this.hitDetectionImages_.length-1])!=o(n)&&(this.hitDetectionGroupIndices.push(this.indices.length),this.hitDetectionImages_.push(n)),this.anchorX=e[0],this.anchorY=e[1],this.height=u[1],this.imageHeight=r[1],this.imageWidth=r[0],this.opacity=s,this.originX=a[0],this.originY=a[1],this.rotation=l,this.rotateWithView=h,this.scale=p,this.width=u[0]},e.prototype.getTextures=function(t){return t?this.textures_.concat(this.hitDetectionTextures_):this.textures_},e.prototype.getHitDetectionTextures=function(){return this.hitDetectionTextures_},e}(Fh);function Nh(t,e,i,r){var n=i-r;return t[e]===t[n]&&t[e+1]===t[n+1]&&(i-e)/r>3&&!!Ke(t,e,i,r)}var Gh=new lh("precision mediump float;\nvarying float v_round;\nvarying vec2 v_roundVertex;\nvarying float v_halfWidth;\n\n\n\nuniform float u_opacity;\nuniform vec4 u_color;\nuniform vec2 u_size;\nuniform float u_pixelRatio;\n\nvoid main(void) {\n if (v_round > 0.0) {\n vec2 windowCoords = vec2((v_roundVertex.x + 1.0) / 2.0 * u_size.x * u_pixelRatio,\n (v_roundVertex.y + 1.0) / 2.0 * u_size.y * u_pixelRatio);\n if (length(windowCoords - gl_FragCoord.xy) > v_halfWidth * u_pixelRatio) {\n discard;\n }\n }\n gl_FragColor = u_color;\n float alpha = u_color.a * u_opacity;\n if (alpha == 0.0) {\n discard;\n }\n gl_FragColor.a = alpha;\n}\n"),Dh=new uh("varying float v_round;\nvarying vec2 v_roundVertex;\nvarying float v_halfWidth;\n\n\nattribute vec2 a_lastPos;\nattribute vec2 a_position;\nattribute vec2 a_nextPos;\nattribute float a_direction;\n\nuniform mat4 u_projectionMatrix;\nuniform mat4 u_offsetScaleMatrix;\nuniform mat4 u_offsetRotateMatrix;\nuniform float u_lineWidth;\nuniform float u_miterLimit;\n\nbool nearlyEquals(in float value, in float ref) {\n float epsilon = 0.000000000001;\n return value >= ref - epsilon && value <= ref + epsilon;\n}\n\nvoid alongNormal(out vec2 offset, in vec2 nextP, in float turnDir, in float direction) {\n vec2 dirVect = nextP - a_position;\n vec2 normal = normalize(vec2(-turnDir * dirVect.y, turnDir * dirVect.x));\n offset = u_lineWidth / 2.0 * normal * direction;\n}\n\nvoid miterUp(out vec2 offset, out float round, in bool isRound, in float direction) {\n float halfWidth = u_lineWidth / 2.0;\n vec2 tangent = normalize(normalize(a_nextPos - a_position) + normalize(a_position - a_lastPos));\n vec2 normal = vec2(-tangent.y, tangent.x);\n vec2 dirVect = a_nextPos - a_position;\n vec2 tmpNormal = normalize(vec2(-dirVect.y, dirVect.x));\n float miterLength = abs(halfWidth / dot(normal, tmpNormal));\n offset = normal * direction * miterLength;\n round = 0.0;\n if (isRound) {\n round = 1.0;\n } else if (miterLength > u_miterLimit + u_lineWidth) {\n offset = halfWidth * tmpNormal * direction;\n }\n}\n\nbool miterDown(out vec2 offset, in vec4 projPos, in mat4 offsetMatrix, in float direction) {\n bool degenerate = false;\n vec2 tangent = normalize(normalize(a_nextPos - a_position) + normalize(a_position - a_lastPos));\n vec2 normal = vec2(-tangent.y, tangent.x);\n vec2 dirVect = a_lastPos - a_position;\n vec2 tmpNormal = normalize(vec2(-dirVect.y, dirVect.x));\n vec2 longOffset, shortOffset, longVertex;\n vec4 shortProjVertex;\n float halfWidth = u_lineWidth / 2.0;\n if (length(a_nextPos - a_position) > length(a_lastPos - a_position)) {\n longOffset = tmpNormal * direction * halfWidth;\n shortOffset = normalize(vec2(dirVect.y, -dirVect.x)) * direction * halfWidth;\n longVertex = a_nextPos;\n shortProjVertex = u_projectionMatrix * vec4(a_lastPos, 0.0, 1.0);\n } else {\n shortOffset = tmpNormal * direction * halfWidth;\n longOffset = normalize(vec2(dirVect.y, -dirVect.x)) * direction * halfWidth;\n longVertex = a_lastPos;\n shortProjVertex = u_projectionMatrix * vec4(a_nextPos, 0.0, 1.0);\n }\n //Intersection algorithm based on theory by Paul Bourke (http://paulbourke.net/geometry/pointlineplane/).\n vec4 p1 = u_projectionMatrix * vec4(longVertex, 0.0, 1.0) + offsetMatrix * vec4(longOffset, 0.0, 0.0);\n vec4 p2 = projPos + offsetMatrix * vec4(longOffset, 0.0, 0.0);\n vec4 p3 = shortProjVertex + offsetMatrix * vec4(-shortOffset, 0.0, 0.0);\n vec4 p4 = shortProjVertex + offsetMatrix * vec4(shortOffset, 0.0, 0.0);\n float denom = (p4.y - p3.y) * (p2.x - p1.x) - (p4.x - p3.x) * (p2.y - p1.y);\n float firstU = ((p4.x - p3.x) * (p1.y - p3.y) - (p4.y - p3.y) * (p1.x - p3.x)) / denom;\n float secondU = ((p2.x - p1.x) * (p1.y - p3.y) - (p2.y - p1.y) * (p1.x - p3.x)) / denom;\n float epsilon = 0.000000000001;\n if (firstU > epsilon && firstU < 1.0 - epsilon && secondU > epsilon && secondU < 1.0 - epsilon) {\n shortProjVertex.x = p1.x + firstU * (p2.x - p1.x);\n shortProjVertex.y = p1.y + firstU * (p2.y - p1.y);\n offset = shortProjVertex.xy;\n degenerate = true;\n } else {\n float miterLength = abs(halfWidth / dot(normal, tmpNormal));\n offset = normal * direction * miterLength;\n }\n return degenerate;\n}\n\nvoid squareCap(out vec2 offset, out float round, in bool isRound, in vec2 nextP,\n in float turnDir, in float direction) {\n round = 0.0;\n vec2 dirVect = a_position - nextP;\n vec2 firstNormal = normalize(dirVect);\n vec2 secondNormal = vec2(turnDir * firstNormal.y * direction, -turnDir * firstNormal.x * direction);\n vec2 hypotenuse = normalize(firstNormal - secondNormal);\n vec2 normal = vec2(turnDir * hypotenuse.y * direction, -turnDir * hypotenuse.x * direction);\n float length = sqrt(v_halfWidth * v_halfWidth * 2.0);\n offset = normal * length;\n if (isRound) {\n round = 1.0;\n }\n}\n\nvoid main(void) {\n bool degenerate = false;\n float direction = float(sign(a_direction));\n mat4 offsetMatrix = u_offsetScaleMatrix * u_offsetRotateMatrix;\n vec2 offset;\n vec4 projPos = u_projectionMatrix * vec4(a_position, 0.0, 1.0);\n bool round = nearlyEquals(mod(a_direction, 2.0), 0.0);\n\n v_round = 0.0;\n v_halfWidth = u_lineWidth / 2.0;\n v_roundVertex = projPos.xy;\n\n if (nearlyEquals(mod(a_direction, 3.0), 0.0) || nearlyEquals(mod(a_direction, 17.0), 0.0)) {\n alongNormal(offset, a_nextPos, 1.0, direction);\n } else if (nearlyEquals(mod(a_direction, 5.0), 0.0) || nearlyEquals(mod(a_direction, 13.0), 0.0)) {\n alongNormal(offset, a_lastPos, -1.0, direction);\n } else if (nearlyEquals(mod(a_direction, 23.0), 0.0)) {\n miterUp(offset, v_round, round, direction);\n } else if (nearlyEquals(mod(a_direction, 19.0), 0.0)) {\n degenerate = miterDown(offset, projPos, offsetMatrix, direction);\n } else if (nearlyEquals(mod(a_direction, 7.0), 0.0)) {\n squareCap(offset, v_round, round, a_nextPos, 1.0, direction);\n } else if (nearlyEquals(mod(a_direction, 11.0), 0.0)) {\n squareCap(offset, v_round, round, a_lastPos, -1.0, direction);\n }\n if (!degenerate) {\n vec4 offsets = offsetMatrix * vec4(offset, 0.0, 0.0);\n gl_Position = projPos + offsets;\n } else {\n gl_Position = vec4(offset, 0.0, 1.0);\n }\n}\n\n\n"),kh=function(t,e){this.u_projectionMatrix=t.getUniformLocation(e,"u_projectionMatrix"),this.u_offsetScaleMatrix=t.getUniformLocation(e,"u_offsetScaleMatrix"),this.u_offsetRotateMatrix=t.getUniformLocation(e,"u_offsetRotateMatrix"),this.u_lineWidth=t.getUniformLocation(e,"u_lineWidth"),this.u_miterLimit=t.getUniformLocation(e,"u_miterLimit"),this.u_opacity=t.getUniformLocation(e,"u_opacity"),this.u_color=t.getUniformLocation(e,"u_color"),this.u_size=t.getUniformLocation(e,"u_size"),this.u_pixelRatio=t.getUniformLocation(e,"u_pixelRatio"),this.a_lastPos=t.getAttribLocation(e,"a_lastPos"),this.a_position=t.getAttribLocation(e,"a_position"),this.a_nextPos=t.getAttribLocation(e,"a_nextPos"),this.a_direction=t.getAttribLocation(e,"a_direction")},jh=3,Uh=5,Yh=7,Bh=11,Vh=13,Xh=17,zh=19,Wh=23,Kh=function(t){function e(e,i){t.call(this,e,i),this.defaultLocations_=null,this.styles_=[],this.styleIndices_=[],this.state_={strokeColor:null,lineCap:void 0,lineDash:null,lineDashOffset:void 0,lineJoin:void 0,lineWidth:void 0,miterLimit:void 0,changed:!1}}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.drawCoordinates_=function(t,e,i,r){var n,o,s,a,h,l,u,p,c=this.vertices.length,d=this.indices.length,f="bevel"===this.state_.lineJoin?0:"miter"===this.state_.lineJoin?1:2,_="butt"===this.state_.lineCap?0:"square"===this.state_.lineCap?1:2,g=Nh(t,e,i,r),y=d,v=1;for(n=e,o=i;ne&&(this.indices[d++]=h,this.indices[d++]=y-1,this.indices[d++]=y,this.indices[d++]=h+2,this.indices[d++]=h,this.indices[d++]=v*a>0?y:y-1),this.indices[d++]=h,this.indices[d++]=h+2,this.indices[d++]=h+1,y=h+2,v=a,f&&(c=this.addVertices_(l,u,p,a*Wh*f,c),this.indices[d++]=h+1,this.indices[d++]=h+3,this.indices[d++]=h)}g&&(h=h||c/7,a=Si([l[0],l[1],u[0],u[1],p[0],p[1]],0,6,2)?1:-1,c=this.addVertices_(l,u,p,a*Vh*(f||1),c),c=this.addVertices_(l,u,p,-a*zh*(f||1),c),this.indices[d++]=h,this.indices[d++]=y-1,this.indices[d++]=y,this.indices[d++]=h+1,this.indices[d++]=h,this.indices[d++]=v*a>0?y:y-1)},e.prototype.addVertices_=function(t,e,i,r,n){return this.vertices[n++]=t[0],this.vertices[n++]=t[1],this.vertices[n++]=e[0],this.vertices[n++]=e[1],this.vertices[n++]=i[0],this.vertices[n++]=i[1],this.vertices[n++]=r,n},e.prototype.isValid_=function(t,e,i,r){var n=i-e;return!(n<2*r)&&(n!==2*r||!Z([t[e],t[e+1]],[t[e+r],t[e+r+1]]))},e.prototype.drawLineString=function(t,e){var i=t.getFlatCoordinates(),r=t.getStride();this.isValid_(i,0,i.length,r)&&(i=Dt(i,0,i.length,r,-this.origin[0],-this.origin[1]),this.state_.changed&&(this.styleIndices_.push(this.indices.length),this.state_.changed=!1),this.startIndices.push(this.indices.length),this.startIndicesFeature.push(e),this.drawCoordinates_(i,0,i.length,r))},e.prototype.drawMultiLineString=function(t,e){var i=this.indices.length,r=t.getEnds();r.unshift(0);var n,o,s=t.getFlatCoordinates(),a=t.getStride();if(r.length>1)for(n=1,o=r.length;ni&&(this.startIndices.push(i),this.startIndicesFeature.push(e),this.state_.changed&&(this.styleIndices_.push(i),this.state_.changed=!1))},e.prototype.drawPolygonCoordinates=function(t,e,i){var r,n;if(Nh(t,0,t.length,i)||(t.push(t[0]),t.push(t[1])),this.drawCoordinates_(t,0,t.length,i),e.length)for(r=0,n=e.length;r0&&(this.styles_=[]),this.vertices=null,this.indices=null},e.prototype.getDeleteResourcesFunction=function(t){var e=this.verticesBuffer,i=this.indicesBuffer;return function(){t.deleteBuffer(e),t.deleteBuffer(i)}},e.prototype.setUpProgram=function(t,e,i,r){var n,o=e.getProgram(Gh,Dh);return this.defaultLocations_?n=this.defaultLocations_:(n=new kh(t,o),this.defaultLocations_=n),e.useProgram(o),t.enableVertexAttribArray(n.a_lastPos),t.vertexAttribPointer(n.a_lastPos,2,5126,!1,28,0),t.enableVertexAttribArray(n.a_position),t.vertexAttribPointer(n.a_position,2,5126,!1,28,8),t.enableVertexAttribArray(n.a_nextPos),t.vertexAttribPointer(n.a_nextPos,2,5126,!1,28,16),t.enableVertexAttribArray(n.a_direction),t.vertexAttribPointer(n.a_direction,1,5126,!1,28,24),t.uniform2fv(n.u_size,i),t.uniform1f(n.u_pixelRatio,r),n},e.prototype.shutDownProgram=function(t,e){t.disableVertexAttribArray(e.a_lastPos),t.disableVertexAttribArray(e.a_position),t.disableVertexAttribArray(e.a_nextPos),t.disableVertexAttribArray(e.a_direction)},e.prototype.drawReplay=function(t,e,i,r){var n,o,s,a,h=t.getParameter(t.DEPTH_FUNC),l=t.getParameter(t.DEPTH_WRITEMASK);if(r||(t.enable(t.DEPTH_TEST),t.depthMask(!0),t.depthFunc(t.NOTEQUAL)),d(i))for(s=this.startIndices[this.startIndices.length-1],n=this.styleIndices_.length-1;n>=0;--n)o=this.styleIndices_[n],a=this.styles_[n],this.setStrokeStyle_(t,a[0],a[1],a[2]),this.drawElements(t,e,o,s),t.clear(t.DEPTH_BUFFER_BIT),s=o;else this.drawReplaySkipping_(t,e,i);r||(t.disable(t.DEPTH_TEST),t.clear(t.DEPTH_BUFFER_BIT),t.depthMask(l),t.depthFunc(h))},e.prototype.drawReplaySkipping_=function(t,e,i){var r,n,s,a,h,l,u;for(l=this.startIndices.length-2,s=n=this.startIndices[l+1],r=this.styleIndices_.length-1;r>=0;--r){for(a=this.styles_[r],this.setStrokeStyle_(t,a[0],a[1],a[2]),h=this.styleIndices_[r];l>=0&&this.startIndices[l]>=h;)u=this.startIndices[l],i[o(this.startIndicesFeature[l])]&&(n!==s&&(this.drawElements(t,e,n,s),t.clear(t.DEPTH_BUFFER_BIT)),s=u),l--,n=u;n!==s&&(this.drawElements(t,e,n,s),t.clear(t.DEPTH_BUFFER_BIT)),n=s=h}},e.prototype.drawHitDetectionReplayOneByOne=function(t,e,i,r,n){var s,a,h,l,u,p,c;for(c=this.startIndices.length-2,h=this.startIndices[c+1],s=this.styleIndices_.length-1;s>=0;--s)for(l=this.styles_[s],this.setStrokeStyle_(t,l[0],l[1],l[2]),u=this.styleIndices_[s];c>=0&&this.startIndices[c]>=u;){if(a=this.startIndices[c],void 0===i[o(p=this.startIndicesFeature[c])]&&p.getGeometry()&&(void 0===n||Pt(n,p.getGeometry().getExtent()))){t.clear(t.COLOR_BUFFER_BIT|t.DEPTH_BUFFER_BIT),this.drawElements(t,e,a,h);var d=r(p);if(d)return d}c--,h=a}},e.prototype.setStrokeStyle_=function(t,e,i,r){t.uniform4fv(this.defaultLocations_.u_color,e),t.uniform1f(this.defaultLocations_.u_lineWidth,i),t.uniform1f(this.defaultLocations_.u_miterLimit,r)},e.prototype.setFillStrokeStyle=function(t,e){var i=e.getLineCap();this.state_.lineCap=void 0!==i?i:"round";var r=e.getLineDash();this.state_.lineDash=r||yh;var n=e.getLineDashOffset();this.state_.lineDashOffset=n||0;var o=e.getLineJoin();this.state_.lineJoin=void 0!==o?o:"round";var s=e.getColor();s=s instanceof CanvasGradient||s instanceof CanvasPattern?vh:_r(s).map(function(t,e){return 3!=e?t/255:t})||vh;var a=e.getWidth();a=void 0!==a?a:1;var h=e.getMiterLimit();h=void 0!==h?h:10,this.state_.strokeColor&&Z(this.state_.strokeColor,s)&&this.state_.lineWidth===a&&this.state_.miterLimit===h||(this.state_.changed=!0,this.state_.strokeColor=s,this.state_.lineWidth=a,this.state_.miterLimit=h,this.styles_.push([s,a,h]))},e}(_h),Hh=new lh("precision mediump float;\n\n\n\nuniform vec4 u_color;\nuniform float u_opacity;\n\nvoid main(void) {\n gl_FragColor = u_color;\n float alpha = u_color.a * u_opacity;\n if (alpha == 0.0) {\n discard;\n }\n gl_FragColor.a = alpha;\n}\n"),Zh=new uh("\n\nattribute vec2 a_position;\n\nuniform mat4 u_projectionMatrix;\nuniform mat4 u_offsetScaleMatrix;\nuniform mat4 u_offsetRotateMatrix;\n\nvoid main(void) {\n gl_Position = u_projectionMatrix * vec4(a_position, 0.0, 1.0);\n}\n\n\n"),qh=function(t,e){this.u_projectionMatrix=t.getUniformLocation(e,"u_projectionMatrix"),this.u_offsetScaleMatrix=t.getUniformLocation(e,"u_offsetScaleMatrix"),this.u_offsetRotateMatrix=t.getUniformLocation(e,"u_offsetRotateMatrix"),this.u_color=t.getUniformLocation(e,"u_color"),this.u_opacity=t.getUniformLocation(e,"u_opacity"),this.a_position=t.getAttribLocation(e,"a_position")},Jh=function(t){this.first_,this.last_,this.head_,this.circular_=void 0===t||t,this.length_=0};Jh.prototype.insertItem=function(t){var e={prev:void 0,next:void 0,data:t},i=this.head_;if(i){var r=i.next;e.prev=i,e.next=r,i.next=e,r&&(r.prev=e),i===this.last_&&(this.last_=e)}else this.first_=e,this.last_=e,this.circular_&&(e.next=e,e.prev=e);this.head_=e,this.length_++},Jh.prototype.removeItem=function(){var t=this.head_;if(t){var e=t.next,i=t.prev;e&&(e.prev=i),i&&(i.next=e),this.head_=e||i,this.first_===this.last_?(this.head_=void 0,this.first_=void 0,this.last_=void 0):this.first_===t?this.first_=this.head_:this.last_===t&&(this.last_=i?this.head_.prev:this.head_),this.length_--}},Jh.prototype.firstItem=function(){if(this.head_=this.first_,this.head_)return this.head_.data},Jh.prototype.lastItem=function(){if(this.head_=this.last_,this.head_)return this.head_.data},Jh.prototype.nextItem=function(){if(this.head_&&this.head_.next)return this.head_=this.head_.next,this.head_.data},Jh.prototype.getNextItem=function(){if(this.head_&&this.head_.next)return this.head_.next.data},Jh.prototype.prevItem=function(){if(this.head_&&this.head_.prev)return this.head_=this.head_.prev,this.head_.data},Jh.prototype.getPrevItem=function(){if(this.head_&&this.head_.prev)return this.head_.prev.data},Jh.prototype.getCurrItem=function(){if(this.head_)return this.head_.data},Jh.prototype.setFirstItem=function(){this.circular_&&this.head_&&(this.first_=this.head_,this.last_=this.head_.prev)},Jh.prototype.concat=function(t){if(t.head_){if(this.head_){var e=this.head_.next;this.head_.next=t.first_,t.first_.prev=this.head_,e.prev=t.last_,t.last_.next=e,this.length_+=t.length_}else this.head_=t.head_,this.first_=t.first_,this.last_=t.last_,this.length_=t.length_;t.head_=void 0,t.first_=void 0,t.last_=void 0,t.length_=0}},Jh.prototype.getLength=function(){return this.length_};var Qh=Jh,$h=function(t){this.rbush_=ua()(t,void 0),this.items_={}};$h.prototype.insert=function(t,e){var i={minX:t[0],minY:t[1],maxX:t[2],maxY:t[3],value:e};this.rbush_.insert(i),this.items_[o(e)]=i},$h.prototype.load=function(t,e){for(var i=new Array(e.length),r=0,n=e.length;r=s;o-=e)l=this.createPoint_(t[o],t[o+1],p++),d.push(this.insertItem_(h,l,i)),c.push([Math.min(h.x,l.x),Math.min(h.y,l.y),Math.max(h.x,l.x),Math.max(h.y,l.y)]),h=l;d.push(this.insertItem_(l,a,i)),c.push([Math.min(h.x,l.x),Math.min(h.y,l.y),Math.max(h.x,l.x),Math.max(h.y,l.y)])}r.load(c,d)},e.prototype.getMaxCoords_=function(t){var e=t.firstItem(),i=e,r=[i.p0.x,i.p0.y];do{(i=t.nextItem()).p0.x>r[0]&&(r=[i.p0.x,i.p0.y])}while(i!==e);return r},e.prototype.classifyPoints_=function(t,e,i){var r=t.firstItem(),n=r,o=t.nextItem(),s=!1;do{var a=i?xh(o.p1.x,o.p1.y,n.p1.x,n.p1.y,n.p0.x,n.p0.y):xh(n.p0.x,n.p0.y,n.p1.x,n.p1.y,o.p1.x,o.p1.y);void 0===a?(this.removeItem_(n,o,t,e),s=!0,o===r&&(r=t.getNextItem()),o=n,t.prevItem()):n.p1.reflex!==a&&(n.p1.reflex=a,s=!0),n=o,o=t.nextItem()}while(n!==r);return s},e.prototype.bridgeHole_=function(t,e,i,r,n){for(var o=t.firstItem();o.p1.x!==e;)o=t.nextItem();var s,a,h,l,u=o.p1,p={x:r,y:u.y,i:-1},c=1/0,d=this.getIntersections_({p0:u,p1:p},n,!0);for(s=0,a=d.length;s0){var y=this.getPointsInTriangle_(u,l,o.p1,n);if(y.length){var v=1/0;for(s=0,a=y.length;s3;)if(r){if(!this.clipEars_(t,e,r,i)&&!this.classifyPoints_(t,e,i)&&!this.resolveSelfIntersections_(t,e,!0))break}else if(!this.clipEars_(t,e,r,i)&&!this.classifyPoints_(t,e,i)&&!this.resolveSelfIntersections_(t,e)){if(!(r=this.isSimple_(t,e))){this.splitPolygon_(t,e);break}i=!this.isClockwise_(t),this.classifyPoints_(t,e,i)}if(3===t.getLength()){var n=this.indices.length;this.indices[n++]=t.getPrevItem().p0.i,this.indices[n++]=t.getCurrItem().p0.i,this.indices[n++]=t.getNextItem().p0.i}},e.prototype.clipEars_=function(t,e,i,r){var n,o,s,a=this.indices.length,h=t.firstItem(),l=t.getPrevItem(),u=h,p=t.nextItem(),c=t.getNextItem(),d=!1;do{if(n=u.p0,o=u.p1,s=p.p1,!1===o.reflex){var f=void 0;f=i?0===this.getPointsInTriangle_(n,o,s,e,!0).length:r?this.diagonalIsInside_(c.p1,s,o,n,l.p0):this.diagonalIsInside_(l.p0,n,o,s,c.p1),(i||0===this.getIntersections_({p0:n,p1:s},e).length)&&f&&(i||!1===n.reflex||!1===s.reflex||Si([l.p0.x,l.p0.y,n.x,n.y,o.x,o.y,s.x,s.y,c.p1.x,c.p1.y],0,10,2)===!r)&&(this.indices[a++]=n.i,this.indices[a++]=o.i,this.indices[a++]=s.i,this.removeItem_(u,p,t,e),p===h&&(h=c),d=!0)}l=t.getPrevItem(),u=t.getCurrItem(),p=t.nextItem(),c=t.getNextItem()}while(u!==h&&t.getLength()>3);return d},e.prototype.resolveSelfIntersections_=function(t,e,i){var r=t.firstItem();t.nextItem();var n=r,o=t.nextItem(),s=!1;do{var a=this.calculateIntersection_(n.p0,n.p1,o.p0,o.p1,i);if(a){var h=!1,l=this.vertices.length,u=this.indices.length,p=l/2,c=t.prevItem();t.removeItem(),e.remove(c),h=c===r;var d=void 0;if(i?(a[0]===n.p0.x&&a[1]===n.p0.y?(t.prevItem(),d=n.p0,o.p0=d,e.remove(n),h=h||n===r):(d=o.p1,n.p1=d,e.remove(o),h=h||o===r),t.removeItem()):(d=this.createPoint_(a[0],a[1],p),n.p1=d,o.p0=d,e.update([Math.min(n.p0.x,n.p1.x),Math.min(n.p0.y,n.p1.y),Math.max(n.p0.x,n.p1.x),Math.max(n.p0.y,n.p1.y)],n),e.update([Math.min(o.p0.x,o.p1.x),Math.min(o.p0.y,o.p1.y),Math.max(o.p0.x,o.p1.x),Math.max(o.p0.y,o.p1.y)],o)),this.indices[u++]=c.p0.i,this.indices[u++]=c.p1.i,this.indices[u++]=d.i,s=!0,h)break}n=t.getPrevItem(),o=t.nextItem()}while(n!==r);return s},e.prototype.isSimple_=function(t,e){var i=t.firstItem(),r=i;do{if(this.getIntersections_(r,e).length)return!1;r=t.nextItem()}while(r!==i);return!0},e.prototype.isClockwise_=function(t){var e=2*t.getLength(),i=new Array(e),r=t.firstItem(),n=r,o=0;do{i[o++]=n.p0.x,i[o++]=n.p0.y,n=t.nextItem()}while(n!==r);return Si(i,0,e,2)},e.prototype.splitPolygon_=function(t,e){var i=t.firstItem(),r=i;do{var n=this.getIntersections_(r,e);if(n.length){var o=n[0],s=this.vertices.length/2,a=this.calculateIntersection_(r.p0,r.p1,o.p0,o.p1),h=this.createPoint_(a[0],a[1],s),l=new Qh,u=new tl;this.insertItem_(h,r.p1,l,u),r.p1=h,e.update([Math.min(r.p0.x,h.x),Math.min(r.p0.y,h.y),Math.max(r.p0.x,h.x),Math.max(r.p0.y,h.y)],r);for(var p=t.nextItem();p!==o;)this.insertItem_(p.p0,p.p1,l,u),e.remove(p),t.removeItem(),p=t.getCurrItem();this.insertItem_(o.p0,h,l,u),o.p0=h,e.update([Math.min(o.p1.x,h.x),Math.min(o.p1.y,h.y),Math.max(o.p1.x,h.x),Math.max(o.p1.y,h.y)],o),this.classifyPoints_(t,e,!1),this.triangulate_(t,e),this.classifyPoints_(l,u,!1),this.triangulate_(l,u);break}r=t.nextItem()}while(r!==i)},e.prototype.createPoint_=function(t,e,i){var r=this.vertices.length;return this.vertices[r++]=t,this.vertices[r++]=e,{x:t,y:e,i:i,reflex:void 0}},e.prototype.insertItem_=function(t,e,i,r){var n={p0:t,p1:e};return i.insertItem(n),r&&r.insert([Math.min(t.x,e.x),Math.min(t.y,e.y),Math.max(t.x,e.x),Math.max(t.y,e.y)],n),n},e.prototype.removeItem_=function(t,e,i,r){i.getCurrItem()===e&&(i.removeItem(),t.p1=e.p1,r.remove(e),r.update([Math.min(t.p0.x,t.p1.x),Math.min(t.p0.y,t.p1.y),Math.max(t.p0.x,t.p1.x),Math.max(t.p0.y,t.p1.y)],t))},e.prototype.getPointsInTriangle_=function(t,e,i,r,n){for(var o=[],s=r.getInExtent([Math.min(t.x,e.x,i.x),Math.min(t.y,e.y,i.y),Math.max(t.x,e.x,i.x),Math.max(t.y,e.y,i.y)]),a=0,h=s.length;amh&&s<1-mh&&a>mh&&a<1-mh||n&&s>=0&&s<=1&&a>=0&&a<=1)return[t.x+s*(e.x-t.x),t.y+s*(e.y-t.y)]}},e.prototype.diagonalIsInside_=function(t,e,i,r,n){if(void 0===e.reflex||void 0===r.reflex)return!1;var o=(i.x-r.x)*(e.y-r.y)>(i.y-r.y)*(e.x-r.x),s=(n.x-r.x)*(e.y-r.y)<(n.y-r.y)*(e.x-r.x),a=(t.x-e.x)*(r.y-e.y)>(t.y-e.y)*(r.x-e.x),h=(i.x-e.x)*(r.y-e.y)<(i.y-e.y)*(r.x-e.x),l=r.reflex?s||o:s&&o,u=e.reflex?h||a:h&&a;return l&&u},e.prototype.drawMultiPolygon=function(t,e){var i,r,n,o,s=t.getEndss(),a=t.getStride(),h=this.indices.length,l=this.lineStringReplay.getCurrentIndex(),u=t.getFlatCoordinates(),p=0;for(i=0,r=s.length;i0){var d=Dt(u,p,c[0],a,-this.origin[0],-this.origin[1]);if(d.length){var f=[],_=void 0;for(n=1,o=c.length;nh&&(this.startIndices.push(h),this.startIndicesFeature.push(e),this.state_.changed&&(this.styleIndices_.push(h),this.state_.changed=!1)),this.lineStringReplay.getCurrentIndex()>l&&this.lineStringReplay.setPolygonStyle(e,l)},e.prototype.drawPolygon=function(t,e){var i=t.getEnds(),r=t.getStride();if(i.length>0){var n=t.getFlatCoordinates().map(Number),o=Dt(n,0,i[0],r,-this.origin[0],-this.origin[1]);if(o.length){var s,a,h,l=[];for(s=1,a=i.length;s0&&(this.styles_=[]),this.vertices=null,this.indices=null},e.prototype.getDeleteResourcesFunction=function(t){var e=this.verticesBuffer,i=this.indicesBuffer,r=this.lineStringReplay.getDeleteResourcesFunction(t);return function(){t.deleteBuffer(e),t.deleteBuffer(i),r()}},e.prototype.setUpProgram=function(t,e,i,r){var n,o=e.getProgram(Hh,Zh);return this.defaultLocations_?n=this.defaultLocations_:(n=new qh(t,o),this.defaultLocations_=n),e.useProgram(o),t.enableVertexAttribArray(n.a_position),t.vertexAttribPointer(n.a_position,2,5126,!1,8,0),n},e.prototype.shutDownProgram=function(t,e){t.disableVertexAttribArray(e.a_position)},e.prototype.drawReplay=function(t,e,i,r){var n,o,s,a,h=t.getParameter(t.DEPTH_FUNC),l=t.getParameter(t.DEPTH_WRITEMASK);if(r||(t.enable(t.DEPTH_TEST),t.depthMask(!0),t.depthFunc(t.NOTEQUAL)),d(i))for(s=this.startIndices[this.startIndices.length-1],n=this.styleIndices_.length-1;n>=0;--n)o=this.styleIndices_[n],a=this.styles_[n],this.setFillStyle_(t,a),this.drawElements(t,e,o,s),s=o;else this.drawReplaySkipping_(t,e,i);r||(t.disable(t.DEPTH_TEST),t.clear(t.DEPTH_BUFFER_BIT),t.depthMask(l),t.depthFunc(h))},e.prototype.drawHitDetectionReplayOneByOne=function(t,e,i,r,n){var s,a,h,l,u,p,c;for(c=this.startIndices.length-2,h=this.startIndices[c+1],s=this.styleIndices_.length-1;s>=0;--s)for(l=this.styles_[s],this.setFillStyle_(t,l),u=this.styleIndices_[s];c>=0&&this.startIndices[c]>=u;){if(a=this.startIndices[c],void 0===i[o(p=this.startIndicesFeature[c])]&&p.getGeometry()&&(void 0===n||Pt(n,p.getGeometry().getExtent()))){t.clear(t.COLOR_BUFFER_BIT|t.DEPTH_BUFFER_BIT),this.drawElements(t,e,a,h);var d=r(p);if(d)return d}c--,h=a}},e.prototype.drawReplaySkipping_=function(t,e,i){var r,n,s,a,h,l,u;for(l=this.startIndices.length-2,s=n=this.startIndices[l+1],r=this.styleIndices_.length-1;r>=0;--r){for(a=this.styles_[r],this.setFillStyle_(t,a),h=this.styleIndices_[r];l>=0&&this.startIndices[l]>=h;)u=this.startIndices[l],i[o(this.startIndicesFeature[l])]&&(n!==s&&(this.drawElements(t,e,n,s),t.clear(t.DEPTH_BUFFER_BIT)),s=u),l--,n=u;n!==s&&(this.drawElements(t,e,n,s),t.clear(t.DEPTH_BUFFER_BIT)),n=s=h}},e.prototype.setFillStyle_=function(t,e){t.uniform4fv(this.defaultLocations_.u_color,e)},e.prototype.setFillStrokeStyle=function(t,e){var i=t?t.getColor():[0,0,0,0];if(i=i instanceof CanvasGradient||i instanceof CanvasPattern?gh:_r(i).map(function(t,e){return 3!=e?t/255:t})||gh,this.state_.fillColor&&Z(i,this.state_.fillColor)||(this.state_.fillColor=i,this.state_.changed=!0,this.styles_.push(i)),e)this.lineStringReplay.setFillStrokeStyle(null,e);else{var r=new Er({color:[0,0,0,0],width:0});this.lineStringReplay.setFillStrokeStyle(null,r)}},e}(_h),il=function(t,e){this.space_=e,this.emptyBlocks_=[{x:0,y:0,width:t,height:t}],this.entries_={},this.context_=Jn(t,t),this.canvas_=this.context_.canvas};il.prototype.get=function(t){return this.entries_[t]||null},il.prototype.add=function(t,e,i,r,n){for(var o=0,s=this.emptyBlocks_.length;o=e+this.space_&&a.height>=i+this.space_){var h={offsetX:a.x+this.space_,offsetY:a.y+this.space_,image:this.canvas_};return this.entries_[t]=h,r.call(n,this.context_,a.x+this.space_,a.y+this.space_),this.split_(o,a,e+this.space_,i+this.space_),h}}return null},il.prototype.split_=function(t,e,i,r){var n,o;e.width-i>e.height-r?(n={x:e.x+i,y:e.y,width:e.width-i,height:e.height},o={x:e.x,y:e.y+r,width:i,height:e.height-r},this.updateBlocks_(t,n,o)):(n={x:e.x+i,y:e.y,width:e.width-i,height:r},o={x:e.x,y:e.y+r,width:e.width,height:e.height-r},this.updateBlocks_(t,n,o))},il.prototype.updateBlocks_=function(t,e,i){var r=[t,1];e.width>0&&e.height>0&&r.push(e),i.width>0&&i.height>0&&r.push(i),this.emptyBlocks_.splice.apply(this.emptyBlocks_,r)};var rl=il,nl=function(t){var e=t||{};this.currentSize_=void 0!==e.initialSize?e.initialSize:256,this.maxSize_=void 0!==e.maxSize?e.maxSize:void 0!==nh?nh:2048,this.space_=void 0!==e.space?e.space:1,this.atlases_=[new rl(this.currentSize_,this.space_)],this.currentHitSize_=this.currentSize_,this.hitAtlases_=[new rl(this.currentHitSize_,this.space_)]};nl.prototype.getInfo=function(t){var e=this.getInfo_(this.atlases_,t);if(!e)return null;var i=this.getInfo_(this.hitAtlases_,t);return this.mergeInfos_(e,i)},nl.prototype.getInfo_=function(t,e){for(var i=0,r=t.length;ithis.maxSize_||i+this.space_>this.maxSize_)return null;var s=this.add_(!1,t,e,i,r,o);if(!s)return null;var a=void 0!==n?n:I,h=this.add_(!0,t,e,i,a,o);return this.mergeInfos_(s,h)},nl.prototype.add_=function(t,e,i,r,n,o){var s,a,h,l,u=t?this.hitAtlases_:this.atlases_;for(h=0,l=u.length;h=0;--d)if(void 0!==(_=f[Ea[d]])&&(g=_.replay(t,e,i,r,n,o,s,a,h,l,u)))return g},e.prototype.forEachFeatureAtCoordinate=function(t,e,i,r,n,o,s,a,h,l){var u,p=e.getGL();return p.bindFramebuffer(p.FRAMEBUFFER,e.getHitDetectionFramebuffer()),void 0!==this.renderBuffer_&&(u=et(pt(t),r*this.renderBuffer_)),this.replayHitDetection_(e,t,r,n,al,s,a,h,function(t){var e=new Uint8Array(4);if(p.readPixels(0,0,1,1,p.RGBA,p.UNSIGNED_BYTE,e),e[3]>0){var i=l(t);if(i)return i}},!0,u)},e.prototype.hasFeatureAtCoordinate=function(t,e,i,r,n,o,s,a,h){var l=e.getGL();return l.bindFramebuffer(l.FRAMEBUFFER,e.getHitDetectionFramebuffer()),void 0!==this.replayHitDetection_(e,t,r,n,al,s,a,h,function(t){var e=new Uint8Array(4);return l.readPixels(0,0,1,1,l.RGBA,l.UNSIGNED_BYTE,e),e[3]>0},!1)},e}(ca),ul=function(t){function e(e,i,r,n,o,s,a){t.call(this),this.context_=e,this.center_=i,this.extent_=s,this.pixelRatio_=a,this.size_=o,this.rotation_=n,this.resolution_=r,this.imageStyle_=null,this.fillStyle_=null,this.strokeStyle_=null,this.textStyle_=null}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.drawText_=function(t,e){var i=this.context_,r=t.getReplay(0,da.TEXT);r.setTextStyle(this.textStyle_),r.drawText(e,null),r.finish(i);r.replay(this.context_,this.center_,this.resolution_,this.rotation_,this.size_,this.pixelRatio_,1,{},void 0,!1),r.getDeleteResourcesFunction(i)()},e.prototype.setStyle=function(t){this.setFillStrokeStyle(t.getFill(),t.getStroke()),this.setImageStyle(t.getImage()),this.setTextStyle(t.getText())},e.prototype.drawGeometry=function(t){switch(t.getType()){case Nt.POINT:this.drawPoint(t,null);break;case Nt.LINE_STRING:this.drawLineString(t,null);break;case Nt.POLYGON:this.drawPolygon(t,null);break;case Nt.MULTI_POINT:this.drawMultiPoint(t,null);break;case Nt.MULTI_LINE_STRING:this.drawMultiLineString(t,null);break;case Nt.MULTI_POLYGON:this.drawMultiPolygon(t,null);break;case Nt.GEOMETRY_COLLECTION:this.drawGeometryCollection(t,null);break;case Nt.CIRCLE:this.drawCircle(t,null)}},e.prototype.drawFeature=function(t,e){var i=e.getGeometryFunction()(t);i&&Pt(this.extent_,i.getExtent())&&(this.setStyle(e),this.drawGeometry(i))},e.prototype.drawGeometryCollection=function(t,e){var i,r,n=t.getGeometriesArray();for(i=0,r=n.length;in[0]||o[1]<0||o[1]>n[1])){this.hitCanvasContext_||(this.hitCanvasContext_=Jn(1,1)),this.hitCanvasContext_.clearRect(0,0,1,1),this.hitCanvasContext_.drawImage(this.image_.getImage(),o[0],o[1],1,1,0,0,1,1);var s=this.hitCanvasContext_.getImageData(0,0,1,1).data;return s[3]>0?i.call(r,this.getLayer(),s):void 0}}},e.prototype.getHitTransformationMatrix_=function(t,e){var i=[1,0,0,1,0,0];Ue(i,-1,-1),je(i,2/t[0],2/t[1]),Ue(i,0,t[1]),je(i,1,-1);var r=Be(this.projectionMatrix.slice()),n=[1,0,0,1,0,0];return Ue(n,0,e[1]),je(n,1,-1),je(n,e[0]/2,e[1]/2),Ue(n,1,1),Ae(n,r),Ae(n,i),n},e}(fl);_l.handles=function(t){return t.getType()===Ss.IMAGE},_l.create=function(t,e){return new _l(t,e)};var gl=_l,yl=function(t){function e(e){t.call(this,e);var i=e.getViewport();this.canvas_=document.createElement("canvas"),this.canvas_.style.width="100%",this.canvas_.style.height="100%",this.canvas_.style.display="block",this.canvas_.className=fo,i.insertBefore(this.canvas_,i.childNodes[0]||null),this.clipTileCanvasWidth_=0,this.clipTileCanvasHeight_=0,this.clipTileContext_=Jn(),this.renderedVisible_=!0,this.gl_=rh(this.canvas_,{antialias:!0,depth:!0,failIfMajorPerformanceCaveat:!0,preserveDrawingBuffer:!1,stencil:!0}),this.context_=new Mh(this.canvas_,this.gl_),v(this.canvas_,Lh.LOST,this.handleWebGLContextLost,this),v(this.canvas_,Lh.RESTORED,this.handleWebGLContextRestored,this),this.textureCache_=new Rs,this.focus_=null,this.tileTextureQueue_=new bn(function(t){var e=t[1],i=t[2],r=e[0]-this.focus_[0],n=e[1]-this.focus_[1];return 65536*Math.log(i)+Math.sqrt(r*r+n*n)/i}.bind(this),function(t){return t[0].getKey()}),this.loadNextTileTexture_=function(t,e){if(!this.tileTextureQueue_.isEmpty()){this.tileTextureQueue_.reprioritize();var i=this.tileTextureQueue_.dequeue(),r=i[0],n=i[3],o=i[4];this.bindTileTexture(r,n,o,Qa,Qa)}return!1}.bind(this),this.textureCacheFrameMarkerCount_=0,this.initializeGL_()}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.bindTileTexture=function(t,e,i,r,n){var o=this.getGL(),s=t.getKey();if(this.textureCache_.containsKey(s)){var a=this.textureCache_.get(s);o.bindTexture(eh,a.texture),a.magFilter!=r&&(o.texParameteri(eh,10240,r),a.magFilter=r),a.minFilter!=n&&(o.texParameteri(eh,10241,n),a.minFilter=n)}else{var h=o.createTexture(),l=t;if(o.bindTexture(eh,h),i>0){var u=this.clipTileContext_.canvas,p=this.clipTileContext_;this.clipTileCanvasWidth_!==e[0]||this.clipTileCanvasHeight_!==e[1]?(u.width=e[0],u.height=e[1],this.clipTileCanvasWidth_=e[0],this.clipTileCanvasHeight_=e[1]):p.clearRect(0,0,e[0],e[1]),p.drawImage(l.getImage(),i,i,e[0],e[1],0,0,e[0],e[1]),o.texImage2D(eh,0,6408,6408,5121,u)}else o.texImage2D(eh,0,6408,6408,5121,l.getImage());o.texParameteri(eh,10240,r),o.texParameteri(eh,10241,n),o.texParameteri(eh,$a,33071),o.texParameteri(eh,th,33071),this.textureCache_.set(s,{texture:h,magFilter:r,minFilter:n})}},e.prototype.dispatchRenderEvent=function(t,e){var i=this.getMap();if(i.hasListener(t)){var r=this.context_,n=e.extent,o=e.size,s=e.viewState,a=e.pixelRatio,h=s.resolution,l=s.center,u=s.rotation,p=new ul(r,l,h,u,o,n,a),c=new Cs(t,p,e,null,r);i.dispatchEvent(c)}},e.prototype.disposeInternal=function(){var e=this.getGL();e.isContextLost()||this.textureCache_.forEach(function(t){t&&e.deleteTexture(t.texture)}),this.context_.dispose(),t.prototype.disposeInternal.call(this)},e.prototype.expireCache_=function(t,e){for(var i,r=this.getGL();this.textureCache_.getCount()-this.textureCacheFrameMarkerCount_>1024;){if(i=this.textureCache_.peekLast())r.deleteTexture(i.texture);else{if(+this.textureCache_.peekLastKey()==e.index)break;--this.textureCacheFrameMarkerCount_}this.textureCache_.pop()}},e.prototype.getContext=function(){return this.context_},e.prototype.getGL=function(){return this.gl_},e.prototype.getTileTextureQueue=function(){return this.tileTextureQueue_},e.prototype.handleWebGLContextLost=function(t){t.preventDefault(),this.textureCache_.clear(),this.textureCacheFrameMarkerCount_=0;var e=this.getLayerRenderers();for(var i in e){e[i].handleWebGLContextLost()}},e.prototype.handleWebGLContextRestored=function(){this.initializeGL_(),this.getMap().render()},e.prototype.initializeGL_=function(){var t=this.gl_;t.activeTexture(33984),t.blendFuncSeparate(770,771,1,771),t.disable(2884),t.disable(2929),t.disable(3089),t.disable(2960)},e.prototype.isTileTextureLoaded=function(t){return this.textureCache_.containsKey(t.getKey())},e.prototype.renderFrame=function(t){var e=this.getContext(),i=this.getGL();if(i.isContextLost())return!1;if(!t)return this.renderedVisible_&&(this.canvas_.style.display="none",this.renderedVisible_=!1),!1;this.focus_=t.focus,this.textureCache_.set((-t.index).toString(),null),++this.textureCacheFrameMarkerCount_,this.dispatchRenderEvent(ur.PRECOMPOSE,t);var r=[],n=t.layerStatesArray;q(n,Zs);var o,s,a=t.viewState.resolution;for(o=0,s=n.length;o1024&&t.postRenderFunctions.push(this.expireCache_.bind(this)),this.tileTextureQueue_.isEmpty()||(t.postRenderFunctions.push(this.loadNextTileTexture_),t.animate=!0),this.dispatchRenderEvent(ur.POSTCOMPOSE,t),this.scheduleRemoveUnusedLayerRenderers(t),this.scheduleExpireIconCache(t)},e.prototype.forEachFeatureAtCoordinate=function(t,e,i,r,n,o,s){var a;if(this.getGL().isContextLost())return!1;var h,l=e.viewState,u=e.layerStatesArray;for(h=u.length-1;h>=0;--h){var p=u[h],c=p.layer;if(mo(p,l.resolution)&&o.call(s,c))if(a=this.getLayerRenderer(c).forEachFeatureAtCoordinate(t,e,i,r))return a}},e.prototype.hasFeatureAtCoordinate=function(t,e,i,r,n){var o=!1;if(this.getGL().isContextLost())return!1;var s,a=e.viewState,h=e.layerStatesArray;for(s=h.length-1;s>=0;--s){var l=h[s],u=l.layer;if(mo(l,a.resolution)&&r.call(n,u))if(o=this.getLayerRenderer(u).hasFeatureAtCoordinate(t,e))return!0}return o},e.prototype.forEachLayerAtPixel=function(t,e,i,r,n,o,s){if(this.getGL().isContextLost())return!1;var a,h,l=e.viewState,u=e.layerStatesArray;for(h=u.length-1;h>=0;--h){var p=u[h],c=p.layer;if(mo(p,l.resolution)&&o.call(n,c))if(a=this.getLayerRenderer(c).forEachLayerAtPixel(t,e,r,n))return a}},e}(qs),vl=function(t){function e(e,i,r){t.call(this);var n=r||{};this.tileCoord=e,this.state=i,this.interimTile=null,this.key="",this.transition_=void 0===n.transition?250:n.transition,this.transitionStarts_={}}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.changed=function(){this.dispatchEvent(M.CHANGE)},e.prototype.getKey=function(){return this.key+"/"+this.tileCoord},e.prototype.getInterimTile=function(){if(!this.interimTile)return this;var t=this.interimTile;do{if(t.getState()==On.LOADED)return t;t=t.interimTile}while(t);return this},e.prototype.refreshInterimChain=function(){if(this.interimTile){var t=this.interimTile,e=this;do{if(t.getState()==On.LOADED){t.interimTile=null;break}t.getState()==On.LOADING?e=t:t.getState()==On.IDLE?e.interimTile=t.interimTile:e=t,t=e.interimTile}while(t)}},e.prototype.getTileCoord=function(){return this.tileCoord},e.prototype.getState=function(){return this.state},e.prototype.setState=function(t){this.state=t,this.changed()},e.prototype.load=function(){},e.prototype.getAlpha=function(t,e){if(!this.transition_)return 1;var i=this.transitionStarts_[t];if(i){if(-1===i)return 1}else i=e,this.transitionStarts_[t]=i;var r=e-i+1e3/60;return r>=this.transition_?1:Vn(r/this.transition_)},e.prototype.inTransition=function(t){return!!this.transition_&&-1!==this.transitionStarts_[t]},e.prototype.endTransition=function(t){this.transition_&&(this.transitionStarts_[t]=-1)},e}(b);function ml(){var t=Jn(1,1);return t.fillStyle="rgba(0,0,0,0)",t.fillRect(0,0,1,1),t.canvas}var xl=function(t){function e(e,i,r,n,o,s){t.call(this,e,i,s),this.crossOrigin_=n,this.src_=r,this.image_=new Image,null!==n&&(this.image_.crossOrigin=n),this.imageListenerKeys_=null,this.tileLoadFunction_=o}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.disposeInternal=function(){this.state==On.LOADING&&(this.unlistenImage_(),this.image_=ml()),this.interimTile&&this.interimTile.dispose(),this.state=On.ABORT,this.changed(),t.prototype.disposeInternal.call(this)},e.prototype.getImage=function(){return this.image_},e.prototype.getKey=function(){return this.src_},e.prototype.handleImageError_=function(){this.state=On.ERROR,this.unlistenImage_(),this.image_=ml(),this.changed()},e.prototype.handleImageLoad_=function(){var t=this.image_;t.naturalWidth&&t.naturalHeight?this.state=On.LOADED:this.state=On.EMPTY,this.unlistenImage_(),this.changed()},e.prototype.load=function(){this.state==On.ERROR&&(this.state=On.IDLE,this.image_=new Image,null!==this.crossOrigin_&&(this.image_.crossOrigin=this.crossOrigin_)),this.state==On.IDLE&&(this.state=On.LOADING,this.changed(),this.imageListenerKeys_=[m(this.image_,M.ERROR,this.handleImageError_,this),m(this.image_,M.LOAD,this.handleImageLoad_,this)],this.tileLoadFunction_(this,this.src_))},e.prototype.unlistenImage_=function(){this.imageListenerKeys_.forEach(E),this.imageListenerKeys_=null},e}(vl);function El(t,e,i,r){return void 0!==r?(r[0]=t,r[1]=e,r[2]=i,r):[t,e,i]}function Sl(t,e,i){return t+"/"+e+"/"+i}function Tl(t){return Sl(t[0],t[1],t[2])}function Cl(t){return(t[1]<0||i&&0===o)})}(this.resolutions_,function(t,e){return e-t},!0),17),!t.origins)for(var i=0,r=this.resolutions_.length-1;i=this.minZoom;){if(o=2===this.zoomFactor_?oa(s=Math.floor(s/2),s,a=Math.floor(a/2),a,r):this.getTileRangeForExtentAndZ(h,l,r),e.call(i,l,o))return!0;--l}return!1},Ol.prototype.getExtent=function(){return this.extent_},Ol.prototype.getMaxZoom=function(){return this.maxZoom},Ol.prototype.getMinZoom=function(){return this.minZoom},Ol.prototype.getOrigin=function(t){return this.origin_?this.origin_:this.origins_[t]},Ol.prototype.getResolution=function(t){return this.resolutions_[t]},Ol.prototype.getResolutions=function(){return this.resolutions_},Ol.prototype.getTileCoordChildTileRange=function(t,e,i){if(t[0]i||i>e.getMaxZoom())return!1;var o,s=e.getExtent();return!(o=s?e.getTileRangeForExtentAndZ(s,i):e.getFullTileRange(i))||o.containsXY(r,n)}(t,r)?t:null},e.prototype.refresh=function(){this.tileCache.clear(),this.changed()},e.prototype.useTile=function(t,e,i,r){},e}(Il),kl=function(t){function e(e,i){t.call(this,e),this.tile=i}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e}(P),jl=Dl,Ul=new lh("precision mediump float;\nvarying vec2 v_texCoord;\n\n\nuniform sampler2D u_texture;\n\nvoid main(void) {\n gl_FragColor = texture2D(u_texture, v_texCoord);\n}\n"),Yl=new uh("varying vec2 v_texCoord;\n\n\nattribute vec2 a_position;\nattribute vec2 a_texCoord;\nuniform vec4 u_tileOffset;\n\nvoid main(void) {\n gl_Position = vec4(a_position * u_tileOffset.xy + u_tileOffset.zw, 0., 1.);\n v_texCoord = a_texCoord;\n}\n\n\n"),Bl=function(t,e){this.u_tileOffset=t.getUniformLocation(e,"u_tileOffset"),this.u_texture=t.getUniformLocation(e,"u_texture"),this.a_position=t.getAttribLocation(e,"a_position"),this.a_texCoord=t.getAttribLocation(e,"a_texCoord")},Vl=function(t){function e(e,i){t.call(this,e,i),this.fragmentShader_=Ul,this.vertexShader_=Yl,this.locations_=null,this.renderArrayBuffer_=new Th([0,0,0,1,1,0,1,1,0,1,0,0,1,1,1,0]),this.renderedTileRange_=null,this.renderedFramebufferExtent_=null,this.renderedRevision_=-1,this.tmpSize_=[0,0]}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.disposeInternal=function(){this.mapRenderer.getContext().deleteBuffer(this.renderArrayBuffer_),t.prototype.disposeInternal.call(this)},e.prototype.createLoadedTileFinder=function(t,e,i){var r=this.mapRenderer;return function(n,o){return t.forEachLoadedTile(e,n,o,function(t){var e=r.isTileTextureLoaded(t);return e&&(i[n]||(i[n]={}),i[n][t.tileCoord.toString()]=t),e})}},e.prototype.handleWebGLContextLost=function(){t.prototype.handleWebGLContextLost.call(this),this.locations_=null},e.prototype.prepareFrame=function(t,e,i){var r=this.mapRenderer,n=i.getGL(),o=t.viewState,s=o.projection,a=this.getLayer(),h=a.getSource();if(!(h instanceof jl))return!0;var l,u=h.getTileGridForProjection(s),p=u.getZForResolution(o.resolution),c=u.getResolution(p),d=h.getTilePixelSize(p,t.pixelRatio,s),f=d[0]/ho(u.getTileSize(p),this.tmpSize_)[0],_=c/f,g=h.getTilePixelRatio(f)*h.getGutterForProjection(s),y=o.center,v=t.extent,m=u.getTileRangeForExtentAndZ(v,p);if(this.renderedTileRange_&&this.renderedTileRange_.equals(m)&&this.renderedRevision_==h.getRevision())l=this.renderedFramebufferExtent_;else{var x=m.getSize(),E=function(t){return Y(00?i.call(r,this.getLayer(),h):void 0}},e}(fl);Vl.handles=function(t){return t.getType()===Ss.TILE},Vl.create=function(t,e){return new Vl(t,e)};var Xl=Vl,zl=function(t){function e(e,i){t.call(this,e,i),this.dirty_=!1,this.renderedRevision_=-1,this.renderedResolution_=NaN,this.renderedExtent_=[1/0,1/0,-1/0,-1/0],this.renderedRenderOrder_=null,this.replayGroup_=null,this.layerState_=null}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.composeFrame=function(t,e,i){this.layerState_=e;var r=t.viewState,n=this.replayGroup_,o=t.size,s=t.pixelRatio,a=this.mapRenderer.getGL();n&&!n.isEmpty()&&(a.enable(a.SCISSOR_TEST),a.scissor(0,0,o[0]*s,o[1]*s),n.replay(i,r.center,r.resolution,r.rotation,o,s,e.opacity,e.managed?t.skippedFeatureUids:{}),a.disable(a.SCISSOR_TEST))},e.prototype.disposeInternal=function(){var e=this.replayGroup_;if(e){var i=this.mapRenderer.getContext();e.getDeleteResourcesFunction(i)(),this.replayGroup_=null}t.prototype.disposeInternal.call(this)},e.prototype.forEachFeatureAtCoordinate=function(t,e,i,r,n){if(this.replayGroup_&&this.layerState_){var s=this.mapRenderer.getContext(),a=e.viewState,h=this.getLayer(),l=this.layerState_,u={};return this.replayGroup_.forEachFeatureAtCoordinate(t,s,a.center,a.resolution,a.rotation,e.size,e.pixelRatio,l.opacity,{},function(t){var e=o(t);if(!(e in u))return u[e]=!0,r.call(n,t,h)})}},e.prototype.hasFeatureAtCoordinate=function(t,e){if(this.replayGroup_&&this.layerState_){var i=this.mapRenderer.getContext(),r=e.viewState,n=this.layerState_;return this.replayGroup_.hasFeatureAtCoordinate(t,i,r.center,r.resolution,r.rotation,e.size,e.pixelRatio,n.opacity,e.skippedFeatureUids)}return!1},e.prototype.forEachLayerAtPixel=function(t,e,i,r){var n=De(e.pixelToCoordinateTransform,t.slice());return this.hasFeatureAtCoordinate(n,e)?i.call(r,this.getLayer(),null):void 0},e.prototype.handleStyleImageChange_=function(t){this.renderIfReadyAndVisible()},e.prototype.prepareFrame=function(t,e,i){var r=this.getLayer(),n=r.getSource(),o=t.viewHints[kn],s=t.viewHints[jn],a=r.getUpdateWhileAnimating(),h=r.getUpdateWhileInteracting();if(!this.dirty_&&!a&&o||!h&&s)return!0;var l=t.extent,u=t.viewState,p=u.projection,c=u.resolution,d=t.pixelRatio,f=r.getRevision(),_=r.getRenderBuffer(),g=r.getRenderOrder();void 0===g&&(g=Da);var y=et(l,_*c);if(!this.dirty_&&this.renderedResolution_==c&&this.renderedRevision_==f&&this.renderedRenderOrder_==g&&ot(this.renderedExtent_,y))return!0;this.replayGroup_&&t.postRenderFunctions.push(this.replayGroup_.getDeleteResourcesFunction(i)),this.dirty_=!1;var v=new ll(ja(c,d),y,r.getRenderBuffer());n.loadFeatures(y,c,p);var m=function(t){var e,i=t.getStyleFunction()||r.getStyleFunction();if(i&&(e=i(t,c)),e){var n=this.renderFeature(t,c,d,e,v);this.dirty_=this.dirty_||n}}.bind(this);if(g){var x=[];n.forEachFeatureInExtent(y,function(t){x.push(t)}),x.sort(g),x.forEach(m.bind(this))}else n.forEachFeatureInExtent(y,m);return v.finish(i),this.renderedResolution_=c,this.renderedRevision_=f,this.renderedRenderOrder_=g,this.renderedExtent_=y,this.replayGroup_=v,!0},e.prototype.renderFeature=function(t,e,i,r,n){if(!r)return!1;var o=!1;if(Array.isArray(r))for(var s=r.length-1;s>=0;--s)o=Ua(n,t,r[s],ka(e,i),this.handleStyleImageChange_,this)||o;else o=Ua(n,t,r,ka(e,i),this.handleStyleImageChange_,this)||o;return o},e}(fl);zl.handles=function(t){return t.getType()===Ss.VECTOR},zl.create=function(t,e){return new zl(t,e)};var Wl=zl,Kl=function(t){function e(e){(e=u({},e)).controls||(e.controls=wo()),e.interactions||(e.interactions=ys()),t.call(this,e)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.createRenderer=function(){var t=new yl(this);return t.registerLayerRenderers([gl,Xl,Wl]),t},e}(lo),Hl={ARRAY_BUFFER:"arraybuffer",JSON:"json",TEXT:"text",XML:"xml"};function Zl(t,e,i,r){return function(n,o,s){var a=new XMLHttpRequest;a.open("GET","function"==typeof t?t(n,o,s):t,!0),e.getType()==Hl.ARRAY_BUFFER&&(a.responseType="arraybuffer"),a.onload=function(t){if(!a.status||a.status>=200&&a.status<300){var n,o=e.getType();o==Hl.JSON||o==Hl.TEXT?n=a.responseText:o==Hl.XML?(n=a.responseXML)||(n=(new DOMParser).parseFromString(a.responseText,"application/xml")):o==Hl.ARRAY_BUFFER&&(n=a.response),n?i.call(this,e.readFeatures(n,{featureProjection:s}),e.readProjection(n),e.getLastExtent()):r.call(this)}else r.call(this)}.bind(this),a.onerror=function(){r.call(this)}.bind(this),a.send()}}function ql(t,e){return Zl(t,e,function(t,e){"function"==typeof this.addFeatures&&this.addFeatures(t)},I)}function Jl(t,e){return[[-1/0,-1/0,1/0,1/0]]}var Ql=document.implementation.createDocument("","",null),$l="http://www.w3.org/2001/XMLSchema-instance";function tu(t,e){return Ql.createElementNS(t,e)}function eu(t,e){return function t(e,i,r){if(e.nodeType==Node.CDATA_SECTION_NODE||e.nodeType==Node.TEXT_NODE)i?r.push(String(e.nodeValue).replace(/(\r\n|\r|\n)/g,"")):r.push(e.nodeValue);else{var n;for(n=e.firstChild;n;n=n.nextSibling)t(n,i,r)}return r}(t,e,[]).join("")}function iu(t){return"documentElement"in t}function ru(t){return(new DOMParser).parseFromString(t,"application/xml")}function nu(t,e){return function(i,r){var n=t.call(void 0!==e?e:this,i,r);void 0!==n&&K(r[r.length-1],n)}}function ou(t,e){return function(i,r){var n=t.call(void 0!==e?e:this,i,r);void 0!==n&&r[r.length-1].push(n)}}function su(t,e){return function(i,r){var n=t.call(void 0!==e?e:this,i,r);void 0!==n&&(r[r.length-1]=n)}}function au(t,e,i){return function(r,n){var o=t.call(void 0!==i?i:this,r,n);if(void 0!==o){var s=n[n.length-1],a=void 0!==e?e:r.localName;(a in s?s[a]:s[a]=[]).push(o)}}}function hu(t,e,i){return function(r,n){var o=t.call(void 0!==i?i:this,r,n);void 0!==o&&(n[n.length-1][void 0!==e?e:r.localName]=o)}}function lu(t,e){return function(i,r,n){t.call(void 0!==e?e:this,i,r,n),n[n.length-1].node.appendChild(i)}}function uu(t,e){var i,r;return function(e,n,o){if(void 0===i){i={};var s={};s[e.localName]=t,i[e.namespaceURI]=s,r=pu(e.localName)}yu(i,r,n,o)}}function pu(t,e){var i=t;return function(t,r,n){var o=r[r.length-1].node,s=i;return void 0===s&&(s=n),tu(void 0!==e?e:o.namespaceURI,s)}}var cu=pu();function du(t,e){for(var i=e.length,r=new Array(i),n=0;n0)||H(h,function(i){return e.Identifier==i.TileMatrix||-1===e.Identifier.indexOf(":")&&t.Identifier+":"+e.Identifier===i.TileMatrix})){n.push(e.Identifier);var i=28e-5*e.ScaleDenominator/p,l=e.TileWidth,u=e.TileHeight;c?o.push([e.TopLeftCorner[1],e.TopLeftCorner[0]]):o.push(e.TopLeftCorner),r.push(i),s.push(l==u?l:[l,u]),a.push([e.MatrixWidth,-e.MatrixHeight])}}),new mu({extent:e,origins:o,resolutions:r,matrixIds:n,tileSizes:s,sizes:a})}var Su=function(t){this.opacity_=t.opacity,this.rotateWithView_=t.rotateWithView,this.rotation_=t.rotation,this.scale_=t.scale};Su.prototype.clone=function(){return new Su({opacity:this.getOpacity(),scale:this.getScale(),rotation:this.getRotation(),rotateWithView:this.getRotateWithView()})},Su.prototype.getOpacity=function(){return this.opacity_},Su.prototype.getRotateWithView=function(){return this.rotateWithView_},Su.prototype.getRotation=function(){return this.rotation_},Su.prototype.getScale=function(){return this.scale_},Su.prototype.getSnapToPixel=function(){return!1},Su.prototype.getAnchor=function(){return r()},Su.prototype.getImage=function(t){return r()},Su.prototype.getHitDetectionImage=function(t){return r()},Su.prototype.getImageState=function(){return r()},Su.prototype.getImageSize=function(){return r()},Su.prototype.getHitDetectionImageSize=function(){return r()},Su.prototype.getOrigin=function(){return r()},Su.prototype.getSize=function(){return r()},Su.prototype.setOpacity=function(t){this.opacity_=t},Su.prototype.setRotateWithView=function(t){this.rotateWithView_=t},Su.prototype.setRotation=function(t){this.rotation_=t},Su.prototype.setScale=function(t){this.scale_=t},Su.prototype.setSnapToPixel=function(t){},Su.prototype.listenImageChange=function(t,e){return r()},Su.prototype.load=function(){r()},Su.prototype.unlistenImageChange=function(t,e){r()};var Tu=Su,Cu=function(t){function e(e){var i=void 0!==e.rotateWithView&&e.rotateWithView;t.call(this,{opacity:1,rotateWithView:i,rotation:void 0!==e.rotation?e.rotation:0,scale:1}),this.checksums_=null,this.canvas_=null,this.hitDetectionCanvas_=null,this.fill_=void 0!==e.fill?e.fill:null,this.origin_=[0,0],this.points_=e.points,this.radius_=void 0!==e.radius?e.radius:e.radius1,this.radius2_=e.radius2,this.angle_=void 0!==e.angle?e.angle:0,this.stroke_=void 0!==e.stroke?e.stroke:null,this.anchor_=null,this.size_=null,this.imageSize_=null,this.hitDetectionImageSize_=null,this.atlasManager_=e.atlasManager,this.render_(this.atlasManager_)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.clone=function(){var t=new e({fill:this.getFill()?this.getFill().clone():void 0,points:this.getPoints(),radius:this.getRadius(),radius2:this.getRadius2(),angle:this.getAngle(),stroke:this.getStroke()?this.getStroke().clone():void 0,rotation:this.getRotation(),rotateWithView:this.getRotateWithView(),atlasManager:this.atlasManager_});return t.setOpacity(this.getOpacity()),t.setScale(this.getScale()),t},e.prototype.getAnchor=function(){return this.anchor_},e.prototype.getAngle=function(){return this.angle_},e.prototype.getFill=function(){return this.fill_},e.prototype.getHitDetectionImage=function(t){return this.hitDetectionCanvas_},e.prototype.getImage=function(t){return this.canvas_},e.prototype.getImageSize=function(){return this.imageSize_},e.prototype.getHitDetectionImageSize=function(){return this.hitDetectionImageSize_},e.prototype.getImageState=function(){return xs.LOADED},e.prototype.getOrigin=function(){return this.origin_},e.prototype.getPoints=function(){return this.points_},e.prototype.getRadius=function(){return this.radius_},e.prototype.getRadius2=function(){return this.radius2_},e.prototype.getSize=function(){return this.size_},e.prototype.getStroke=function(){return this.stroke_},e.prototype.listenImageChange=function(t,e){},e.prototype.load=function(){},e.prototype.unlistenImageChange=function(t,e){},e.prototype.render_=function(t){var e,i,r="",n="",o=0,s=null,a=0,h=0;this.stroke_&&(null===(i=this.stroke_.getColor())&&(i=Ls),i=Ys(i),void 0===(h=this.stroke_.getWidth())&&(h=1),s=this.stroke_.getLineDash(),a=this.stroke_.getLineDashOffset(),ki||(s=null,a=0),void 0===(n=this.stroke_.getLineJoin())&&(n="round"),void 0===(r=this.stroke_.getLineCap())&&(r="round"),void 0===(o=this.stroke_.getMiterLimit())&&(o=10));var l=2*(this.radius_+h)+1,u={strokeStyle:i,strokeWidth:h,size:l,lineCap:r,lineDash:s,lineDashOffset:a,lineJoin:n,miterLimit:o};if(void 0===t){var p=Jn(l,l);this.canvas_=p.canvas,e=l=this.canvas_.width,this.draw_(u,p,0,0),this.createHitDetectionCanvas_(u)}else{l=Math.round(l);var c,d=!this.fill_;d&&(c=this.drawHitDetectionCanvas_.bind(this,u));var f=this.getChecksum(),_=t.add(f,l,l,this.draw_.bind(this,u),c);this.canvas_=_.image,this.origin_=[_.offsetX,_.offsetY],e=_.image.width,d?(this.hitDetectionCanvas_=_.hitImage,this.hitDetectionImageSize_=[_.hitImage.width,_.hitImage.height]):(this.hitDetectionCanvas_=this.canvas_,this.hitDetectionImageSize_=[e,e])}this.anchor_=[l/2,l/2],this.size_=[l,l],this.imageSize_=[e,e]},e.prototype.draw_=function(t,e,i,r){var n,o,s;e.setTransform(1,0,0,1,0,0),e.translate(i,r),e.beginPath();var a=this.points_;if(a===1/0)e.arc(t.size/2,t.size/2,this.radius_,0,2*Math.PI,!0);else{var h=void 0!==this.radius2_?this.radius2_:this.radius_;for(h!==this.radius_&&(a*=2),n=0;n<=a;n++)o=2*n*Math.PI/a-Math.PI/2+this.angle_,s=n%2==0?this.radius_:h,e.lineTo(t.size/2+s*Math.cos(o),t.size/2+s*Math.sin(o))}if(this.fill_){var l=this.fill_.getColor();null===l&&(l=ws),e.fillStyle=Ys(l),e.fill()}this.stroke_&&(e.strokeStyle=t.strokeStyle,e.lineWidth=t.strokeWidth,t.lineDash&&(e.setLineDash(t.lineDash),e.lineDashOffset=t.lineDashOffset),e.lineCap=t.lineCap,e.lineJoin=t.lineJoin,e.miterLimit=t.miterLimit,e.stroke()),e.closePath()},e.prototype.createHitDetectionCanvas_=function(t){if(this.hitDetectionImageSize_=[t.size,t.size],this.fill_)this.hitDetectionCanvas_=this.canvas_;else{var e=Jn(t.size,t.size);this.hitDetectionCanvas_=e.canvas,this.drawHitDetectionCanvas_(t,e,0,0)}},e.prototype.drawHitDetectionCanvas_=function(t,e,i,r){e.setTransform(1,0,0,1,0,0),e.translate(i,r),e.beginPath();var n=this.points_;if(n===1/0)e.arc(t.size/2,t.size/2,this.radius_,0,2*Math.PI,!0);else{var o,s,a,h=void 0!==this.radius2_?this.radius2_:this.radius_;for(h!==this.radius_&&(n*=2),o=0;o<=n;o++)a=2*o*Math.PI/n-Math.PI/2+this.angle_,s=o%2==0?this.radius_:h,e.lineTo(t.size/2+s*Math.cos(a),t.size/2+s*Math.sin(a))}e.fillStyle=dr(ws),e.fill(),this.stroke_&&(e.strokeStyle=t.strokeStyle,e.lineWidth=t.strokeWidth,t.lineDash&&(e.setLineDash(t.lineDash),e.lineDashOffset=t.lineDashOffset),e.stroke()),e.closePath()},e.prototype.getChecksum=function(){var t=this.stroke_?this.stroke_.getChecksum():"-",e=this.fill_?this.fill_.getChecksum():"-";if(!this.checksums_||t!=this.checksums_[1]||e!=this.checksums_[2]||this.radius_!=this.checksums_[3]||this.radius2_!=this.checksums_[4]||this.angle_!=this.checksums_[5]||this.points_!=this.checksums_[6]){var i="r"+t+e+(void 0!==this.radius_?this.radius_.toString():"-")+(void 0!==this.radius2_?this.radius2_.toString():"-")+(void 0!==this.angle_?this.angle_.toString():"-")+(void 0!==this.points_?this.points_.toString():"-");this.checksums_=[i,t,e,this.radius_,this.radius2_,this.angle_,this.points_]}return this.checksums_[0]},e}(Tu),Ru=function(t){function e(e){var i=e||{};t.call(this,{points:1/0,fill:i.fill,radius:i.radius,stroke:i.stroke,atlasManager:i.atlasManager})}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.clone=function(){var t=new e({fill:this.getFill()?this.getFill().clone():void 0,stroke:this.getStroke()?this.getStroke().clone():void 0,radius:this.getRadius(),atlasManager:this.atlasManager_});return t.setOpacity(this.getOpacity()),t.setScale(this.getScale()),t},e.prototype.setRadius=function(t){this.radius_=t,this.render_(this.atlasManager_)},e}(Cu),wu={FRACTION:"fraction",PIXELS:"pixels"},Iu=function(t){function e(e,i,r,n,o,s){t.call(this),this.hitDetectionImage_=null,this.image_=e||new Image,null!==n&&(this.image_.crossOrigin=n),this.canvas_=s?document.createElement("canvas"):null,this.color_=s,this.imageListenerKeys_=null,this.imageState_=o,this.size_=r,this.src_=i,this.tainted_}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.isTainted_=function(){if(void 0===this.tainted_&&this.imageState_===xs.LOADED){this.tainted_=!1;var t=Jn(1,1);try{t.drawImage(this.image_,0,0),t.getImageData(0,0,1,1)}catch(t){this.tainted_=!0}}return!0===this.tainted_},e.prototype.dispatchChangeEvent_=function(){this.dispatchEvent(M.CHANGE)},e.prototype.handleImageError_=function(){this.imageState_=xs.ERROR,this.unlistenImage_(),this.dispatchChangeEvent_()},e.prototype.handleImageLoad_=function(){this.imageState_=xs.LOADED,this.size_&&(this.image_.width=this.size_[0],this.image_.height=this.size_[1]),this.size_=[this.image_.width,this.image_.height],this.unlistenImage_(),this.replaceColor_(),this.dispatchChangeEvent_()},e.prototype.getImage=function(t){return this.canvas_?this.canvas_:this.image_},e.prototype.getImageState=function(){return this.imageState_},e.prototype.getHitDetectionImage=function(t){if(!this.hitDetectionImage_)if(this.isTainted_()){var e=this.size_[0],i=this.size_[1],r=Jn(e,i);r.fillRect(0,0,e,i),this.hitDetectionImage_=r.canvas}else this.hitDetectionImage_=this.image_;return this.hitDetectionImage_},e.prototype.getSize=function(){return this.size_},e.prototype.getSrc=function(){return this.src_},e.prototype.load=function(){if(this.imageState_==xs.IDLE){this.imageState_=xs.LOADING,this.imageListenerKeys_=[m(this.image_,M.ERROR,this.handleImageError_,this),m(this.image_,M.LOAD,this.handleImageLoad_,this)];try{this.image_.src=this.src_}catch(t){this.handleImageError_()}}},e.prototype.replaceColor_=function(){if(this.color_&&!this.isTainted_()){this.canvas_.width=this.image_.width,this.canvas_.height=this.image_.height;var t=this.canvas_.getContext("2d");t.drawImage(this.image_,0,0);for(var e=t.getImageData(0,0,this.image_.width,this.image_.height),i=e.data,r=this.color_[0]/255,n=this.color_[1]/255,o=this.color_[2]/255,s=0,a=i.length;s0,6);var p=void 0!==i.src?xs.IDLE:xs.LOADED;this.color_=void 0!==i.color?_r(i.color):null,this.iconImage_=function(t,e,i,r,n,o){var s=Ks.get(e,r,o);return s||(s=new Iu(t,e,i,r,n,o),Ks.set(e,r,o,s)),s}(h,u,l,this.crossOrigin_,p,this.color_),this.offset_=void 0!==i.offset?i.offset:[0,0],this.offsetOrigin_=void 0!==i.offsetOrigin?i.offsetOrigin:Lu.TOP_LEFT,this.origin_=null,this.size_=void 0!==i.size?i.size:null}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.clone=function(){return new e({anchor:this.anchor_.slice(),anchorOrigin:this.anchorOrigin_,anchorXUnits:this.anchorXUnits_,anchorYUnits:this.anchorYUnits_,crossOrigin:this.crossOrigin_,color:this.color_&&this.color_.slice?this.color_.slice():this.color_||void 0,src:this.getSrc(),offset:this.offset_.slice(),offsetOrigin:this.offsetOrigin_,size:null!==this.size_?this.size_.slice():void 0,opacity:this.getOpacity(),scale:this.getScale(),rotation:this.getRotation(),rotateWithView:this.getRotateWithView()})},e.prototype.getAnchor=function(){if(this.normalizedAnchor_)return this.normalizedAnchor_;var t=this.anchor_,e=this.getSize();if(this.anchorXUnits_==wu.FRACTION||this.anchorYUnits_==wu.FRACTION){if(!e)return null;t=this.anchor_.slice(),this.anchorXUnits_==wu.FRACTION&&(t[0]*=e[0]),this.anchorYUnits_==wu.FRACTION&&(t[1]*=e[1])}if(this.anchorOrigin_!=Lu.TOP_LEFT){if(!e)return null;t===this.anchor_&&(t=this.anchor_.slice()),this.anchorOrigin_!=Lu.TOP_RIGHT&&this.anchorOrigin_!=Lu.BOTTOM_RIGHT||(t[0]=-t[0]+e[0]),this.anchorOrigin_!=Lu.BOTTOM_LEFT&&this.anchorOrigin_!=Lu.BOTTOM_RIGHT||(t[1]=-t[1]+e[1])}return this.normalizedAnchor_=t,this.normalizedAnchor_},e.prototype.setAnchor=function(t){this.anchor_=t,this.normalizedAnchor_=null},e.prototype.getColor=function(){return this.color_},e.prototype.getImage=function(t){return this.iconImage_.getImage(t)},e.prototype.getImageSize=function(){return this.iconImage_.getSize()},e.prototype.getHitDetectionImageSize=function(){return this.getImageSize()},e.prototype.getImageState=function(){return this.iconImage_.getImageState()},e.prototype.getHitDetectionImage=function(t){return this.iconImage_.getHitDetectionImage(t)},e.prototype.getOrigin=function(){if(this.origin_)return this.origin_;var t=this.offset_;if(this.offsetOrigin_!=Lu.TOP_LEFT){var e=this.getSize(),i=this.iconImage_.getSize();if(!e||!i)return null;t=t.slice(),this.offsetOrigin_!=Lu.TOP_RIGHT&&this.offsetOrigin_!=Lu.BOTTOM_RIGHT||(t[0]=i[0]-e[0]-t[0]),this.offsetOrigin_!=Lu.BOTTOM_LEFT&&this.offsetOrigin_!=Lu.BOTTOM_RIGHT||(t[1]=i[1]-e[1]-t[1])}return this.origin_=t,this.origin_},e.prototype.getSrc=function(){return this.iconImage_.getSrc()},e.prototype.getSize=function(){return this.size_?this.size_:this.iconImage_.getSize()},e.prototype.listenImageChange=function(t,e){return v(this.iconImage_,M.CHANGE,t,e)},e.prototype.load=function(){this.iconImage_.load()},e.prototype.unlistenImageChange=function(t,e){x(this.iconImage_,M.CHANGE,t,e)},e}(Tu),Pu=function(t){var e=t||{};this.geometry_=null,this.geometryFunction_=Au,void 0!==e.geometry&&this.setGeometry(e.geometry),this.fill_=void 0!==e.fill?e.fill:null,this.image_=void 0!==e.image?e.image:null,this.renderer_=void 0!==e.renderer?e.renderer:null,this.stroke_=void 0!==e.stroke?e.stroke:null,this.text_=void 0!==e.text?e.text:null,this.zIndex_=e.zIndex};Pu.prototype.clone=function(){var t=this.getGeometry();return t&&"object"==typeof t&&(t=t.clone()),new Pu({geometry:t,fill:this.getFill()?this.getFill().clone():void 0,image:this.getImage()?this.getImage().clone():void 0,stroke:this.getStroke()?this.getStroke().clone():void 0,text:this.getText()?this.getText().clone():void 0,zIndex:this.getZIndex()})},Pu.prototype.getRenderer=function(){return this.renderer_},Pu.prototype.setRenderer=function(t){this.renderer_=t},Pu.prototype.getGeometry=function(){return this.geometry_},Pu.prototype.getGeometryFunction=function(){return this.geometryFunction_},Pu.prototype.getFill=function(){return this.fill_},Pu.prototype.setFill=function(t){this.fill_=t},Pu.prototype.getImage=function(){return this.image_},Pu.prototype.setImage=function(t){this.image_=t},Pu.prototype.getStroke=function(){return this.stroke_},Pu.prototype.setStroke=function(t){this.stroke_=t},Pu.prototype.getText=function(){return this.text_},Pu.prototype.setText=function(t){this.text_=t},Pu.prototype.getZIndex=function(){return this.zIndex_},Pu.prototype.setGeometry=function(t){"function"==typeof t?this.geometryFunction_=t:"string"==typeof t?this.geometryFunction_=function(e){return e.get(t)}:t?void 0!==t&&(this.geometryFunction_=function(){return t}):this.geometryFunction_=Au,this.geometry_=t},Pu.prototype.setZIndex=function(t){this.zIndex_=t};var bu=null;function Mu(t,e){if(!bu){var i=new mr({color:"rgba(255,255,255,0.4)"}),r=new Er({color:"#3399CC",width:1.25});bu=[new Pu({image:new Ru({fill:i,stroke:r,radius:5}),fill:i,stroke:r})]}return bu}function Fu(){var t={},e=[255,255,255,1],i=[0,153,255,1];return t[Nt.POLYGON]=[new Pu({fill:new mr({color:[255,255,255,.5]})})],t[Nt.MULTI_POLYGON]=t[Nt.POLYGON],t[Nt.LINE_STRING]=[new Pu({stroke:new Er({color:e,width:5})}),new Pu({stroke:new Er({color:i,width:3})})],t[Nt.MULTI_LINE_STRING]=t[Nt.LINE_STRING],t[Nt.CIRCLE]=t[Nt.POLYGON].concat(t[Nt.LINE_STRING]),t[Nt.POINT]=[new Pu({image:new Ru({radius:6,fill:new mr({color:i}),stroke:new Er({color:e,width:1.5})}),zIndex:1/0})],t[Nt.MULTI_POINT]=t[Nt.POINT],t[Nt.GEOMETRY_COLLECTION]=t[Nt.POLYGON].concat(t[Nt.LINE_STRING],t[Nt.POINT]),t}function Au(t){return t.getGeometry()}var Nu=Pu;function Gu(t,e){var i=/\{z\}/g,r=/\{x\}/g,n=/\{y\}/g,o=/\{-y\}/g;return function(s,a,h){return s?t.replace(i,s[0].toString()).replace(r,s[1].toString()).replace(n,function(){return(-s[2]-1).toString()}).replace(o,function(){var t=s[0],i=e.getFullTileRange(t);return Y(i,55),(i.getHeight()+s[2]).toString()}):void 0}}function Du(t,e){for(var i=t.length,r=new Array(i),n=0;n0&&(o/=l)}return o}function Vu(t,e,i,r){var n=i-t,o=r-e,s=Math.sqrt(n*n+o*o);return[Math.round(i+n/s),Math.round(r+o/s)]}function Xu(t,e,i,r,n,o,s,a,h,l,u){var p=Jn(Math.round(i*t),Math.round(i*e));if(0===h.length)return p.canvas;p.scale(i,i);var c=[1/0,1/0,-1/0,-1/0];h.forEach(function(t,e,i){ft(c,t.extent)});var d=Ot(c),f=Rt(c),_=Jn(Math.round(i*d/r),Math.round(i*f/r)),g=i/r;h.forEach(function(t,e,i){var r=t.extent[0]-c[0],n=-(t.extent[3]-c[3]),o=Ot(t.extent),s=Rt(t.extent);_.drawImage(t.image,l,l,t.image.width-2*l,t.image.height-2*l,r*g,n*g,o*g,s*g)});var y=It(s);return a.getTriangles().forEach(function(t,e,n){var s=t.source,a=t.target,h=s[0][0],l=s[0][1],u=s[1][0],d=s[1][1],f=s[2][0],g=s[2][1],v=(a[0][0]-y[0])/o,m=-(a[0][1]-y[1])/o,x=(a[1][0]-y[0])/o,E=-(a[1][1]-y[1])/o,S=(a[2][0]-y[0])/o,T=-(a[2][1]-y[1])/o,C=h,R=l;h=0,l=0;var w=function(t){for(var e=t.length,i=0;in&&(n=s,r=o)}if(0===n)return null;var a=t[r];t[r]=t[i],t[i]=a;for(var h=i+1;h=0;c--){p[c]=t[c][e]/t[c][c];for(var d=c-1;d>=0;d--)t[d][e]-=t[d][c]*p[c]}return p}([[u-=C,d-=R,0,0,x-v],[f-=C,g-=R,0,0,S-v],[0,0,u,d,E-m],[0,0,f,g,T-m]]);if(w){p.save(),p.beginPath();var I=(v+x+S)/3,L=(m+E+T)/3,O=Vu(I,L,v,m),P=Vu(I,L,x,E),b=Vu(I,L,S,T);p.moveTo(P[0],P[1]),p.lineTo(O[0],O[1]),p.lineTo(b[0],b[1]),p.clip(),p.transform(w[0],w[2],w[1],w[3],v,m),p.translate(c[0]-C,c[3]-R),p.scale(r/i,-r/i),p.drawImage(_.canvas,0,0),p.restore()}}),u&&(p.save(),p.strokeStyle="black",p.lineWidth=1,a.getTriangles().forEach(function(t,e,i){var r=t.target,n=(r[0][0]-y[0])/o,s=-(r[0][1]-y[1])/o,a=(r[1][0]-y[0])/o,h=-(r[1][1]-y[1])/o,l=(r[2][0]-y[0])/o,u=-(r[2][1]-y[1])/o;p.beginPath(),p.moveTo(a,h),p.lineTo(n,s),p.lineTo(l,u),p.closePath(),p.stroke()}),p.restore()),p.canvas}var zu=function(t,e,i,r,n){this.sourceProj_=t,this.targetProj_=e;var o={},s=Oe(this.targetProj_,this.sourceProj_);this.transformInv_=function(t){var e=t[0]+"/"+t[1];return o[e]||(o[e]=s(t)),o[e]},this.maxSourceExtent_=r,this.errorThresholdSquared_=n*n,this.triangles_=[],this.wrapsXInSource_=!1,this.canWrapXInSource_=this.sourceProj_.canWrapX()&&!!r&&!!this.sourceProj_.getExtent()&&Ot(r)==Ot(this.sourceProj_.getExtent()),this.sourceWorldWidth_=this.sourceProj_.getExtent()?Ot(this.sourceProj_.getExtent()):null,this.targetWorldWidth_=this.targetProj_.getExtent()?Ot(this.targetProj_.getExtent()):null;var a=It(i),h=Lt(i),l=St(i),u=Et(i),p=this.transformInv_(a),c=this.transformInv_(h),d=this.transformInv_(l),f=this.transformInv_(u);if(this.addQuad_(a,h,l,u,p,c,d,f,10),this.wrapsXInSource_){var _=1/0;this.triangles_.forEach(function(t,e,i){_=Math.min(_,t.source[0][0],t.source[1][0],t.source[2][0])}),this.triangles_.forEach(function(t){if(Math.max(t.source[0][0],t.source[1][0],t.source[2][0])-_>this.sourceWorldWidth_/2){var e=[[t.source[0][0],t.source[0][1]],[t.source[1][0],t.source[1][1]],[t.source[2][0],t.source[2][1]]];e[0][0]-_>this.sourceWorldWidth_/2&&(e[0][0]-=this.sourceWorldWidth_),e[1][0]-_>this.sourceWorldWidth_/2&&(e[1][0]-=this.sourceWorldWidth_),e[2][0]-_>this.sourceWorldWidth_/2&&(e[2][0]-=this.sourceWorldWidth_);var i=Math.min(e[0][0],e[1][0],e[2][0]);Math.max(e[0][0],e[1][0],e[2][0])-i.5&&u<1,d=!1;if(h>0){if(this.targetProj_.isGlobal()&&this.targetWorldWidth_)d=Ot(tt([t,e,i,r]))/this.targetWorldWidth_>.25||d;!c&&this.sourceProj_.isGlobal()&&u&&(d=u>.25||d)}if(d||!this.maxSourceExtent_||Pt(l,this.maxSourceExtent_)){if(!(d||isFinite(n[0])&&isFinite(n[1])&&isFinite(o[0])&&isFinite(o[1])&&isFinite(s[0])&&isFinite(s[1])&&isFinite(a[0])&&isFinite(a[1]))){if(!(h>0))return;d=!0}if(h>0){if(!d){var f,_=[(t[0]+i[0])/2,(t[1]+i[1])/2],g=this.transformInv_(_);if(c)f=(Xt(n[0],p)+Xt(s[0],p))/2-Xt(g[0],p);else f=(n[0]+s[0])/2-g[0];var y=(n[1]+s[1])/2-g[1];d=f*f+y*y>this.errorThresholdSquared_}if(d){if(Math.abs(t[0]-i[0])<=Math.abs(t[1]-i[1])){var v=[(e[0]+i[0])/2,(e[1]+i[1])/2],m=this.transformInv_(v),x=[(r[0]+t[0])/2,(r[1]+t[1])/2],E=this.transformInv_(x);this.addQuad_(t,e,v,x,n,o,m,E,h-1),this.addQuad_(x,v,i,r,E,m,s,a,h-1)}else{var S=[(t[0]+e[0])/2,(t[1]+e[1])/2],T=this.transformInv_(S),C=[(i[0]+r[0])/2,(i[1]+r[1])/2],R=this.transformInv_(C);this.addQuad_(t,S,C,r,n,T,R,a,h-1),this.addQuad_(S,e,i,C,T,o,s,R,h-1)}return}}if(c){if(!this.canWrapXInSource_)return;this.wrapsXInSource_=!0}this.addTriangle_(t,i,r,n,s,a),this.addTriangle_(t,e,i,n,o,s)}},zu.prototype.calculateSourceExtent=function(){var t=[1/0,1/0,-1/0,-1/0];return this.triangles_.forEach(function(e,i,r){var n=e.source;_t(t,n[0]),_t(t,n[1]),_t(t,n[2])}),t},zu.prototype.getTriangles=function(){return this.triangles_};var Wu=zu,Ku=function(t){function e(e,i,r,n,o,s,a,h,l,u,p){t.call(this,o,On.IDLE),this.renderEdges_=void 0!==p&&p,this.pixelRatio_=a,this.gutter_=h,this.canvas_=null,this.sourceTileGrid_=i,this.targetTileGrid_=n,this.wrappedTileCoord_=s||o,this.sourceTiles_=[],this.sourcesListenerKeys_=null,this.sourceZ_=0;var c=n.getTileCoordExtent(this.wrappedTileCoord_),d=this.targetTileGrid_.getExtent(),f=this.sourceTileGrid_.getExtent(),_=d?wt(c,d):c;if(0!==xt(_)){var g=e.getExtent();g&&(f=f?wt(f,g):g);var y=n.getResolution(this.wrappedTileCoord_[0]),v=Bu(e,r,Tt(_),y);if(!isFinite(v)||v<=0)this.state=On.EMPTY;else{var m=void 0!==u?u:vs;if(this.triangulation_=new Wu(e,r,_,f,v*m),0!==this.triangulation_.getTriangles().length){this.sourceZ_=i.getZForResolution(v);var x=this.triangulation_.calculateSourceExtent();if(f&&(e.canWrapX()?(x[1]=kt(x[1],f[1],f[3]),x[3]=kt(x[3],f[1],f[3])):x=wt(x,f)),xt(x)){for(var E=i.getTileRangeForExtentAndZ(x,this.sourceZ_),S=E.minX;S<=E.maxX;S++)for(var T=E.minY;T<=E.maxY;T++){var C=l(this.sourceZ_,S,T,a);C&&this.sourceTiles_.push(C)}0===this.sourceTiles_.length&&(this.state=On.EMPTY)}else this.state=On.EMPTY}else this.state=On.EMPTY}}else this.state=On.EMPTY}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.disposeInternal=function(){this.state==On.LOADING&&this.unlistenSources_(),t.prototype.disposeInternal.call(this)},e.prototype.getImage=function(){return this.canvas_},e.prototype.reproject_=function(){var t=[];if(this.sourceTiles_.forEach(function(e,i,r){e&&e.getState()==On.LOADED&&t.push({extent:this.sourceTileGrid_.getTileCoordExtent(e.tileCoord),image:e.getImage()})}.bind(this)),this.sourceTiles_.length=0,0===t.length)this.state=On.ERROR;else{var e=this.wrappedTileCoord_[0],i=this.targetTileGrid_.getTileSize(e),r="number"==typeof i?i:i[0],n="number"==typeof i?i:i[1],o=this.targetTileGrid_.getResolution(e),s=this.sourceTileGrid_.getResolution(this.sourceZ_),a=this.targetTileGrid_.getTileCoordExtent(this.wrappedTileCoord_);this.canvas_=Xu(r,n,this.pixelRatio_,s,this.sourceTileGrid_.getExtent(),o,a,this.triangulation_,t,this.gutter_,this.renderEdges_),this.state=On.LOADED}this.changed()},e.prototype.load=function(){if(this.state==On.IDLE){this.state=On.LOADING,this.changed();var t=0;this.sourcesListenerKeys_=[],this.sourceTiles_.forEach(function(e,i,r){var n=e.getState();if(n==On.IDLE||n==On.LOADING){t++;var o=v(e,M.CHANGE,function(i){var r=e.getState();r!=On.LOADED&&r!=On.ERROR&&r!=On.EMPTY||(E(o),0===--t&&(this.unlistenSources_(),this.reproject_()))},this);this.sourcesListenerKeys_.push(o)}}.bind(this)),this.sourceTiles_.forEach(function(t,e,i){t.getState()==On.IDLE&&t.load()}),0===t&&setTimeout(this.reproject_.bind(this),0)}},e.prototype.unlistenSources_=function(){this.sourcesListenerKeys_.forEach(E),this.sourcesListenerKeys_=null},e}(vl),Hu="tileloadstart",Zu="tileloadend",qu="tileloaderror",Ju=function(t){function e(e){t.call(this,{attributions:e.attributions,cacheSize:e.cacheSize,opaque:e.opaque,projection:e.projection,state:e.state,tileGrid:e.tileGrid,tilePixelRatio:e.tilePixelRatio,wrapX:e.wrapX,transition:e.transition,key:e.key,attributionsCollapsible:e.attributionsCollapsible}),this.generateTileUrlFunction_=!e.tileUrlFunction,this.tileLoadFunction=e.tileLoadFunction,this.tileUrlFunction=e.tileUrlFunction?e.tileUrlFunction.bind(this):ju,this.urls=null,e.urls?this.setUrls(e.urls):e.url&&this.setUrl(e.url),e.tileUrlFunction&&this.setTileUrlFunction(e.tileUrlFunction,this.key_),this.tileLoadingKeys_={}}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.getTileLoadFunction=function(){return this.tileLoadFunction},e.prototype.getTileUrlFunction=function(){return this.tileUrlFunction},e.prototype.getUrls=function(){return this.urls},e.prototype.handleTileChange=function(t){var e,i=t.target,r=o(i),n=i.getState();n==On.LOADING?(this.tileLoadingKeys_[r]=!0,e=Hu):r in this.tileLoadingKeys_&&(delete this.tileLoadingKeys_[r],e=n==On.ERROR?qu:n==On.LOADED||n==On.ABORT?Zu:void 0),void 0!=e&&this.dispatchEvent(new kl(e,i))},e.prototype.setTileLoadFunction=function(t){this.tileCache.clear(),this.tileLoadFunction=t,this.changed()},e.prototype.setTileUrlFunction=function(t,e){this.tileUrlFunction=t,this.tileCache.pruneExceptNewestZ(),void 0!==e?this.setKey(e):this.changed()},e.prototype.setUrl=function(t){var e=this.urls=Uu(t);this.setUrls(e)},e.prototype.setUrls=function(t){this.urls=t;var e=t.join("\n");this.generateTileUrlFunction_?this.setTileUrlFunction(Du(t,this.tileGrid),e):this.setKey(e)},e.prototype.useTile=function(t,e,i){var r=Sl(t,e,i);this.tileCache.containsKey(r)&&this.tileCache.get(r)},e}(jl);function Qu(t,e){t.getImage().src=e}var $u=function(t){function e(e){t.call(this,{attributions:e.attributions,cacheSize:e.cacheSize,opaque:e.opaque,projection:e.projection,state:e.state,tileGrid:e.tileGrid,tileLoadFunction:e.tileLoadFunction?e.tileLoadFunction:Qu,tilePixelRatio:e.tilePixelRatio,tileUrlFunction:e.tileUrlFunction,url:e.url,urls:e.urls,wrapX:e.wrapX,transition:e.transition,key:e.key,attributionsCollapsible:e.attributionsCollapsible}),this.crossOrigin=void 0!==e.crossOrigin?e.crossOrigin:null,this.tileClass=void 0!==e.tileClass?e.tileClass:xl,this.tileCacheForProjection={},this.tileGridForProjection={},this.reprojectionErrorThreshold_=e.reprojectionErrorThreshold,this.renderReprojectionEdges_=!1}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.canExpireCache=function(){if(this.tileCache.canExpireCache())return!0;for(var t in this.tileCacheForProjection)if(this.tileCacheForProjection[t].canExpireCache())return!0;return!1},e.prototype.expireCache=function(t,e){var i=this.getTileCacheForProjection(t);for(var r in this.tileCache.expireCache(this.tileCache==i?e:{}),this.tileCacheForProjection){var n=this.tileCacheForProjection[r];n.expireCache(n==i?e:{})}},e.prototype.getGutterForProjection=function(t){return this.getProjection()&&t&&!Ie(this.getProjection(),t)?0:this.getGutter()},e.prototype.getGutter=function(){return 0},e.prototype.getOpaque=function(e){return!(this.getProjection()&&e&&!Ie(this.getProjection(),e))&&t.prototype.getOpaque.call(this,e)},e.prototype.getTileGridForProjection=function(t){var e=this.getProjection();if(!this.tileGrid||e&&!Ie(e,t)){var i=o(t);return i in this.tileGridForProjection||(this.tileGridForProjection[i]=bl(t)),this.tileGridForProjection[i]}return this.tileGrid},e.prototype.getTileCacheForProjection=function(t){var e=this.getProjection();if(!e||Ie(e,t))return this.tileCache;var i=o(t);return i in this.tileCacheForProjection||(this.tileCacheForProjection[i]=new Rl(this.tileCache.highWaterMark)),this.tileCacheForProjection[i]},e.prototype.createTile_=function(t,e,i,r,n,o){var s=[t,e,i],a=this.getTileCoordForTileUrlFunction(s,n),h=a?this.tileUrlFunction(a,r,n):void 0,l=new this.tileClass(s,void 0!==h?On.IDLE:On.EMPTY,void 0!==h?h:"",this.crossOrigin,this.tileLoadFunction,this.tileOptions);return l.key=o,v(l,M.CHANGE,this.handleTileChange,this),l},e.prototype.getTile=function(t,e,i,r,n){var o=this.getProjection();if(o&&n&&!Ie(o,n)){var s,a=this.getTileCacheForProjection(n),h=[t,e,i],l=Tl(h);a.containsKey(l)&&(s=a.get(l));var u=this.getKey();if(s&&s.key==u)return s;var p=this.getTileGridForProjection(o),c=this.getTileGridForProjection(n),d=this.getTileCoordForTileUrlFunction(h,n),f=new Ku(o,p,n,c,h,d,this.getTilePixelRatio(r),this.getGutter(),function(t,e,i,r){return this.getTileInternal(t,e,i,r,o)}.bind(this),this.reprojectionErrorThreshold_,this.renderReprojectionEdges_);return f.key=u,s?(f.interimTile=s,f.refreshInterimChain(),a.replace(l,f)):a.set(l,f),f}return this.getTileInternal(t,e,i,r,o||n)},e.prototype.getTileInternal=function(t,e,i,r,n){var o=null,s=Sl(t,e,i),a=this.getKey();if(this.tileCache.containsKey(s)){if((o=this.tileCache.get(s)).key!=a){var h=o;o=this.createTile_(t,e,i,r,n,a),h.getState()==On.IDLE?o.interimTile=h.interimTile:o.interimTile=h,o.refreshInterimChain(),this.tileCache.replace(s,o)}}else o=this.createTile_(t,e,i,r,n,a),this.tileCache.set(s,o);return o},e.prototype.setRenderReprojectionEdges=function(t){if(this.renderReprojectionEdges_!=t){for(var e in this.renderReprojectionEdges_=t,this.tileCacheForProjection)this.tileCacheForProjection[e].clear();this.changed()}},e.prototype.setTileGridForProjection=function(t,e){var i=Ee(t);if(i){var r=o(i);r in this.tileGridForProjection||(this.tileGridForProjection[r]=e)}},e}(Ju),tp=function(t){function e(e){var i=void 0!==e.hidpi&&e.hidpi;t.call(this,{cacheSize:e.cacheSize,crossOrigin:"anonymous",opaque:!0,projection:Ee("EPSG:3857"),reprojectionErrorThreshold:e.reprojectionErrorThreshold,state:ro.LOADING,tileLoadFunction:e.tileLoadFunction,tilePixelRatio:i?2:1,wrapX:void 0===e.wrapX||e.wrapX,transition:e.transition}),this.hidpi_=i,this.culture_=void 0!==e.culture?e.culture:"en-us",this.maxZoom_=void 0!==e.maxZoom?e.maxZoom:-1,this.apiKey_=e.key,this.imagerySet_=e.imagerySet,Yu("https://dev.virtualearth.net/REST/v1/Imagery/Metadata/"+this.imagerySet_+"?uriScheme=https&include=ImageryProviders&key="+this.apiKey_+"&c="+this.culture_,this.handleImageryMetadataResponse.bind(this),void 0,"jsonp")}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.getApiKey=function(){return this.apiKey_},e.prototype.getImagerySet=function(){return this.imagerySet_},e.prototype.handleImageryMetadataResponse=function(t){if(200==t.statusCode&&"OK"==t.statusDescription&&"ValidCredentials"==t.authenticationResultCode&&1==t.resourceSets.length&&1==t.resourceSets[0].resources.length){var e=t.resourceSets[0].resources[0],i=-1==this.maxZoom_?e.zoomMax:this.maxZoom_,r=Gl(this.getProjection()),n=this.hidpi_?2:1,o=e.imageWidth==e.imageHeight?e.imageWidth/n:[e.imageWidth/n,e.imageHeight/n],s=Fl({extent:r,minZoom:e.zoomMin,maxZoom:i,tileSize:o});this.tileGrid=s;var a=this.culture_,h=this.hidpi_;if(this.tileUrlFunction=ku(e.imageUrlSubdomains.map(function(t){var i=[0,0,0],r=e.imageUrl.replace("{subdomain}",t).replace("{culture}",a);return function(t,e,n){if(t){El(t[0],t[1],-t[2]-1,i);var o=r;return h&&(o+="&dpi=d1&device=mobile"),o.replace("{quadkey}",function(t){var e,i,r=t[0],n=new Array(r),o=1<>=1;return n.join("")}(i))}}})),e.imageryProviders){var l=Le(Ee("EPSG:4326"),this.getProjection());this.setAttributions(function(t){var i=[],r=t.viewState,n=this.getTileGrid().getTileCoordForCoordAndResolution(r.center,r.resolution)[0];return e.imageryProviders.map(function(e){for(var r=!1,o=e.coverageAreas,s=0,a=o.length;s=h.zoomMin&&n<=h.zoomMax){var u=h.bbox;if(Pt(Ft([u[1],u[0],u[3],u[2]],l),t.extent)){r=!0;break}}}r&&i.push(e.attribution)}),i.push('Terms of Use'),i}.bind(this))}this.setState(ro.READY)}else this.setState(ro.ERROR)},e}($u),ep=function(t){function e(e){var i=e||{},r=void 0!==i.projection?i.projection:"EPSG:3857",n=void 0!==i.tileGrid?i.tileGrid:Fl({extent:Gl(r),maxZoom:i.maxZoom,minZoom:i.minZoom,tileSize:i.tileSize});t.call(this,{attributions:i.attributions,cacheSize:i.cacheSize,crossOrigin:i.crossOrigin,opaque:i.opaque,projection:r,reprojectionErrorThreshold:i.reprojectionErrorThreshold,tileGrid:n,tileLoadFunction:i.tileLoadFunction,tilePixelRatio:i.tilePixelRatio,tileUrlFunction:i.tileUrlFunction,url:i.url,urls:i.urls,wrapX:void 0===i.wrapX||i.wrapX,transition:i.transition,attributionsCollapsible:i.attributionsCollapsible})}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e}($u),ip=function(t){function e(e){t.call(this,{attributions:e.attributions,cacheSize:e.cacheSize,crossOrigin:e.crossOrigin,maxZoom:void 0!==e.maxZoom?e.maxZoom:18,minZoom:e.minZoom,projection:e.projection,wrapX:e.wrapX}),this.account_=e.account,this.mapId_=e.map||"",this.config_=e.config||{},this.templateCache_={},this.initializeMap_()}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.getConfig=function(){return this.config_},e.prototype.updateConfig=function(t){u(this.config_,t),this.initializeMap_()},e.prototype.setConfig=function(t){this.config_=t||{},this.initializeMap_()},e.prototype.initializeMap_=function(){var t=JSON.stringify(this.config_);if(this.templateCache_[t])this.applyTemplate_(this.templateCache_[t]);else{var e="https://"+this.account_+".carto.com/api/v1/map";this.mapId_&&(e+="/named/"+this.mapId_);var i=new XMLHttpRequest;i.addEventListener("load",this.handleInitResponse_.bind(this,t)),i.addEventListener("error",this.handleInitError_.bind(this)),i.open("POST",e),i.setRequestHeader("Content-type","application/json"),i.send(JSON.stringify(this.config_))}},e.prototype.handleInitResponse_=function(t,e){var i=e.target;if(!i.status||i.status>=200&&i.status<300){var r;try{r=JSON.parse(i.responseText)}catch(t){return void this.setState(ro.ERROR)}this.applyTemplate_(r),this.templateCache_[t]=r,this.setState(ro.READY)}else this.setState(ro.ERROR)},e.prototype.handleInitError_=function(t){this.setState(ro.ERROR)},e.prototype.applyTemplate_=function(t){var e="https://"+t.cdn_url.https+"/"+this.account_+"/api/v1/map/"+t.layergroupid+"/{z}/{x}/{y}.png";this.setUrl(e)},e}(ep),rp={ADDFEATURE:"addfeature",CHANGEFEATURE:"changefeature",CLEAR:"clear",REMOVEFEATURE:"removefeature"},np=function(t){function e(e,i){t.call(this,e),this.feature=i}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e}(P),op=function(t){function e(e){var i=e||{};t.call(this,{attributions:i.attributions,projection:void 0,state:ro.READY,wrapX:void 0===i.wrapX||i.wrapX}),this.loader_=I,this.format_=i.format,this.overlaps_=void 0==i.overlaps||i.overlaps,this.url_=i.url,void 0!==i.loader?this.loader_=i.loader:void 0!==this.url_&&(Y(this.format_,7),this.loader_=ql(this.url_,this.format_)),this.strategy_=void 0!==i.strategy?i.strategy:Jl;var r,n,o=void 0===i.useSpatialIndex||i.useSpatialIndex;this.featuresRtree_=o?new tl:null,this.loadedExtentsRtree_=new tl,this.nullGeometryFeatures_={},this.idIndex_={},this.undefIdIndex_={},this.featureChangeKeys_={},this.featuresCollection_=null,Array.isArray(i.features)?n=i.features:i.features&&(n=(r=i.features).getArray()),o||void 0!==r||(r=new U(n)),void 0!==n&&this.addFeaturesInternal(n),void 0!==r&&this.bindFeaturesCollection_(r)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.addFeature=function(t){this.addFeatureInternal(t),this.changed()},e.prototype.addFeatureInternal=function(t){var e=o(t);if(this.addToIndex_(e,t)){this.setupChangeEvents_(e,t);var i=t.getGeometry();if(i){var r=i.getExtent();this.featuresRtree_&&this.featuresRtree_.insert(r,t)}else this.nullGeometryFeatures_[e]=t;this.dispatchEvent(new np(rp.ADDFEATURE,t))}},e.prototype.setupChangeEvents_=function(t,e){this.featureChangeKeys_[t]=[v(e,M.CHANGE,this.handleFeatureChange_,this),v(e,l,this.handleFeatureChange_,this)]},e.prototype.addToIndex_=function(t,e){var i=!0,r=e.getId();return void 0!==r?r.toString()in this.idIndex_?i=!1:this.idIndex_[r.toString()]=e:(Y(!(t in this.undefIdIndex_),30),this.undefIdIndex_[t]=e),i},e.prototype.addFeatures=function(t){this.addFeaturesInternal(t),this.changed()},e.prototype.addFeaturesInternal=function(t){for(var e=[],i=[],r=[],n=0,s=t.length;n=0;--i){var r=this.geometryFunction(t[i]);r?Hi(e,r.getCoordinates()):t.splice(i,1)}tr(e,1/t.length);var n=new B(new ci(e));return n.set("features",t),n},e}(op),ap=function(t){function e(e,i,r,n,o,s){var a=e.getExtent(),h=i.getExtent(),l=h?wt(r,h):r,u=Bu(e,i,Tt(l),n),p=new Wu(e,i,l,a,u*vs),c=s(p.calculateSourceExtent(),u,o),d=xs.LOADED;c&&(d=xs.IDLE);var f=c?c.getPixelRatio():1;t.call(this,r,n,f,d),this.targetProj_=i,this.maxSourceExtent_=a,this.triangulation_=p,this.targetResolution_=n,this.targetExtent_=r,this.sourceImage_=c,this.sourcePixelRatio_=f,this.canvas_=null,this.sourceListenerKey_=null}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.disposeInternal=function(){this.state==xs.LOADING&&this.unlistenSource_(),t.prototype.disposeInternal.call(this)},e.prototype.getImage=function(){return this.canvas_},e.prototype.getProjection=function(){return this.targetProj_},e.prototype.reproject_=function(){var t=this.sourceImage_.getState();if(t==xs.LOADED){var e=Ot(this.targetExtent_)/this.targetResolution_,i=Rt(this.targetExtent_)/this.targetResolution_;this.canvas_=Xu(e,i,this.sourcePixelRatio_,this.sourceImage_.getResolution(),this.maxSourceExtent_,this.targetResolution_,this.targetExtent_,this.triangulation_,[{extent:this.sourceImage_.getExtent(),image:this.sourceImage_.getImage()}],0)}this.state=t,this.changed()},e.prototype.load=function(){if(this.state==xs.IDLE){this.state=xs.LOADING,this.changed();var t=this.sourceImage_.getState();t==xs.LOADED||t==xs.ERROR?this.reproject_():(this.sourceListenerKey_=v(this.sourceImage_,M.CHANGE,function(t){var e=this.sourceImage_.getState();e!=xs.LOADED&&e!=xs.ERROR||(this.unlistenSource_(),this.reproject_())},this),this.sourceImage_.load())}},e.prototype.unlistenSource_=function(){E(this.sourceListenerKey_),this.sourceListenerKey_=null},e}(ms),hp="imageloadstart",lp="imageloadend",up="imageloaderror",pp=function(t){function e(e,i){t.call(this,e),this.image=i}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e}(P);function cp(t,e){t.getImage().src=e}var dp=function(t){function e(e){t.call(this,{attributions:e.attributions,projection:e.projection,state:e.state}),this.resolutions_=void 0!==e.resolutions?e.resolutions:null,this.reprojectedImage_=null,this.reprojectedRevision_=0}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.getResolutions=function(){return this.resolutions_},e.prototype.findNearestResolution=function(t){if(this.resolutions_){var e=z(this.resolutions_,t,0);t=this.resolutions_[e]}return t},e.prototype.getImage=function(t,e,i,r){var n=this.getProjection();if(n&&r&&!Ie(n,r)){if(this.reprojectedImage_){if(this.reprojectedRevision_==this.getRevision()&&Ie(this.reprojectedImage_.getProjection(),r)&&this.reprojectedImage_.getResolution()==e&&dt(this.reprojectedImage_.getExtent(),t))return this.reprojectedImage_;this.reprojectedImage_.dispose(),this.reprojectedImage_=null}return this.reprojectedImage_=new ap(n,r,t,e,i,function(t,e,i){return this.getImageInternal(t,e,i,n)}.bind(this)),this.reprojectedRevision_=this.getRevision(),this.reprojectedImage_}return n&&(r=n),this.getImageInternal(t,e,i,r)},e.prototype.getImageInternal=function(t,e,i,n){return r()},e.prototype.handleImageChange=function(t){var e=t.target;switch(e.getState()){case xs.LOADING:this.loading=!0,this.dispatchEvent(new pp(hp,e));break;case xs.LOADED:this.loading=!1,this.dispatchEvent(new pp(lp,e));break;case xs.ERROR:this.loading=!1,this.dispatchEvent(new pp(up,e))}},e}(Il),fp=function(t){function e(e,i,r,n,o,s){t.call(this,e,i,r,xs.IDLE),this.src_=n,this.image_=new Image,null!==o&&(this.image_.crossOrigin=o),this.imageListenerKeys_=null,this.state=xs.IDLE,this.imageLoadFunction_=s}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.getImage=function(){return this.image_},e.prototype.handleImageError_=function(){this.state=xs.ERROR,this.unlistenImage_(),this.changed()},e.prototype.handleImageLoad_=function(){void 0===this.resolution&&(this.resolution=Rt(this.extent)/this.image_.height),this.state=xs.LOADED,this.unlistenImage_(),this.changed()},e.prototype.load=function(){this.state!=xs.IDLE&&this.state!=xs.ERROR||(this.state=xs.LOADING,this.changed(),this.imageListenerKeys_=[m(this.image_,M.ERROR,this.handleImageError_,this),m(this.image_,M.LOAD,this.handleImageLoad_,this)],this.imageLoadFunction_(this,this.src_))},e.prototype.setImage=function(t){this.image_=t},e.prototype.unlistenImage_=function(){this.imageListenerKeys_.forEach(E),this.imageListenerKeys_=null},e}(ms);function _p(t,e){var i=[];Object.keys(e).forEach(function(t){null!==e[t]&&void 0!==e[t]&&i.push(t+"="+encodeURIComponent(e[t]))});var r=i.join("&");return(t=-1===(t=t.replace(/[?&]$/,"")).indexOf("?")?t+"?":t+"&")+r}var gp=function(t){function e(e){var i=e||{};t.call(this,{attributions:i.attributions,projection:i.projection,resolutions:i.resolutions}),this.crossOrigin_=void 0!==i.crossOrigin?i.crossOrigin:null,this.hidpi_=void 0===i.hidpi||i.hidpi,this.url_=i.url,this.imageLoadFunction_=void 0!==i.imageLoadFunction?i.imageLoadFunction:cp,this.params_=i.params||{},this.image_=null,this.imageSize_=[0,0],this.renderedRevision_=0,this.ratio_=void 0!==i.ratio?i.ratio:1.5}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.getParams=function(){return this.params_},e.prototype.getImageInternal=function(t,e,i,r){if(void 0===this.url_)return null;e=this.findNearestResolution(e),i=this.hidpi_?i:1;var n=this.image_;if(n&&this.renderedRevision_==this.getRevision()&&n.getResolution()==e&&n.getPixelRatio()==i&&ot(n.getExtent(),t))return n;var o={F:"image",FORMAT:"PNG32",TRANSPARENT:!0};u(o,this.params_);var s=((t=t.slice())[0]+t[2])/2,a=(t[1]+t[3])/2;if(1!=this.ratio_){var h=this.ratio_*Ot(t)/2,l=this.ratio_*Rt(t)/2;t[0]=s-h,t[1]=a-l,t[2]=s+h,t[3]=a+l}var p=e/i,c=Math.ceil(Ot(t)/p),d=Math.ceil(Rt(t)/p);t[0]=s-p*c/2,t[2]=s+p*c/2,t[1]=a-p*d/2,t[3]=a+p*d/2,this.imageSize_[0]=c,this.imageSize_[1]=d;var f=this.getRequestUrl_(t,this.imageSize_,i,r,o);return this.image_=new fp(t,e,i,f,this.crossOrigin_,this.imageLoadFunction_),this.renderedRevision_=this.getRevision(),v(this.image_,M.CHANGE,this.handleImageChange,this),this.image_},e.prototype.getImageLoadFunction=function(){return this.imageLoadFunction_},e.prototype.getRequestUrl_=function(t,e,i,r,n){var o=r.getCode().split(":").pop();n.SIZE=e[0]+","+e[1],n.BBOX=t.join(","),n.BBOXSR=o,n.IMAGESR=o,n.DPI=Math.round(90*i);var s=this.url_,a=s.replace(/MapServer\/?$/,"MapServer/export").replace(/ImageServer\/?$/,"ImageServer/exportImage");return a==s&&Y(!1,50),_p(a,n)},e.prototype.getUrl=function(){return this.url_},e.prototype.setImageLoadFunction=function(t){this.image_=null,this.imageLoadFunction_=t,this.changed()},e.prototype.setUrl=function(t){t!=this.url_&&(this.url_=t,this.image_=null,this.changed())},e.prototype.updateParams=function(t){u(this.params_,t),this.image_=null,this.changed()},e}(dp),yp=function(t){function e(e){var i=e||{};t.call(this,{attributions:i.attributions,projection:i.projection,resolutions:i.resolutions,state:i.state}),this.canvasFunction_=i.canvasFunction,this.canvas_=null,this.renderedRevision_=0,this.ratio_=void 0!==i.ratio?i.ratio:1.5}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.getImageInternal=function(t,e,i,r){e=this.findNearestResolution(e);var n=this.canvas_;if(n&&this.renderedRevision_==this.getRevision()&&n.getResolution()==e&&n.getPixelRatio()==i&&ot(n.getExtent(),t))return n;Mt(t=t.slice(),this.ratio_);var o=[Ot(t)/e*i,Rt(t)/e*i],s=this.canvasFunction_.call(this,t,e,i,o,r);return s&&(n=new Es(t,e,i,s)),this.canvas_=n,this.renderedRevision_=this.getRevision(),n},e}(dp);var vp=function(t){function e(e){t.call(this,{projection:e.projection,resolutions:e.resolutions}),this.crossOrigin_=void 0!==e.crossOrigin?e.crossOrigin:null,this.displayDpi_=void 0!==e.displayDpi?e.displayDpi:96,this.params_=e.params||{},this.url_=e.url,this.imageLoadFunction_=void 0!==e.imageLoadFunction?e.imageLoadFunction:cp,this.hidpi_=void 0===e.hidpi||e.hidpi,this.metersPerUnit_=void 0!==e.metersPerUnit?e.metersPerUnit:1,this.ratio_=void 0!==e.ratio?e.ratio:1,this.useOverlay_=void 0!==e.useOverlay&&e.useOverlay,this.image_=null,this.renderedRevision_=0}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.getParams=function(){return this.params_},e.prototype.getImageInternal=function(t,e,i,r){e=this.findNearestResolution(e),i=this.hidpi_?i:1;var n=this.image_;if(n&&this.renderedRevision_==this.getRevision()&&n.getResolution()==e&&n.getPixelRatio()==i&&ot(n.getExtent(),t))return n;1!=this.ratio_&&Mt(t=t.slice(),this.ratio_);var o=[Ot(t)/e*i,Rt(t)/e*i];if(void 0!==this.url_){var s=this.getUrl(this.url_,this.params_,t,o,r);v(n=new fp(t,e,i,s,this.crossOrigin_,this.imageLoadFunction_),M.CHANGE,this.handleImageChange,this)}else n=null;return this.image_=n,this.renderedRevision_=this.getRevision(),n},e.prototype.getImageLoadFunction=function(){return this.imageLoadFunction_},e.prototype.updateParams=function(t){u(this.params_,t),this.changed()},e.prototype.getUrl=function(t,e,i,r,n){var o=function(t,e,i,r){var n=Ot(t),o=Rt(t),s=e[0],a=e[1],h=.0254/r;return a*n>s*o?n*i/(s*h):o*i/(a*h)}(i,r,this.metersPerUnit_,this.displayDpi_),s=Tt(i),a={OPERATION:this.useOverlay_?"GETDYNAMICMAPOVERLAYIMAGE":"GETMAPIMAGE",VERSION:"2.0.0",LOCALE:"en",CLIENTAGENT:"ol/source/ImageMapGuide source",CLIP:"1",SETDISPLAYDPI:this.displayDpi_,SETDISPLAYWIDTH:Math.round(r[0]),SETDISPLAYHEIGHT:Math.round(r[1]),SETVIEWSCALE:o,SETVIEWCENTERX:s[0],SETVIEWCENTERY:s[1]};return u(a,e),_p(t,a)},e.prototype.setImageLoadFunction=function(t){this.image_=null,this.imageLoadFunction_=t,this.changed()},e}(dp),mp=function(t){function e(e){var i=void 0!==e.crossOrigin?e.crossOrigin:null,r=void 0!==e.imageLoadFunction?e.imageLoadFunction:cp;t.call(this,{attributions:e.attributions,projection:Ee(e.projection)}),this.url_=e.url,this.imageExtent_=e.imageExtent,this.image_=new fp(this.imageExtent_,void 0,1,this.url_,i,r),this.imageSize_=e.imageSize?e.imageSize:null,v(this.image_,M.CHANGE,this.handleImageChange,this)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.getImageExtent=function(){return this.imageExtent_},e.prototype.getImageInternal=function(t,e,i,r){return Pt(t,this.image_.getExtent())?this.image_:null},e.prototype.getUrl=function(){return this.url_},e.prototype.handleImageChange=function(e){if(this.image_.getState()==xs.LOADED){var i,r,n=this.image_.getExtent(),o=this.image_.getImage();this.imageSize_?(i=this.imageSize_[0],r=this.imageSize_[1]):(i=o.width,r=o.height);var s=Rt(n)/r,a=Math.ceil(Ot(n)/s);if(a!=i){var h=Jn(a,r),l=h.canvas;h.drawImage(o,0,0,i,r,0,0,l.width,l.height),this.image_.setImage(l)}}t.prototype.handleImageChange.call(this,e)},e}(dp),xp="1.3.0",Ep="carmentaserver",Sp="geoserver",Tp="mapserver",Cp="qgis",Rp=[101,101],wp=function(t){function e(e){var i=e||{};t.call(this,{attributions:i.attributions,projection:i.projection,resolutions:i.resolutions}),this.crossOrigin_=void 0!==i.crossOrigin?i.crossOrigin:null,this.url_=i.url,this.imageLoadFunction_=void 0!==i.imageLoadFunction?i.imageLoadFunction:cp,this.params_=i.params||{},this.v13_=!0,this.updateV13_(),this.serverType_=i.serverType,this.hidpi_=void 0===i.hidpi||i.hidpi,this.image_=null,this.imageSize_=[0,0],this.renderedRevision_=0,this.ratio_=void 0!==i.ratio?i.ratio:1.5}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.getGetFeatureInfoUrl=function(t,e,i,r){if(void 0!==this.url_){var n=Ee(i),o=this.getProjection();o&&o!==n&&(e=Bu(o,n,t,e),t=Pe(t,n,o));var s=Ct(t,e,0,Rp),a={SERVICE:"WMS",VERSION:xp,REQUEST:"GetFeatureInfo",FORMAT:"image/png",TRANSPARENT:!0,QUERY_LAYERS:this.params_.LAYERS};u(a,this.params_,r);var h=Math.floor((t[0]-s[0])/e),l=Math.floor((s[3]-t[1])/e);return a[this.v13_?"I":"X"]=h,a[this.v13_?"J":"Y"]=l,this.getRequestUrl_(s,Rp,1,o||n,a)}},e.prototype.getParams=function(){return this.params_},e.prototype.getImageInternal=function(t,e,i,r){if(void 0===this.url_)return null;e=this.findNearestResolution(e),1==i||this.hidpi_&&void 0!==this.serverType_||(i=1);var n=e/i,o=Tt(t),s=Ct(o,n,0,[Math.ceil(Ot(t)/n),Math.ceil(Rt(t)/n)]),a=Ct(o,n,0,[Math.ceil(this.ratio_*Ot(t)/n),Math.ceil(this.ratio_*Rt(t)/n)]),h=this.image_;if(h&&this.renderedRevision_==this.getRevision()&&h.getResolution()==e&&h.getPixelRatio()==i&&ot(h.getExtent(),s))return h;var l={SERVICE:"WMS",VERSION:xp,REQUEST:"GetMap",FORMAT:"image/png",TRANSPARENT:!0};u(l,this.params_),this.imageSize_[0]=Math.round(Ot(a)/n),this.imageSize_[1]=Math.round(Rt(a)/n);var p=this.getRequestUrl_(a,this.imageSize_,i,r,l);return this.image_=new fp(a,e,i,p,this.crossOrigin_,this.imageLoadFunction_),this.renderedRevision_=this.getRevision(),v(this.image_,M.CHANGE,this.handleImageChange,this),this.image_},e.prototype.getImageLoadFunction=function(){return this.imageLoadFunction_},e.prototype.getRequestUrl_=function(t,e,i,r,n){if(Y(void 0!==this.url_,9),n[this.v13_?"CRS":"SRS"]=r.getCode(),"STYLES"in this.params_||(n.STYLES=""),1!=i)switch(this.serverType_){case Sp:var o=90*i+.5|0;"FORMAT_OPTIONS"in n?n.FORMAT_OPTIONS+=";dpi:"+o:n.FORMAT_OPTIONS="dpi:"+o;break;case Tp:n.MAP_RESOLUTION=90*i;break;case Ep:case Cp:n.DPI=90*i;break;default:Y(!1,8)}n.WIDTH=e[0],n.HEIGHT=e[1];var s,a=r.getAxisOrientation();return s=this.v13_&&"ne"==a.substr(0,2)?[t[1],t[0],t[3],t[2]]:t,n.BBOX=s.join(","),_p(this.url_,n)},e.prototype.getUrl=function(){return this.url_},e.prototype.setImageLoadFunction=function(t){this.image_=null,this.imageLoadFunction_=t,this.changed()},e.prototype.setUrl=function(t){t!=this.url_&&(this.url_=t,this.image_=null,this.changed())},e.prototype.updateParams=function(t){u(this.params_,t),this.updateV13_(),this.image_=null,this.changed()},e.prototype.updateV13_=function(){var t=this.params_.VERSION||xp;this.v13_=Ki(t,"1.3")>=0},e}(dp),Ip='© OpenStreetMap contributors.',Lp=function(t){function e(e){var i,r=e||{};i=void 0!==r.attributions?r.attributions:[Ip];var n=void 0!==r.crossOrigin?r.crossOrigin:"anonymous",o=void 0!==r.url?r.url:"https://{a-c}.tile.openstreetmap.org/{z}/{x}/{y}.png";t.call(this,{attributions:i,cacheSize:r.cacheSize,crossOrigin:n,opaque:void 0===r.opaque||r.opaque,maxZoom:void 0!==r.maxZoom?r.maxZoom:19,reprojectionErrorThreshold:r.reprojectionErrorThreshold,tileLoadFunction:r.tileLoadFunction,url:o,wrapX:r.wrapX,attributionsCollapsible:!1})}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e}(ep),Op=i(2),Pp=function(t){function e(e){var i=e||{};t.call(this,i),this.type=Ss.IMAGE}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e}(xo);Pp.prototype.getSource;var bp=Pp,Mp="preload",Fp="useInterimTilesOnError",Ap=function(t){function e(e){var i=e||{},r=u({},i);delete r.preload,delete r.useInterimTilesOnError,t.call(this,r),this.setPreload(void 0!==i.preload?i.preload:0),this.setUseInterimTilesOnError(void 0===i.useInterimTilesOnError||i.useInterimTilesOnError),this.type=Ss.TILE}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.getPreload=function(){return this.get(Mp)},e.prototype.setPreload=function(t){this.set(Mp,t)},e.prototype.getUseInterimTilesOnError=function(){return this.get(Fp)},e.prototype.setUseInterimTilesOnError=function(t){this.set(Fp,t)},e}(xo);Ap.prototype.getSource;var Np=Ap,Gp="beforeoperations",Dp="afteroperations",kp={PIXEL:"pixel",IMAGE:"image"},jp=function(t){function e(e,i,r){t.call(this,e),this.extent=i.extent,this.resolution=i.viewState.resolution/i.pixelRatio,this.data=r}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e}(P),Up=null;function Yp(t,e,i){if(!t.prepareFrame(e,i))return null;var r=e.size[0],n=e.size[1];if(Up){var o=Up.canvas;o.width!==r||o.height!==n?Up=Jn(r,n):Up.clearRect(0,0,r,n)}else Up=Jn(r,n);return t.composeFrame(e,i,Up),Up.getImageData(0,0,r,n)}function Bp(t){var e=t,i=t,r=t,n=null;return"function"==typeof e.getTile?n=function(t){var e=new Np({source:t});return new ha(e)}(e):"function"==typeof i.getImage?n=function(t){var e=new bp({source:t});return new ra(e)}(i):r.getType()===Ss.TILE?n=new ha(r):r.getType()!=Ss.IMAGE&&r.getType()!=Ss.VECTOR||(n=new ra(r)),n}var Vp=function(t){function e(e){t.call(this,{projection:null}),this.worker_=null,this.operationType_=void 0!==e.operationType?e.operationType:kp.PIXEL,this.threads_=void 0!==e.threads?e.threads:1,this.renderers_=function(t){for(var e=t.length,i=new Array(e),r=0;rStamen Design, under CC BY 3.0.',Ip],zp={terrain:{extension:"jpg",opaque:!0},"terrain-background":{extension:"jpg",opaque:!0},"terrain-labels":{extension:"png",opaque:!1},"terrain-lines":{extension:"png",opaque:!1},"toner-background":{extension:"png",opaque:!0},toner:{extension:"png",opaque:!0},"toner-hybrid":{extension:"png",opaque:!1},"toner-labels":{extension:"png",opaque:!1},"toner-lines":{extension:"png",opaque:!1},"toner-lite":{extension:"png",opaque:!0},watercolor:{extension:"jpg",opaque:!0}},Wp={terrain:{minZoom:4,maxZoom:18},toner:{minZoom:0,maxZoom:20},watercolor:{minZoom:1,maxZoom:16}},Kp=function(t){function e(e){var i=e.layer.indexOf("-"),r=-1==i?e.layer:e.layer.slice(0,i),n=Wp[r],o=zp[e.layer],s=void 0!==e.url?e.url:"https://stamen-tiles-{a-d}.a.ssl.fastly.net/"+e.layer+"/{z}/{x}/{y}."+o.extension;t.call(this,{attributions:Xp,cacheSize:e.cacheSize,crossOrigin:"anonymous",maxZoom:void 0!=e.maxZoom?e.maxZoom:n.maxZoom,minZoom:void 0!=e.minZoom?e.minZoom:n.minZoom,opaque:o.opaque,reprojectionErrorThreshold:e.reprojectionErrorThreshold,tileLoadFunction:e.tileLoadFunction,url:s,wrapX:e.wrapX})}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e}(ep);function Hp(t,e,i){var r=this.getTileGrid();if(r||(r=this.getTileGridForProjection(i)),!(r.getResolutions().length<=t[0])){var n=r.getTileCoordExtent(t,this.tmpExtent_),o=ho(r.getTileSize(t[0]),this.tmpSize);1!=e&&(o=ao(o,e,this.tmpSize));var s={F:"image",FORMAT:"PNG32",TRANSPARENT:!0};return u(s,this.params_),this.getRequestUrl_(t,o,n,e,i,s)}}var Zp=function(t){function e(e){var i=e||{};t.call(this,{attributions:i.attributions,cacheSize:i.cacheSize,crossOrigin:i.crossOrigin,projection:i.projection,reprojectionErrorThreshold:i.reprojectionErrorThreshold,tileGrid:i.tileGrid,tileLoadFunction:i.tileLoadFunction,tileUrlFunction:Hp,url:i.url,urls:i.urls,wrapX:void 0===i.wrapX||i.wrapX,transition:i.transition}),this.params_=i.params||{},this.tmpExtent_=[1/0,1/0,-1/0,-1/0],this.setKey(this.getKeyForParams_())}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.getKeyForParams_=function(){var t=0,e=[];for(var i in this.params_)e[t++]=i+"-"+this.params_[i];return e.join("/")},e.prototype.getParams=function(){return this.params_},e.prototype.getRequestUrl_=function(t,e,i,r,n,o){var s=this.urls;if(s){var a,h=n.getCode().split(":").pop();if(o.SIZE=e[0]+","+e[1],o.BBOX=i.join(","),o.BBOXSR=h,o.IMAGESR=h,o.DPI=Math.round(o.DPI?o.DPI*r:90*r),1==s.length)a=s[0];else a=s[Xt(Cl(t),s.length)];return _p(a.replace(/MapServer\/?$/,"MapServer/export").replace(/ImageServer\/?$/,"ImageServer/exportImage"),o)}},e.prototype.getTilePixelRatio=function(t){return t},e.prototype.updateParams=function(t){u(this.params_,t),this.setKey(this.getKeyForParams_())},e}($u),qp=function(t){function e(e,i,r){t.call(this,e,On.LOADED),this.tileSize_=i,this.text_=r,this.canvas_=null}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.getImage=function(){if(this.canvas_)return this.canvas_;var t=this.tileSize_,e=Jn(t[0],t[1]);return e.strokeStyle="black",e.strokeRect(.5,.5,t[0]+.5,t[1]+.5),e.fillStyle="black",e.textAlign="center",e.textBaseline="middle",e.font="24px sans-serif",e.fillText(this.text_,t[0]/2,t[1]/2),this.canvas_=e.canvas,e.canvas},e.prototype.load=function(){},e}(vl),Jp=function(t){function e(e){t.call(this,{opaque:!1,projection:e.projection,tileGrid:e.tileGrid,wrapX:void 0===e.wrapX||e.wrapX})}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.getTile=function(t,e,i){var r=Sl(t,e,i);if(this.tileCache.containsKey(r))return this.tileCache.get(r);var n=ho(this.tileGrid.getTileSize(t)),o=[t,e,i],s=this.getTileCoordForTileUrlFunction(o),a=s?this.getTileCoordForTileUrlFunction(s).toString():"",h=new qp(o,n,a);return this.tileCache.set(r,h),h},e}(jl),Qp=function(t){function e(e){if(t.call(this,{attributions:e.attributions,cacheSize:e.cacheSize,crossOrigin:e.crossOrigin,projection:Ee("EPSG:3857"),reprojectionErrorThreshold:e.reprojectionErrorThreshold,state:ro.LOADING,tileLoadFunction:e.tileLoadFunction,wrapX:void 0===e.wrapX||e.wrapX,transition:e.transition}),this.tileJSON_=null,e.url)if(e.jsonp)Yu(e.url,this.handleTileJSONResponse.bind(this),this.handleTileJSONError.bind(this));else{var i=new XMLHttpRequest;i.addEventListener("load",this.onXHRLoad_.bind(this)),i.addEventListener("error",this.onXHRError_.bind(this)),i.open("GET",e.url),i.send()}else e.tileJSON?this.handleTileJSONResponse(e.tileJSON):Y(!1,51)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.onXHRLoad_=function(t){var e=t.target;if(!e.status||e.status>=200&&e.status<300){var i;try{i=JSON.parse(e.responseText)}catch(t){return void this.handleTileJSONError()}this.handleTileJSONResponse(i)}else this.handleTileJSONError()},e.prototype.onXHRError_=function(t){this.handleTileJSONError()},e.prototype.getTileJSON=function(){return this.tileJSON_},e.prototype.handleTileJSONResponse=function(t){var e,i=Ee("EPSG:4326"),r=this.getProjection();if(void 0!==t.bounds){var n=Le(i,r);e=Ft(t.bounds,n)}var o=t.minzoom||0,s=t.maxzoom||22,a=Fl({extent:Gl(r),maxZoom:s,minZoom:o});if(this.tileGrid=a,this.tileUrlFunction=Du(t.tiles,a),void 0!==t.attribution&&!this.getAttributions()){var h=void 0!==e?e:i.getExtent();this.setAttributions(function(e){return Pt(h,e.extent)?[t.attribution]:null})}this.tileJSON_=t,this.setState(ro.READY)},e.prototype.handleTileJSONError=function(){this.setState(ro.ERROR)},e}($u);function $p(t,e,i){var r=this.getTileGrid();if(r||(r=this.getTileGridForProjection(i)),!(r.getResolutions().length<=t[0])){1==e||this.hidpi_&&void 0!==this.serverType_||(e=1);var n=r.getResolution(t[0]),o=r.getTileCoordExtent(t,this.tmpExtent_),s=ho(r.getTileSize(t[0]),this.tmpSize),a=this.gutter_;0!==a&&(s=so(s,a,this.tmpSize),o=et(o,n*a,o)),1!=e&&(s=ao(s,e,this.tmpSize));var h={SERVICE:"WMS",VERSION:xp,REQUEST:"GetMap",FORMAT:"image/png",TRANSPARENT:!0};return u(h,this.params_),this.getRequestUrl_(t,s,o,e,i,h)}}var tc=function(t){function e(e){var i=e||{},r=i.params||{},n=!("TRANSPARENT"in r)||r.TRANSPARENT;t.call(this,{attributions:i.attributions,cacheSize:i.cacheSize,crossOrigin:i.crossOrigin,opaque:!n,projection:i.projection,reprojectionErrorThreshold:i.reprojectionErrorThreshold,tileClass:i.tileClass,tileGrid:i.tileGrid,tileLoadFunction:i.tileLoadFunction,tileUrlFunction:$p,url:i.url,urls:i.urls,wrapX:void 0===i.wrapX||i.wrapX,transition:i.transition}),this.gutter_=void 0!==i.gutter?i.gutter:0,this.params_=r,this.v13_=!0,this.serverType_=i.serverType,this.hidpi_=void 0===i.hidpi||i.hidpi,this.tmpExtent_=[1/0,1/0,-1/0,-1/0],this.updateV13_(),this.setKey(this.getKeyForParams_())}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.getGetFeatureInfoUrl=function(t,e,i,r){var n=Ee(i),o=this.getProjection(),s=this.getTileGrid();s||(s=this.getTileGridForProjection(n));var a=s.getTileCoordForCoordAndResolution(t,e);if(!(s.getResolutions().length<=a[0])){var h=s.getResolution(a[0]),l=s.getTileCoordExtent(a,this.tmpExtent_),p=ho(s.getTileSize(a[0]),this.tmpSize),c=this.gutter_;0!==c&&(p=so(p,c,this.tmpSize),l=et(l,h*c,l)),o&&o!==n&&(h=Bu(o,n,t,h),l=be(l,n,o),t=Pe(t,n,o));var d={SERVICE:"WMS",VERSION:xp,REQUEST:"GetFeatureInfo",FORMAT:"image/png",TRANSPARENT:!0,QUERY_LAYERS:this.params_.LAYERS};u(d,this.params_,r);var f=Math.floor((t[0]-l[0])/h),_=Math.floor((l[3]-t[1])/h);return d[this.v13_?"I":"X"]=f,d[this.v13_?"J":"Y"]=_,this.getRequestUrl_(a,p,l,1,o||n,d)}},e.prototype.getGutter=function(){return this.gutter_},e.prototype.getParams=function(){return this.params_},e.prototype.getRequestUrl_=function(t,e,i,r,n,o){var s=this.urls;if(s){if(o.WIDTH=e[0],o.HEIGHT=e[1],o[this.v13_?"CRS":"SRS"]=n.getCode(),"STYLES"in this.params_||(o.STYLES=""),1!=r)switch(this.serverType_){case Sp:var a=90*r+.5|0;"FORMAT_OPTIONS"in o?o.FORMAT_OPTIONS+=";dpi:"+a:o.FORMAT_OPTIONS="dpi:"+a;break;case Tp:o.MAP_RESOLUTION=90*r;break;case Ep:case Cp:o.DPI=90*r;break;default:Y(!1,52)}var h,l,u=n.getAxisOrientation(),p=i;if(this.v13_&&"ne"==u.substr(0,2))h=i[0],p[0]=i[1],p[1]=h,h=i[2],p[2]=i[3],p[3]=h;if(o.BBOX=p.join(","),1==s.length)l=s[0];else l=s[Xt(Cl(t),s.length)];return _p(l,o)}},e.prototype.getTilePixelRatio=function(t){return this.hidpi_&&void 0!==this.serverType_?t:1},e.prototype.getKeyForParams_=function(){var t=0,e=[];for(var i in this.params_)e[t++]=i+"-"+this.params_[i];return e.join("/")},e.prototype.updateParams=function(t){u(this.params_,t),this.updateV13_(),this.setKey(this.getKeyForParams_())},e.prototype.updateV13_=function(){var t=this.params_.VERSION||xp;this.v13_=Ki(t,"1.3")>=0},e}($u),ec=function(t){function e(e,i,r,n,o,s){t.call(this,e,i),this.src_=r,this.extent_=n,this.preemptive_=o,this.grid_=null,this.keys_=null,this.data_=null,this.jsonp_=s}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.getImage=function(){return null},e.prototype.getData=function(t){if(!this.grid_||!this.keys_)return null;var e=(t[0]-this.extent_[0])/(this.extent_[2]-this.extent_[0]),i=(t[1]-this.extent_[1])/(this.extent_[3]-this.extent_[1]),r=this.grid_[Math.floor((1-i)*this.grid_.length)];if("string"!=typeof r)return null;var n=r.charCodeAt(Math.floor(e*r.length));n>=93&&n--,n>=35&&n--;var o=null;if((n-=32)in this.keys_){var s=this.keys_[n];o=this.data_&&s in this.data_?this.data_[s]:s}return o},e.prototype.forDataAtCoordinate=function(t,e,i,r){this.state==On.IDLE&&!0===r?(m(this,M.CHANGE,function(r){e.call(i,this.getData(t))},this),this.loadInternal_()):!0===r?setTimeout(function(){e.call(i,this.getData(t))}.bind(this),0):e.call(i,this.getData(t))},e.prototype.getKey=function(){return this.src_},e.prototype.handleError_=function(){this.state=On.ERROR,this.changed()},e.prototype.handleLoad_=function(t){this.grid_=t.grid,this.keys_=t.keys,this.data_=t.data,this.state=On.EMPTY,this.changed()},e.prototype.loadInternal_=function(){if(this.state==On.IDLE)if(this.state=On.LOADING,this.jsonp_)Yu(this.src_,this.handleLoad_.bind(this),this.handleError_.bind(this));else{var t=new XMLHttpRequest;t.addEventListener("load",this.onXHRLoad_.bind(this)),t.addEventListener("error",this.onXHRError_.bind(this)),t.open("GET",this.src_),t.send()}},e.prototype.onXHRLoad_=function(t){var e=t.target;if(!e.status||e.status>=200&&e.status<300){var i;try{i=JSON.parse(e.responseText)}catch(t){return void this.handleError_()}this.handleLoad_(i)}else this.handleError_()},e.prototype.onXHRError_=function(t){this.handleError_()},e.prototype.load=function(){this.preemptive_&&this.loadInternal_()},e}(vl),ic=function(t){function e(e){if(t.call(this,{projection:Ee("EPSG:3857"),state:ro.LOADING}),this.preemptive_=void 0===e.preemptive||e.preemptive,this.tileUrlFunction_=ju,this.template_=void 0,this.jsonp_=e.jsonp||!1,e.url)if(this.jsonp_)Yu(e.url,this.handleTileJSONResponse.bind(this),this.handleTileJSONError.bind(this));else{var i=new XMLHttpRequest;i.addEventListener("load",this.onXHRLoad_.bind(this)),i.addEventListener("error",this.onXHRError_.bind(this)),i.open("GET",e.url),i.send()}else e.tileJSON?this.handleTileJSONResponse(e.tileJSON):Y(!1,51)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.onXHRLoad_=function(t){var e=t.target;if(!e.status||e.status>=200&&e.status<300){var i;try{i=JSON.parse(e.responseText)}catch(t){return void this.handleTileJSONError()}this.handleTileJSONResponse(i)}else this.handleTileJSONError()},e.prototype.onXHRError_=function(t){this.handleTileJSONError()},e.prototype.getTemplate=function(){return this.template_},e.prototype.forDataAtCoordinateAndResolution=function(t,e,i,r){if(this.tileGrid){var n=this.tileGrid.getTileCoordForCoordAndResolution(t,e);this.getTile(n[0],n[1],n[2],1,this.getProjection()).forDataAtCoordinate(t,i,null,r)}else!0===r?setTimeout(function(){i(null)},0):i(null)},e.prototype.handleTileJSONError=function(){this.setState(ro.ERROR)},e.prototype.handleTileJSONResponse=function(t){var e,i=Ee("EPSG:4326"),r=this.getProjection();if(void 0!==t.bounds){var n=Le(i,r);e=Ft(t.bounds,n)}var o=t.minzoom||0,s=t.maxzoom||22,a=Fl({extent:Gl(r),maxZoom:s,minZoom:o});this.tileGrid=a,this.template_=t.template;var h=t.grids;if(h){if(this.tileUrlFunction_=Du(h,a),void 0!==t.attribution){var l=void 0!==e?e:i.getExtent();this.setAttributions(function(e){return Pt(l,e.extent)?[t.attribution]:null})}this.setState(ro.READY)}else this.setState(ro.ERROR)},e.prototype.getTile=function(t,e,i,r,n){var o=Sl(t,e,i);if(this.tileCache.containsKey(o))return this.tileCache.get(o);var s=[t,e,i],a=this.getTileCoordForTileUrlFunction(s,n),h=this.tileUrlFunction_(a,r,n),l=new ec(s,void 0!==h?On.IDLE:On.EMPTY,void 0!==h?h:"",this.tileGrid.getTileCoordExtent(s),this.preemptive_,this.jsonp_);return this.tileCache.set(o,l),l},e.prototype.useTile=function(t,e,i){var r=Sl(t,e,i);this.tileCache.containsKey(r)&&this.tileCache.get(r)},e}(jl),rc=function(t){function e(i,r,n,o,s,a,h,l,u,p,c,d,f,_,g){if(t.call(this,i,r,{transition:0}),this.context_={},this.loader_,this.replayState_={},this.sourceTiles_=p,this.tileKeys=[],this.extent=null,this.sourceRevision_=n,this.wrappedTileCoord=a,this.loadListenerKeys_=[],this.sourceTileListenerKeys_=[],a){var y=this.extent=u.getTileCoordExtent(a),m=u.getResolution(g),x=l.getZForResolution(m),E=g!=i[0],S=0;if(l.forEachTileCoord(y,x,function(t){var e=wt(y,l.getTileCoordExtent(t)),i=l.getExtent();if(i&&(e=wt(e,i,e)),Ot(e)/m>=.5&&Rt(e)/m>=.5){++S;var r=t.toString(),n=p[r];if(!n&&!E){var a=h(t,c,d);n=p[r]=new f(t,void 0==a?On.EMPTY:On.IDLE,void 0==a?"":a,o,s),this.sourceTileListenerKeys_.push(v(n,M.CHANGE,_))}!n||E&&n.getState()!=On.LOADED||(n.consumers++,this.tileKeys.push(r))}}.bind(this)),E&&S==this.tileKeys.length&&this.finishLoading_(),g<=i[0]&&this.state!=On.LOADED)for(;g>u.getMinZoom();){var T=new e(i,r,n,o,s,a,h,l,u,p,c,d,f,I,--g);if(T.state==On.LOADED){this.interimTile=T;break}}}}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.disposeInternal=function(){this.state=On.ABORT,this.changed(),this.interimTile&&this.interimTile.dispose();for(var e=0,i=this.tileKeys.length;e=0;--i){var r=this.getTile(this.tileKeys[i]).getState();r!=On.LOADED&&--t,r==On.EMPTY&&++e}t==this.tileKeys.length?(this.loadListenerKeys_.forEach(E),this.loadListenerKeys_.length=0,this.setState(On.LOADED)):this.setState(e==this.tileKeys.length?On.EMPTY:On.ERROR)},e}(vl);function nc(t,e){var i=Zl(e,t.getFormat(),t.onLoad.bind(t),t.onError.bind(t));t.setLoader(i)}var oc=[0,0,4096,4096],sc=function(t){function e(e,i,r,n,o,s){t.call(this,e,i,s),this.consumers=0,this.extent_=null,this.format_=n,this.features_=null,this.loader_,this.projection_=null,this.replayGroups_={},this.tileLoadFunction_=o,this.url_=r}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.disposeInternal=function(){this.features_=null,this.replayGroups_={},this.state=On.ABORT,this.changed(),t.prototype.disposeInternal.call(this)},e.prototype.getExtent=function(){return this.extent_||oc},e.prototype.getFormat=function(){return this.format_},e.prototype.getFeatures=function(){return this.features_},e.prototype.getKey=function(){return this.url_},e.prototype.getProjection=function(){return this.projection_},e.prototype.getReplayGroup=function(t,e){return this.replayGroups_[o(t)+","+e]},e.prototype.load=function(){this.state==On.IDLE&&(this.setState(On.LOADING),this.tileLoadFunction_(this,this.url_),this.loader_(null,NaN,null))},e.prototype.onLoad=function(t,e,i){this.setProjection(e),this.setFeatures(t),this.setExtent(i)},e.prototype.onError=function(){this.setState(On.ERROR)},e.prototype.setExtent=function(t){this.extent_=t},e.prototype.setFeatures=function(t){this.features_=t,this.setState(On.LOADED)},e.prototype.setProjection=function(t){this.projection_=t},e.prototype.setReplayGroup=function(t,e,i){this.replayGroups_[o(t)+","+e]=i},e.prototype.setLoader=function(t){this.loader_=t},e}(vl),ac=function(t){function e(e){var i=e.projection||"EPSG:3857",r=e.extent||Gl(i),n=e.tileGrid||Fl({extent:r,maxZoom:e.maxZoom||22,minZoom:e.minZoom,tileSize:e.tileSize||512});t.call(this,{attributions:e.attributions,cacheSize:void 0!==e.cacheSize?e.cacheSize:128,opaque:!1,projection:i,state:e.state,tileGrid:n,tileLoadFunction:e.tileLoadFunction?e.tileLoadFunction:nc,tileUrlFunction:e.tileUrlFunction,url:e.url,urls:e.urls,wrapX:void 0===e.wrapX||e.wrapX,transition:e.transition}),this.format_=e.format?e.format:null,this.sourceTiles_={},this.overlaps_=void 0==e.overlaps||e.overlaps,this.tileClass=e.tileClass?e.tileClass:sc,this.tileGrids_={}}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.getOverlaps=function(){return this.overlaps_},e.prototype.clear=function(){this.tileCache.clear(),this.sourceTiles_={}},e.prototype.getTile=function(t,e,i,r,n){var o=Sl(t,e,i);if(this.tileCache.containsKey(o))return this.tileCache.get(o);var s=[t,e,i],a=this.getTileCoordForTileUrlFunction(s,n),h=new rc(s,null!==a?On.IDLE:On.EMPTY,this.getRevision(),this.format_,this.tileLoadFunction,a,this.tileUrlFunction,this.tileGrid,this.getTileGridForProjection(n),this.sourceTiles_,r,n,this.tileClass,this.handleTileChange.bind(this),s[0]);return this.tileCache.set(o,h),h},e.prototype.getTileGridForProjection=function(t){var e=t.getCode(),i=this.tileGrids_[e];if(!i){var r=this.tileGrid;i=this.tileGrids_[e]=Nl(t,void 0,r?r.getTileSize(r.getMinZoom()):void 0)}return i},e.prototype.getTilePixelRatio=function(t){return t},e.prototype.getTilePixelSize=function(t,e,i){var r=ho(this.getTileGridForProjection(i).getTileSize(t),this.tmpSize);return[Math.round(r[0]*e),Math.round(r[1]*e)]},e}(Ju),hc={KVP:"KVP",REST:"REST"},lc=function(t){function e(e){var i=void 0!==e.requestEncoding?e.requestEncoding:hc.KVP,r=e.tileGrid,n=e.urls;void 0===n&&void 0!==e.url&&(n=Uu(e.url)),t.call(this,{attributions:e.attributions,cacheSize:e.cacheSize,crossOrigin:e.crossOrigin,projection:e.projection,reprojectionErrorThreshold:e.reprojectionErrorThreshold,tileClass:e.tileClass,tileGrid:r,tileLoadFunction:e.tileLoadFunction,tilePixelRatio:e.tilePixelRatio,tileUrlFunction:ju,urls:n,wrapX:void 0!==e.wrapX&&e.wrapX,transition:e.transition}),this.version_=void 0!==e.version?e.version:"1.0.0",this.format_=void 0!==e.format?e.format:"image/jpeg",this.dimensions_=void 0!==e.dimensions?e.dimensions:{},this.layer_=e.layer,this.matrixSet_=e.matrixSet,this.style_=e.style,this.requestEncoding_=i,this.setKey(this.getKeyForDimensions_()),n&&n.length>0&&(this.tileUrlFunction=ku(n.map(uc.bind(this))))}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.setUrls=function(t){this.urls=t;var e=t.join("\n");this.setTileUrlFunction(ku(t.map(uc.bind(this))),e)},e.prototype.getDimensions=function(){return this.dimensions_},e.prototype.getFormat=function(){return this.format_},e.prototype.getLayer=function(){return this.layer_},e.prototype.getMatrixSet=function(){return this.matrixSet_},e.prototype.getRequestEncoding=function(){return this.requestEncoding_},e.prototype.getStyle=function(){return this.style_},e.prototype.getVersion=function(){return this.version_},e.prototype.getKeyForDimensions_=function(){var t=0,e=[];for(var i in this.dimensions_)e[t++]=i+"-"+this.dimensions_[i];return e.join("/")},e.prototype.updateDimensions=function(t){u(this.dimensions_,t),this.setKey(this.getKeyForDimensions_())},e}($u);function uc(t){var e=this.requestEncoding_,i={layer:this.layer_,style:this.style_,tilematrixset:this.matrixSet_};e==hc.KVP&&u(i,{Service:"WMTS",Request:"GetTile",Version:this.version_,Format:this.format_}),t=e==hc.KVP?_p(t,i):t.replace(/\{(\w+?)\}/g,function(t,e){return e.toLowerCase()in i?i[e.toLowerCase()]:t});var r=this.tileGrid,n=this.dimensions_;return function(i,o,s){if(i){var a={TileMatrix:r.getMatrixId(i[0]),TileCol:i[1],TileRow:-i[2]-1};u(a,n);var h=t;return h=e==hc.KVP?_p(h,a):h.replace(/\{(\w+?)\}/g,function(t,e){return a[e]})}}}var pc={DEFAULT:"default",TRUNCATED:"truncated"},cc=function(t){function e(e,i,r,n,o,s,a){t.call(this,i,r,n,o,s,a),this.zoomifyImage_=null,this.tileSize_=ho(e.getTileSize(i[0]))}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.getImage=function(){if(this.zoomifyImage_)return this.zoomifyImage_;var e=t.prototype.getImage.call(this);if(this.state==On.LOADED){var i=this.tileSize_;if(e.width==i[0]&&e.height==i[1])return this.zoomifyImage_=e,e;var r=Jn(i[0],i[1]);return r.drawImage(e,0,0),this.zoomifyImage_=r.canvas,r.canvas}return e},e}(xl),dc=function(t){function e(e){var i=e||{},r=i.size,n=void 0!==i.tierSizeCalculation?i.tierSizeCalculation:pc.DEFAULT,o=r[0],s=r[1],a=i.extent||[0,-r[1],r[0],0],h=[],l=i.tileSize||An,u=l;switch(n){case pc.DEFAULT:for(;o>u||s>u;)h.push([Math.ceil(o/u),Math.ceil(s/u)]),u+=u;break;case pc.TRUNCATED:for(var p=o,c=s;p>u||c>u;)h.push([Math.ceil(p/u),Math.ceil(c/u)]),p>>=1,c>>=1;break;default:Y(!1,53)}h.push([1,1]),h.reverse();for(var d=[1],f=[0],_=1,g=h.length;_0)break}this.source_&&(this.source_.clear(),this.source_.addFeatures(s)),this.dispatchEvent(new Tc(Sc,t,s,n))},e.prototype.registerListeners_=function(){var t=this.getMap();if(t){var e=this.target?this.target:t.getViewport();this.dropListenKeys_=[v(e,M.DROP,Cc,this),v(e,M.DRAGENTER,Rc,this),v(e,M.DRAGOVER,Rc,this),v(e,M.DROP,Rc,this)]}},e.prototype.setActive=function(e){t.prototype.setActive.call(this,e),e?this.registerListeners_():this.unregisterListeners_()},e.prototype.setMap=function(e){this.unregisterListeners_(),t.prototype.setMap.call(this,e),this.getActive()&&this.registerListeners_()},e.prototype.tryReadFeatures_=function(t,e,i){try{return t.readFeatures(e,i)}catch(t){return null}},e.prototype.unregisterListeners_=function(){this.dropListenKeys_&&(this.dropListenKeys_.forEach(E),this.dropListenKeys_=null)},e}(Fo),Ic=function(t){function e(e){var i=e||{};t.call(this,i),this.condition_=i.condition?i.condition:zo,this.lastAngle_=void 0,this.lastMagnitude_=void 0,this.lastScaleDelta_=0,this.duration_=void 0!==i.duration?i.duration:400}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.handleDragEvent=function(t){if(Ko(t)){var e=t.map,i=e.getSize(),r=t.pixel,n=r[0]-i[0]/2,o=i[1]/2-r[1],s=Math.atan2(o,n),a=Math.sqrt(n*n+o*o),h=e.getView();if(h.getConstraints().rotation!==Gn&&void 0!==this.lastAngle_){var l=s-this.lastAngle_;Oo(h,h.getRotation()-l)}if(this.lastAngle_=s,void 0!==this.lastMagnitude_)Mo(h,this.lastMagnitude_*(h.getResolution()/a));void 0!==this.lastMagnitude_&&(this.lastScaleDelta_=this.lastMagnitude_/a),this.lastMagnitude_=a}},e.prototype.handleUpEvent=function(t){if(!Ko(t))return!0;var e=t.map.getView();e.setHint(jn,-1);var i=this.lastScaleDelta_-1;return Lo(e,e.getRotation()),Po(e,e.getResolution(),void 0,this.duration_,i),this.lastScaleDelta_=0,!1},e.prototype.handleDownEvent=function(t){return!!Ko(t)&&(!!this.condition_(t)&&(t.map.getView().setHint(jn,1),this.lastAngle_=void 0,this.lastMagnitude_=void 0,!0))},e}(qo),Lc=function(t){function e(e,i,r){if(t.call(this),void 0!==r&&void 0===i)this.setFlatCoordinates(r,e);else{var n=i||0;this.setCenterAndRadius(e,n,r)}}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.clone=function(){return new e(this.flatCoordinates.slice(),void 0,this.layout)},e.prototype.closestPointXY=function(t,e,i,r){var n=this.flatCoordinates,o=t-n[0],s=e-n[1],a=o*o+s*s;if(a=e[0]||(t[1]<=e[1]&&t[3]>=e[1]||mt(t,this.intersectsCoordinate,this))}return!1},e.prototype.setCenter=function(t){var e=this.stride,i=this.flatCoordinates[e]-this.flatCoordinates[0],r=t.slice();r[e]=r[0]+i;for(var n=1;n=this.dragVertexDelay_?(this.downPx_=e.pixel,this.shouldHandle_=!this.freehand_,i=!0):this.lastDragTime_=void 0,this.shouldHandle_&&void 0!==this.downTimeout_&&(clearTimeout(this.downTimeout_),this.downTimeout_=void 0));return this.freehand_&&e.type===Ar.POINTERDRAG&&null!==this.sketchFeature_?(this.addToDrawing_(e),r=!1):this.freehand_&&e.type===Ar.POINTERDOWN?r=!1:i?(r=e.type===Ar.POINTERMOVE)&&this.freehand_?r=this.handlePointerMove_(e):(e.pointerEvent.pointerType==Ur||e.type===Ar.POINTERDRAG&&void 0===this.downTimeout_)&&this.handlePointerMove_(e):e.type===Ar.DBLCLICK&&(r=!1),t.prototype.handleEvent.call(this,e)&&r},e.prototype.handleDownEvent=function(t){return this.shouldHandle_=!this.freehand_,this.freehand_?(this.downPx_=t.pixel,this.finishCoordinate_||this.startDrawing_(t),!0):!!this.condition_(t)&&(this.lastDragTime_=Date.now(),this.downTimeout_=setTimeout(function(){this.handlePointerMove_(new Nr(Ar.POINTERMOVE,t.map,t.pointerEvent,!1,t.frameState))}.bind(this),this.dragVertexDelay_),this.downPx_=t.pixel,!0)},e.prototype.handleUpEvent=function(t){var e=!0;this.downTimeout_&&(clearTimeout(this.downTimeout_),this.downTimeout_=void 0),this.handlePointerMove_(t);var i=this.mode_===Ac.CIRCLE;return this.shouldHandle_?(this.finishCoordinate_?this.freehand_||i?this.finishDrawing():this.atFinish_(t)?this.finishCondition_(t)&&this.finishDrawing():this.addToDrawing_(t):(this.startDrawing_(t),this.mode_===Ac.POINT&&this.finishDrawing()),e=!1):this.freehand_&&(this.finishCoordinate_=null,this.abortDrawing_()),!e&&this.stopClick_&&t.stopPropagation(),e},e.prototype.handlePointerMove_=function(t){if(this.downPx_&&(!this.freehand_&&this.shouldHandle_||this.freehand_&&!this.shouldHandle_)){var e=this.downPx_,i=t.pixel,r=e[0]-i[0],n=e[1]-i[1],o=r*r+n*n;if(this.shouldHandle_=this.freehand_?o>this.squaredClickTolerance_:o<=this.squaredClickTolerance_,!this.shouldHandle_)return!0}return this.finishCoordinate_?this.modifyDrawing_(t):this.createOrUpdateSketchPoint_(t),!0},e.prototype.atFinish_=function(t){var e=!1;if(this.sketchFeature_){var i=!1,r=[this.finishCoordinate_];if(this.mode_===Ac.LINE_STRING)i=this.sketchCoords_.length>this.minPoints_;else if(this.mode_===Ac.POLYGON){var n=this.sketchCoords_;i=n[0].length>this.minPoints_,r=[n[0][0],n[0][n[0].length-2]]}if(i)for(var o=t.map,s=0,a=r.length;s=this.maxPoints_&&(this.freehand_?i.pop():e=!0),i.push(r.slice()),this.geometryFunction_(i,n)):this.mode_===Ac.POLYGON&&((i=this.sketchCoords_[0]).length>=this.maxPoints_&&(this.freehand_?i.pop():e=!0),i.push(r.slice()),e&&(this.finishCoordinate_=i[0]),this.geometryFunction_(this.sketchCoords_,n)),this.updateSketchFeatures_(),e&&this.finishDrawing()},e.prototype.removeLastPoint=function(){if(this.sketchFeature_){var t,e=this.sketchFeature_.getGeometry();this.mode_===Ac.LINE_STRING?((t=this.sketchCoords_).splice(-2,1),this.geometryFunction_(t,e),t.length>=2&&(this.finishCoordinate_=t[t.length-2].slice())):this.mode_===Ac.POLYGON&&((t=this.sketchCoords_[0]).splice(-2,1),this.sketchLine_.getGeometry().setCoordinates(t),this.geometryFunction_(this.sketchCoords_,e)),0===t.length&&(this.finishCoordinate_=null),this.updateSketchFeatures_()}},e.prototype.finishDrawing=function(){var t=this.abortDrawing_();if(t){var e=this.sketchCoords_,i=t.getGeometry();this.mode_===Ac.LINE_STRING?(e.pop(),this.geometryFunction_(e,i)):this.mode_===Ac.POLYGON&&(e[0].pop(),this.geometryFunction_(e,i),e=i.getCoordinates()),this.type_===Nt.MULTI_POINT?t.setGeometry(new bc([e])):this.type_===Nt.MULTI_LINE_STRING?t.setGeometry(new Pc([e])):this.type_===Nt.MULTI_POLYGON&&t.setGeometry(new Fc([e])),this.dispatchEvent(new Dc(Gc,t)),this.features_&&this.features_.push(t),this.source_&&this.source_.addFeature(t)}},e.prototype.abortDrawing_=function(){this.finishCoordinate_=null;var t=this.sketchFeature_;return t&&(this.sketchFeature_=null,this.sketchPoint_=null,this.sketchLine_=null,this.overlay_.getSource().clear(!0)),t},e.prototype.extend=function(t){var e=t.getGeometry();this.sketchFeature_=t,this.sketchCoords_=e.getCoordinates();var i=this.sketchCoords_[this.sketchCoords_.length-1];this.finishCoordinate_=i.slice(),this.sketchCoords_.push(i.slice()),this.updateSketchFeatures_(),this.dispatchEvent(new Dc(Nc,this.sketchFeature_))},e.prototype.updateSketchFeatures_=function(){var t=[];this.sketchFeature_&&t.push(this.sketchFeature_),this.sketchLine_&&t.push(this.sketchLine_),this.sketchPoint_&&t.push(this.sketchPoint_);var e=this.overlay_.getSource();e.clear(!0),e.addFeatures(t)},e.prototype.updateState_=function(){var t=this.getMap(),e=this.getActive();t&&e||this.abortDrawing_(),this.overlay_.setMap(e?t:null)},e}(qo),jc={EXTENTCHANGED:"extentchanged"},Uc=function(t){function e(e){t.call(this,jc.EXTENTCHANGED),this.extent=e}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e}(P);function Yc(t){return function(e){return tt([t,e])}}function Bc(t,e){return t[0]==e[0]?function(i){return tt([t,[i[0],e[1]]])}:t[1]==e[1]?function(i){return tt([t,[e[0],i[1]]])}:null}var Vc=function(t){function e(e){var i=e||{};t.call(this,i),this.extent_=null,this.pointerHandler_=null,this.pixelTolerance_=void 0!==i.pixelTolerance?i.pixelTolerance:10,this.snappedToVertex_=!1,this.extentFeature_=null,this.vertexFeature_=null,e||(e={}),this.extentOverlay_=new gc({source:new op({useSpatialIndex:!1,wrapX:!!e.wrapX}),style:e.boxStyle?e.boxStyle:function(){var t=Fu();return function(e,i){return t[Nt.POLYGON]}}(),updateWhileAnimating:!0,updateWhileInteracting:!0}),this.vertexOverlay_=new gc({source:new op({useSpatialIndex:!1,wrapX:!!e.wrapX}),style:e.pointerStyle?e.pointerStyle:function(){var t=Fu();return function(e,i){return t[Nt.POINT]}}(),updateWhileAnimating:!0,updateWhileInteracting:!0}),e.extent&&this.setExtent(e.extent)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.snapToVertex_=function(t,e){var i=e.getCoordinateFromPixel(t),r=this.getExtent();if(r){var n=function(t){return[[[t[0],t[1]],[t[0],t[3]]],[[t[0],t[3]],[t[2],t[3]]],[[t[2],t[3]],[t[2],t[1]]],[[t[2],t[1]],[t[0],t[1]]]]}(r);n.sort(function(t,e){return rr(i,t)-rr(i,e)});var o=n[0],s=Zi(i,o),a=e.getPixelFromCoordinate(s);if(ir(t,a)<=this.pixelTolerance_){var h=e.getPixelFromCoordinate(o[0]),l=e.getPixelFromCoordinate(o[1]),u=er(a,h),p=er(a,l),c=Math.sqrt(Math.min(u,p));return this.snappedToVertex_=c<=this.pixelTolerance_,this.snappedToVertex_&&(s=u>p?o[1]:o[0]),s}}return null},e.prototype.handlePointerMove_=function(t){var e=t.pixel,i=t.map,r=this.snapToVertex_(e,i);r||(r=i.getCoordinateFromPixel(e)),this.createOrUpdatePointerFeature_(r)},e.prototype.createOrUpdateExtentFeature_=function(t){var e=this.extentFeature_;return e?t?e.setGeometry(Oi(t)):e.setGeometry(void 0):(e=new B(t?Oi(t):{}),this.extentFeature_=e,this.extentOverlay_.getSource().addFeature(e)),e},e.prototype.createOrUpdatePointerFeature_=function(t){var e=this.vertexFeature_;e?e.getGeometry().setCoordinates(t):(e=new B(new ci(t)),this.vertexFeature_=e,this.vertexOverlay_.getSource().addFeature(e));return e},e.prototype.handleEvent=function(e){return!e.pointerEvent||(e.type!=Ar.POINTERMOVE||this.handlingDownUpSequence||this.handlePointerMove_(e),t.prototype.handleEvent.call(this,e),!1)},e.prototype.handleDownEvent=function(t){var e=t.pixel,i=t.map,r=this.getExtent(),n=this.snapToVertex_(e,i),o=function(t){var e=null,i=null;return t[0]==r[0]?e=r[2]:t[0]==r[2]&&(e=r[0]),t[1]==r[1]?i=r[3]:t[1]==r[3]&&(i=r[1]),null!==e&&null!==i?[e,i]:null};if(n&&r){var s=n[0]==r[0]||n[0]==r[2]?n[0]:null,a=n[1]==r[1]||n[1]==r[3]?n[1]:null;null!==s&&null!==a?this.pointerHandler_=Yc(o(n)):null!==s?this.pointerHandler_=Bc(o([s,r[1]]),o([s,r[3]])):null!==a&&(this.pointerHandler_=Bc(o([r[0],a]),o([r[2],a])))}else n=i.getCoordinateFromPixel(e),this.setExtent([n[0],n[1],n[0],n[1]]),this.pointerHandler_=Yc(n);return!0},e.prototype.handleDragEvent=function(t){if(this.pointerHandler_){var e=t.coordinate;this.setExtent(this.pointerHandler_(e)),this.createOrUpdatePointerFeature_(e)}return!0},e.prototype.handleUpEvent=function(t){this.pointerHandler_=null;var e=this.getExtent();return e&&0!==xt(e)||this.setExtent(null),!1},e.prototype.setMap=function(e){this.extentOverlay_.setMap(e),this.vertexOverlay_.setMap(e),t.prototype.setMap.call(this,e)},e.prototype.getExtent=function(){return this.extent_},e.prototype.setExtent=function(t){this.extent_=t||null,this.createOrUpdateExtentFeature_(t),this.dispatchEvent(new Uc(this.extent_))},e}(qo),Xc=1,zc="modifystart",Wc="modifyend",Kc=function(t){function e(e,i,r){t.call(this,e),this.features=i,this.mapBrowserEvent=r}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e}(P);function Hc(t,e){return t.index-e.index}function Zc(t,e){var i=e.geometry;if(i.getType()===Nt.CIRCLE){var r=i;if(e.index===Xc){var n=er(r.getCenter(),t),o=Math.sqrt(n)-r.getRadius();return o*o}}return rr(t,e.segment)}function qc(t,e){var i=e.geometry;return i.getType()===Nt.CIRCLE&&e.index===Xc?i.getClosestPoint(t):Zi(t,e.segment)}var Jc=function(t){function e(e){var i;if(t.call(this,e),this.condition_=e.condition?e.condition:Ho,this.defaultDeleteCondition_=function(t){return Go(t)&&Vo(t)},this.deleteCondition_=e.deleteCondition?e.deleteCondition:this.defaultDeleteCondition_,this.insertVertexCondition_=e.insertVertexCondition?e.insertVertexCondition:jo,this.vertexFeature_=null,this.vertexSegments_=null,this.lastPixel_=[0,0],this.ignoreNextSingleClick_=!1,this.modified_=!1,this.rBush_=new tl,this.pixelTolerance_=void 0!==e.pixelTolerance?e.pixelTolerance:10,this.snappedToVertex_=!1,this.changingFeature_=!1,this.dragSegments_=[],this.overlay_=new gc({source:new op({useSpatialIndex:!1,wrapX:!!e.wrapX}),style:e.style?e.style:function(){var t=Fu();return function(e,i){return t[Nt.POINT]}}(),updateWhileAnimating:!0,updateWhileInteracting:!0}),this.SEGMENT_WRITERS_={Point:this.writePointGeometry_,LineString:this.writeLineStringGeometry_,LinearRing:this.writeLineStringGeometry_,Polygon:this.writePolygonGeometry_,MultiPoint:this.writeMultiPointGeometry_,MultiLineString:this.writeMultiLineStringGeometry_,MultiPolygon:this.writeMultiPolygonGeometry_,Circle:this.writeCircleGeometry_,GeometryCollection:this.writeGeometryCollectionGeometry_},this.source_=null,e.source?(this.source_=e.source,i=new U(this.source_.getFeatures()),v(this.source_,rp.ADDFEATURE,this.handleSourceAdd_,this),v(this.source_,rp.REMOVEFEATURE,this.handleSourceRemove_,this)):i=e.features,!i)throw new Error("The modify interaction requires features or a source");this.features_=i,this.features_.forEach(this.addFeature_.bind(this)),v(this.features_,h.ADD,this.handleFeatureAdd_,this),v(this.features_,h.REMOVE,this.handleFeatureRemove_,this),this.lastPointerEvent_=null}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.addFeature_=function(t){var e=t.getGeometry();e&&e.getType()in this.SEGMENT_WRITERS_&&this.SEGMENT_WRITERS_[e.getType()].call(this,t,e);var i=this.getMap();i&&i.isRendered()&&this.getActive()&&this.handlePointerAtPixel_(this.lastPixel_,i),v(t,M.CHANGE,this.handleFeatureChange_,this)},e.prototype.willModifyFeatures_=function(t){this.modified_||(this.modified_=!0,this.dispatchEvent(new Kc(zc,this.features_,t)))},e.prototype.removeFeature_=function(t){this.removeFeatureSegmentData_(t),this.vertexFeature_&&0===this.features_.getLength()&&(this.overlay_.getSource().removeFeature(this.vertexFeature_),this.vertexFeature_=null),x(t,M.CHANGE,this.handleFeatureChange_,this)},e.prototype.removeFeatureSegmentData_=function(t){var e=this.rBush_,i=[];e.forEach(function(e){t===e.feature&&i.push(e)});for(var r=i.length-1;r>=0;--r)e.remove(i[r])},e.prototype.setActive=function(e){this.vertexFeature_&&!e&&(this.overlay_.getSource().removeFeature(this.vertexFeature_),this.vertexFeature_=null),t.prototype.setActive.call(this,e)},e.prototype.setMap=function(e){this.overlay_.setMap(e),t.prototype.setMap.call(this,e)},e.prototype.getOverlay=function(){return this.overlay_},e.prototype.handleSourceAdd_=function(t){t.feature&&this.features_.push(t.feature)},e.prototype.handleSourceRemove_=function(t){t.feature&&this.features_.remove(t.feature)},e.prototype.handleFeatureAdd_=function(t){this.addFeature_(t.element)},e.prototype.handleFeatureChange_=function(t){if(!this.changingFeature_){var e=t.target;this.removeFeature_(e),this.addFeature_(e)}},e.prototype.handleFeatureRemove_=function(t){var e=t.element;this.removeFeature_(e)},e.prototype.writePointGeometry_=function(t,e){var i=e.getCoordinates(),r={feature:t,geometry:e,segment:[i,i]};this.rBush_.insert(e.getExtent(),r)},e.prototype.writeMultiPointGeometry_=function(t,e){for(var i=e.getCoordinates(),r=0,n=i.length;r=0;--_)this.insertVertex_.apply(this,r[_])}return!!this.vertexFeature_},e.prototype.handleUpEvent=function(t){for(var e=this.dragSegments_.length-1;e>=0;--e){var i=this.dragSegments_[e][0],r=i.geometry;if(r.getType()===Nt.CIRCLE){var n=r.getCenter(),o=i.featureSegments[0],s=i.featureSegments[1];o.segment[0]=o.segment[1]=n,s.segment[0]=s.segment[1]=n,this.rBush_.update(pt(n),o),this.rBush_.update(r.getExtent(),s)}else this.rBush_.update(tt(i.segment),i)}return this.modified_&&(this.dispatchEvent(new Kc(Wc,this.features_,t)),this.modified_=!1),!1},e.prototype.handlePointerMove_=function(t){this.lastPixel_=t.pixel,this.handlePointerAtPixel_(t.pixel,t.map)},e.prototype.handlePointerAtPixel_=function(t,e){var i=e.getCoordinateFromPixel(t),r=et(pt(i),e.getView().getResolution()*this.pixelTolerance_),n=this.rBush_.getInExtent(r);if(n.length>0){n.sort(function(t,e){return Zc(i,t)-Zc(i,e)});var s=n[0],a=s.segment,h=qc(i,s),l=e.getPixelFromCoordinate(h),u=ir(t,l);if(u<=this.pixelTolerance_){var p={};if(s.geometry.getType()===Nt.CIRCLE&&s.index===Xc)this.snappedToVertex_=!0,this.createOrUpdateVertexFeature_(h);else{var c=e.getPixelFromCoordinate(a[0]),d=e.getPixelFromCoordinate(a[1]),f=er(l,c),_=er(l,d);u=Math.sqrt(Math.min(f,_)),this.snappedToVertex_=u<=this.pixelTolerance_,this.snappedToVertex_&&(h=f>_?a[1]:a[0]),this.createOrUpdateVertexFeature_(h);for(var g=1,y=n.length;g=0;--n)p=o((u=(i=c[n])[0]).feature),u.depth&&(p+="-"+u.depth.join("-")),p in d||(d[p]={}),0===i[1]?(d[p].right=u,d[p].index=u.index):1==i[1]&&(d[p].left=u,d[p].index=u.index+1);for(p in d){switch(l=d[p].right,a=d[p].left,h=(s=d[p].index)-1,u=void 0!==a?a:l,h<0&&(h=0),t=e=(r=u.geometry).getCoordinates(),f=!1,r.getType()){case Nt.MULTI_LINE_STRING:e[u.depth[0]].length>2&&(e[u.depth[0]].splice(s,1),f=!0);break;case Nt.LINE_STRING:e.length>2&&(e.splice(s,1),f=!0);break;case Nt.MULTI_POLYGON:t=t[u.depth[1]];case Nt.POLYGON:(t=t[u.depth[0]]).length>4&&(s==t.length-1&&(s=0),t.splice(s,1),f=!0,0===s&&(t.pop(),t.push(t[0]),h=t.length-1))}if(f){this.setGeometryCoordinates_(r,e);var _=[];if(void 0!==a&&(this.rBush_.remove(a),_.push(a.segment[0])),void 0!==l&&(this.rBush_.remove(l),_.push(l.segment[1])),void 0!==a&&void 0!==l){var g={depth:u.depth,feature:u.feature,geometry:u.geometry,index:h,segment:_};this.rBush_.insert(tt(g.segment),g)}this.updateSegmentIndices_(r,s,u.depth,-1),this.vertexFeature_&&(this.overlay_.getSource().removeFeature(this.vertexFeature_),this.vertexFeature_=null),c.length=0}}return f},e.prototype.setGeometryCoordinates_=function(t,e){this.changingFeature_=!0,t.setCoordinates(e),this.changingFeature_=!1},e.prototype.updateSegmentIndices_=function(t,e,i,r){this.rBush_.forEachInExtent(t.getExtent(),function(n){n.geometry===t&&(void 0===i||void 0===n.depth||Z(n.depth,i))&&n.index>e&&(n.index+=r)})},e}(qo),Qc={SELECT:"select"},$c=function(t){function e(e,i,r,n){t.call(this,e),this.selected=i,this.deselected=r,this.mapBrowserEvent=n}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e}(P);function td(t){if(!this.condition_(t))return!0;var e=this.addCondition_(t),i=this.removeCondition_(t),r=this.toggleCondition_(t),n=!e&&!i&&!r,o=t.map,s=this.getFeatures(),a=[],h=[];if(n){p(this.featureLayerAssociation_),o.forEachFeatureAtPixel(t.pixel,function(t,e){if(this.filter_(t,e))return h.push(t),this.addFeatureLayerAssociation_(t,e),!this.multi_}.bind(this),{layerFilter:this.layerFilter_,hitTolerance:this.hitTolerance_});for(var l=s.getLength()-1;l>=0;--l){var u=s.item(l),c=h.indexOf(u);c>-1?h.splice(c,1):(s.remove(u),a.push(u))}0!==h.length&&s.extend(h)}else{o.forEachFeatureAtPixel(t.pixel,function(t,n){if(this.filter_(t,n))return!e&&!r||X(s.getArray(),t)?(i||r)&&X(s.getArray(),t)&&(a.push(t),this.removeFeatureLayerAssociation_(t)):(h.push(t),this.addFeatureLayerAssociation_(t,n)),!this.multi_}.bind(this),{layerFilter:this.layerFilter_,hitTolerance:this.hitTolerance_});for(var d=a.length-1;d>=0;--d)s.remove(a[d]);s.extend(h)}return(h.length>0||a.length>0)&&this.dispatchEvent(new $c(Qc.SELECT,h,a,t)),Bo(t)}var ed=function(t){function e(e){t.call(this,{handleEvent:td});var i=e||{};this.condition_=i.condition?i.condition:Vo,this.addCondition_=i.addCondition?i.addCondition:Yo,this.removeCondition_=i.removeCondition?i.removeCondition:Yo,this.toggleCondition_=i.toggleCondition?i.toggleCondition:zo,this.multi_=!!i.multi&&i.multi,this.filter_=i.filter?i.filter:R,this.hitTolerance_=i.hitTolerance?i.hitTolerance:0;var r,n=new gc({source:new op({useSpatialIndex:!1,features:i.features,wrapX:i.wrapX}),style:i.style?i.style:function(){var t=Fu();return K(t[Nt.POLYGON],t[Nt.LINE_STRING]),K(t[Nt.GEOMETRY_COLLECTION],t[Nt.LINE_STRING]),function(e,i){return e.getGeometry()?t[e.getGeometry().getType()]:null}}(),updateWhileAnimating:!0,updateWhileInteracting:!0});if(this.featureOverlay_=n,i.layers)if("function"==typeof i.layers)r=i.layers;else{var o=i.layers;r=function(t){return X(o,t)}}else r=R;this.layerFilter_=r,this.featureLayerAssociation_={};var s=this.getFeatures();v(s,h.ADD,this.addFeature_,this),v(s,h.REMOVE,this.removeFeature_,this)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.addFeatureLayerAssociation_=function(t,e){this.featureLayerAssociation_[o(t)]=e},e.prototype.getFeatures=function(){return this.featureOverlay_.getSource().getFeaturesCollection()},e.prototype.getHitTolerance=function(){return this.hitTolerance_},e.prototype.getLayer=function(t){return this.featureLayerAssociation_[o(t)]},e.prototype.getOverlay=function(){return this.featureOverlay_},e.prototype.setHitTolerance=function(t){this.hitTolerance_=t},e.prototype.setMap=function(e){var i=this.getMap(),r=this.getFeatures();i&&r.forEach(i.unskipFeature.bind(i)),t.prototype.setMap.call(this,e),this.featureOverlay_.setMap(e),e&&r.forEach(e.skipFeature.bind(e))},e.prototype.addFeature_=function(t){var e=this.getMap();e&&e.skipFeature(t.element)},e.prototype.removeFeature_=function(t){var e=this.getMap();e&&e.unskipFeature(t.element)},e.prototype.removeFeatureLayerAssociation_=function(t){delete this.featureLayerAssociation_[o(t)]},e}(Fo);function id(t){return t.feature?t.feature:t.element?t.element:void 0}var rd=function(t){function e(e){var i=e||{},r=i;r.handleDownEvent||(r.handleDownEvent=R),r.stopDown||(r.stopDown=w),t.call(this,r),this.source_=i.source?i.source:null,this.vertex_=void 0===i.vertex||i.vertex,this.edge_=void 0===i.edge||i.edge,this.features_=i.features?i.features:null,this.featuresListenerKeys_=[],this.featureChangeListenerKeys_={},this.indexedFeaturesExtents_={},this.pendingFeatures_={},this.pixelCoordinate_=null,this.pixelTolerance_=void 0!==i.pixelTolerance?i.pixelTolerance:10,this.sortByDistance_=function(t,e){var i=rr(this.pixelCoordinate_,t.segment),r=rr(this.pixelCoordinate_,e.segment);return i-r}.bind(this),this.rBush_=new tl,this.SEGMENT_WRITERS_={Point:this.writePointGeometry_,LineString:this.writeLineStringGeometry_,LinearRing:this.writeLineStringGeometry_,Polygon:this.writePolygonGeometry_,MultiPoint:this.writeMultiPointGeometry_,MultiLineString:this.writeMultiLineStringGeometry_,MultiPolygon:this.writeMultiPolygonGeometry_,GeometryCollection:this.writeGeometryCollectionGeometry_,Circle:this.writeCircleGeometry_}}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.addFeature=function(t,e){var i=void 0===e||e,r=o(t),n=t.getGeometry();if(n){var s=this.SEGMENT_WRITERS_[n.getType()];s&&(this.indexedFeaturesExtents_[r]=n.getExtent([1/0,1/0,-1/0,-1/0]),s.call(this,t,n))}i&&(this.featureChangeListenerKeys_[r]=v(t,M.CHANGE,this.handleFeatureChange_,this))},e.prototype.forEachFeatureAdd_=function(t){this.addFeature(t)},e.prototype.forEachFeatureRemove_=function(t){this.removeFeature(t)},e.prototype.getFeatures_=function(){var t;return this.features_?t=this.features_:this.source_&&(t=this.source_.getFeatures()),t},e.prototype.handleEvent=function(e){var i=this.snapTo(e.pixel,e.coordinate,e.map);return i.snapped&&(e.coordinate=i.vertex.slice(0,2),e.pixel=i.vertexPixel),t.prototype.handleEvent.call(this,e)},e.prototype.handleFeatureAdd_=function(t){var e=id(t);this.addFeature(e)},e.prototype.handleFeatureRemove_=function(t){var e=id(t);this.removeFeature(e)},e.prototype.handleFeatureChange_=function(t){var e=t.target;if(this.handlingDownUpSequence){var i=o(e);i in this.pendingFeatures_||(this.pendingFeatures_[i]=e)}else this.updateFeature_(e)},e.prototype.handleUpEvent=function(t){var e=c(this.pendingFeatures_);return e.length&&(e.forEach(this.updateFeature_.bind(this)),this.pendingFeatures_={}),!1},e.prototype.removeFeature=function(t,e){var i=void 0===e||e,r=o(t),n=this.indexedFeaturesExtents_[r];if(n){var s=this.rBush_,a=[];s.forEachInExtent(n,function(e){t===e.feature&&a.push(e)});for(var h=a.length-1;h>=0;--h)s.remove(a[h])}i&&(E(this.featureChangeListenerKeys_[r]),delete this.featureChangeListenerKeys_[r])},e.prototype.setMap=function(e){var i=this.getMap(),r=this.featuresListenerKeys_,n=this.getFeatures_();i&&(r.forEach(E),r.length=0,n.forEach(this.forEachFeatureRemove_.bind(this))),t.prototype.setMap.call(this,e),e&&(this.features_?r.push(v(this.features_,h.ADD,this.handleFeatureAdd_,this),v(this.features_,h.REMOVE,this.handleFeatureRemove_,this)):this.source_&&r.push(v(this.source_,rp.ADDFEATURE,this.handleFeatureAdd_,this),v(this.source_,rp.REMOVEFEATURE,this.handleFeatureRemove_,this)),n.forEach(this.forEachFeatureAdd_.bind(this)))},e.prototype.snapTo=function(t,e,i){var r=tt([i.getCoordinateFromPixel([t[0]-this.pixelTolerance_,t[1]+this.pixelTolerance_]),i.getCoordinateFromPixel([t[0]+this.pixelTolerance_,t[1]-this.pixelTolerance_])]),n=this.rBush_.getInExtent(r);this.vertex_&&!this.edge_&&(n=n.filter(function(t){return t.feature.getGeometry().getType()!==Nt.CIRCLE}));var o,s,a,h,l=!1,u=null,p=null;if(n.length>0){this.pixelCoordinate_=e,n.sort(this.sortByDistance_);var c=n[0].segment,d=n[0].feature.getGeometry().getType()===Nt.CIRCLE;this.vertex_&&!this.edge_?(o=i.getPixelFromCoordinate(c[0]),s=i.getPixelFromCoordinate(c[1]),a=er(t,o),h=er(t,s),Math.sqrt(Math.min(a,h))<=this.pixelTolerance_&&(l=!0,u=a>h?c[1]:c[0],p=i.getPixelFromCoordinate(u))):this.edge_&&(u=d?function(t,e){var i=e.getRadius(),r=e.getCenter(),n=r[0],o=r[1],s=t[0]-n,a=t[1]-o;0===s&&0===a&&(s=1);var h=Math.sqrt(s*s+a*a);return[n+i*s/h,o+i*a/h]}(e,n[0].feature.getGeometry()):Zi(e,c),ir(t,p=i.getPixelFromCoordinate(u))<=this.pixelTolerance_&&(l=!0,this.vertex_&&!d&&(o=i.getPixelFromCoordinate(c[0]),s=i.getPixelFromCoordinate(c[1]),a=er(p,o),h=er(p,s),Math.sqrt(Math.min(a,h))<=this.pixelTolerance_&&(u=a>h?c[1]:c[0],p=i.getPixelFromCoordinate(u))))),l&&(p=[Math.round(p[0]),Math.round(p[1])])}return{snapped:l,vertex:u,vertexPixel:p}},e.prototype.updateFeature_=function(t){this.removeFeature(t,!1),this.addFeature(t,!1)},e.prototype.writeCircleGeometry_=function(t,e){for(var i=Pi(e).getCoordinates()[0],r=0,n=i.length-1;r=0;i--){var u=o[i][0],p=ot(new pi(u).getExtent(),new pi(h).getExtent());if(p){o[i].push(h),l=!0;break}}l||o.push([h.reverse()])}return o}(r.rings,n);1===o.length?(i=Nt.POLYGON,t.rings=o[0]):(i=Nt.MULTI_POLYGON,t.rings=o)}return dd((0,gd[i])(t),!1,e)}function md(t){var e=At.XY;return!0===t.hasZ&&!0===t.hasM?e=At.XYZM:!0===t.hasZ?e=At.XYZ:!0===t.hasM&&(e=At.XYM),e}function xd(t){var e=t.getLayout();return{hasZ:e===At.XYZ||e===At.XYZM,hasM:e===At.XYM||e===At.XYZM}}function Ed(t,e){return(0,yd[t.getType()])(dd(t,!0,e),e)}yd[Nt.POINT]=function(t,e){var i,r=t.getCoordinates(),n=t.getLayout();n===At.XYZ?i={x:r[0],y:r[1],z:r[2]}:n===At.XYM?i={x:r[0],y:r[1],m:r[2]}:n===At.XYZM?i={x:r[0],y:r[1],z:r[2],m:r[3]}:n===At.XY?i={x:r[0],y:r[1]}:Y(!1,34);return i},yd[Nt.LINE_STRING]=function(t,e){var i=t,r=xd(i);return{hasZ:r.hasZ,hasM:r.hasM,paths:[i.getCoordinates()]}},yd[Nt.POLYGON]=function(t,e){var i=t,r=xd(i);return{hasZ:r.hasZ,hasM:r.hasM,rings:i.getCoordinates(!1)}},yd[Nt.MULTI_POINT]=function(t,e){var i=t,r=xd(i);return{hasZ:r.hasZ,hasM:r.hasM,points:i.getCoordinates()}},yd[Nt.MULTI_LINE_STRING]=function(t,e){var i=t,r=xd(i);return{hasZ:r.hasZ,hasM:r.hasM,paths:i.getCoordinates()}},yd[Nt.MULTI_POLYGON]=function(t,e){for(var i=xd(t),r=t.getCoordinates(!1),n=[],o=0;o=0;s--)n.push(r[o][s]);return{hasZ:i.hasZ,hasM:i.hasM,rings:n}};var Sd=function(t){function e(e){var i=e||{};t.call(this),this.geometryName_=i.geometryName}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.readFeatureFromObject=function(t,e){var i=t,r=vd(i.geometry,e),n=new B;return this.geometryName_&&n.setGeometryName(this.geometryName_),n.setGeometry(r),e&&e.idField&&i.attributes[e.idField]&&n.setId(i.attributes[e.idField]),i.attributes&&n.setProperties(i.attributes),n},e.prototype.readFeaturesFromObject=function(t,e){var i=e||{};if(t.features){var r=[],n=t.features;i.idField=t.objectIdFieldName;for(var o=0,s=n.length;o0?i[0]:null},e.prototype.readFeatureFromNode=function(t,e){return null},e.prototype.readFeatures=function(t,e){if(t){if("string"==typeof t){var i=ru(t);return this.readFeaturesFromDocument(i,e)}return iu(t)?this.readFeaturesFromDocument(t,e):this.readFeaturesFromNode(t,e)}return[]},e.prototype.readFeaturesFromDocument=function(t,e){for(var i=[],r=t.firstChild;r;r=r.nextSibling)r.nodeType==Node.ELEMENT_NODE&&K(i,this.readFeaturesFromNode(r,e));return i},e.prototype.readFeaturesFromNode=function(t,e){return r()},e.prototype.readGeometry=function(t,e){if(t){if("string"==typeof t){var i=ru(t);return this.readGeometryFromDocument(i,e)}return iu(t)?this.readGeometryFromDocument(t,e):this.readGeometryFromNode(t,e)}return null},e.prototype.readGeometryFromDocument=function(t,e){return null},e.prototype.readGeometryFromNode=function(t,e){return null},e.prototype.readProjection=function(t){if(t){if("string"==typeof t){var e=ru(t);return this.readProjectionFromDocument(e)}return iu(t)?this.readProjectionFromDocument(t):this.readProjectionFromNode(t)}return null},e.prototype.readProjectionFromDocument=function(t){return this.dataProjection},e.prototype.readProjectionFromNode=function(t){return this.dataProjection},e.prototype.writeFeature=function(t,e){var i=this.writeFeatureNode(t,e);return this.xmlSerializer_.serializeToString(i)},e.prototype.writeFeatureNode=function(t,e){return null},e.prototype.writeFeatures=function(t,e){var i=this.writeFeaturesNode(t,e);return this.xmlSerializer_.serializeToString(i)},e.prototype.writeFeaturesNode=function(t,e){return null},e.prototype.writeGeometry=function(t,e){var i=this.writeGeometryNode(t,e);return this.xmlSerializer_.serializeToString(i)},e.prototype.writeGeometryNode=function(t,e){return null},e}(cd),Cd="http://www.opengis.net/gml",Rd=/^[\s\xa0]*$/,wd=function(t){function e(e){t.call(this);var i=e||{};this.featureType=i.featureType,this.featureNS=i.featureNS,this.srsName=i.srsName,this.schemaLocation="",this.FEATURE_COLLECTION_PARSERS={},this.FEATURE_COLLECTION_PARSERS[this.namespace]={featureMember:ou(this.readFeaturesInternal),featureMembers:su(this.readFeaturesInternal)}}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.readFeaturesInternal=function(t,e){var i=t.localName,r=null;if("FeatureCollection"==i)r=gu([],this.FEATURE_COLLECTION_PARSERS,t,e,this);else if("featureMembers"==i||"featureMember"==i){var n=e[0],o=n.featureType,s=n.featureNS;if(!o&&t.childNodes){o=[],s={};for(var a=0,h=t.childNodes.length;a0){n[a]={_content_:n[a]};for(var l=0;l1?o.Document=t:1==t.length&&(o.Placemark=t[0]);var s=o_[i.namespaceURI],a=du(o,s);return vu(n,s_,cu,a,[e],s,this),i},e}(Td);function g_(t,e){var i=null,r=[0,0],n="start";if(t.getImage()){var o=t.getImage().getImageSize();if(null===o&&(o=Bf),2==o.length){var s=t.getImage().getScale();r[0]=s*o[0]/2,r[1]=-s*o[1]/2,n="left"}}if(null!==t.getText()){var a=t.getText();(i=a.clone()).setFont(a.getFont()||c_.getFont()),i.setScale(a.getScale()||c_.getScale()),i.setFill(a.getFill()||c_.getFill()),i.setStroke(a.getStroke()||u_)}else i=c_.clone();return i.setText(e),i.setOffsetX(r[0]),i.setOffsetY(r[1]),i.setTextAlign(n),new Nu({text:i})}function y_(t){var e=eu(t,!1),i=/^\s*#?\s*([0-9A-Fa-f]{8})\s*$/.exec(e);if(i){var r=i[1];return[parseInt(r.substr(6,2),16),parseInt(r.substr(4,2),16),parseInt(r.substr(2,2),16),parseInt(r.substr(0,2),16)/255]}}function v_(t){for(var e,i=eu(t,!1),r=[],n=/^\s*([+\-]?\d*\.?\d+(?:e[+\-]?\d+)?)\s*,\s*([+\-]?\d*\.?\d+(?:e[+\-]?\d+)?)(?:\s*,\s*([+\-]?\d*\.?\d+(?:e[+\-]?\d+)?))?\s*/i;e=n.exec(i);){var o=parseFloat(e[1]),s=parseFloat(e[2]),a=e[3]?parseFloat(e[3]):0;r.push(o,s,a),i=i.substr(e[0].length)}if(""===i)return r}function m_(t){var e=eu(t,!1).trim(),i=t.baseURI;return i&&"about:blank"!=i||(i=window.location.href),i?new URL(e,i).href:e}function x_(t){return bd(t)}var E_=fu($f,{Pair:function(t,e){var i=gu({},q_,t,e);if(!i)return;var r=i.key;if(r&&"normal"==r){var n=i.styleUrl;n&&(e[e.length-1]=n);var o=i.Style;o&&(e[e.length-1]=o)}}});function S_(t,e){return gu(void 0,E_,t,e)}var T_=fu($f,{Icon:hu(function(t,e){var i=gu({},M_,t,e);return i||null}),heading:hu(bd),hotSpot:hu(function(t){var e,i=t.getAttribute("xunits"),r=t.getAttribute("yunits");return e="insetPixels"!==i?"insetPixels"!==r?Lu.BOTTOM_LEFT:Lu.TOP_LEFT:"insetPixels"!==r?Lu.BOTTOM_RIGHT:Lu.TOP_RIGHT,{x:parseFloat(t.getAttribute("x")),xunits:t_[i],y:parseFloat(t.getAttribute("y")),yunits:t_[r],origin:e}}),scale:hu(x_)});var C_=fu($f,{color:hu(y_),scale:hu(x_)});var R_=fu($f,{color:hu(y_),width:hu(bd)});var w_=fu($f,{color:hu(y_),fill:hu(Ld),outline:hu(Ld)});var I_=fu($f,{coordinates:su(v_)});function L_(t,e){return gu(null,I_,t,e)}var O_=fu(Qf,{Track:ou(b_)});var P_=fu($f,{when:function(t,e){var i=e[e.length-1].whens,r=eu(t,!1),n=Date.parse(r);i.push(isNaN(n)?0:n)}},fu(Qf,{coord:function(t,e){var i=e[e.length-1].flatCoordinates,r=eu(t,!1),n=/^\s*([+\-]?\d+(?:\.\d*)?(?:e[+\-]?\d*)?)\s+([+\-]?\d+(?:\.\d*)?(?:e[+\-]?\d*)?)\s+([+\-]?\d+(?:\.\d*)?(?:e[+\-]?\d*)?)\s*$/i.exec(r);if(n){var o=parseFloat(n[1]),s=parseFloat(n[2]),a=parseFloat(n[3]);i.push(o,s,a,0)}else i.push(0,0,0,0)}}));function b_(t,e){var i=gu({flatCoordinates:[],whens:[]},P_,t,e);if(i){for(var r=i.flatCoordinates,n=i.whens,o=0,s=Math.min(r.length,n.length);o0,u=h.href;u?r=u:l&&(r=Vf);var p,c=Lu.BOTTOM_LEFT,d=i.hotSpot;d?(n=[d.x,d.y],o=d.xunits,s=d.yunits,c=d.origin):r===Vf?(n=jf,o=Uf,s=Yf):/^http:\/\/maps\.(?:google|gstatic)\.com\//.test(r)&&(n=[.5,0],o=wu.FRACTION,s=wu.FRACTION);var f,_=h.x,g=h.y;void 0!==_&&void 0!==g&&(p=[_,g]);var y,v=h.w,m=h.h;void 0!==v&&void 0!==m&&(f=[v,m]);var x=i.heading;void 0!==x&&(y=Vt(x));var E=i.scale;if(l){r==Vf&&(f=Bf,void 0===E&&(E=Xf));var S=new Ou({anchor:n,anchorOrigin:c,anchorXUnits:o,anchorYUnits:s,crossOrigin:"anonymous",offset:p,offsetOrigin:Lu.BOTTOM_LEFT,rotation:y,scale:E,size:f,src:r});a.imageStyle=S}else a.imageStyle=h_}},LabelStyle:function(t,e){var i=gu({},C_,t,e);if(i){var r=e[e.length-1],n=new Rr({fill:new mr({color:"color"in i?i.color:kf}),scale:i.scale});r.textStyle=n}},LineStyle:function(t,e){var i=gu({},R_,t,e);if(i){var r=e[e.length-1],n=new Er({color:"color"in i?i.color:kf,width:"width"in i?i.width:1});r.strokeStyle=n}},PolyStyle:function(t,e){var i=gu({},w_,t,e);if(i){var r=e[e.length-1],n=new mr({color:"color"in i?i.color:kf});r.fillStyle=n;var o=i.fill;void 0!==o&&(r.fill=o);var s=i.outline;void 0!==s&&(r.outline=s)}}});function X_(t,e){var i=gu({},V_,t,e);if(!i)return null;var r,n="fillStyle"in i?i.fillStyle:a_,o=i.fill;void 0===o||o||(n=null),"imageStyle"in i?i.imageStyle!=h_&&(r=i.imageStyle):r=l_;var s="textStyle"in i?i.textStyle:c_,a="strokeStyle"in i?i.strokeStyle:p_,h=i.outline;return void 0===h||h||(a=null),[new Nu({fill:n,image:r,stroke:a,text:s,zIndex:void 0})]}function z_(t,e){var i,r,n,o=e.length,s=new Array(e.length),a=new Array(e.length),h=new Array(e.length);i=r=n=!1;for(var l=0;l0){var a=du(n,s);vu(r,wg,Lg,[{names:s,values:a}],i)}var h=e.getStyleFunction();if(h){var l=h(e,0);if(l){var u=Array.isArray(l)?l[0]:l;this.writeStyles_&&(n.Style=u);var p=u.getText();p&&(n.name=p.getText())}}var c=i[i.length-1].node,d=Ig[c.namespaceURI],f=du(n,d);vu(r,wg,cu,f,i,d);var _=i[0],g=e.getGeometry();g&&(g=dd(g,!0,_)),vu(r,wg,yg,[g],i)}var Pg=fu($f,["extrude","tessellate","altitudeMode","coordinates"]),bg=fu($f,{extrude:lu(Gd),tessellate:lu(Gd),altitudeMode:lu(jd),coordinates:lu(function(t,e,i){var r,n=i[i.length-1],o=n.layout,s=n.stride;o==At.XY||o==At.XYM?r=2:o==At.XYZ||o==At.XYZM?r=3:Y(!1,34);var a=e.length,h="";if(a>0){h+=e[0];for(var l=1;l>3)?i.readString():2===t?i.readFloat():3===t?i.readDouble():4===t?i.readVarint64():5===t?i.readVarint():6===t?i.readSVarint():7===t?i.readBoolean():null;e.values.push(r)}}function qg(t,e,i){if(1==t)e.id=i.readVarint();else if(2==t)for(var r=i.readVarint()+i.pos;i.pos>3}s--,1===o||2===o?(a+=t.readSVarint(),h+=t.readSVarint(),1===o&&l>u&&(r.push(l),u=l),i.push(a,h),l+=2):7===o?l>u&&(i.push(i[u],i[u+1]),l+=2):Y(!1,59)}l>u&&(r.push(l),u=l)},e.prototype.createFeature_=function(t,e,i){var r,n=e.type;if(0===n)return null;var o=e.id,s=e.properties;s[this.layerName_]=e.layer.name;var a=[],h=[];this.readRawGeometry_(t,e,a,h);var l=function(t,e){var i;1===t?i=1===e?Nt.POINT:Nt.MULTI_POINT:2===t?i=1===e?Nt.LINE_STRING:Nt.MULTI_LINE_STRING:3===t&&(i=Nt.POLYGON);return i}(n,h.length);if(this.featureClass_===Kg)r=new this.featureClass_(l,a,h,s,o);else{var u;if(l==Nt.POLYGON){for(var p=[],c=0,d=0,f=0,_=h.length;f<_;++f){var g=h[f];Si(a,c,g,2)||(p.push(h.slice(d,f)),d=f),c=g}u=p.length>1?new Fc(a,At.XY,p):new Ii(a,At.XY,h)}else u=l===Nt.POINT?new ci(a,At.XY):l===Nt.LINE_STRING?new hr(a,At.XY):l===Nt.POLYGON?new Ii(a,At.XY,h):l===Nt.MULTI_POINT?new bc(a,At.XY):l===Nt.MULTI_LINE_STRING?new Pc(a,At.XY,h):null;r=new(0,this.featureClass_),this.geometryName_&&r.setGeometryName(this.geometryName_);var y=dd(u,!1,this.adaptOptions(i));r.setGeometry(y),r.setId(o),r.setProperties(s)}return r},e.prototype.getLastExtent=function(){return this.extent_},e.prototype.getType=function(){return Hl.ARRAY_BUFFER},e.prototype.readFeatures=function(t,e){var i=this.layers_,r=new Xg.a(t),n=r.readFields(Hg,{}),o=[];for(var s in n)if(!i||-1!=i.indexOf(s)){for(var a=n[s],h=0,l=a.length;h>1):n>>1}return e}(t),n=0,o=r.length;n=32;)e=63+(32|31&t),i+=String.fromCharCode(e),t>>=5;return e=t+63,i+=String.fromCharCode(e)}var cy=function(t){function e(e){t.call(this);var i=e||{};this.dataProjection=Ee("EPSG:4326"),this.factor_=i.factor?i.factor:1e5,this.geometryLayout_=i.geometryLayout?i.geometryLayout:At.XY}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.readFeatureFromText=function(t,e){var i=this.readGeometryFromText(t,e);return new B(i)},e.prototype.readFeaturesFromText=function(t,e){return[this.readFeatureFromText(t,e)]},e.prototype.readGeometryFromText=function(t,e){var i=ze(this.geometryLayout_),r=hy(t,i,this.factor_);sy(r,0,r.length,i,r);var n=ri(r,0,r.length,i);return dd(new hr(n,this.geometryLayout_),!1,this.adaptOptions(e))},e.prototype.writeFeatureText=function(t,e){var i=t.getGeometry();return i?this.writeGeometryText(i,e):(Y(!1,40),"")},e.prototype.writeFeaturesText=function(t,e){return this.writeFeatureText(t[0],e)},e.prototype.writeGeometryText=function(t,e){var i=(t=dd(t,!0,this.adaptOptions(e))).getFlatCoordinates(),r=t.getStride();return sy(i,0,i.length,r,i),ay(i,r,this.factor_)},e}(zf),dy={Point:function(t,e,i){var r=t.coordinates;e&&i&&vy(r,e,i);return new ci(r)},LineString:function(t,e){var i=fy(t.arcs,e);return new hr(i)},Polygon:function(t,e){for(var i=[],r=0,n=t.arcs.length;r0&&n.pop(),r=i>=0?e[i]:e[~i].slice().reverse(),n.push.apply(n,r);for(var a=0,h=n.length;a=2,57)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e}(Ey),Ty=function(t){function e(e){t.call(this,"And",Array.prototype.slice.call(arguments))}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e}(Sy),Cy=function(t){function e(e,i,r){t.call(this,"BBOX"),this.geometryName=e,this.extent=i,this.srsName=r}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e}(Ey),Ry=function(t){function e(e,i,r,n){t.call(this,e),this.geometryName=i||"the_geom",this.geometry=r,this.srsName=n}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e}(Ey),wy=function(t){function e(e,i,r){t.call(this,"Contains",e,i,r)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e}(Ry),Iy=function(t){function e(e,i){t.call(this,e),this.propertyName=i}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e}(Ey),Ly=function(t){function e(e,i,r){t.call(this,"During",e),this.begin=i,this.end=r}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e}(Iy),Oy=function(t){function e(e,i,r,n){t.call(this,e,i),this.expression=r,this.matchCase=n}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e}(Iy),Py=function(t){function e(e,i,r){t.call(this,"PropertyIsEqualTo",e,i,r)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e}(Oy),by=function(t){function e(e,i){t.call(this,"PropertyIsGreaterThan",e,i)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e}(Oy),My=function(t){function e(e,i){t.call(this,"PropertyIsGreaterThanOrEqualTo",e,i)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e}(Oy),Fy=function(t){function e(e,i,r){t.call(this,"Intersects",e,i,r)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e}(Ry),Ay=function(t){function e(e,i,r){t.call(this,"PropertyIsBetween",e),this.lowerBoundary=i,this.upperBoundary=r}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e}(Iy),Ny=function(t){function e(e,i,r,n,o,s){t.call(this,"PropertyIsLike",e),this.pattern=i,this.wildCard=void 0!==r?r:"*",this.singleChar=void 0!==n?n:".",this.escapeChar=void 0!==o?o:"!",this.matchCase=s}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e}(Iy),Gy=function(t){function e(e){t.call(this,"PropertyIsNull",e)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e}(Iy),Dy=function(t){function e(e,i){t.call(this,"PropertyIsLessThan",e,i)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e}(Oy),ky=function(t){function e(e,i){t.call(this,"PropertyIsLessThanOrEqualTo",e,i)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e}(Oy),jy=function(t){function e(e){t.call(this,"Not"),this.condition=e}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e}(Ey),Uy=function(t){function e(e,i,r){t.call(this,"PropertyIsNotEqualTo",e,i,r)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e}(Oy),Yy=function(t){function e(e){t.call(this,"Or",Array.prototype.slice.call(arguments))}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e}(Sy),By=function(t){function e(e,i,r){t.call(this,"Within",e,i,r)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e}(Ry);function Vy(t){var e=[null].concat(Array.prototype.slice.call(arguments));return new(Function.prototype.bind.apply(Ty,e))}function Xy(t,e,i){return new Cy(t,e,i)}var zy={"http://www.opengis.net/gml":{boundedBy:hu(Id.prototype.readGeometryElement,"bounds")}},Wy={"http://www.opengis.net/wfs":{totalInserted:hu(Fd),totalUpdated:hu(Fd),totalDeleted:hu(Fd)}},Ky={"http://www.opengis.net/wfs":{TransactionSummary:hu(function(t,e){return gu({},Wy,t,e)},"transactionSummary"),InsertResults:hu(function(t,e){return gu([],ov,t,e)},"insertIds")}},Hy={"http://www.opengis.net/wfs":{PropertyName:lu(jd)}},Zy={"http://www.opengis.net/wfs":{Insert:lu(function(t,e,i){var r=i[i.length-1],n=r.featureType,o=r.featureNS,s=r.gmlVersion,a=tu(o,n);t.appendChild(a),2===s?Zd.prototype.writeFeatureElement(a,e,i):Vd.prototype.writeFeatureElement(a,e,i)}),Update:lu(function(t,e,i){var r=i[i.length-1];Y(void 0!==e.getId(),27);var n=r.featureType,o=r.featurePrefix,s=r.featureNS,a=av(o,n),h=e.getGeometryName();t.setAttribute("typeName",a),t.setAttributeNS(Jy,"xmlns:"+o,s);var l=e.getId();if(void 0!==l){for(var u=e.getKeys(),p=[],c=0,d=u.length;c="a"&&t<="z"||t>="A"&&t<="Z"},Ov.prototype.isNumeric_=function(t,e){return t>="0"&&t<="9"||"."==t&&!(void 0!==e&&e)},Ov.prototype.isWhiteSpace_=function(t){return" "==t||"\t"==t||"\r"==t||"\n"==t},Ov.prototype.nextChar_=function(){return this.wkt.charAt(++this.index_)},Ov.prototype.nextToken=function(){var t,e=this.nextChar_(),i=this.index_,r=e;if("("==e)t=Sv;else if(","==e)t=Rv;else if(")"==e)t=Tv;else if(this.isNumeric_(e)||"-"==e)t=Cv,r=this.readNumber_();else if(this.isAlpha_(e))t=Ev,r=this.readText_();else{if(this.isWhiteSpace_(e))return this.nextToken();if(""!==e)throw new Error("Unexpected character: "+e);t=wv}return{position:i,value:r,type:t}},Ov.prototype.readNumber_=function(){var t,e=this.index_,i=!1,r=!1;do{"."==t?i=!0:"e"!=t&&"E"!=t||(r=!0),t=this.nextChar_()}while(this.isNumeric_(t,i)||!r&&("e"==t||"E"==t)||r&&("-"==t||"+"==t));return parseFloat(this.wkt.substring(e,this.index_--))},Ov.prototype.readText_=function(){var t,e=this.index_;do{t=this.nextChar_()}while(this.isAlpha_(t));return this.wkt.substring(e,this.index_--).toUpperCase()};var Pv=function(t){this.lexer_=t,this.token_,this.layout_=At.XY};function bv(t){var e=t.getCoordinates();return 0===e.length?"":e.join(" ")}function Mv(t){for(var e=t.getCoordinates(),i=[],r=0,n=e.length;r0&&(e+=" "+r)}return 0===i.length?e+" "+vv:e+"("+i+")"}var Gv=function(t){function e(e){t.call(this);var i=e||{};this.splitCollection_=void 0!==i.splitCollection&&i.splitCollection}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.parse_=function(t){var e=new Ov(t);return new Pv(e).parse()},e.prototype.readFeatureFromText=function(t,e){var i=this.readGeometryFromText(t,e);if(i){var r=new B;return r.setGeometry(i),r}return null},e.prototype.readFeaturesFromText=function(t,e){for(var i=[],r=this.readGeometryFromText(t,e),n=[],o=0,s=(i=this.splitCollection_&&r.getType()==Nt.GEOMETRY_COLLECTION?r.getGeometriesArray():[r]).length;o.75*u||l>.75*p?this.resetExtent_():ot(o,r)||this.recenter_()}},e.prototype.resetExtent_=function(){var t=this.getMap(),e=this.ovmap_,i=t.getSize(),r=t.getView().calculateExtent(i),n=e.getView(),o=Math.log(7.5)/Math.LN2;Mt(r,1/(.1*Math.pow(2,o/2))),n.fit(r)},e.prototype.recenter_=function(){var t=this.getMap(),e=this.ovmap_,i=t.getView();e.getView().setCenter(i.getCenter())},e.prototype.updateBox_=function(){var t=this.getMap(),e=this.ovmap_;if(t.isRendered()&&e.isRendered()){var i=t.getSize(),r=t.getView(),n=e.getView(),o=r.getRotation(),s=this.boxOverlay_,a=this.boxOverlay_.getElement(),h=r.calculateExtent(i),l=n.getResolution(),u=Et(h),p=Lt(h),c=this.calculateCoordinateRotate_(o,u);s.setPosition(c),a&&(a.style.width=Math.abs((u[0]-p[0])/l)+"px",a.style.height=Math.abs((p[1]-u[1])/l)+"px")}},e.prototype.calculateCoordinateRotate_=function(t,e){var i,r=this.getMap().getView().getCenter();return r&&($i(i=[e[0]-r[0],e[1]-r[1]],t),Hi(i,r)),i},e.prototype.handleClick_=function(t){t.preventDefault(),this.handleToggle_()},e.prototype.handleToggle_=function(){this.element.classList.toggle(yo),this.collapsed_?Qn(this.collapseLabel_,this.label_):Qn(this.label_,this.collapseLabel_),this.collapsed_=!this.collapsed_;var t=this.ovmap_;this.collapsed_||t.isRendered()||(t.updateSize(),this.resetExtent_(),m(t,Rn,function(t){this.updateBox_()},this))},e.prototype.getCollapsible=function(){return this.collapsible_},e.prototype.setCollapsible=function(t){this.collapsible_!==t&&(this.collapsible_=t,this.element.classList.toggle("ol-uncollapsible"),!t&&this.collapsed_&&this.handleToggle_())},e.prototype.setCollapsed=function(t){this.collapsible_&&this.collapsed_!==t&&this.handleToggle_()},e.prototype.getCollapsed=function(){return this.collapsed_},e.prototype.getOverviewMap=function(){return this.ovmap_},e}(uo),ex="units",ix={DEGREES:"degrees",IMPERIAL:"imperial",NAUTICAL:"nautical",METRIC:"metric",US:"us"},rx=[1,2,5];function nx(t){var e=t.frameState;this.viewState_=e?e.viewState:null,this.updateElement_()}var ox=function(t){function e(e){var i=e||{},r=void 0!==i.className?i.className:"ol-scale-line";t.call(this,{element:document.createElement("div"),render:i.render||nx,target:i.target}),this.innerElement_=document.createElement("div"),this.innerElement_.className=r+"-inner",this.element.className=r+" "+fo,this.element.appendChild(this.innerElement_),this.viewState_=null,this.minWidth_=void 0!==i.minWidth?i.minWidth:64,this.renderedVisible_=!1,this.renderedWidth_=void 0,this.renderedHTML_="",v(this,G(ex),this.handleUnitsChanged_,this),this.setUnits(i.units||ix.METRIC)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.getUnits=function(){return this.get(ex)},e.prototype.handleUnitsChanged_=function(){this.updateElement_()},e.prototype.setUnits=function(t){this.set(ex,t)},e.prototype.updateElement_=function(){var t=this.viewState_;if(t){var e=t.center,i=t.projection,r=this.getUnits(),n=r==ix.DEGREES?$t.DEGREES:$t.METERS,o=Se(i,t.resolution,e,n);i.getUnits()!=$t.DEGREES&&i.getMetersPerUnit()&&n==$t.METERS&&(o*=i.getMetersPerUnit());var s=this.minWidth_*o,a="";if(r==ix.DEGREES){var h=Qt[$t.DEGREES];i.getUnits()==$t.DEGREES?s*=h:o/=h,s=this.minWidth_)break;++p}var c=l+" "+a;this.renderedHTML_!=c&&(this.innerElement_.innerHTML=c,this.renderedHTML_=c),this.renderedWidth_!=u&&(this.innerElement_.style.width=u+"px",this.renderedWidth_=u),this.renderedVisible_||(this.element.style.display="",this.renderedVisible_=!0)}else this.renderedVisible_&&(this.element.style.display="none",this.renderedVisible_=!1)},e}(uo),sx={VERTICAL:0,HORIZONTAL:1};function ax(t){if(t.frameState){this.sliderInitialized_||this.initSlider_();var e=t.frameState.viewState.resolution;e!==this.currentResolution_&&(this.currentResolution_=e,this.setThumbPosition_(e))}}var hx=function(t){function e(e){var i=e||{};t.call(this,{element:document.createElement("div"),render:i.render||ax}),this.dragListenerKeys_=[],this.currentResolution_=void 0,this.direction_=sx.VERTICAL,this.dragging_,this.heightLimit_=0,this.widthLimit_=0,this.previousX_,this.previousY_,this.thumbSize_=null,this.sliderInitialized_=!1,this.duration_=void 0!==i.duration?i.duration:200;var r=void 0!==i.className?i.className:"ol-zoomslider",n=document.createElement("button");n.setAttribute("type","button"),n.className=r+"-thumb "+fo;var o=this.element;o.className=r+" "+fo+" "+go,o.appendChild(n),this.dragger_=new Tn(o),v(this.dragger_,Gr.POINTERDOWN,this.handleDraggerStart_,this),v(this.dragger_,Gr.POINTERMOVE,this.handleDraggerDrag_,this),v(this.dragger_,Gr.POINTERUP,this.handleDraggerEnd_,this),v(o,M.CLICK,this.handleContainerClick_,this),v(n,M.CLICK,O)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.disposeInternal=function(){this.dragger_.dispose(),t.prototype.disposeInternal.call(this)},e.prototype.setMap=function(e){t.prototype.setMap.call(this,e),e&&e.render()},e.prototype.initSlider_=function(){var t=this.element,e=t.offsetWidth,i=t.offsetHeight,r=t.firstElementChild,n=getComputedStyle(r),o=r.offsetWidth+parseFloat(n.marginRight)+parseFloat(n.marginLeft),s=r.offsetHeight+parseFloat(n.marginTop)+parseFloat(n.marginBottom);this.thumbSize_=[o,s],e>i?(this.direction_=sx.HORIZONTAL,this.widthLimit_=e-o):(this.direction_=sx.VERTICAL,this.heightLimit_=i-s),this.sliderInitialized_=!0},e.prototype.handleContainerClick_=function(t){var e=this.getMap().getView(),i=this.getRelativePosition_(t.offsetX-this.thumbSize_[0]/2,t.offsetY-this.thumbSize_[1]/2),r=this.getResolutionForPosition_(i);e.animate({resolution:e.constrainResolution(r),duration:this.duration_,easing:Xn})},e.prototype.handleDraggerStart_=function(t){if(!this.dragging_&&t.originalEvent.target===this.element.firstElementChild&&(this.getMap().getView().setHint(jn,1),this.previousX_=t.clientX,this.previousY_=t.clientY,this.dragging_=!0,0===this.dragListenerKeys_.length)){var e=this.handleDraggerDrag_,i=this.handleDraggerEnd_;this.dragListenerKeys_.push(v(document,M.MOUSEMOVE,e,this),v(document,Gr.POINTERMOVE,e,this),v(document,M.MOUSEUP,i,this),v(document,Gr.POINTERUP,i,this))}},e.prototype.handleDraggerDrag_=function(t){if(this.dragging_){var e=this.element.firstElementChild,i=t.clientX-this.previousX_+parseFloat(e.style.left),r=t.clientY-this.previousY_+parseFloat(e.style.top),n=this.getRelativePosition_(i,r);this.currentResolution_=this.getResolutionForPosition_(n),this.getMap().getView().setResolution(this.currentResolution_),this.setThumbPosition_(this.currentResolution_),this.previousX_=t.clientX,this.previousY_=t.clientY}},e.prototype.handleDraggerEnd_=function(t){if(this.dragging_){var e=this.getMap().getView();e.setHint(jn,-1),e.animate({resolution:e.constrainResolution(this.currentResolution_),duration:this.duration_,easing:Xn}),this.dragging_=!1,this.previousX_=void 0,this.previousY_=void 0,this.dragListenerKeys_.forEach(E),this.dragListenerKeys_.length=0}},e.prototype.setThumbPosition_=function(t){var e=this.getPositionForResolution_(t),i=this.element.firstElementChild;this.direction_==sx.HORIZONTAL?i.style.left=this.widthLimit_*e+"px":i.style.top=this.heightLimit_*e+"px"},e.prototype.getRelativePosition_=function(t,e){return kt(this.direction_===sx.HORIZONTAL?t/this.widthLimit_:e/this.heightLimit_,0,1)},e.prototype.getResolutionForPosition_=function(t){return this.getMap().getView().getResolutionForValueFunction()(1-t)},e.prototype.getPositionForResolution_=function(t){return 1-this.getMap().getView().getValueForResolutionFunction()(t)},e}(uo),lx=function(t){function e(e){var i=e||{};t.call(this,{element:document.createElement("div"),target:i.target}),this.extent=i.extent?i.extent:null;var r=void 0!==i.className?i.className:"ol-zoom-extent",n=void 0!==i.label?i.label:"E",o=void 0!==i.tipLabel?i.tipLabel:"Fit to extent",s=document.createElement("button");s.setAttribute("type","button"),s.title=o,s.appendChild("string"==typeof n?document.createTextNode(n):n),v(s,M.CLICK,this.handleClick_,this);var a=r+" "+fo+" "+go,h=this.element;h.className=a,h.appendChild(s)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.handleClick_=function(t){t.preventDefault(),this.handleZoomToExtent()},e.prototype.handleZoomToExtent=function(){var t=this.getMap().getView(),e=this.extent?this.extent:t.getProjection().getExtent();t.fit(e)},e}(uo),ux={array:{},color:{},colorlike:{},control:{},coordinate:{},easing:{},events:{}};ux.events.condition={},ux.extent={},ux.featureloader={},ux.format={},ux.format.filter={},ux.geom={},ux.has={},ux.interaction={},ux.layer={},ux.loadingstrategy={},ux.proj={},ux.proj.Units={},ux.proj.proj4={},ux.render={},ux.render.canvas={},ux.renderer={},ux.renderer.canvas={},ux.renderer.webgl={},ux.size={},ux.source={},ux.sphere={},ux.style={},ux.style.IconImageCache={},ux.tilegrid={},ux.xml={},ux.Collection=U,ux.Feature=B,ux.Geolocation=zi,ux.Graticule=Or,ux.Kinetic=br,ux.Map=Ha,ux.Object=D,ux.Observable=F,ux.Observable.unByKey=function(t){if(Array.isArray(t))for(var e=0,i=t.length;e180)&&(i[0]=Xt(r+180,360)-180),i},ux.proj.transform=Pe,ux.proj.transformExtent=be,ux.render.VectorContext=Vs,ux.render.canvas.labelCache=Ps,ux.render.toContext=function(t,e){var i=t.canvas,r=e||{},n=r.pixelRatio||Di,o=r.size;o&&(i.width=o[0]*n,i.height=o[1]*n,i.style.width=o[0]+"px",i.style.height=o[1]+"px");var s=[0,0,i.width,i.height],a=je([1,0,0,1,0,0],n,n);return new Xs(t,n,s,a,0)},ux.renderer.canvas.ImageLayer=ra,ux.renderer.canvas.Map=Qs,ux.renderer.canvas.TileLayer=ha,ux.renderer.canvas.VectorLayer=Ba,ux.renderer.canvas.VectorTileLayer=Ka,ux.renderer.webgl.ImageLayer=gl,ux.renderer.webgl.Map=yl,ux.renderer.webgl.TileLayer=Xl,ux.renderer.webgl.VectorLayer=Wl,ux.size.toSize=ho,ux.source.BingMaps=tp,ux.source.CartoDB=ip,ux.source.Cluster=sp,ux.source.Image=dp,ux.source.ImageArcGISRest=gp,ux.source.ImageCanvas=yp,ux.source.ImageMapGuide=vp,ux.source.ImageStatic=mp,ux.source.ImageWMS=wp,ux.source.OSM=Lp,ux.source.OSM.ATTRIBUTION=Ip,ux.source.Raster=Vp,ux.source.Source=Il,ux.source.Stamen=Kp,ux.source.Tile=jl,ux.source.TileArcGISRest=Zp,ux.source.TileDebug=Jp,ux.source.TileImage=$u,ux.source.TileJSON=Qp,ux.source.TileWMS=tc,ux.source.UTFGrid=ic,ux.source.Vector=op,ux.source.VectorTile=ac,ux.source.WMTS=lc,ux.source.WMTS.optionsFromCapabilities=function(t,e){var i=H(t.Contents.Layer,function(t,i,r){return t.Identifier==e.layer});if(null===i)return null;var r,n=t.Contents.TileMatrixSet;(r=i.TileMatrixSetLink.length>1?J(i.TileMatrixSetLink,"projection"in e?function(t,i,r){var o=H(n,function(e){return e.Identifier==t.TileMatrixSet}).SupportedCRS,s=Ee(o.replace(/urn:ogc:def:crs:(\w+):(.*:)?(\w+)$/,"$1:$3"))||Ee(o),a=Ee(e.projection);return s&&a?Ie(s,a):o==e.projection}:function(t,i,r){return t.TileMatrixSet==e.matrixSet}):0)<0&&(r=0);var o=i.TileMatrixSetLink[r].TileMatrixSet,s=i.TileMatrixSetLink[r].TileMatrixSetLimits,a=i.Format[0];"format"in e&&(a=e.format),(r=J(i.Style,function(t,i,r){return"style"in e?t.Title==e.style:t.isDefault}))<0&&(r=0);var h=i.Style[r].Identifier,l={};"Dimension"in i&&i.Dimension.forEach(function(t,e,i){var r=t.Identifier,n=t.Default;void 0===n&&(n=t.Value[0]),l[r]=n});var u,p=H(t.Contents.TileMatrixSet,function(t,e,i){return t.Identifier==o}),c=p.SupportedCRS;if(c&&(u=Ee(c.replace(/urn:ogc:def:crs:(\w+):(.*:)?(\w+)$/,"$1:$3"))||Ee(c)),"projection"in e){var d=Ee(e.projection);d&&(u&&!Ie(d,u)||(u=d))}var f,_,g=i.WGS84BoundingBox;if(void 0!==g){var y=Ee("EPSG:4326").getExtent();_=g[0]==y[0]&&g[2]==y[2],f=be(g,"EPSG:4326",u);var v=u.getExtent();v&&(ot(v,f)||(f=void 0))}var m=Eu(p,f,s),x=[],E=e.requestEncoding;if(E=void 0!==E?E:"","OperationsMetadata"in t&&"GetTile"in t.OperationsMetadata)for(var S=t.OperationsMetadata.GetTile.DCP.HTTP.Get,T=0,C=S.length;T has to be removed, as well as the just before the W3 validation box. Unfortunately this then forces 600px width even when the window is small — thus eliminating the margin altogether.... + +I use it for now only in Diary/edited/1097/13A, 13B, 13C.html; and /0404/19.html +*/ + background-color: #e6fffb ! important; + width: 600px; + margin-left: auto; + margin-right: auto; + margin-top: 3em; +} + +BODY.gazetteer { +/* + background-color: #bdffde ! important; + */ + background-color: #c0ffe0 ! important; + margin-top: 30px; +} + +BODY.gazetteer_links { + background-color: #c5ffe2 ! important; + margin-top: 30px; +} + +BODY.home { + background-color: #ffff66 ! important; + margin-top: 30px; +/* +background as long as the Russian attack on Ukraine continues: + */ + background-image: url("https://penelope.uchicago.edu/Thayer/Images/Utility/Backgrounds/Ukraine.gif") ! important; + background-repeat: repeat-y; +} + +BODY.Roman_archaic { + background-color: #ffddcc ! important; + margin-top: 30px; +} + +BODY.Roman_imperial { + background-color: #ffccff ! important; + margin-top: 30px; +} + +BODY.Roman_Republican { + background-color: #ccddff ! important; + margin-top: 30px; +} + +BODY.Late_Antique { + background-color: #ecdaff ! important; + margin-top: 30px; +} + +BODY.fixed { + background-attachment: fixed; + background-repeat: repeat; +} + +BODY.help { + background-color: #ffcccc ! important; + margin-top: 30px; +} + +BODY.resources { + background-color: #f5ffff ! important; + color: #006600 ! important; + margin-top: 30px; +} + +BODY.WP { + background-color: #000000 ! important; + color: #ffffff ! important; + margin-top: 30px; +} + +/*Greek TEST*/ + BODY.WP DIV.default1 { + margin-left: 5em; + margin-right: 5em; + color: #ffffff ! important; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + } + BODY.WP .source { + color: #99ff99 ! important; + } + BODY.WP A { + color: #ccccff ! important; + } + BODY.WP TD.upcell A { + color: #0000ff ! important; + } + BODY.WP TD.alsocell A { + color: #0000ff ! important; + } + BODY.WP TD.diarycell A { + color: #0000ff ! important; + } + BODY.WP TD.offcell A { + color: #0000ff ! important; + } + +DIV.spacious { + width: 65vw; + margin-left: auto; + margin-right: auto; + color: #000066 ! important; /*color must match the background*/ + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; +} + +/* + +▸ Use names of countries only to define country-related styles. +▸ Use names of languages only to define language-related styles. + +*/ + +/*languages/scripts: +source, archaic, aboriginal; +Latin, Greek, Hebrew (Aramaic, Syriac), Runic, Gothic/Vandalic [same color: plain/italic]; +Russian/Slavic [identical]; +Coptic, Arabic (Punic, Turkish, Persian), Indian/Sanskrit [same color: plain/italic], Chinese/Japanese [same color: plain/italic]; +Catalan, Dutch, French, German, Italian, Portuguese, Provencal, Spanish +*/ + +/* +UNUSABLE FONTS: + +BECAUSE OF GREEK [search: ▸Greek TEST◂] : + Georgia: old tonos (wedge) + Verdana: old tonos (stroke) + Atavyros: ῥ rendered as ῤ + Minion Pro: no spaces before Greek capitals with rough breathings + +FOR OTHER REASONS: + Aroania: nulls the command-hyphen +*/ + +/* +COLORS + are in + https://penelope.uchicago.edu/Thayer/Utility/Styles/colors.css +*/ + +.black_letter { + text-transform: none; + font-family: Canterbury, "Cloister Black", Cimbrian, Raubtier, Lancaster, Augusta, Rochester, PaladinFLF, "Kleukens-Fraktur", "Palatino Linotype", Palatino, "Arial Unicode Ms", "Titus Cyberbit Basic", "Lucida Sans Unicode", serif, sans-serif ! important; +} + +.invisible { + visibility: hidden ! important; +} + +.error .Greek { + color: #ff0000 ! important; + font-weight: bold; + font-size: 120%; +} + +/* for modern geographical names, etc.: */ +.modern { + color: #5ebf20 ! important; +} + +.aboriginal { + color: #ff8f33 ! important; + font-family: Verdana, sans-serif; + font-size: 90%; +} + +/* same as Persian: */ +.Arabic { + color: #336644 ! important; +} + .Arabic .emend { + color: #444400 ! important; + } + + A SPAN.Arabic { + color: #669966 ! important; + } + +.Aramaic { + color: #555500 ! important; +} + .Aramaic .emend { + color: #664400 ! important; + } + + A SPAN.Aramaic { + color: #669966 ! important; + } + +.archaic { + color: #666600 ! important; +} + .archaic .emend { + color: #cccc00 ! important; + } + + A SPAN.archaic { + color: #669966 ! important; + } + +.Armenian { + color: #660099 ! important; +} + +SPAN LANG.be /* Belarusian */ { + font-size: 108%; +} + +.Belarusian { + color: #990000 ! important; + font-size: 108%; +} + +.book_Belarusian { + color: #990000 ! important; + font-size: 108%; + font-variant: small-caps; +} + +.translit_Belarusian { + color: #990000 ! important; +} + +.bland_Belarusian { + color: inherit ! important; + font-size: 108%; + line-height: 1.00; /* Belarusian fonts have more line-height built‑in, force smaller */ +} + +.Catalan { + color: #cc2200 ! important; +} + + .Catalan .emend { + color: #ee6633 ! important; + } + +.Dutch { + color: #006600 ! important; +} + + .Dutch .Dutch { + color: #002200 ! important; + } + + .Dutch .source { + color: #002200 ! important; + } + +BODY.gazetteer .Dutch { + color: #003300 ! important; +} + +.Egyptian { + color: #ff6600 ! important; +} + +.English/* use only in pages in other languages */ { + color: #009933 ! important; +} + + .English .emend { + color: #80cc4c ! important; + } + + .English .English { + color: #002200 ! important; + } + + .English .source { + color: #002200 ! important; + } + +French { + color: #009933 ! important; +} + + .French .emend { + color: #119955 ! important; + } + + .French .French { + color: #002200 ! important; + } + + .French .source { + color: #002200 ! important; + } + + .mynote .French { + color: #666633 ! important; + } + + .mynoteWide .French { + color: #666633 ! important; + } + +.Georgian { + color: #cc0099 ! important; +} + +.German { + color: #339999 ! important; +} + + .German .German { + color: #002200 ! important; + } + + .German .source { + color: #002200 ! important; + } + +.Gothic { + color: #660099 ! important; +} + +/*Greek TEST (settled)*/ +/*what I want here is a nice flowing slightly Byzantine look:*/ +/*Avdira: nice if somewhat mannered*/ +/*Alfios: nice but too small*/ +/*Quivira: ok but mannered: accents and breathings shifted*/ +/*Times New Roman: ok but circumflexes and diereses smooshed*/ +.Greek { + font-family: "Avdira", "Titus Cyberbit Basic", serif ! important; + color: #996600 ! important; +} + .Greek I { + font-style: italic; + letter-spacing: .2em; + /* a compromise: the traditional wide spacing, but also true italics */ + } + + .Greek .emend { + color: #dd8833 ! important; + } + + .Greek .emphasis { + color: #cc6600 ! important; + } + + .Greek .italic { + font-style: italic; + letter-spacing: .2em; + /* a compromise: the traditional wide spacing, but also true italics */ + } + + .Greek .outquote { + color: #dd8833 ! important; /* same as .Greek .emend */ + } + + .mynote .Greek { + color: #996600 ! important; + } + + .mynoteWide .Greek { + color: #996600 ! important; + } + +/* for use in Eboxes: */ + .EboxGreek { + font-weight: bold; + color: #996600 ! important; + } + +.translit_Greek { + color: #996600 ! important; +} + .translit_Greek .emend { + color: #dd8833 ! important; + } + + .translit_Greek .emphasis { + color: #cc6600 ! important; + } + + .mynote .translit_Greek { + color: #996600 ! important; + } + + .mynoteWide .translit_Greek { + color: #996600 ! important; + } + +.Greek2 { + font-family: "Palatino Linotype", "Lucida Grande", "Arial Unicode Ms", "Titus Cyberbit Basic", "Lucida Sans Unicode", sans-serif ! important; + color: #663300 ! important; + font-size: 95%; +} + .Greek2 .emend { + color: #dd8833 ! important; + } + + .Greek2 .emphasis { + color: #cc6600 ! important; + } + +.Greek_title { +/* OLD, KEEP FOR NOW: + font-family: "Lucida Grande", "Palatino Linotype", "Arial Unicode Ms", "Titus Cyberbit Basic", "Lucida Sans Unicode", sans-serif ! important; + */ + font-style: italic; + letter-spacing: .08em; +/* OLD, KEEP FOR NOW: + font-size: 95%; + */ +} + +.Hebrew { + direction: rtl ! important; + color: #666600 ! important; +} + .Hebrew .emend { + color: #774400 ! important; + } + + A SPAN.Hebrew { + color: #669966 ! important; + } + +.translit_Hebrew { + color: #666600 ! important; +} + .translit_Hebrew .emend { + color: #774400 ! important; + } + + A SPAN.translit_Hebrew { + color: #669966 ! important; + } + +.Indian { + color: #ff8f33 ! important; + font-family: Verdana, sans-serif; + font-size: 90%; +} + +.Italian { + color: #006600 ! important; +} + + .Italian .Italian { + color: #002200 ! important; + } + + .Italian .source { + color: #002200 ! important; + } + + .mynote .Italian { + color: #00b300 ! important; + } + +BODY.gazetteer .Italian { + color: #009922 ! important; +} + +.Chinese { +/* + color: #dcbd75 ! important; /* OLD + */ + color: #b88e2e ! important; + font-family: Verdana, sans-serif; + font-size: 90%; +} + +.Japanese { + color: #da5300 ! important; + font-family: Verdana, sans-serif; + font-size: 90%; + font-style: italic; +} + +.Latin { + color: #990000 ! important; +} + + .Latin .emend { + color: #ee6633 ! important; + } + + .mynote .Latin { + color: #990000 ! important; + } + +/* for use in Eboxes: */ + .EboxLatin { + font-weight: bold; + color: #990000 ! important; + } + +.Latin_addendum { + color: #993399 ! important; +} + +.Latin_emend { + color: #ee6633 ! important; +} + +.Latin_pale { + color: #ff6666 ! important; +} + +/* same as Arabic: */ +.Persian { + color: #336644 ! important; +} + .Persian .emend { + color: #444400 ! important; + } + + A SPAN.Persian { + color: #669966 ! important; + } + +.Portuguese { + color: #006600 ! important; +} + + .Portuguese .Portuguese { + color: #002200 ! important; + } + + .Portuguese .source { + color: #002200 ! important; + } + +BODY.gazetteer .Portuguese { + color: #003300 ! important; +} + + +.Provencal { + color: #e65c00 ! important; +} + + .Provencal .emend { + color: #ee6633 ! important; + } + +.Punic { + color: #336644 ! important; +} + .Punic .emend { + color: #444400 ! important; + } + + A SPAN.Punic { + color: #669966 ! important; + } + +.Runic { + font-family: "Quivira", "Apple Symbols", "Geneva", serif ! important; + color: #339999 ! important; +} + +.RunicQuivira { + font-family: "Quivira" ! important; + color: #339999 ! important; +} + +.RunicGeneva { + font-family: "Geneva" ! important; + color: #339999 ! important; +} + +.RunicApple { + font-family: "Apple Symbols" ! important; + color: #339999 ! important; +} + +.Russian { +/* WAS: + color: #ff7e24 ! important; + */ + color: #ffa114 ! important; + font-size: 108%; +} + +.translit_Russian { + color: #ffa114 ! important; +} + +.Sanskrit { + color: #ff8f33 ! important; + font-family: Verdana, sans-serif; + font-size: 90%; + font-style: italic; +} + +.translit_Sanskrit { + color: #ff8f33 ! important; + font-family: Verdana, sans-serif; + font-size: 90%; + font-style: italic; +} + +.Scandinavian { + color: #660099 ! important; +} + +.Slavic { + color: #e73659 ! important; +} + +.Syriac { + color: #666600 ! important; +} + .Syriac .emend { + color: #774400 ! important; + } + + A SPAN.Syriac { + color: #669966 ! important; + } + +.Turkish { + color: #336644 ! important; +} + .Turkish .emend { + color: #444400 ! important; + } + + A SPAN.Turkish { + color: #669966 ! important; + } + +SPAN LANG.uk /* Ukrainian */ { + font-size: 108%; +} + +.Ukrainian { + color: #f7c708 ! important; + font-size: 108%; +} + +.book_Ukrainian { + color: #f7c708 ! important; + font-size: 108%; + font-variant: small-caps; +} + +.translit_Ukrainian { + color: #f7c708 ! important; +} + +.bland_Ukrainian { + color: inherit ! important; + font-size: 108%; + line-height: 1.00; /* Ukrainian fonts have more line-height built‑in, force smaller */ +} + +.Vandalic { + font-family: Atavyros, "Lucida Grande", "Palatino Linotype", "Arial Unicode Ms", "Titus Cyberbit Basic", "Lucida Sans Unicode", sans-serif ! important; + color: #660099 ! important; + font-size: 95%; + font-style: italic; +} + + TABLE TR.odd { + background-color: #ccffff ! important; + } + + TABLE TR TD.odd { + background-color: #ccffff ! important; + } + + TABLE TR.even { + background-color: #99ffff ! important; + } + + TABLE TR TD.even { + background-color: #99ffff ! important; + } + +.odd .emend { + color: #33ccff ! important; + } + +.even .emend { + color: #00ccff ! important; + } + +/* THIS DOESN'T SEEM TO WORK: */ +/* +COLGROUP COL.grisaille { + background-color: #ff0000 ! important; + } + + */ + + +TABLE.prompt { +/* DO NOT DELETE: */ +/* used in Ebox.js */ + margin-bottom: 0em; +} + +TABLE.Ptolemy { + width: 600px; + border: 1px solid; + background-color: #eeffff ! important; + padding-left: 4px; + padding-right: 4px; + vertical-align: bottom; +} +TABLE.Ptolemy TD { + padding-left: 2px; + padding-right: 2px; + vertical-align: bottom; +} +TABLE.Ptolemy TD.text { + width: 420px; +} +TABLE.Ptolemy TD.text P { + margin-left: 1em; + text-indent: -1em; +} +TABLE.Ptolemy TR.alternate { + background-color: #ccffff ! important; +} +TABLE.Ptolemy TD.numbers { + width: 90px; +} + +TABLE.flexible { + table-layout: auto; + width: 100%; +} + +/*TABLE.padded: for making the table readable, cells not jammed together*/ +TABLE.padded TD { + padding-left: 12px; + padding-right: 12px; +} + +/*TABLE.rowspadded: separates the rows as well*/ +TABLE.rowspadded TD { + padding-top: 12px; + padding-left: 12px; + padding-right: 12px; +} + +TD.padded { + padding-left: 12px; + padding-right: 12px; +} + +TABLE.preface { + width: 600px; +/* WAS : + width: 576px; + ▸ If there's a reason for it, revert. . . + */ + background-color: #e9e9e9 ! important; + margin-left: auto; + margin-right: auto; + margin-top: 5em; + border-collapse: separate; + border-spacing: 1px; + border: 4px ridge #f6f6f6; + line-height: 1.5; +} + +TABLE.imageTEST { + border: 1px solid; + margin-left: auto; + margin-right: auto; + margin-top: 1em; + text-align: center; +} + + .imageTEST TR { + text-align: justify; + } + +TABLE.justify TD { + text-align: justify; +} + +TABLE.rubric { + width: 600px; + font-size: 85%; + margin-top: 2em; + margin-left: auto; + margin-right: auto; +} + + TABLE.rubric P.summary { + font-size: 85%; + margin-top: 3em; + margin-left: 0; + margin-right: 0; + text-indent: 0; + text-align: right; + } + + TABLE.rubric P.postsummary { + font-size: 85%; + margin-top: -.5em; + margin-left: 0; + margin-right: 0; + text-indent: 0; + text-align: right; + } + +.artist_catalog { + text-align: center; + background-color: #ffff66 ! important; + color: #00aaff ! important; + font-size: 80%; +} + + .artist_catalog A:link { + font-weight: bold; + color: #9922ff ! important; + } + + .artist_catalog H1 { + margin-top: .5em; + margin-bottom: .5em; + font-size: 120%; + font-weight: normal; + font-style: italic; + } + + .artist_catalog P { + margin-top: 0em; + margin-bottom: .7em; + } + + .artist_catalog .town { + color: #0040ff ! important; + } + + .artist_catalog .separator { + color: #ff3366 ! important; + } + +/* the "spaced" styles can be used for SPAN, and they will be uncentered*/ +/* if inside a justified class, they will also be uncentered */ +.slightly_condensed { + text-align: center; + letter-spacing: .05em; +} + +.condensed1 { + text-align: center; + letter-spacing: -.25em; +} + +.condensed2 { + text-align: center; + letter-spacing: -.5em; +} + +.slightly_spaced { + text-align: center; + letter-spacing: .25em; +} + +.spaced1 { + text-align: center; + letter-spacing: .5em; +} + +.spaced2 { + text-align: center; + letter-spacing: 1.0em; +} + +.spaced3 { + text-align: center; + letter-spacing: 1.5em; +} + +.spaced4 { + text-align: center; + letter-spacing: 2.0em; +} + +/* +The following style ("skipped") is used when I've temporarily skipped part of what ought to be a full webpage: + */ +.skipped { + margin-top: 5em; + text-align: center; + letter-spacing: 1.0em; + font-weight: bold; +} + +/* +The following style ("interlinear") is used to format running text with an interlinear translation. + +For explanation, see: +http://www.crosswire.org/~dmsmith/interlinear/ + +For use, see: +E/Gazetteer/Places/Europe/Italy/_Texts/HODIHI/2d_edition/1/NoteC*.html +and +E/Journals/ArtBulletin/41/1/Theodosius_or_Justinian*.html +*/ + +SPAN.interlinear SPAN { + float: left; + padding: 0 0.5em 0.5em 0; + text-align: center; +} +SPAN.interlinear SPAN SPAN { + float: none; + padding: 0; + display: block; +} +SPAN.interlinear SPAN SPAN SPAN { + display: inline; +} + +.Coptic { +/* Unicode range from 2C80 */ + font-family: Analecta, Aegyptus ! important; + color: #ff6600 ! important; /* matches .hieroglyphic */ + font-size: 100%; +} + .Coptic .emend { + color: #dd8833 ! important; + } + + .Coptic .emphasis { + color: #cc6600 ! important; + } + +.translit_Coptic { + color: #ff6600 ! important; /* matches .hieroglyphic */ +} + .translit_Coptic .emend { + color: #dd8833 ! important; + } + + .translit_Coptic .emphasis { + color: #cc6600 ! important; + } + +/* +The following style ("hieroglyphic") is STILL IN TEST based on "interlinear". +The sandbox is in + Thayer/hieroglyphic_sandbox.htm +altho also (imperfect and commented out) on + E/Gazetteer/Places/Africa/Egypt/_Topics/history/home.html + */ +SPAN.hieroglyphic { + color: #ff6600 ! important; /* matches .Coptic */ +} +SPAN.hieroglyphic SPAN { + float: left; + padding: 0; + text-align: center; +} +SPAN.hieroglyphic SPAN SPAN { + float: none; + padding: 0; + display: block; + line-height: 70%; +} +SPAN.hieroglyphic SPAN SPAN SPAN { + display: inline-block; +} + +SPAN.hieroglyphic SPAN SPAN.half1 { + line-height: 50%; +} +SPAN.hieroglyphic SPAN SPAN.half1 SPAN { + display: inline-block; +} + +SPAN.hieroglyphic SPAN SPAN.half1 SPAN .up1 { + vertical-align: 10%; +} +SPAN.hieroglyphic SPAN SPAN.half1 SPAN .up2 { + vertical-align: 20%; +} +SPAN.hieroglyphic SPAN SPAN.half1 SPAN .up3 { + vertical-align: 30%; +} +SPAN.hieroglyphic SPAN SPAN.half1 SPAN .up4 { + vertical-align: 40%; +} + +SPAN.hieroglyphic SPAN SPAN.half2 { + line-height: 50%; +} +SPAN.hieroglyphic SPAN SPAN.half2 SPAN { + display: inline-block; +} + +SPAN.hieroglyphic SPAN SPAN.third { + line-height: 33%; +} +SPAN.hieroglyphic SPAN SPAN.third SPAN { + display: inline-block; + padding-bottom: 50px; +} + + +/* +inline_hieroglyphic is used only one page, + E/Roman/Texts/Manetho/History_of_Egypt/1*.html +but successfully + (5 times: notes 2, 6, 49, 67, 72) +It has the advantage of returning correct search results in Google and on the displayed page: + */ + +SPAN.inline_hieroglyphic { + color: #ff6600 ! important; /* matches .Coptic */ + font-weight: bolder ! important; /* VERY important, else unreadable! */ + line-height: 1px; /* forces line height */ +} +SPAN.inline_hieroglyphic .up1 { + vertical-align: 3px; +} +SPAN.inline_hieroglyphic .up2 { + vertical-align: 6px; +} +SPAN.inline_hieroglyphic .up3 { + vertical-align: 9px; +} +SPAN.inline_hieroglyphic .up4 { + vertical-align: 12px; +} +SPAN.inline_hieroglyphic .up5 { + vertical-align: 15px; +} +SPAN.inline_hieroglyphic .up6 { + vertical-align: 18px; +} + +SPAN.inline_hieroglyphic .right1 { + position: relative; + right: -.4em; +} +SPAN.inline_hieroglyphic .right2 { + position: relative; + right: -.6em; +} +SPAN.inline_hieroglyphic .right3 { + position: relative; + right: -.8em; +} +SPAN.inline_hieroglyphic .right4 { + position: relative; + right: -1.0em; +} +SPAN.inline_hieroglyphic .right5 { + position: relative; + right: -1.2em; +} +SPAN.inline_hieroglyphic .right6 { + position: relative; + right: -1.4em; +} +SPAN.inline_hieroglyphic .right7 { + position: relative; + right: -1.6em; +} +SPAN.inline_hieroglyphic .left1 { + position: relative; + left: -.4em; +} +SPAN.inline_hieroglyphic .left2 { + position: relative; + left: -.6em; +} +SPAN.inline_hieroglyphic .left3 { + position: relative; + left: -.8em; +} +SPAN.inline_hieroglyphic .left4 { + position: relative; + left: -1.0em; +} +SPAN.inline_hieroglyphic .left5 { + position: relative; + left: -1.2em; +} +SPAN.inline_hieroglyphic .left6 { + position: relative; + left: -1.4em; +} +SPAN.inline_hieroglyphic .left7 { + position: relative; + left: -1.6em; +} +SPAN.inline_hieroglyphic .left8 { + position: relative; + left: -1.8em; +} +SPAN.inline_hieroglyphic .left9 { + position: relative; + left: -2.0em; +} +SPAN.inline_hieroglyphic .left10 { + position: relative; + left: -2.2em; +} + +/* +The following "quadrat" forms have not yet been used anywhere: + */ +SPAN.inline_hieroglyphic .quadrat { + display: inline-block; + text-align: center; +} + +SPAN.inline_hieroglyphic .quadrat .top { + line-height: 0.5; + vertical-align: text-top; +} + +SPAN.inline_hieroglyphic .quadrat .bottom { + line-height: 0.5; + vertical-align: baseline; +} + + + +/* +Semi-workaround for hieroglyphic used for now only in +E/Gazetteer/Places/Africa/Egypt/_Topics/history/home.html + */ +.hiero2 { + color: #ff6600 ! important; /* matches .Coptic */ +} +.hiero2 .all { + vertical-align: 0em; +} +.hiero2 .mid { + vertical-align: +.2em; +} +.hiero2 .half1 { + line-height: 0.5; + vertical-align: +.65em; +} +.hiero2 .half2 { + line-height: 0.5; + vertical-align: 0em; + position: relative; +/* + left: -0.55em; + */ +} +.skitter1 { + left: -0.55em; +} +.skitter2 { + left: -1.1em; +} + +.skitter3 { + left: -5em; +} + +.asterisks { + color: #0066cc ! important; + text-align: center; + letter-spacing: .5em; +} + +TR.gazetteer { + background-color: #99ffcc ! important; +} + +SPAN.map_callout { + font-family: Verdana, sans-serif; + text-transform: none; + background-color: #3300ff ! important; + color: #ffffff ! important; +} + +SPAN.map_callout_red { + font-family: Verdana, sans-serif; + text-transform: none; + background-color: #ff0000 ! important; + color: #ffffff ! important; +} + +SPAN.small_map_callout { + font-size: 60%; + font-family: Verdana, sans-serif; + text-transform: none; + vertical-align: +.2em; + background-color: #3300ff ! important; + color: #ffffff ! important; +} + +SPAN.small_map_callout_red { + font-size: 60%; + font-family: Verdana, sans-serif; + text-transform: none; + vertical-align: +.2em; + background-color: #ff0000 ! important; + color: #ffffff ! important; +} + +A { + text-decoration: none; + -webkit-hyphens: none; + -ms-hyphens: none; + hyphens: none; +} + +.verse_speaker { + position: absolute; + top: auto; + margin-left: -8.5em; + margin-bottom: .1em; + margin-top: .1em; + height: 0em; + font-size: .8rem; + font-style: italic; + font-family: Verdana, Ariel, Helvetica, sans-serif; + text-align: right; +} + +.speaker { + position: absolute; + top: auto; + margin-left: -4em; + margin-bottom: .1em; + margin-top: .1em; + height: 0em; + width: 3em; + font-size: .8rem; + font-style: italic; + font-family: Verdana, Ariel, Helvetica, sans-serif; + text-align: right; +} + .m1 .speaker { + position: absolute; + top: auto; + margin-left: -5em; + } + +.obelus { + position: absolute; + top: auto; + margin-left: -3.7em; + margin-bottom: 0em; + margin-top: .1em; + height: 0em; + width: 3em; + font-size: .7rem; + font-family: Verdana, Ariel, Helvetica, sans-serif; + text-align: right; +} + +.box { + width: 60%; + margin-left: auto; + margin-right: auto; + border: 1px solid; + padding: 2em; +} + +/* "multiline" styles are for creating multi-line brackets, parens, integrals, etc. */ +.multiline2 { + position: relative; +} + .multiline2 .sub { + position: absolute; + left: 0em; + bottom: -.4em; +} + .multiline2 .sup { + position: absolute; + left: 0em; + bottom: +.4em; +} + +.multiline3 { + position: relative; +} + + .multiline3 .sub { + position: absolute; + left: 0em; + bottom: -1em; +} + + .multiline3 .sup { + position: absolute; + left: 0em; + bottom: +1em; +} + +.multiline4 { + position: relative; +} + + .multiline4 .sup1 { + position: absolute; + left: 0em; + bottom: +1.5em; +} + + .multiline4 .sup2 { + position: absolute; + left: 0em; + bottom: +.6em; +} + + .multiline4 .sub3 { + position: absolute; + left: 0em; + bottom: -.6em; +} + + .multiline4 .sub4 { + position: absolute; + left: 0em; + bottom: -1.5em; +} + +.translation_flag { + position: absolute; + top: auto; + } + +.line1 { + margin-top: 0em; + margin-bottom: 0em; + margin-left: 2em; + margin-right: 1em; + text-indent: -1em; +} + + .line1 .translation_flag { + margin-left: -4em; + } + +.line2 { + margin-top: 0em; + margin-bottom: 0em; + margin-left: 3em; + margin-right: 2em; + text-indent: -1em; +} + + .line2 .translation_flag { + margin-left: -5em; + } + + .line2 .linenum { + margin-left: -6.4em; +} + + .line2 .obelus { + margin-left: -5.2em; +} + +.line3 { + margin-top: 0em; + margin-bottom: 0em; + margin-left: 4em; + margin-right: 3em; + text-indent: -1em; +} + + .line3 .translation_flag { + margin-left: -6em; + } + + .line3 .linenum { + margin-left: -7.8em; +} + + .line3 .obelus { + margin-left: -6.2em; +} + +.line4 { + margin-top: 0em; + margin-bottom: 0em; + margin-left: 5em; + margin-right: 4em; + text-indent: -1em; +} + + .line4 .translation_flag { + margin-left: -7em; + } + + .line4 .linenum { + margin-left: -8.5em; +} + + .line4 .obelus { + margin-left: -7.2em; +} + +.line5 { + margin-top: 0em; + margin-bottom: 0em; + margin-left: 6em; + margin-right: 5em; + text-indent: -1em; +} + + .line5 .translation_flag { + margin-left: -8em; + } + + .line5 .linenum { + margin-left: -9.5em; +} + + .line5 .obelus { + margin-left: -8.2em; +} + +.line6 { + margin-top: 0em; + margin-bottom: 0em; + margin-left: 7em; + margin-right: 6em; + text-indent: -1em; +} + + .line6 .translation_flag { + margin-left: -9em; + } + + .line6 .linenum { + margin-left: -10.5em; +} + + .line6 .obelus { + margin-left: -9.2em; +} + +.line7 { + margin-top: 0em; + margin-bottom: 0em; + margin-left: 8em; + margin-right: 7em; + text-indent: -1em; +} + + .line7 .translation_flag { + margin-left: -10em; + } + + .line7 .linenum { + margin-left: -11.5em; +} + + .line7 .obelus { + margin-left: -10.2em; +} + +.line8 { + margin-top: 0em; + margin-bottom: 0em; + margin-left: 9em; + margin-right: 8em; + text-indent: -1em; +} + + .line8 .translation_flag { + margin-left: -11em; + } + + .line8 .linenum { + margin-left: -12.5em; +} + + .line8 .obelus { + margin-left: -11.2em; +} + +.line9 { + margin-top: 0em; + margin-bottom: 0em; + margin-left: 10em; + margin-right: 9em; + text-indent: -1em; +} + + .line9 .translation_flag { + margin-left: -12em; + } + + .line9 .linenum { + margin-left: -13.5em; +} + + .line9 .obelus { + margin-left: -12.2em; +} + +.line10 { + margin-top: 0em; + margin-bottom: 0em; + margin-left: 11em; + margin-right: 10em; + text-indent: -1em; +} + + .line10 .translation_flag { + margin-left: -13em; + } + + .line10 .linenum { + margin-left: -14.5em; +} + + .line10 .obelus { + margin-left: -13.2em; +} + +.startline1 { + margin-top: 1.5em; + margin-bottom: 0em; + margin-left: 2em; + margin-right: 1em; + text-indent: -1em; +} + + .startline1 .translation_flag { + margin-left: -4em; + } + +.startline2 { + margin-top: 1.5em; + margin-bottom: 0em; + margin-left: 3em; + margin-right: 2em; + text-indent: -1em; +} + + .startline2 .translation_flag { + margin-left: -5em; + } + + .startline2 .linenum { + margin-left: -6.5em; +} + + .startline2 .obelus { + margin-left: -5.2em; +} + +.alert { + background-color: #ffff66 ! important; + color: #ff0000 ! important; + font-style: italic; +} + .alert A:link { + font-weight: bold; + color: #0000ff ! important; + } + .alert A:visited { + font-weight: bold; + color: #0000ff ! important; + } + .alert A:hover { + font-weight: bold; + color: #0000ff ! important; + } + .alert A:active { + font-weight: bold; + color: #0000ff ! important; + } + +.apparatus { + font-style: italic; +} + + .apparatus I { + font-style: normal; + font-size: 90%; + } + + .apparatus .Latin { + font-style: normal; + font-size: 95%; + } + + .apparatus .Greek { + font-style: normal; + } + + .apparatus .manuscript { + font-style: normal; + } + +.attention { + color: #ff0000 ! important; + font-style: italic; +} + +.center { + text-align: center; +} + +.crux { + background-color: #ffff66 ! important; + color: #ff0000 ! important; + vertical-align: top; + font-size: 80%; + font-style: normal; +} + .crux A:link { + font-weight: bold; + color: #0000ff ! important; + } + .crux A:visited { + font-weight: bold; + color: #0000ff ! important; + } + .crux A:hover { + font-weight: bold; + color: #0000ff ! important; + } + .crux A:active { + font-weight: bold; + color: #0000ff ! important; + } + + +.disordered_section { + text-align: center; + font-size: 85%; + font-style: italic; + background-color: #ccffff ! important; +} + +/* +syntax: 12 + */ +.stacked_fraction { + display: inline-block; + text-align: center; + font-size: 40%; + padding-left: 4px; +} + +.stacked_fraction .top { + padding-left: 4px; + text-decoration: underline; +} + +.stacked_fraction .bottom { + padding-left: 4px; + line-height: 0.6; + display: block; +} + +/* +syntax: 1/2 + */ +.fraction { + font-size: 60%; + vertical-align: middle; +} + +.fraction .top { + vertical-align: 25%; +} + +.fraction .bottom { + vertical-align: -10%; +} + +.inscription { + font-family: Verdana, sans-serif; + font-size: 80%; + line-height: 1.875; /* normal line height of 1.5 × (100%/80%) */ + -webkit-hyphens: none; + -ms-hyphens: none; + hyphens: none; +} + + .inscription .superscript { + font-size: 50%; + vertical-align: top; + } + +.kaput { + color: #666666 ! important; +} + +.lapis { + font-family: Verdana, sans-serif; + font-size: 80%; + color: #990000 ! important; + line-height: 1.5; +} + + .lapis .superscript { + font-size: 50%; + vertical-align: top; + } + + .lapis .emend { + color: #ee6633 ! important; + } + +.ligature { + color: #006666 ! important; +} + +.manuscript { + color: #000066 ! important; + font-family: Arial, sans-serif; + font-style: normal; + font-weight: bold; + font-size: 75%; +} + +.notice { + color: #003300 ! important; +} + +.offlinks { + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-size: 112%; + font-weight: bold; +} + +.Old_English { + text-transform: none; + font-family: Canterbury, "Cloister Black", Cimbrian, Raubtier, Lancaster, Augusta, Rochester, PaladinFLF, "Kleukens-Fraktur", "Palatino Linotype", Palatino, "Arial Unicode Ms", "Titus Cyberbit Basic", "Lucida Sans Unicode", serif, sans-serif ! important; +} + +.override_link { + color: #99ffff ! important; +} + +.overstrike { + text-decoration: line-through; +} + +.Palatino10 { + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-size: 69%; +} + +.bypass { +/* +same color as: poor_reading + */ + color: #999999 ! important; +} + + .Greek .bypass { + color: #ddc085 ! important; + } + + .Latin .bypass { + color: #999999 ! important; + } + +.poor_reading { +/* +same color as: bypass + */ + color: #999999 ! important; + text-decoration: line-through; +} + + .Greek .poor_reading { + color: #ddc085 ! important; + } + + .Latin .poor_reading { + color: #999999 ! important; + } + +.Roman { + color: #ff40c5 ! important; +} + +.site_summary { + font-family: sans-serif; + font-weight: normal; + font-size: 56%; +} + +.source { + color: #006600 ! important; +} + + .source .emend { + color: #119955 ! important; + } + + .source .Italian { + color: #002200 ! important; + } + + .source .source { + color: #002200 ! important; + } + +.Spanish { + color: #778800 ! important; +} + + .Spanish .emend { + color: #119955 ! important; + } + + .Spanish .source { + color: #002200 ! important; + } + +.superheading { + margin-top: 5em; + font-weight: bold; + text-transform: uppercase; + color: #009900 ! important; +} + +.two_links { +/* +for format, see +E/Gazetteer/Places/America/United_States/_Topics/history/_Texts/LESUSC/Bibliography*.html + */ + background-color: #f5d6e9 !important; + border-radius: 10% !important; + padding-top: 3px !important; + padding-bottom: 1px !important; + padding-left: 5px !important; + padding-right: 5px !important; + display: inline; + overflow: hidden; + white-space: nowrap; + + color: #00ff00 !important; + font-size: .6rem !important; + vertical-align: 1px; +} + .two_links A:link { + font-weight: bold; + color: #0000ff ! important; + } + .two_links A:visited { + font-weight: bold; + color: #ff0000 ! important; + } + .two_links A:hover { + font-weight: bold; + color: #ff00ff ! important; + } + +.whole { + -webkit-hyphens: none; + -ms-hyphens: none; + hyphens: none; +} + +.xURL { + font-family: Monaco, Consolas; +} + +.disclaimer_bar { + margin-top: 0em; + margin-bottom: 0em; + font-family: Verdana, Ariel, Helvetica, sans-serif; + font-size: 60%; + text-align: center; + background-color: #000000 ! important; + color: #ffff33 ! important; +} + + .disclaimer_bar P { + margin-top: 0em; + margin-bottom: 0em; + } + +.help_bar { + margin-top: 0em; + margin-bottom: 0em; + font-family: Verdana, Ariel, Helvetica, sans-serif; + font-size: 60%; + text-align: center; + background-color: #478acc ! important; + color: #ffffff ! important; +} + + .help_bar P { + margin-bottom: 1.5em; + } + + .help_bar A:link { + color: #ffff00 ! important; + font-style: italic; + font-weight: bold; + } + + .help_bar A:visited { + color: #ff6600 ! important; + font-style: italic; + font-weight: bold; + } + + .help_bar I { + line-height: .6; + font-size: 120%; + font-style: normal; + font-weight: bold; + color: #ff99cc ! important; + } + + .help_bar .asterisk { + line-height: .7; + font-size: 140%; + font-style: normal; + font-weight: bold; + color: #ff99cc ! important; + vertical-align: bottom; + } + +.high_alert { + background-color: #ffff33 ! important; + color: #ff0000 ! important; +} + +.left { + text-align: left; +} + +.right { + text-align: right; +} + +.a0 { + margin-bottom: 0em; +} + +.a1 { + margin-bottom: 1em; +} + +.a2 { + margin-bottom: 5em; +} + +.reduced_leading { + margin-top: -.7em; +} + +/* Jun 2017: used only in HALAHS */ +.strip { + margin-bottom: .3em; +} + +.b0 { + margin-top: 0em; +} + +.b1 { + margin-top: 1em; +} + +.nudge { + margin-top: 0.25em; +} + +.halfstart { + margin-top: 1.5em; +} + +.minirubric { + margin-top: 1.85em; +} + +.start { + margin-top: 3em; +} + +.start2 { + margin-top: 5em; +} + +.start3 { + margin-top: 7em; +} + +.halfafter { + margin-bottom: 1.5em; +} + +.after { + margin-bottom: 3em; +} + +.after2 { + margin-bottom: 5em; +} + +.after3 { + margin-bottom: 7em; +} + +.drop5 { + margin-top: 5px; +} + +.critical_note { + text-align: justify; + font-style: italic; +} + + .critical_note I { + font-style: normal; /*(don't italicize)*/ + } + + .critical_note .Latin { + font-style: normal; + color: #990000 ! important; + } + + .critical_note .Greek { + font-style: normal; + } + + .critical_note .manuscript { + font-style: normal; + } + +A.left_margin_ref { + position: absolute; + top: auto; + left: +6em; + text-align: right; + font-family: Verdana, sans-serif; + font-style: normal; + font-size: .58rem; + font-weight: bold; + text-transform: none; + color: #0000ff ! important; + vertical-align: super; +} +A.left_margin_ref:link { + text-decoration: none; + color: #0077cc ! important; +} +A.left_margin_ref:visited { + text-decoration: none; + color: #ff0000 ! important; +} +A.left_margin_ref:hover { + text-decoration: none; + color: #ff0000 ! important; + background-color: #ffff00 ! important; +} + +.running_title { + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + position: absolute; + top: auto; + width: 90px; + left: +65px; + text-align: center; + font-style: normal; + font-weight: normal; + text-transform: none; + font-variant: normal; + font-size: 15px; + line-height: 1.2; +} + +.my_running_title { + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + position: absolute; + top: auto; + width: 90px; + left: +65px; + text-align: center; + font-size: .60rem; + font-style: italic; + font-weight: normal; + text-transform: none; + font-variant: normal; + line-height: 1.4; + +/* + color matches .emend + */ + +/* +Inside the style, open with a command-space in style "larger", like this: +  +which drops the title down for appearance + */ +} + +.scribal_heading { + margin-top: 3.5em; + margin-left: 3em; + text-indent: -3em; + text-align: justify; + font-size: 90%; + font-style: italic; +} + +.i1 { + text-indent: 1em; +} + +.i1 .running_title { + text-indent: 0; +} + +.i2 { + text-indent: 2em; +} + +.i3 { + text-indent: 3em; +} + +.i4 { + text-indent: 4em; +} + +.i5 { + text-indent: 5em; +} + +.i6 { + text-indent: 6em; +} + +.i7 { + text-indent: 7em; +} + +.i8 { + text-indent: 8em; +} + +.i9 { + text-indent: 9em; +} + +.i10 { + text-indent: 10em; +} + +.i11 { + text-indent: 11em; +} + +.i12 { + text-indent: 12em; +} + +.i13 { + text-indent: 13em; +} + +.i14 { + text-indent: 14em; +} + +.i15 { + text-indent: 15em; +} + +.i16 { + text-indent: 16em; +} + +.i17 { + text-indent: 17em; +} + +.i18 { + text-indent: 18em; +} + +.justify { + text-align: justify; +} + +.justified { + text-align: justify; +} + +.L1 { + margin-left: 1em; +} + +.L2 { + margin-left: 2em; +} + +.L3 { + margin-left: 3em; +} + +.L4 { + margin-left: 4em; +} + +.L5 { + margin-left: 5em; +} + +.L6 { + margin-left: 6em; +} + +.L7 { + margin-left: 7em; +} + +.L8 { + margin-left: 8em; +} + +.L9 { + margin-left: 9em; +} + +.L10 { + margin-left: 10em; +} + +.L11 { + margin-left: 11em; +} + +.L12 { + margin-left: 12em; +} + +.L13 { + margin-left: 13em; +} + +.L14 { + margin-left: 14em; +} + +.L15 { + margin-left: 15em; +} + +.L16 { + margin-left: 16em; +} + +.L17 { + margin-left: 17em; +} + +.L18 { + margin-left: 18em; +} + +.L19 { + margin-left: 19em; +} + +.L20 { + margin-left: 20em; +} + +.r1 { + margin-right: 1em; + text-align: right; +} + +.r2 { + margin-right: 2em; + text-align: right; +} + +.r3 { + margin-right: 3em; + text-align: right; +} + +.r4 { + margin-right: 4em; + text-align: right; +} + +.r5 { + margin-right: 5em; + text-align: right; +} + +.r6 { + margin-right: 6em; + text-align: right; +} + +.r7 { + margin-right: 7em; + text-align: right; +} + +.r8 { + margin-right: 8em; + text-align: right; +} + +.r9 { + margin-right: 9em; + text-align: right; +} + +.r10 { + margin-right: 10em; + text-align: right; +} + +.r11 { + margin-right: 11em; + text-align: right; +} + +.r12 { + margin-right: 12em; + text-align: right; +} + +.r13 { + margin-right: 13em; + text-align: right; +} + +.r14 { + margin-right: 14em; + text-align: right; +} + +.r15 { + margin-right: 15em; + text-align: right; +} + +.r16 { + margin-right: 16em; + text-align: right; +} + +.r17 { + margin-right: 17em; + text-align: right; +} + +.r18 { + margin-right: 18em; + text-align: right; +} + +.r19 { + margin-right: 19em; + text-align: right; +} + +.r20 { + margin-right: 20em; + text-align: right; +} + +.pushright1j { + margin-left: 1em; + text-align: justify; +} + +.pushright2j { + margin-left: 2em; + text-align: justify; +} + +.pushright3j { + margin-left: 3em; + text-align: justify; +} + +.pushright4j { + margin-left: 4em; + text-align: justify; +} + +.pushright5j { + margin-left: 5em; + text-align: justify; +} + +.pushright6j { + margin-left: 6em; + text-align: justify; +} + +.pushright7j { + margin-left: 7em; + text-align: justify; +} + +.pushright8j { + margin-left: 8em; + text-align: justify; +} + +.m1 { + margin-left: 1em; + margin-right: 1em; +} + +.b0m1j { +/* used for "b0 m1 justify" inside overLib boxes where quotes can't be used, as in the signatures of Britannica articles. +The other workaround is to use quotes, calling them " */ + margin-top: 0em; + margin-left: 1em; + margin-right: 1em; + text-align: justify; +} + +.m2 { + margin-left: 2em; + margin-right: 2em; +} + +.m3 { + margin-left: 3em; + margin-right: 3em; +} + +.m4 { + margin-left: 4em; + margin-right: 4em; +} + +.m5 { + margin-left: 5em; + margin-right: 5em; +} + +.m6 { + margin-left: 6em; + margin-right: 6em; +} + +.m7 { + margin-left: 7em; + margin-right: 7em; +} + +.m8 { + margin-left: 8em; + margin-right: 8em; +} + +.m9 { + margin-left: 9em; + margin-right: 9em; +} + +.m10 { + margin-left: 10em; + margin-right: 10em; +} + +.m11 { + margin-left: 11em; + margin-right: 11em; +} + +.m12 { + margin-left: 12em; + margin-right: 12em; +} + +.m13 { + margin-left: 13em; + margin-right: 13em; +} + +.m14 { + margin-left: 14em; + margin-right: 14em; +} + +.m15 { + margin-left: 15em; + margin-right: 15em; +} + +.m16 { + margin-left: 16em; + margin-right: 16em; +} + +.m17 { + margin-left: 17em; + margin-right: 17em; +} + +.m18 { + margin-left: 18em; + margin-right: 18em; +} + +.m19 { + margin-left: 19em; + margin-right: 19em; +} + +.m20 { + margin-left: 20em; + margin-right: 20em; +} + +.x1 { + margin-left: 1em; + text-indent: -1em; +} + +.x2 { + margin-left: 2em; + text-indent: -2em; +} + +.x3 { + margin-left: 3em; + text-indent: -3em; +} + +.x4 { + margin-left: 4em; + text-indent: -4em; +} + +.x5 { + margin-left: 5em; + text-indent: -5em; +} + +.x6 { + margin-left: 6em; + text-indent: -6em; +} + +.x7 { + margin-left: 7em; + text-indent: -7em; +} + +.x8 { + margin-left: 8em; + text-indent: -8em; +} + +.x9 { + margin-left: 9em; + text-indent: -9em; +} + +.x10 { + margin-left: 10em; + text-indent: -10em; +} + +.m1x1 { + margin-left: 2em; + margin-right: 1em; + text-indent: -1em; +} + +.m1x2 { + margin-left: 3em; + margin-right: 1em; + text-indent: -2em; +} + +.m1x3 { + margin-left: 4em; + margin-right: 1em; + text-indent: -3em; +} + +.m1x4 { + margin-left: 5em; + margin-right: 1em; + text-indent: -4em; +} + +.m1x5 { + margin-left: 6em; + margin-right: 1em; + text-indent: -5em; +} + +.m1x6 { + margin-left: 7em; + margin-right: 1em; + text-indent: -6em; +} + +.m1x7 { + margin-left: 8em; + margin-right: 1em; + text-indent: -7em; +} + +.m1x8 { + margin-left: 8em; + margin-right: 1em; + text-indent: -9em; +} + +.m2x1 { + margin-left: 3em; + margin-right: 2em; + text-indent: -1em; +} + +.m2x2 { + margin-left: 4em; + margin-right: 2em; + text-indent: -2em; +} + +.m2x3 { + margin-left: 5em; + margin-right: 2em; + text-indent: -3em; +} + +.m2x4 { + margin-left: 6em; + margin-right: 2em; + text-indent: -4em; +} + +.m3x1 { + margin-left: 4em; + margin-right: 2em; + text-indent: -1em; +} + +.m3x2 { + margin-left: 5em; + margin-right: 2em; + text-indent: -2em; +} + +.m3x3 { + margin-left: 6em; + margin-right: 2em; + text-indent: -3em; +} + +.m3x4 { + margin-left: 7em; + margin-right: 2em; + text-indent: -4em; +} + +.m4x1 { + margin-left: 5em; + margin-right: 2em; + text-indent: -1em; +} + +.m4x2 { + margin-left: 6em; + margin-right: 2em; + text-indent: -2em; +} + +.m4x3 { + margin-left: 7em; + margin-right: 2em; + text-indent: -3em; +} + +.m4x4 { + margin-left: 8em; + margin-right: 2em; + text-indent: -4em; +} + +.m5x1 { + margin-left: 6em; + margin-right: 2em; + text-indent: -1em; +} + +.m5x2 { + margin-left: 7em; + margin-right: 2em; + text-indent: -2em; +} + +.m5x3 { + margin-left: 8em; + margin-right: 2em; + text-indent: -3em; +} + +.m6x1 { + margin-left: 7em; + margin-right: 2em; + text-indent: -1em; +} + +.m6x2 { + margin-left: 8em; + margin-right: 2em; + text-indent: -2em; +} + +.m6x3 { + margin-left: 9em; + margin-right: 2em; + text-indent: -3em; +} + +.m7x1 { + margin-left: 8em; + margin-right: 2em; + text-indent: -1em; +} + +.m7x2 { + margin-left: 9em; + margin-right: 2em; + text-indent: -2em; +} + +.m7x3 { + margin-left: 10em; + margin-right: 2em; + text-indent: -3em; +} + +.m8x1 { + margin-left: 9em; + margin-right: 2em; + text-indent: -1em; +} + +.m8x2 { + margin-left: 10em; + margin-right: 2em; + text-indent: -2em; +} + +.m8x3 { + margin-left: 11em; + margin-right: 2em; + text-indent: -3em; +} + +.m9x1 { + margin-left: 10em; + margin-right: 2em; + text-indent: -1em; +} + +.m9x2 { + margin-left: 11em; + margin-right: 2em; + text-indent: -2em; +} + +.m9x3 { + margin-left: 12em; + margin-right: 2em; + text-indent: -3em; +} + +.m10x1 { + margin-left: 11em; + margin-right: 2em; + text-indent: -1em; +} + +.m10x2 { + margin-left: 12em; + margin-right: 2em; + text-indent: -2em; +} + +.m10x3 { + margin-left: 13em; + margin-right: 2em; + text-indent: -3em; +} + +.m11x1 { + margin-left: 12em; + margin-right: 2em; + text-indent: -1em; +} + +.m11x2 { + margin-left: 13em; + margin-right: 2em; + text-indent: -2em; +} + +.m11x3 { + margin-left: 14em; + margin-right: 2em; + text-indent: -3em; +} + +.m12x1 { + margin-left: 13em; + margin-right: 2em; + text-indent: -1em; +} + +.m12x2 { + margin-left: 14em; + margin-right: 2em; + text-indent: -2em; +} + +.m12x3 { + margin-left: 15em; + margin-right: 2em; + text-indent: -3em; +} + +.m13x1 { + margin-left: 14em; + margin-right: 2em; + text-indent: -1em; +} + +.m13x2 { + margin-left: 15em; + margin-right: 2em; + text-indent: -2em; +} + +.m13x3 { + margin-left: 16em; + margin-right: 2em; + text-indent: -3em; +} + +.m14x1 { + margin-left: 15em; + margin-right: 2em; + text-indent: -1em; +} + +.m14x2 { + margin-left: 16em; + margin-right: 2em; + text-indent: -2em; +} + +.m14x3 { + margin-left: 17em; + margin-right: 2em; + text-indent: -3em; +} + +.m15x1 { + margin-left: 16em; + margin-right: 2em; + text-indent: -1em; +} + +.m15x2 { + margin-left: 17em; + margin-right: 2em; + text-indent: -2em; +} + +.m15x3 { + margin-left: 18em; + margin-right: 2em; + text-indent: -3em; +} + +.linenum0 { + font-size: 70%; + font-family: Verdana, Ariel, Helvetica, sans-serif; +} + +.linenum { + position: absolute; + top: auto; + margin-left: -5em; + margin-bottom: 0em; + margin-top: .1em; + height: 0em; + width: 3em; + font-size: .70rem; + font-family: Verdana, Ariel, Helvetica, sans-serif; + text-align: right; +} + +.verse1 { + margin-top: 0em; + margin-bottom: 0em; + margin-left: 2em; + text-indent: -2em; +} + +.verse2 { + margin-top: 0em; + margin-bottom: 0em; + margin-left: 4em; + text-indent: -2em; +} + +.verse3 { + margin-top: 0em; + margin-bottom: 0em; + margin-left: 6em; + text-indent: -2em; +} + +.verse4 { + margin-top: 0em; + margin-bottom: 0em; + margin-left: 8em; + text-indent: -2em; +} + +.verse5 { + margin-top: 0em; + margin-bottom: 0em; + margin-left: 10em; + text-indent: -2em; +} + +.verse6 { + margin-top: 0em; + margin-bottom: 0em; + margin-left: 12em; + text-indent: -2em; +} + +.verse7 { + margin-top: 0em; + margin-bottom: 0em; + margin-left: 14em; + text-indent: -2em; +} + +.verse8 { + margin-top: 0em; + margin-bottom: 0em; + margin-left: 16em; + text-indent: -2em; +} + +.verse9 { + margin-top: 0em; + margin-bottom: 0em; + margin-left: 18em; + text-indent: -2em; +} + +.verse10 { + margin-top: 0em; + margin-bottom: 0em; + margin-left: 20em; + text-indent: -2em; +} + +.verse11 { + margin-top: 0em; + margin-bottom: 0em; + margin-left: 22em; + text-indent: -2em; +} + +.verse12 { + margin-top: 0em; + margin-bottom: 0em; + margin-left: 24em; + text-indent: -2em; +} + +.bland { + color: #000066 ! important; +} + + .mynote .bland { + color: #000066 ! important; + } + +.bland I { + color: #000066 ! important; +} + +.bland A I { + color: #ff0000 ! important; +} + +.blank { + border-bottom: 1px solid; + white-space:pre; +} + +.blank1 { + width: 20px; + height: 15px; + border-bottom: 1px solid; + white-space:pre; +} + +.blank2 { + width: 50px; + height: 15px; + border-bottom: 1px solid; + white-space:pre; +} + +.empty { + white-space:pre; +} + +.caps { + text-transform: uppercase; +} + +.lowcaps { + font-size: 85%; + text-transform: uppercase; +} + .prose .lowcaps { + word-spacing: 5px; + } + +.lowercase { + text-transform: lowercase; +} + +.no_transform { + text-transform: none; +} + +.telegram { + font-family: Verdana, sans-serif; + font-size: 80%; + line-height: 1.875; /* normal line-height (1.5) divided by font-size 80%: this keeps the line spacing even */ + text-transform: uppercase; +} + .telegram .outquote { + text-transform: none; + } + +.constrained { + line-height: 100%; +} + +.constrained110 { + line-height: 110%; +} + +.constrained90 { + line-height: 90%; +} + +.constrained80 { + line-height: 80%; +} + +.bold { + font-weight: bold; +} + +.italic { + font-style: italic; +} + + .italic I { + font-style: normal; + font-size: 90%; + } + +.normal { + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-size: 100%; + font-style: normal; + font-weight: normal; + text-transform: none; + font-variant: normal; +} + +.thin { + font-weight: normal; +} + +.usual { + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; +} + +.exergue { + margin-top: 6em; + margin-bottom: 3em; + margin-left: 200px; + font-size: 85%; + text-align: justify; +} + +.exergue_left { + margin-top: 6em; + margin-bottom: 3em; + margin-right: 300px; + font-size: 85%; + text-align: justify; +} + +.synopsis { + margin-top: -1.5em; + margin-bottom: 3em; + font-size: 85%; + font-style: italic; + text-align: justify; +} + +/* After the signature block, insert

: See +E/Gazetteer/People/Holden_Evans/Fight_for_a_Better_Navy/2/8*.html#signature_block_example + */ +.signature_block { + float: right; +/* + margin-right: 0px; + */ +} + +.no_float { + clear: both; +} + +.signature_nonce { /* used on only 2 pages */ + position: absolute; + width: 20em; + right: +7em; +} + +/*the "pagenum" styles are linked to the style "poppy"*/ +.pagenum { + position: absolute; +/* +It is positioned relative to the ancestor block, so for style "verse/exquotemark" it requires "PAGENUM WORKAROUND", below. +*/ + top: auto; + right: +1.5em; + width: 70px; + text-align: right; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-style: normal; + font-weight: normal; + text-transform: none; + font-variant: normal; + letter-spacing: normal; + font-size: small; + color: #ff3300 ! important; +} + + .pagenum .Latin { + color: #990000 ! important; + } + + +/* +"pagenum_right" is identical with "pagenum"; Cullum's "pagenum" defaults to LEFT +*/ +.pagenum_right { + position: absolute; + top: auto; + right: +1.5em; + text-align: right; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-style: normal; + font-weight: normal; + text-transform: none; + font-variant: normal; + font-size: small; + color: #ff3300 ! important; +} + +.pagenum_left { + position: absolute; + top: auto; + left: +4.5em; + text-align: left; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-style: normal; + font-weight: normal; + text-transform: none; + font-variant: normal; + font-size: small; + color: #ff3300 ! important; +} + +.i1 .pagenum_left { + left: +3.5em; +} + +.pagenum1 { + position: absolute; + top: auto; + right: +1.5em; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-style: italic; + font-weight: normal; + text-transform: none; + font-variant: normal; + font-size: small; + color: #ff3300 ! important; +} + +.pagenumPassed { + position: absolute; + top: auto; + right: +1.5em; + width: 70px; + text-align: right; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-style: normal; + font-weight: normal; + text-transform: none; + font-variant: normal; + font-size: .75rem; + color: #ff3300 ! important; +} + +/*the color of "poppy" style should be the same as that of the main "pagenum" styles*/ +.poppy { + color: #ff3300 ! important; +} + +.pagenum_doc { + position: absolute; + top: auto; + left: +1.5em; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-style: italic; + font-weight: normal; + text-transform: none; + font-variant: normal; + font-size: .81rem; + color: #ff6666 ! important; +} + +.blankpage { + position: absolute; + top: auto; + right: +1.5em; + width: 120px; + text-align: right; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-size: 60%; + font-style: normal; + font-weight: normal; + text-transform: none; + font-variant: normal; + letter-spacing: normal; + font-size: small; + color: #ff3300 ! important; +} + +.versenum { + position: absolute; + top: auto; + right: 25%; + text-align: right; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-style: normal; + font-variant: normal; + font-size: .70rem; + text-transform: none; + font-weight: normal; + letter-spacing: normal; + color: #bf0000 ! important; +} + +.sourceverse { + line-height: 1.5; + margin-left: 2em; + margin-right: 2em; +} + +.sourceverse P { + margin-top: 0em; + margin-bottom: 0em; + margin-left: 3em; + margin-right: 3em; + text-indent: -3em; +} + +.sourceverse P.i1 { + margin-left: 4em; +} + +.question { + margin-top: 2em; + text-align: justify; + font-style: italic; +} + +.answer { + text-align: justify; + margin-left: 3em; +} + +.searchand { + color: #006600 ! important; + font-weight: bold; +} + +.searchandGreek { + font-family: "Lucida Grande", "Palatino Linotype", "Arial Unicode Ms", "Titus Cyberbit Basic", "Lucida Sans Unicode", sans-serif ! important; + color: #996600 ! important; + font-weight: bold; +} + +.searchandLatin { + color: #990000 ! important; + font-weight: bold; +} + +.citation { + font-family: Verdana, sans-serif; + font-size: 75%; + font-variant: normal; +} + +.editor { + color: #000066 ! important; + font-family: Arial, sans-serif; + font-style: normal; + font-weight: bold; + font-size: 75%; + font-variant: small-caps; +} + +.editor_comment { + color: #000066 ! important; + font-family: Arial, sans-serif; + font-style: italic; +} + +.error { + color: #ff0000 ! important; + font-weight: bold; +} + +.entry { + font-weight: bold; + font-variant: small-caps; +} + +P.excerptor { + margin-top:-1.3em; + margin-bottom:2em; + text-align: right; + font-size: 75%; +} + +/* keep LVHA order: */ +/* A:link, A:visited, A:hover, A:active */ +A.fort:link { + color: #5555cc !important; + border-bottom: dotted #ffff99; +} + +A.fort:visited { + color: #CC4400 !important; + border-bottom: dotted #edddcc; +} + .mynote A.fort:visited { + color: #990000 ! important; + border-bottom: dotted #990000; + } + .mynoteWide A.fort:visited { + color: #990000 ! important; + border-bottom: dotted #990000; + } + +A.fort:hover { + color: #edddcc !important; + border-bottom: dotted #edddcc; +} + .mynote A.fort:hover { + color: #edddcc ! important; + border-bottom: dotted #edddcc; + } + .mynoteWide A.fort:hover { + color: #edddcc ! important; + border-bottom: dotted #edddcc; + } + +A.fort:active { + color: #edddcc !important; + border-bottom: dotted #edddcc; +} + .mynote A.fort:active { + color: #edddcc ! important; + border-bottom: dotted #edddcc; + } + .mynoteWide A.fort:active { + color: #edddcc ! important; + border-bottom: dotted #edddcc; + } + +.Greek_entry { + font-family: "Avdira", "Titus Cyberbit Basic", serif ! important; + font-weight: bold; +} + +.entry0 { +/* used only in NEW */ + text-align: justify; + font-size: 120%; + font-weight: bold; +} + + .entry0 .start { +/* THIS DOESN'T WORK. "start" only works because the style is defined elsewhere, as I can see if I rename it. Renaming "entry0" to something without the terminal number doesn't help. The CSS checked out at W3C. + + THIS IS WHY I HAVE THE STYLE "entry00", which does work. +*/ + color: #339900 ! important; + margin-top: 3em; + } + +.entry00 { +/* used only in NEW */ + text-align: justify; + font-size: 120%; + font-weight: bold; + color: #339900 ! important; + margin-top: 3em; +} + .entry00 A { + color: #00FF00 ! important; /* THIS DOESN'T WORK. */ + } + +.entry1 { + color: #cc6633 ! important; + font-weight: bold; + font-family: Verdana, Ariel, Helvetica, sans-serif; +} + +.goof { + color: #ff0000 ! important; + font-weight: bold; +} + +.nocaps { + font-variant: normal; +} + +.railroad_symbol { + color: #990000 ! important; + font-family: Arial, sans-serif; + font-style: normal; + font-weight: bold; +} + +.smallcaps { + font-variant: small-caps; +} + +.larger .smallcaps { + font-variant: normal; + text-transform: uppercase; +} + +.prose .smallcaps { + font-family: Fontin_Sans_SC, sans-serif; + letter-spacing: .06em; +/* FOR DEBUG, TOGGLE THE NEXT LINE ON/OFF: */ + +/* color: #ff6600 ! important; */ +} + +/* used rather little so far: see for example +E/Gazetteer/Places/Europe/Italy/Umbria/Terni/Acquasparta/Acquasparta/home.html*/ +.gazetteer_link { + font-variant: small-caps; +} + +.WebRef { + font-family: Verdana, sans-serif; + font-size: 90%; + color: #ff6600 ! important; +} + +/* keep LVHA order: */ +/* A:link, A:visited, A:hover, A:active */ +A:link { + color: #0000ff ! important; +} +/* + A:link I { + color: #0000ff ! important; + } + */ + + A:link IMG { + border-width: 1px; + } + +A:visited { + color: #cc0000 ! important; +} + +A:hover { + color: #ff00ff ! important; +} + +A:active { + color: #ff00ff ! important; +} + +A:link IMG.alias0 { + border-width: 1px; + border-style: dotted; + width: 279px; + height: 186px; + margin: 5px; +} + +A:link IMG.alias1 { + border-width: 1px; + border-style: solid; + width: 279px; + height: 186px; + margin: 5px; +} + +A:link IMG.alias2 { + border-width: 2px; + border-style: solid; + width: 279px; + height: 186px; + margin: 4px; +} + +A:link IMG.alias4 { + border-width: 4px; + border-style: solid; + width: 279px; + height: 186px; + margin: 2px; +} + +A:link IMG.icon0 { + border-width: 1px; + border-style: dotted; + width: 132px; + height: 88px; + margin-top: 10px; + margin-bottom: 5px; + margin-left: 5px; + margin-right: 5px; +} + +A:link IMG.icon1 { + border-width: 1px; + border-style: solid; + width: 132px; + height: 88px; + margin-top: 10px; + margin-bottom: 5px; + margin-left: 5px; + margin-right: 5px; +} + +A:link IMG.icon2 { + border-width: 2px; + border-style: solid; + width: 132px; + height: 88px; + margin-top: 11px; + margin-bottom: 4px; + margin-left: 4px; + margin-right: 4px; +} + +A:link IMG.icon4 { + border-width: 4px; + border-style: solid; + width: 132px; + height: 88px; + margin-top: 13px; + margin-bottom: 2px; + margin-left: 2px; + margin-right: 2px; +} + +A:link IMG.rubric0 { + border-width: 1px; + border-style: dotted; + width: 132px; + height: 88px; + margin-left: 15px; + margin-right: 15px; +} + +A:link IMG.rubric1 { + border-width: 1px; + border-style: solid; + width: 132px; + height: 88px; + margin-left: 15px; + margin-right: 15px; +} + +A:link IMG.rubric2 { + border-width: 2px; + border-style: solid; + width: 132px; + height: 88px; + margin-left: 14px; + margin-right: 14px; +} + +A:link IMG.rubric4 { + border-width: 4px; + border-style: solid; + width: 132px; + height: 88px; + margin-left: 12px; + margin-right: 12px; +} + +A:link IMG.minirubric1 { + border-width: 1px; + border-style: solid; + width: 60px; + height: 40px; + margin-left: 87px; + margin-right: 15px; +} + +A:link IMG.minirubric2 { + border-width: 2px; + border-style: solid; + width: 60px; + height: 40px; + margin-left: 86px; + margin-right: 14px; +} + +A:link IMG.minirubric4 { + border-width: 4px; + border-style: solid; + width: 60px; + height: 40px; + margin-left: 84px; + margin-right: 12px; +} + +A:link IMG.thumb0 { + border-width: 1px; + border-style: dotted; + width: 60px; + height: 40px; + margin-top: 5px; + margin-bottom: 5px; +} + +A:link IMG.thumb1 { + border-width: 1px; + border-style: solid; + width: 60px; + height: 40px; + margin-top: 5px; + margin-bottom: 5px; +} + +A:link IMG.thumb2 { + border-width: 2px; + border-style: solid; + width: 60px; + height: 40px; + margin-top: 4px; + margin-bottom: 4px; +} + +A:link IMG.thumb4 { + border-width: 4px; + border-style: solid; + width: 60px; + height: 40px; + margin-top: 2px; + margin-bottom: 2px; +} + +A.help:hover { + text-decoration: none; + color: #0000ff ! important; + cursor: help; +} + +.added_link { + font-size: 80%; + font-weight: bold; + text-decoration: none; + font-style: italic; + color: #666666 ! important; +} + + .added_link A:link { + color: #5555ff ! important; + } + +A.added_link { + color: #ff6666 ! important; +} + +A.added_link:link { + color: #5555ff ! important; +} + + A .manuscript { + color: #0000ff ! important; +} + + A:hover .manuscript { + color: #ff00ff ! important; +} + +BODY.default A.Cullum { + color: #998500 ! important; + background-color: transparent ! important; /*must match BODY*/ +} + +A.Cullum { + color: #ffdd00 ! important; + background-color: transparent ! important; /*must match BODY*/ + -webkit-hyphens: none; + -ms-hyphens: none; + hyphens: none; /* their names are not to be hyphenated */ +} + + A.Cullum .normal { + color: #0000ff ! important; +} + A.Cullum .emend { + color: #fff199 ! important; +} + A.Cullum .keep { + display: inline; + white-space: nowrap; +} + +A.discreet { + color: #5555cc ! important; +} + + A.discreet:visited { + text-decoration: none; + color: #cc5555 ! important; + } + + A.discreet:hover { + text-decoration: none; + color: #cc55cc ! important; + } + +A:link SPAN.discreet { + color: #7777cc ! important; +} + +A:visited SPAN.discreet { + text-decoration: none; + color: #cc7777 ! important; +} + +A:hover SPAN.discreet { + text-decoration: none; + color: #cc77cc ! important; +} + +A.quiet { + color: inherit ! important; +} + +A.quiet:hover { + text-decoration: none; + color: #0077cc ! important; + background-color: #ffff00 ! important; +} + +.offsite_link { + text-decoration: none; + font-style: italic; + color: #0000ff ! important; +} + +A.offsite_link { + font-weight: bold; + text-decoration: none; + font-style: italic; + color: #0000ff ! important; +} + +A.offsite_link:link { + color: #0000ff ! important; +} + +A.sec { + font-family: "Palatino Linotype", Palatino, "Arial Unicode Ms", "Titus Cyberbit Basic", "Lucida Sans Unicode", serif ! important; + font-size: 70%; + text-transform: none; + font-weight: normal; + color: #bf0000 ! important; + vertical-align: 10%; +} + +A.sec_for_proofing { + font-family: "Palatino Linotype", Palatino, "Arial Unicode Ms", "Titus Cyberbit Basic", "Lucida Sans Unicode", serif ! important; + font-size: 200%; + text-transform: none; + font-weight: normal; + color: #00aa00 ! important; + vertical-align: 10%; +} + +A/* keep the space that follows*/ .Latin { + color: #0066cc ! important; +} + +A:hover/* keep the space that follows*/ .Latin { + color: #ff00ff ! important; +} + +A/* keep the space that follows*/ .Greek { + color: #0066cc ! important; +} + +A:hover/* keep the space that follows*/ .Greek { + color: #ff00ff ! important; +} + +A.chapter { + font-size: 1.3em; + color: #bf0000 ! important; + text-decoration: none; + font-style: normal; + line-height: .5; +} + +A.GridRef:link { + font-family: Verdana, sans-serif; + color: #ff6600 ! important; +} + +A.GridRef:visited { + font-family: Verdana, sans-serif; + color: #cc0000 ! important; +} + +A.GridRef:hover { + font-family: Verdana, sans-serif; + color: #ff00ff ! important; +} + +A.GridRef:active { + font-family: Verdana, sans-serif; + color: #ff00ff ! important; +} + +A.Britannica_signature { + cursor: crosshair; + font-weight: normal; + color: #0000ff ! important; + vertical-align: top; +} + + A.Britannica_signature:link { + text-decoration: none; + color: #0000ff ! important; + } + +A.comment { + cursor: crosshair; + font-family: Verdana, sans-serif; + font-size: 53%; + font-style: normal; + font-weight: normal; + color: #0000ff ! important; + vertical-align: top; +} + + A.comment:link { + text-decoration: none; + color: #0000ff ! important; + } + + A.comment .center { + margin-top: 0em; + margin-bottom: 0em; + } + + A.comment SPAN.source { + font-weight: bold; + color: #006600! important; + } + +SPAN.promptsource { + font-weight: bold; + color: #009900 ! important; +} + +.correction { + cursor: crosshair; + font-family: Verdana, sans-serif; + font-size: 53%; + font-style: normal; + font-weight: normal; + color: #ff0000 ! important; + vertical-align: top; +} + + A.correction:link { + text-decoration: none; + color: #ff0000 ! important; + } + +SPAN.conversion { + color: #0099ff ! important; +} + +.white A.conversion { + color: #00ccff ! important; + vertical-align: super; + line-height: .3; +} + +.white .outquote { + color: #8533ad ! important; +} + +A.conversion { + cursor: crosshair; + font-family: Verdana, sans-serif; + font-size: 100%; + font-weight: normal; + color: #0099ff ! important; + vertical-align: super; + line-height: .3; +} + + A.conversion:link { + text-decoration: none; + color: #0099ff ! important; + } + +A.glossary { + cursor: crosshair; + font-family: Verdana, sans-serif; + font-size: 100%; + font-weight: normal; + color: #ff3366 ! important; + vertical-align: super; + line-height: .3; +} + +A.glossary:link { + text-decoration: none; + color: #ff3366 ! important; +} + +A.offpage { + font-size: 100%; + font-weight: normal; + color: #009900 ! important; + vertical-align: super; + line-height: .3; +} + +A.offpage:link { + text-decoration: none; + color: #009900 ! important; +} + +A.note { + font-family: Verdana, sans-serif; + font-style: normal; + font-size: 58%; + font-weight: bold; + text-transform: none; + color: #0000ff ! important; + vertical-align: super; +} +A.note:link { + text-decoration: none; + color: #0077cc ! important; +} +A.note:visited { + text-decoration: none; + color: #ff0000 ! important; +} +A.note:hover { + font-size: 81%; + text-decoration: none; + color: #ff0000 ! important; + background-color: #ffff00 ! important; +} + + A.note .Greek { + font-family: "Avdira", "Titus Cyberbit Basic", serif ! important; + color: #ff0000 ! important; + } + +A.guest_note { + font-family: "Avdira", "Titus Cyberbit Basic", serif ! important; + font-style: normal; + font-size: 58%; + font-weight: bold; + text-transform: none; + color: #0000ff ! important; + vertical-align: super; +} +A.guest_note:link { + text-decoration: none; + color: #0077cc ! important; +} +A.guest_note:visited { + text-decoration: none; + color: #ff0000 ! important; +} +A.guest_note:hover { + font-size: 81%; + text-decoration: none; + color: #ff0000 ! important; + background-color: #ffff00 ! important; +} + +A.note_for_proofing { + font-family: Verdana, sans-serif; + font-style: normal; + font-size: 200%; + font-weight: bold; + text-transform: none; + color: #0000ff ! important; + vertical-align: super; +} + +A.note_for_proofing:hover { + font-family: Verdana, sans-serif; + font-style: normal; + font-size: 200%; + font-weight: bold; + text-transform: none; + color: #ff0000 ! important; + background-color: #ffff00 ! important; + vertical-align: super; +} + +A.note_for_proofing:visited { + text-decoration: none; + color: #ff0000 ! important; +} + +.paragraph_summary { + position: absolute; + top: auto; + text-align: right; + left: +10px; + width: 70px; + font-family: "Palatino Linotype", Palatino, "Arial Unicode Ms", "Titus Cyberbit Basic", "Lucida Sans Unicode", serif ! important; + font-size: .60rem; + text-transform: none; + font-weight: normal; + color: #660000 ! important; +} + +A.ref { + font-family: Verdana, sans-serif; + font-style: normal; + font-size: 58%; + font-weight: bold; + font-variant: normal; + padding: .2em; + text-transform: none; + color: #0000ff ! important; + vertical-align: super; +} +A.ref:link { + text-decoration: none; + color: #0077cc ! important; +} +A.ref:visited { + text-decoration: none; + color: #ff0000 ! important; +} +A.ref:hover { + text-decoration: none; + color: #ff0000 ! important; + background-color: #ffff00 ! important; +} + + A.ref .Greek { + font-family: "Avdira", "Titus Cyberbit Basic", serif ! important; + color: #ff0000 ! important; + } + +H1 H2 H3 A.ref { + font-size: 75%; +} + +H3.apparatus { + margin-top: 2em; + margin-bottom: 1em; + font-weight: normal; + font-style: italic; + /* font-size: 70%; DOESN'T SEEM TO WORK? */ +} + +A.ref_for_proofing { + font-family: Verdana, sans-serif; + font-style: normal; + font-size: 200%; + font-weight: bold; + text-transform: none; + color: #0000ff ! important; + vertical-align: super; +} + +A.ref_for_proofing:hover { + font-family: Verdana, sans-serif; + font-style: normal; + font-size: 200%; + font-weight: bold; + text-transform: none; + color: #ff0000 ! important; + background-color: #ffff00 ! important; + vertical-align: super; +} +A.ref_for_proofing:visited { + text-decoration: none; + color: #ff0000 ! important; +} + +A.ref1 { + font-family: Verdana, sans-serif; + font-style: normal; + font-size: 58%; + font-weight: bold; + text-transform: none; + color: #0099ff ! important; + vertical-align: super; +} + +A.ref_in_text { + font-family: Verdana, sans-serif; + font-style: italic; + font-size: 62%; + font-weight: bold; + text-transform: none; + color: #5555ff ! important; +} + +A.ref_in_text:link { + text-decoration: none; + color: #5555ff ! important; +} + +A.ref_in_text:visited { + text-decoration: none; + color: #ff0000 ! important; +} + +A.ref_in_text:hover { + text-decoration: none; + color: #0077cc ! important; + background-color: #ffff00 ! important; +} + +A.guest_ref { + font-family: "Avdira", "Titus Cyberbit Basic", serif ! important; + font-style: normal; + font-size: 58%; + font-weight: bold; + font-variant: normal; + padding: .2em; + text-transform: none; + color: #0000ff ! important; + vertical-align: super; +} +A.guest_ref:link { + text-decoration: none; + color: #0077cc ! important; +} +A.guest_ref:visited { + text-decoration: none; + color: #ff0000 ! important; +} +A.guest_ref:hover { + text-decoration: none; + color: #ff0000 ! important; + background-color: #ffff00 ! important; +} + +.inline_note { + font-style: italic; + color: #cc0000 ! important; + font-family: Verdana, sans-serif; + font-size: 90%; +} + +INS.slip { + cursor: crosshair; + text-decoration: none; + border-bottom: dotted green; + border-bottom-width: thin; +} +/* +INS.slip1 { + cursor: URL(https://penelope.uchicago.edu/Thayer/Images/Utility/Cursors/arrowleft3.png), auto; + text-decoration: none; + border-bottom: dotted green; + border-bottom-width: thin; +} + */ + +INS.divergence { + cursor: crosshair; + text-decoration: none; + border-bottom: dotted red; + border-bottom-width: medium; +} + +.TextHas { + color: #009900 ! important; + font-weight: bold; +} + +SPAN.ref { + font-family: Verdana, sans-serif; + text-transform: none; + color: #000066 ! important; + font-weight: bold; + font-size: 58%; + vertical-align: super; +} + +SPAN.ref_for_proofing { + font-family: Verdana, sans-serif; + text-transform: none; + font-weight: bold; + font-size: 200%; + vertical-align: super; +} + +/* +The purpose of the following styles (quotemark, exquotemark) is to put the initial quotation mark outside the centered quote (verse). The CSS standards explicitly state that the following box is calculated as though the preceding box were not offset + (https://www.w3.org/TR/REC-CSS2/visuren.html#propdef-position) +thus requiring the "exquotemark" workaround. + +PAGENUM WORKAROUND: +To get pagenums to insert correctly at a line in the middle of a poem, follow this format: +

 p585  +

+ +To get pagenums to insert correctly at the beginning of a poem that starts a page, follow the same format (but if "start" is needed, "start" goes in BOTH

declarations), as for example: +

 p383  +

+ +Sometimes this latter workaround doesn't seem to work, either, as in p156 and p158 of +▸ E/Gazetteer/Places/America/United_States/Navy/_Texts/MERLIF/30*.html#Lament +where I substitute another method, not altogether satisfactorily. + +*/ +.quotemark { + position: relative; + left: -.1em; + text-transform: none; + font-weight: normal; +} + +P.exquotemark { + position: relative; + left:.2em; + text-transform: none; + font-weight: normal; +} + +.verse .quoted P { + position: relative; + left: .2em; + text-transform: none; + font-weight: normal; +} + +.verse .quoted P.first { + position: relative; + left: 0em; + text-transform: none; + font-weight: normal; +} + + +/* +.verse A.sec { + position: absolute; + top: auto; + left: +12.5em; + text-align: left; +} + */ + +A.subsec { + font-size: 70%; + font-weight: normal; + font-style: normal; + text-transform: uppercase; + color: #bf0000 ! important; + vertical-align: 20%; +} + +/*The following 2 are completely synonymous, for convenience:*/ +.underscore { + text-decoration: underline; +} +.underline { + text-decoration: underline; +} + +A.Tsec { + position: absolute; + top: auto; + left: +2em; + text-align: right; + font-family: Courier, serif ! important; + font-size: .70rem; + text-transform: uppercase; + font-style: normal; + font-weight: normal; + font-variant: normal; + color: #006600 ! important; +} + +TABLE.verse A.Tsec { + position: absolute; + top: auto; + left: +3.8em; /* basic margin + 1.8 */ + text-align: right; + font-family: Courier, serif ! important; + font-size: .70rem; + text-transform: uppercase; + font-style: normal; + font-weight: normal; + font-variant: normal; + color: #006600 ! important; +} + +A.Tsubsec { + position: absolute; + top: auto; + left: +3.85em; + font-family: Courier, serif ! important; + font-size: .70rem; + text-transform: uppercase; + font-style: normal; + font-weight: normal; + font-variant: normal; + color: #006600 ! important; +} + +A.Tsubsec_correction { + position: absolute; + top: auto; + left: +5.8em; + font-family: Verdana, sans-serif; + font-size: .53rem; + font-weight: normal; + font-style: normal; + color: #ff0000 ! important; + vertical-align: top; +} + + A.correction:link { + text-decoration: none; + color: #ff0000 ! important; + } + +/* used at first only in E/Roman/Texts/secondary/journals/TAPA/43/The_Ferentinum_of_Horace*.html +It must be used OUTSIDE any */ +.citation_left { + position: absolute; + top: auto; + left: +7.5em; + font-size: .70rem; + font-weight: normal; + font-style: normal; + color: #000066 ! important; +} + +TABLE.verse A.Tsubsec { + left: +8.85em; /* basic margin +5.0 */ +} + +P.stars { + margin-top: 1.5em; + font-size: 140%; + letter-spacing: 1.0em; + text-align: center; +} + +P.topstars { + text-align: center; + margin-top: 1.5em; + margin-bottom: 0em; +} + +P.bottomstars { + text-align: center; + margin-top: -1em; +} + +P.verse A.Tsubsec { + left: +7.4em; /* basic margin +3.3 */ +} + +P.verse1 A.Tsubsec { + left: +3.85em; /* basic margin +3.3 -2+2+ adjustment 3.9 */ +} + +P.verse2 A.Tsubsec { + left: +1.65em; /* basic margin +3.3 -4+2 */ +} + +P.verse3 A.Tsubsec { + left: -0.7em; /* basic margin +3.3 -6+2 */ +} + +P.verse4 A.Tsubsec { + left: -2.95em; /* basic margin +3.3 -8+2 */ +} + +P.verse5 A.Tsubsec { + left: -5.2em; /* basic margin +3.3 -10+2 */ +} + +P.verse6 A.Tsubsec { + left: -7.5em; /* basic margin +3.3 -12+2 */ +} + +P.verse7 A.Tsubsec { + left: -9.75em; /* basic margin +3.3 -14+2 */ +} + +P.verse8 A.Tsubsec { + left: -12em; /* basic margin +3.3 -14+2 */ +} + +A.Latin { + color: #cc6633 ! important; +} + +A.entry1 { + color: #3366ff ! important; + font-variant: normal; + font-weight: bold; + font-size: 90%; + font-family: Verdana, Ariel, Helvetica, sans-serif; +} + +DIV.further { + position: absolute; + top: auto; + font-size: .50rem; /* necessary to produce correct right margin*/ + right: +4em; +} + +DIV.default { + color: #000066 ! important; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; +} + +DIV.default1 { /* has now been replaced thruout by DIV.spacious */ + margin-left: 5em; + margin-right: 5em; + color: #000066 ! important; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; +} + +DIV.alert { /* mynote with background-color and color changed */ + background-color: #ffff66 ! important; + text-align: justify; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-size: 85%; + color: #ff0000 ! important; + margin-top: 1.6em; + margin-left: 100px; + margin-right: 100px; + padding-top: 0.4em; + padding-bottom: 0.4em; + padding-left: 1.3em; + padding-right: 1.3em; + border-style: double +} + +DIV.alert400 { /* mynoteNarrow with background-color and color changed */ + background-color: #ffff66 ! important; + text-align: justify; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-size: 85%; + color: #ff0000 ! important; + margin-top: 1.6em; + margin-bottom: 1.6em; + width: 400px; + margin-left: auto; + margin-right: auto; + padding-top: 0.4em; + padding-bottom: 0.4em; + padding-left: 1.3em; + padding-right: 1.3em; + border-style: double +} + +DIV.alert600 { +/* +mynote with background-color and color changed, +WIDTH matches TABLE.headerbox +*/ + background-color: #ffff66 ! important; + text-align: justify; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-size: 85%; + color: #ff0000 ! important; + font-style: italic; + margin-top: 10em; + margin-bottom: 1.6em; + width: 600px; + margin-left: auto; + margin-right: auto; + padding-top: 0.4em; + padding-bottom: 0.4em; + padding-left: 1.3em; + padding-right: 1.3em; + border-style: double +} + +DIV.slimBox { + background-color: #ccffff ! important; + text-align: justify; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-size: 85%; + color: #000066 ! important; +/* + margin-top: 1.6em; + */ + margin-left: 100px; + margin-right: 100px; +/* + padding-top: 0.4em; + padding-bottom: 0.4em; + */ + padding-left: 1.3em; + padding-right: 1.3em; + border-style: double +} + + .slimBox A:link { + color: #0000ff ! important; + } + .slimBox A:visited { + color: #ff0000 ! important; + } + .slimBox A:hover { + color: #ff00ff ! important; + } + .slimBox A:active { + color: #ff00ff ! important; + } + .slimBox P { + margin-bottom: 0em; + margin-top: 0em; + } + +DIV.mynote { + background-color: #ccffff ! important; + text-align: justify; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-size: 85%; + color: #000066 ! important; + margin-top: 1.6em; + margin-left: 100px; + margin-right: 100px; + padding-top: 0.4em; + padding-bottom: 0.4em; + padding-left: 1.3em; + padding-right: 1.3em; + border-style: double +} + + .mynote A:link { + font-weight: bold; + color: #0000ff ! important; + } + .mynote A:visited { + font-weight: bold; + color: #ff0000 ! important; + } + .mynote A:hover { + font-weight: bold; + color: #ff00ff ! important; + } + .mynote A:active { + font-weight: bold; + color: #ff00ff ! important; + } + .mynoteWide A:link { + font-weight: bold; + color: #0000ff ! important; + } + .mynoteWide A:visited { + font-weight: bold; + color: #ff0000 ! important; + } + .mynoteWide A:hover { + font-weight: bold; + color: #ff00ff ! important; + } + .mynoteWide A:active { + font-weight: bold; + color: #ff00ff ! important; + } + .mynoteNarrow A:link { + font-weight: bold; + color: #0000ff ! important; + } + .mynoteNarrow A:visited { + font-weight: bold; + color: #ff0000 ! important; + } + .mynoteNarrow A:hover { + font-weight: bold; + color: #ff00ff ! important; + } + .mynoteNarrow A:active { + font-weight: bold; + color: #ff00ff ! important; + } + .mynoteNarrowest A:link { + font-weight: bold; + color: #0000ff ! important; + } + .mynoteNarrowest A:visited { + font-weight: bold; + color: #ff0000 ! important; + } + .mynoteNarrowest A:hover { + font-weight: bold; + color: #ff00ff ! important; + } + .mynoteNarrowest A:active { + font-weight: bold; + color: #ff00ff ! important; + } + + DIV.mynote .Latin { + color: #990000 ! important; + } + + .mynote .source { + color: #00AA00 ! important; + } + + .mynote .outquote { + color: #7700b3 ! important; + } + + +DIV.mynote0 { + background-color: #ccffff ! important; + text-align: justify; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-size: 85%; + color: #000066 ! important; + margin-top: 0em; + margin-left: 100px; + margin-right: 100px; + padding-top: 0.4em; + padding-bottom: 0.4em; + padding-left: 1.3em; + padding-right: 1.3em; + border-style: double +} + .mynote0 .outquote { + color: #7700b3 ! important; + } + + +.mynote A.Cullum { + color: #907d45 ! important; + background-color: #ccffff ! important; +} +.mynoteWide A.Cullum { + color: #907d45 ! important; + background-color: #ccffff ! important; +} + +DIV.mynoteNarrow { + background-color: #ccffff ! important; + text-align: justify; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-size: 85%; + color: #000066 ! important; + margin-top: 1.6em; + margin-bottom: 1.6em; + width: 50%; + margin-left: auto; + margin-right: auto; + padding-top: 0.4em; + padding-bottom: 0.4em; + padding-left: 1.3em; + padding-right: 1.3em; + border-style: double +} + .mynoteNarrow .outquote { + color: #7700b3 ! important; + } + +DIV.mynoteNarrowest { + background-color: #ccffff ! important; + text-align: justify; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-size: 85%; + color: #000066 ! important; + margin-top: 1.6em; + margin-bottom: 1.6em; + width: 30%; + margin-left: auto; + margin-right: auto; + padding-top: 0.4em; + padding-bottom: 0.4em; + padding-left: 1.3em; + padding-right: 1.3em; + border-style: double +} + .mynoteNarrowest .outquote { + color: #7700b3 ! important; + } + +DIV.mynoteWide { + background-color: #ccffff ! important; + text-align: justify; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-size: 85%; + color: #000066 ! important; + margin-top: 1.6em; + margin-bottom: 1.6em; + width: 85%; + margin-left: auto; + margin-right: auto; + padding-top: 0.4em; + padding-bottom: 0.4em; + padding-left: 1.3em; + padding-right: 1.3em; + border-style: double +} + DIV.mynoteWide .Latin { + color: #990000 ! important; + } + + +DIV.mynoteBasicH { + background-color: #ccffff ! important; + text-align: justify; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-size: 85%; + color: #000066 ! important; + margin-top: 1.6em; + margin-bottom: 1.6em; + width: 574px; + margin-left: auto; + margin-right: auto; + padding-top: 0.4em; + padding-bottom: 0.4em; + padding-left: 1.3em; + padding-right: 1.3em; + border-style: double +} + +DIV.mynoteBasicH1 { + background-color: #ccffff ! important; + text-align: justify; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-size: 85%; + color: #000066 ! important; + margin-top: 1.6em; + margin-bottom: 1.6em; + width: 574px; + margin-left: auto; + margin-right: auto; + padding-top: 0.4em; + padding-bottom: 0.4em; + border-style: double +} + +DIV.specialBox { +/* Omit + background-color: #ccffff ! important; + color: #000066 ! important; +so that the font+background combination can be further specified (colors stylesheet) +*/ + text-align: justify; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-size: 85%; + margin-top: 1.6em; + margin-left: 100px; + margin-right: 100px; + padding-top: 0.4em; + padding-bottom: 0.4em; + padding-left: 1.3em; + padding-right: 1.3em; + border-style: double +} + +DIV.caption-centered { + margin: .35em; + font-size: 85%; + text-align: center; +} + +DIV.margin2 { + margin-left: 65px; + margin-right: 65px; + font-size: 90%; +} + +DIV.padall { + margin: 10px; +} + +.padall { + margin: 10px; +} + +DIV.reference { + color: #660066 ! important; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-size: 75%; + font-weight: bold; + text-align: center; +} + +DIV.diary_summary { + margin-left: .6em; + margin-right: 1.2em; + text-align: justify; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-size: 85%; +} + +DIV.diary_summary_date { + margin-right: 0.4em; + text-align: right; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-size: 85%; +} + +DIV.no_diary { + margin-left: .6em; + margin-right: 1.2em; + text-align: justify; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-size: 85%; + color: #666666 ! important; +} + +DIV.no_diary_date { + margin-right: 0.4em; + text-align: right; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-size: 85%; + color: #666666 ! important; +} + +.noScript { + text-align: center; + font-family: Verdana, sans-serif; + font-size: 112%; + font-weight: bold; + color: #ff0000 ! important; +} + +.PlaceDescriptor { /* used in GoogleMaps.js*/ + margin-top: 1.5em; + text-align: justify; +} + +DIV.MapBubble { /* used in GoogleMaps.js*/ + width: 200px; /* I'd like it smaller, but Google doesn't allow it, setting a purported minimum width of 204, but in fact it's about 250. */ + margin-top: 0; + margin-left: 0; + margin-right: 0; + font-family: Verdana, sans-serif; + font-style: normal; + text-transform: none; + font-variant: normal; + text-align: justify; + font-size: 50%; + font-weight: normal; +} + +DIV.MapBubbleHeading { /* used in GoogleMaps.js*/ + width: 200px; /* I'd like it smaller, but Google doesn't allow it, setting a purported minimum width of 204, but in fact it's about 250. */ + margin-left: 0; + margin-right: 0; + font-family: Verdana, sans-serif; + font-style: normal; + text-transform: none; + font-variant: normal; + text-align: left; + font-size: 60%; + font-weight: bold; +} + +.map_blue { + color: #7eb3ff ! important; +} + +.map_green { + color: #8cff77 ! important; +} + +.map_orange { + color: #ffa82c ! important; +} + +.map_pink { + color: #ffb4b1 ! important; +} + +.map_purple { + color: #df87ff ! important; +} + +.map_red { + color: #ff7a78 ! important; +} + +.map_yellow { + color: #fdff78 ! important; +} + +.emphasis { + color: #003399 ! important; +} + +.emend { + color: #0066cc ! important; +} + + A:hover .emend { + color: #ff00ff ! important; + } + + .emend .Greek { + color: #dd8833 ! important; + } + + .emend .Latin { + color: #cc3399 ! important; + } + .emend:lang(la) { + color: #cc3399 ! important; + } + +.transcription .emend { + color: #ff6699 ! important; +} + +/* used to render digammas better: */ +.Geneva { + font-family: Geneva; +} + +.Courier { + font-family: Courier, monospace; +} + +I I { /* i.e., within */ + font-style: normal; + font-size: 90%; +} + +SPAN.star { + font-family: Verdana, Ariel, Helvetica, sans-serif; + font-size: 90%; + color: #8800cc ! important; + font-style: italic; +} + + A SPAN.star { + color: #3366ff ! important; + } + + A:hover SPAN.star { + color: #ff00ff ! important; + } + +.fondbleu { + border-top: 0px !important; + border-bottom: 0px !important; + border-left: 0px !important; + border-right: 0px !important; + background-color: #ccffff ! important; + color: #555555 ! important; + border-radius: 8px; + padding-top: 2px !important; + padding-left: 5px !important; + padding-right: 5px !important; + display: inline; + overflow: hidden; + white-space: nowrap; +} + +.fondrose { + border-top: 0px !important; + border-bottom: 0px !important; + border-left: 0px !important; + border-right: 0px !important; + background-color: #ffcccc ! important; + color: #555555 ! important; + border-radius: 8px; + padding-top: 2px !important; + padding-left: 5px !important; + padding-right: 5px !important; + display: inline; + overflow: hidden; + white-space: nowrap; +} + +.fondviolet { + border-top: 0px !important; + border-bottom: 0px !important; + border-left: 0px !important; + border-right: 0px !important; + background-color: #d9e6ff ! important; + color: #555555 ! important; + border-radius: 8px; + padding-top: 2px !important; + padding-left: 5px !important; + padding-right: 5px !important; + display: inline; + overflow: hidden; + white-space: nowrap; +} + +.fondjaune { + border-top: 0px !important; + border-bottom: 0px !important; + border-left: 0px !important; + border-right: 0px !important; + background-color: #ffffcc ! important; + color: #555555 ! important; + border-radius: 8px; + padding-top: 2px !important; + padding-left: 5px !important; + padding-right: 5px !important; + display: inline; + overflow: hidden; + white-space: nowrap; +} + +SPAN.proofread { + color: #28cccc ! important; +} + +SPAN.unproofread { + color: #ff6666 ! important; +} + +SPAN.proof { + color: #009933 ! important; + font-weight: bold; +} + +SPAN.GridRef { + font-family: Verdana, sans-serif; + color: #ff6600 ! important; +} + +.overline { + text-decoration: overline; +} + +.Fraktur { + font-family: TypographerFraktur, "Lucida Blackletter", serif; +} + +.sanserif { + font-family: Verdana, Ariel, Helvetica, sans-serif; +} + +.double { + font-size: 200%; +} + +.large { + font-size: 120%; +} + +.larger { + font-size: 140%; +} + +.largest { + font-size: 160%; +} + +.small { + font-size: 85%; +} + + .small .smaller { + font-size: 88%; + } + +.smaller { + font-size: 75%; +} + +.smallest { + font-size: 60%; +} + +.minuscule { + font-size: 50%; +} + +.sourcecode { + font-family: Courier, monospace; + color: #006600 ! important; + font-size: 85%; +} + +.primary_source { + color: #339900 ! important; +} + +.up215 { + margin-top: -2.15em; +} + +SPAN.subscript { + font-family: Verdana, Ariel, Helvetica, sans-serif; + font-size: 65%; + vertical-align: bottom; +} + +SPAN.superscript { + font-family: Verdana, Ariel, Helvetica, sans-serif; + font-size: 60%; + vertical-align: top; +} + +SPAN.ordinal { + font-family: Verdana, Ariel, Helvetica, sans-serif; + font-size: 60%; + vertical-align: top; + font-variant: none; +} + +SPAN.raised { + vertical-align: 10%; + line-height: 100%; +} + +SPAN.manuscript .superscript { + font-family: Verdana, Ariel, Helvetica, sans-serif; + font-size: 60%; + vertical-align: 70%; +} + +.midalign { + vertical-align: middle; +} + +.ten { + font-size: 62%; +} + +.eleven { + font-size: 69%; +} + +.twelve { + font-size: 75%; +} + +.teensy { + font-size: 37%; +} + +H1 { + font-size: 150%; + text-align: center; + hyphens: none; +} + +H2 { + font-size: 120%; + text-align: center; + hyphens: none; +} + +H3 { + margin-top: 3.5em; + margin-bottom: 2em; + font-size: 100%; + text-align: left; + hyphens: none; +} + +H4 { + font-size: 85%; + hyphens: none; +} + +H5 { + font-size: 60%; + hyphens: none; +} + +H6 { + hyphens: none; +} + +H1, H2, H4.default { + margin-top: 3.5em; + margin-bottom: 2em; +} + +H1.small { + font-size: 120%; + text-align: center; +} + +H1.small_default { + font-size: 120%; + text-align: center; + margin-top: 3.5em; + margin-bottom: 2em; +} + +H2.large_default { + font-size: 150%; + text-align: center; + margin-top: 3.5em; + margin-bottom: 2em; +} + +H2.left { + margin-left: -50px; + font-size: 120%; + text-align: left; +} + +H2.diary { + margin-left: -50px; + margin-top: 6em; + margin-bottom: 2em; + font-size: 120%; + text-align: left; +} + +H3.boxed { + margin-top: 1em; + margin-bottom: 1.5em; + text-align: center; +} + +H3.center { +/* + font-size: 100%; + */ + text-align: center; +} + +H3.start { + margin-top: 3.5em; + margin-bottom: 2em; +} + +H3.start2 { + margin-top: 7.5em; + margin-bottom: 2em; +} + +H3.center-start { + text-align: center; + margin-top: 3.5em; + margin-bottom: 2em; +} + +H4.lowcaps { + font-size: 72%; + text-transform: uppercase; +} + +H4.halfstart { + margin-top: 2.7em; + margin-bottom: 2em; +} + +H4.start { + margin-top: 3.5em; + margin-bottom: 2em; +} + +H5.start { + margin-top: 3.5em; + margin-bottom: 2em; +} + +H6.start { + margin-top: 3.5em; + margin-bottom: 2em; +} + +H4.center-start { + text-align: center; + margin-top: 3.5em; + margin-bottom: 2em; +} + +H3.document { + font-size: 90%; + text-align: center; + font-weight: 300; + font-style: italic; +} + +H4.center { + font-size: 85%; + text-align: center; +} + +H4.interTitle { + margin-top:0; + font-size: 85%; + text-align: center; +} + +H5.center { + font-size: 60%; + text-align: center; +} + +HR { + text-align: center; +} + +HR.endnotes { + text-align: center; + width: 60%; + margin-top:4em; + margin-bottom:2.5em; +} + +HR.default { + text-align: center; + width: 60%; + margin-top:2.5em; + margin-bottom:2.5em; +} + +HR.small { + text-align: center; + width: 15%; + margin-top:2.5em; + margin-bottom:2.5em; +} + +HR.blip { + text-align: center; + width: 50px; + margin-top:.5em; + margin-bottom:.5em; +} + +HR.left { + text-align: left; + margin-top: 0.5em; + margin-bottom: 0.5em; +} + +IMG { + border-width: 0; +/* The hyphenation and alignment specs are for the ALTs, to prevent hyphenation and justify them: */ + text-align: justify; + -webkit-hyphens: none; + -ms-hyphens: none; + hyphens: none; +} + +IMG.setPageWidth { + width: 608px; + height: 20px; +} + +IMG.hedera { + width: 15px; + height: 13px; + margin-top: 1.3em; + margin-bottom: 0.3em; +} + +IMG.rue { + width: 24px; + height: 24px; + margin-top: 1.3em; + margin-bottom: 0.3em; +} + +IMG.WP_grad { + width: 15px; + height: 13px; + border-width: 0; + vertical-align: top; +} + +/* the following is required to make "TR.topBorder" (etc.) work: */ +TABLE.noBorders { + border-collapse: collapse; + border-left: 0px; + border-right: 0px; +} + +TABLE TR.topBorder{ + border-collapse: collapse; + border-top: 1px solid; +} + +TABLE TR.bottomBorder{ + border-collapse: collapse; + border-bottom: 1px solid; +} + +TABLE TR.topandbottomBorder{ + border-collapse: collapse; + border-top: 1px solid; + border-bottom: 1px solid; +} + +TABLE TR.topBorderBold{ + border-collapse: collapse; + border-top: 2px solid; +} + +.leftBorder{ + border-collapse: collapse; + border-left: 1px solid; +} + +.rightBorder{ + border-collapse: collapse; + border-right: 1px solid; +} + +TABLE TR.discreetly_separated{ + border: 3px; + border-style: solid none none; +} + +TABLE.TOC TR.discreetly_separated{ + border-color: #ffffff; +} + +TABLE TR.bottomBorderBold{ + border-collapse: collapse; + border-bottom: 2px solid; +} + +TABLE.columnBorders { + border-collapse: collapse; + border-left: 1px solid; + border-right: 1px solid; +} + + TABLE.columnBorders TR TD { + border-left: 1px solid; + border-right: 1px solid; + } + +TABLE.basicH { + width: 567px; +} + +IMG.basicH { + width: 567px; + height: 378px; +} + +TABLE.iPhoneLargeH { + width: 800px; +} + +IMG.iPhoneLargeH { + width: 800px; + height: 600px; +} + +TABLE.iPhoneH { + width: 567px; +} + +IMG.iPhoneH { + width: 567px; + height: 425px; +} + +TABLE.basicV { + width: 252px; +} + +IMG.basicV { + width: 252px; + height: 378px; +} + +IMG.largeV { + width: 378px; + height: 567px; +} + +IMG.largeS { + width: 567px; + height: 567px; +} + +IMG.H320 { + width: 567px; + height: 320px; +} + +TABLE.V270 { + width: 270px; +} + +IMG.V270 { + width: 270px; + height: 378px; +} + +TABLE.V280 { + width: 280px; +} + +IMG.V280 { + width: 280px; + height: 378px; +} + +TABLE.V300 { + width: 300px; +} + +IMG.V300 { + width: 300px; + height: 378px; +} + +IMG.GoogleLogo { + width: 64px; + height: 26px; +} + +TABLE.leadoff { + border-style: outset; + border-color: #cccccc; + border-width: 12px; + margin-top: 5em; + margin-left: auto; + margin-right: auto; + font-size: 80%; +} + +TABLE.leadoff P{ + margin-left: 15px; + margin-right: 15px; +} + +P.photocredit { + text-align: right; + font-size: 69%; +} + +TABLE.photocreditX { +/* for odd widths; the table width should be set at the photo width + 23 */ + border: 0; + margin: auto; + text-align: right; + font-size: 69%; +} + +TABLE.photocreditH { + width: 590px; /* 567 + 23 */ + border: 0; + margin: auto; + text-align: right; + font-size: 69%; +} + +TABLE.photocreditV { + width: 275px; /* 252 + 23 */ + border: 0; + margin: auto; + text-align: right; + font-size: 69%; +} + +TABLE.photocreditS { + width: 401px; /* 378 + 23 */ + border: 0; + margin: auto; + text-align: right; + font-size: 69%; +} + +/* THIS IS JUST A TEMP PATCH TO PREVENT THE OPERATION OF "contents" INSIDE "leadoff" WHILE I REMOVE THE HUNDREDS OF INSTANCES: */ +TABLE.leadoff .contents{ + font-size: 100%; +} + +IMG.aliasS { + width: 279px; + height: 279px; +} + +TABLE.aliasS { + width: 279px; +} + +IMG.smallS { + width: 252px; + height: 252px; +} + +TABLE.smallS { + width: 252px; +} + +IMG.basicS { + width: 378px; + height: 378px; +} + +TABLE.basicS { + width: 378px; +} + +IMG.b1 { + margin-top: 0; + border-width: 1px; + border-style: solid; +} + +IMG.b2 { + border-width: 2px; + border-style: solid; +} + +IMG.b4 { + border-width: 4px; + border-style: solid; +} + +IMG.flag { + border-width: 1px; + border-style: solid; + width: 30px; + height: 20px; + margin-top: 2px; + margin-bottom: 2px; +} + +TABLE.verse A.flag { + float: left; + margin-left: -4em; +} + +.verse A.sec { + position: relative; + float: left; + left: -2.5em; + vertical-align: 10%; +} + +IMG.map_marker { + width: .6em; + height: .9em; +} + +IMG.miniflag { + border-width: 1px; + border-style: solid; + width: 12px; + height: 8px; +} + +IMG.small_flag { + border-width: 1px; + border-style: solid; + width: 18px; + height: 12px; +} + +IMG.small_flag_in_margin { + border-width: 0; + width: 18px; + height: 20px; +} + +IMG.inline { + margin-right: 2px; +} + +/* Jun 2017: not yet used */ +IMG.behind { + position: absolute; + z-index: -1; +} + +.caduceus { + text-align: center; + font-size: 187%; +} + +.ivy { + text-align: center; + font-size: 137%; + font-style: normal; + color: #008400 ! important; +} + +.ivy1 { + text-align: center; + font-size: 137%; + font-style: normal; + color: #008400 ! important; + margin-top: 2em; +} + +IMG.badge { + width: 16px; + height: 16px; + vertical-align: -2px; +} + +IMG.image0 { + border-width: 1px; + border-style: dotted; +} + +IMG.image1 { + border-width: 1px; + border-style: solid; +} + +IMG.image2 { + border-width: 2px; + border-style: solid; +} + +IMG.image4 { + border-width: 4px; + border-style: solid; +} + +IMG.alias0 { + border-width: 1px; + border-style: dotted; + width: 279px; + height: 186px; + margin: 5px; +} + +IMG.alias1 { + border-width: 1px; + border-style: solid; + width: 279px; + height: 186px; + margin: 5px; +} + +IMG.alias2 { + border-width: 2px; + border-style: solid; + width: 279px; + height: 186px; + margin: 4px; +} + +IMG.alias4 { + border-width: 4px; + border-style: solid; + width: 279px; + height: 186px; + margin: 2px; +} + +IMG.icon { + border-width: 0; + width: 132px; + height: 88px; +} + +IMG.icon0 { + border-width: 1px; + border-style: dotted; + width: 132px; + height: 88px; + margin-top: 10px; + margin-bottom: 5px; + margin-left: 5px; + margin-right: 5px; +} + +IMG.icon1 { + border-width: 1px; + border-style: solid; + width: 132px; + height: 88px; + margin-top: 10px; + margin-bottom: 5px; + margin-left: 5px; + margin-right: 5px; +} + +IMG.icon2 { + border-width: 2px; + border-style: solid; + width: 132px; + height: 88px; + margin-top: 11px; + margin-bottom: 4px; + margin-left: 4px; + margin-right: 4px; +} + +IMG.icon4 { + border-width: 4px; + border-style: solid; + width: 132px; + height: 88px; + margin-top: 13px; + margin-bottom: 2px; + margin-left: 2px; + margin-right: 2px; +} + +IMG.rubric0 { + border-width: 1px; + border-style: dotted; + width: 132px; + height: 88px; + margin-left: 15px; + margin-right: 15px; +} + +IMG.rubric1 { + border-width: 1px; + border-style: solid; + width: 132px; + height: 88px; + margin-left: 15px; + margin-right: 15px; +} + +IMG.rubric2 { + border-width: 2px; + border-style: solid; + width: 132px; + height: 88px; + margin-left: 14px; + margin-right: 14px; +} + +IMG.rubric4 { + border-width: 4px; + border-style: solid; + width: 132px; + height: 88px; + margin-left: 12px; + margin-right: 12px; +} + +IMG.minirubric1 { + border-width: 1px; + border-style: solid; + width: 60px; + height: 40px; + margin-left: 87px; + margin-right: 15px; +} + +IMG.minirubric2 { + border-width: 2px; + border-style: solid; + width: 60px; + height: 40px; + margin-left: 86px; + margin-right: 14px; +} + +IMG.minirubric4 { + border-width: 4px; + border-style: solid; + width: 60px; + height: 40px; + margin-left: 84px; + margin-right: 12px; +} + +IMG.start { + margin-top: 1.5em; +} + +IMG.thumb { + border-width:0; + width: 60px; + height: 40px; + margin-top: 6px; + margin-bottom: 6px; +} + +IMG.thumb0 { + border-width: 1px; + border-style: dotted; + width: 60px; + height: 40px; + margin-top: 5px; + margin-bottom: 5px; +} + +IMG.thumb1 { + border-width: 1px; + border-style: solid; + width: 60px; + height: 40px; + margin-top: 5px; + margin-bottom: 5px; +} + +IMG.thumb2 { + border-width: 2px; + border-style: solid; + width: 60px; + height: 40px; + margin-top: 4px; + margin-bottom: 4px; +} + +IMG.thumb4 { + border-width: 4px; + border-style: solid; + width: 60px; + height: 40px; + margin-top: 2px; + margin-bottom: 2px; +} + +IMG.W3C { + border-width: 0; + width: 88px; + height: 31px; +} + +P.W3C { + margin-top: 36em; + margin-right: 1em; + text-align: right; +} + +P.UCFooter { + margin-top: 3em; + margin-bottom: 0em; + background-color: #403f3f; + color: #d6d6cf; + font-family: Verdana, Arial, Helvetica, sans-serif; + font-size: 70%; + text-align: center; +} + .UCFooter A:link { + border-style: dotted; + border-top-width: 0px; + border-bottom-width: 1px; + border-left-width: 0px; + border-right-width: 0px; + color: #d6d6cf ! important; + } + .UCFooter A:visited { + color: #d6d6cf ! important; + } + .UCFooter A:hover { + color: #d6d6cf ! important; + } + .UCFooter A:active { + color: #d6d6cf ! important; + } + +LI.default { + margin-top: 1em; + margin-bottom: 1em; + text-align: justify; +} + +SPAN.default { + color: #000066 ! important; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; +} + +P.photo_credits { + text-align: right; + font-size: 75%; + margin-top: 0em; +} + +P.photo_credits_center { + text-align: center; + font-size: 75%; + margin-top: 0em; +} + +P.further { + text-align: center; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-style: normal; + font-weight: normal; + text-transform: none; + font-variant: normal; + font-size: 50%; + color: #cc00ff ! important; +} + +P.signature { + position: relative; + top: auto; + right: -6em; + text-align: right; + font-size: 85%; + color: #000066 ! important; +} + +P.default { + color: #000066 ! important; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; +} + +P.closing50 { + text-align: left; + margin-left: 50%; + margin-top: 0em; + margin-bottom: 0em; +} + +P.closing60 { + text-align: left; + margin-left: 60%; + margin-top: 0em; + margin-bottom: 0em; +} + +P.closing-b0-a0 { + text-align: right; + margin-right: 8em; + margin-top: 0em; + margin-bottom: 0em; +} + +P.closing-b1-a0 { + text-align: right; + margin-right: 8em; + margin-top: 3em; + margin-bottom: 0em; +} + +P.closing-b0-a1 { + text-align: right; + margin-right: 8em; + margin-top: 0em; + margin-bottom: 3em; +} + +P.closing-b1-a1 { + text-align: right; + margin-right: 8em; + margin-top: 3em; + margin-bottom: 3em; +} + +P.biblio1 { + margin-top: 0em; + margin-bottom: .5em; + text-align: right; + font-family: Verdana, sans-serif; + font-size: 69%; +} + +P.biblio { + margin-top: 0em; + margin-bottom: 3em; + text-align: right; + font-family: Verdana, sans-serif; + font-size: 69%; +} + +P.biblioA { + margin-top: 0em; + margin-bottom: 0em; + text-align: right; + font-family: Verdana, sans-serif; + font-size: 69%; +} + +P.biblio_intro { + margin-top: 0em; + margin-bottom: 0em; + text-align: right; + font-size: 69%; +} + +P.default { + color: #000066 ! important; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; +} + +P.summary { + font-size: 85%; + margin-top: 3em; + margin-left: 2em; + margin-right: 1em; + text-indent: -1em; + text-align: justify; +} + +P.postsummary { + font-size: 85%; + margin-top: .5em; + margin-left: 2em; + margin-right: 1em; + text-indent: -1em; + text-align: justify; +} + +P.summary_item { + font-size: 85%; + margin-top: 0em; + margin-bottom: 0em; + margin-left: 2em; + margin-right: 1em; + text-indent: -1em; + text-align: justify; +} + +.x1-b0-a0 { + text-align: justify; + margin-left: 30px; + text-indent: -30px; + margin-top: 0em; + margin-bottom: 0em; +} +.x2-b0-a0 { + text-align: justify; + margin-left: 60px; + text-indent: -60px; + margin-top: 0em; + margin-bottom: 0em; +} + +P.justify_indent { + text-align: justify; + margin-top: 0em; + margin-bottom: 0em; + text-indent: 1em; +} + +P.omitted_article { + text-align: justify; + font-weight: bold; + text-transform: uppercase; + color: #999999 ! important; +} + P.omitted_article .Greek { + text-align: justify; + font-weight: bold; + text-transform: none; + color: #999999 ! important; + } + +P.riassunto { + text-align: right; + font-family: Verdana, sans-serif; + font-size: 85%; + color: #ff9900 ! important; + margin-bottom: 40px; + font-weight: bold; +} + +P.riassunto0 { + text-align: right; + font-family: Verdana, sans-serif; + font-size: 85%; + color: #ff9900 ! important; + margin-bottom: 0em; +} + +P.temporarily_omitted { + margin-top: 3em; + text-align: center; + font-size: 160%; + font-weight: bold; + color: #009900 ! important; +} + +TABLE { + margin-bottom: 1em; +} + +TABLE.bodyheight { + line-height: 1.5; +} + +TABLE.GoogleMap { + color: #000099 ! important; + background-color: #ffffff ! important; + font-size: 80%; + margin-bottom: 2em; +} + + TABLE.GoogleMap P { + margin-top: 1em; + margin-bottom: 0em; + margin-left: 10px; + margin-right: 10px; + } + +TABLE.standard { + background-color: #ffffff ! important; + color: #000066 ! important; + font-size: 80%; +} + + TABLE.standard .outquote { + color: #8533ad ! important; + } + + TABLE.standard .bland { + color: #000066 ! important; + } + + TABLE.standard TR.neutral { + background-color: #b2ffff ! important; + } + + TABLE.standard TR TD.neutral { + background-color: #b2ffff ! important; + } + + TABLE.standard P { + margin-top: 0em; + margin-bottom: 0em; + margin-left: 20px; + margin-right: 10px; + text-indent: -10px; + } + + TABLE.standard P.nodent { + text-indent: 0px; + } + + TABLE.standard P.indent { + text-indent: 20px; + } + + TABLE.standard P.start { + margin-top: 1em; + } + + TABLE.standard P.halfstart { + margin-top: .5em; + } + + TABLE.standard A:link { + color: #0000ff ! important; + } + TABLE.standard A:visited { + color: #cc0000 ! important; + } + TABLE.standard A:hover { + color: #ff00ff ! important; + } + TABLE.standard A:active { + color: #ff00ff ! important; + } + + TABLE.standard .Latin { + color: #990000 ! important; + } + TABLE.standard .Latin .emend { + color: #ee6633 ! important; + } + + TABLE.standard .Greek { +/* + color: #994d00 ! important; + */ + color: #8d5c00 ! important; + } + +TR TD.grisaille { + background-color: #eeeeee ! important; + } +TR.odd TD.grisaille { + background-color: #c2f2f2 ! important; + } +TR.even TD.grisaille { + background-color: #92f2f2 ! important; + } + + +/*TABLE.rowspadded: separates the rows as well*/ +TABLE.rowspadded TD { + padding-top: 6px; + padding-bottom: 6px; + padding-left: 12px; + padding-right: 12px; +} + +TABLE.stats { + border-collapse: collapse; +} + + TABLE.stats TD.left { + border-left: 1px; + } + + TABLE.stats TD.right { + border-right: 1px; + } + +TD.b1 { + margin-top: 0; + border-width: 1px; + border-style: solid; +} + +TABLE.b1 { + border-width: 1px; + border-style: solid; +} + +TABLE.b2 { + border-collapse: separate; + border-spacing: 1px; + border: 4px ridge #f6f6f6; +} + + TABLE.b2 TD { + border: 1px solid gray; + } + + TABLE.b2 TD TD { + border: 0; + } + +TABLE.header { + margin: auto; + border-collapse: separate; + border-spacing: 2px; + width: 500px; + border: 0; +} + + TABLE.header TR { + vertical-align: bottom; + } + +/* If the width of headerbox is changed, change also the width of DIV.alert600: */ +TABLE.headerbox { + margin: auto; + border-collapse: separate; + border-spacing: 2px; + width: 600px; + border: 4px ridge #eeeeee; + background-color: #ffffff ! important; + line-height: 1.5; + -webkit-hyphens: none; + -ms-hyphens: none; + hyphens: none; +} + + TABLE.headerbox TD { + border: 1px solid gray; + } + + TABLE.headerbox TD TD { + border: 0; + } + + TABLE.headerbox A:link { + color: #0000ff ! important; + } + TABLE.headerbox A:visited { + color: #cc0000 ! important; + } + TABLE.headerbox A:hover { + color: #ff00ff ! important; + } + TABLE.headerbox A:active { + color: #ff00ff ! important; + } + +/*keep superchapter immediately after headerbox:*/ +H3.superchapter { + width: 588px; /*headerbox minus 12*/ + margin-top: 8em; + margin-left: auto; + margin-right: auto; + font-size: 85%; + text-transform: uppercase; + text-align: center; + font-weight: bold; + letter-spacing: .5em; + border-style: solid; + border-top-width: 1px; + border-bottom-width: 1px; + border-left-width: 0px; + border-right-width: 0px; +} + +TABLE.start { + margin-top: 2.5em; +} + +TABLE.footer { + margin: auto; + margin-top: 5em; + width: 576px; + table-layout: fixed ! important; + column-width: 78px ! important; + padding: 0; + border: 0em; + border-spacing: 0; + empty-cells: show; + background-color: #ffffcc ! important; + -webkit-hyphens: none; + -ms-hyphens: none; + hyphens: none; +} + +TABLE.transparent_image { + margin-left: auto; + margin-right: auto; + margin-top: 1em; + background-color: transparent ! important; +} + +TD.transparent { + background-color: transparent ! important; +} + + + +/* 4/14/11: Used only on homepages for MassaMartana, Monteleone di Spoleto, Trevi, Cannaiola */ +/* NOTE: Their own .js states that modification and hosting are allowed, in case I want to have a stab at my own better formatting */ +TABLE.TweetFeed { + margin: auto; + margin-top: 4em; + margin-bottom: -5em; + width: 576px; + padding: 0; + border: 0em; + border-spacing: 0; + background-color: transparent ! important; +} + +TABLE.twitter { + margin: auto; + margin-top: 5em; + margin-bottom: -5em; + width: 576px; + padding: 0; + border: 0em; + border-spacing: 0; + background-color: transparent ! important; +} + +TABLE.photo { + margin-top: 40px; +} + +TABLE.vertical_pair { + width: 567px; + margin-left: auto; + margin-right: auto; + border-collapse: separate; + border-spacing: 2px; +} + + TABLE.vertical_pair TR { + text-align: justify; + } + + TABLE.vertical_pair TD { + padding: 15px; + } + +TABLE.odd_vertical_pair { + margin-left: auto; + margin-right: auto; + border-collapse: separate; + border-spacing: 2px; +} + + TABLE.odd_vertical_pair TR { + text-align: justify; + } + + TABLE.odd_vertical_pair TD { + vertical-align: middle; + padding: 15px; + } + +TABLE.text_and_vertical { + margin: auto; + border-collapse: separate; + border-spacing: 2px; + width: 581px; +} + + TABLE.text_and_vertical TR { + text-align: justify; + } + + TABLE.text_and_vertical TD { + vertical-align: middle; + padding: 15px; + } + + TABLE.text_and_vertical TD.squeeze { + vertical-align: middle; + padding: 3px; + } + +TABLE.text_and_vertical0 { + margin: auto; + border-collapse: separate; + border-spacing: 0; + width: 573px; +} + + TABLE.text_and_vertical0 TR { + text-align: justify; + } + + TABLE.text_and_vertical0 TD { + vertical-align: middle; + } + + TABLE.text_and_vertical0 TD.squeeze { + vertical-align: middle; + padding: 3px; + } + +TABLE.center { + width: auto; + margin-left: auto; + margin-right: auto; +} + +TABLE.imageF { + border-collapse: separate; + border-spacing: 1px; + border: 4px ridge #f6f6f6; + margin-left: auto; + margin-right: auto; + margin-top: 1em; +} + + TABLE.imageF TD { + border: 1px solid gray; + margin-left: 10px; + margin-right: 10px; + text-align: justify; + font-size: 80%; + } + + TABLE.imageF TD TD { + border: 0; + } + +TABLE.image { + border: 1px solid; + margin-left: auto; + margin-right: auto; + margin-top: 1em; +} + +TABLE.image0 { + border: 1px solid; + margin-top: .30em; + margin-left: auto; + margin-right: auto; +} + +TABLE.startimage { + border: 1px solid; + margin-left: auto; + margin-right: auto; + margin-top: 3em; +} + +TABLE.logo { + border: 0; + margin-left: auto; + margin-right: auto; + width: 132px; +} + +TABLE.embed_left { + border: 1px solid; + float: left; + margin-top: 8px; + margin-right: 8px; +} + +.prose TABLE.embed_left { + border: 1px solid; + float: left; + margin-top: 8px; + margin-right: 16px; +} + +TABLE.embed_left_noborder { + border: 0; + float: left; + margin-top: 8px; + margin-right: 8px; +} + +.prose TABLE.embed_left_noborder { + border: 0; + float: left; + margin-top: 8px; + margin-right: 16px; +} + +TABLE.embed_right { + border: 1px solid; + float: right; + margin-top: 8px; + margin-left: 8px; +} + +.prose TABLE.embed_right { + border: 1px solid; + float: left; + margin-top: 8px; + margin-left: 16px; +} + +TABLE.embed_right_noborder { + border: 0; + float: right; + margin-top: 8px; + margin-left: 8px; +} + +.prose TABLE.embed_right_noborder { + border: 0; + float: left; + margin-top: 8px; + margin-left: 16px; +} + +/* THE FOLLOWING ALIGNMENTS DON'T WORK IN SAFARI OR EXPLORER: */ + +/* TD.decimal { */ +/* text-align: "."; */ +/* } */ + +/* TD.middot { */ +/* text-align: "°§"; */ +/* } */ + +TD.sidepadded { + padding: 0 1em; +} + +.sidebar { + margin-left: 2em; + margin-right: 2em; + font-size: 85%; + font-style: italic; + padding: 0 .5em; + border-style: solid; + border-top-width: 1px; + border-bottom-width: 1px; + border-left-width: 0; + border-right-width: 0; +} + +.arithmetic { + font-family: Courier, monospace; + padding: 0 .5em; + text-align: right; + margin-top: 0em; + margin-bottom: 0em; +} + +.arithmetic .underscore { + color: #ff0000 ! important; + border-style: solid; + border-bottom-width: 1px; +} + +TD.lineunder { + font-family: Courier, monospace; + padding: 0 .5em; + text-align: right; + border-style: solid; + border-top-width: 0px; + border-bottom-width: 1px; + border-left-width: 0px; + border-right-width: 0px; + margin-top: 0em; + margin-bottom: 0em; +} + +.total { + font-family: Courier, monospace; + padding: 0 .5em; + text-align: right; + border-style: solid; + border-top-width: 1px; + border-bottom-width: 0px; + border-left-width: 0px; + border-right-width: 0px; + margin-top: 0em; + margin-bottom: 0em; +} + +.totalwithleftBorder { + font-family: Courier, monospace; + padding: 0 .5em; + text-align: right; + border-style: solid; + border-top-width: 1px; + border-bottom-width: 0px; + border-left-width: 1px; + border-right-width: 0px; + margin-top: 0em; + margin-bottom: 0em; +} + +.totalwithrightBorder { + font-family: Courier, monospace; + padding: 0 .5em; + text-align: right; + border-style: solid; + border-top-width: 1px; + border-bottom-width: 0px; + border-left-width: 0px; + border-right-width: 1px; + margin-top: 0em; + margin-bottom: 0em; +} + +/* +double underscores, see: +E/Gazetteer/Places/Europe/Italy/_Texts/HODIHI/2d_edition/6/NoteF*.html + */ +.double_underscored_total { + font-family: Courier, monospace; + padding: 0 .5em; + text-align: right; + border-style: double; + border-top-width: 0px; + border-bottom-width: 4px; + border-left-width: 0px; + border-right-width: 0px; + margin-top: 0em; + margin-bottom: 0em; +} + +.doubleunder { + border-bottom-style: double; + border-bottom-width: 3px; +} + +.top_border { + border-style: solid; + border-top-width: 1px; +} + +.top_and_bottom_border { + border-style: solid; + border-top-width: 1px; + border-bottom-width: 1px; + border-left-width: 0px; + border-right-width: 0px; +} + +TD.alias { + width: 292px; + text-align: center; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-weight: bold; +} + +TD.quietalias { + width: 292px; + font-size: 80%; +} + +TD.right { + text-align: right; +} + +TD.cell { + text-align: center; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-size: 50%; +/* font-size was originally 9.1px */ +} + +TD.midcell { + vertical-align: middle; + text-align: center; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-size: 50%; +} + +TD.upcell1 { + width: 78px; + vertical-align: middle; + text-align: center; + font-family: Verdana, sans-serif; + font-size: 55%; + font-weight: bold; + color: #0000ff ! important; + background-color: #ffffcc ! important; +} + +TD.upcell { + width: 78px; + text-align: center; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-size: 50%; + background-color: #ffffcc ! important; + color: #cccccc ! important; /* grey only if no link; otherwise, overridden*/ +} + +/* The following is used for upcells, etc. that are just a text anchor, in order to line them up right. See examples in AOG Reunions. */ +.no_image { + vertical-align: middle; + margin-top: 24px; + margin-bottom: 24px; +} + +TD.alsocell1 { + vertical-align: middle; + text-align: center; + font-family: Verdana, sans-serif; + font-size: 55%; + font-weight: bold; + color: #0000ff ! important; + background-color: #ffff99 ! important; +} + +TD.alsocell { + width: 78px; + text-align: center; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-size: 50%; + background-color: #ffff99 ! important; + color: #cccccc ! important; /* grey only if no link; otherwise, overridden*/ +} + +TD.alsocell2 { + width: 156px; + text-align: center; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-size: 50%; + background-color: #ffff99 ! important; +} + +TD.offcell1 { + vertical-align: middle; + text-align: center; + font-family: Verdana, sans-serif; + font-size: 55%; + font-weight: bold; + color: #0000ff ! important; + background-color: #ffff66 ! important; +} + +TD.offcell { + width: 78px; + text-align: center; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-size: 50%; + color: #0000ff ! important; + background-color: #ffff66 ! important; +} + +TD.previouscell { + width: 100px; + vertical-align: middle; + text-align: center; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-size: 50%; +} + +TD.nextcell { + width: 100px; + vertical-align: middle; + text-align: center; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-size: 50%; +} + +TD.pinkcell { + width: 78px; + text-align: center; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-size: 50%; + background-color: #ffcccc ! important; +} + +TD.toughcell { + width: 78px; + text-align: center; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-size: 50%; + background-color: #ffff33 ! important; +} + +TD.churchcell { + width: 78px; + text-align: center; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-size: 50%; + background-color: #ecdaff ! important; +} + +TD.churchcell1 { + vertical-align: middle; + text-align: center; + font-family: Verdana, sans-serif; + font-size: 55%; + font-weight: bold; + color: #0000ff ! important; + background-color: #ecdaff ! important; +} + +TD.diarycell { + width: 78px; + text-align: center; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-size: 50%; + background-color: #99ffcc ! important; +} + +TD.diarycell1 { + vertical-align: middle; + text-align: center; + font-family: Verdana, sans-serif; + font-size: 55%; + font-weight: bold; + color: #0000ff ! important; + background-color: #99ffcc ! important; +} + +.transcription { + font-family: Verdana, sans-serif; + font-size: 90%; + color: #990000 ! important; + background-color: #ffffff ! important; +} + +.expansion { + font-family: Verdana, sans-serif; + font-size: 90%; + color: #990000 ! important; + background-color: #ffffcc ! important; +} + +.interpretation { + font-family: Verdana, sans-serif; + font-size: 90%; + color: #000033 ! important; + background-color: #ffcccc ! important; +} + +/* + the widths of "flag" and "mail" work together to add to 100%: + [1* the width of "mailN"] + [(N-1) * the width of "flagN"] add to 100% + + where "100%" is the width of TABLE.header or TABLE.headerbox +*/ + +TD.USMA_flag { + text-align: right; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-size: 50%; +} + +TD.flag { + text-align: center; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-size: 80%; +} + +TD.flagcell { + vertical-align: bottom; + text-align: center; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; +} + +TD.flagcell .Greek { + font-size: 95%; + line-height: 1.15; /* Greek fonts have more line-height built‑in, force smaller */ +} + +TD.flagcell .Ukrainian { + line-height: 1.00; /* Ukrainian fonts have more line-height built‑in, force smaller */ + color: #000066; /* to prevent Ukrainian-language color */ +} + +TD.mailcell { + vertical-align: bottom; + text-align: center; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; +} + +TR.header2 { + font-size: 80%; +} + TR.header2 .mailcell { + width: 75%; + } + TR.header2 .flagcell { + width: 25%; + } + +TR.header3 { + font-size: 80%; +} + TR.header3 .mailcell { + width: 40%; + } + TR.header3 .flagcell { + width: 30%; + } + +TR.header4 { + font-size: 80%; +} + TR.header4 .mailcell { + width: 28%; + } + TR.header4 .flagcell { + width: 24%; + } + +TR.header5 { + font-size: 80%; +} + TR.header5 .mailcell { + width: 28%; + } + TR.header5 .flagcell { + width: 18%; + } + +TR.header6 { + font-size: 75%; +} + TR.header6 .mailcell { + width: 20%; + } + + TR.header6 .flagcell { + width: 16%; + } + +TR.header7 { + font-size: 70%; +} + TR.header7 .mailcell { + width: 16%; + } + TR.header7 .flagcell { + width: 14%; + } + +TR.header7 { + font-size: 70%; +} + TR.header8 .mailcell { + font-size: 70%; + width: 16%; + } + TR.header8 .flagcell { + font-size: 70%; + width: 12%; + } + +TD.flag4 { + text-align: center; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-size: 80%; + width: 24%; +} + +TD.flag5 { + text-align: center; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-size: 80%; + width: 18%; +} + +TD.flag6 { + text-align: center; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-size: 75%; + width: 16%; +} + +TD.flag7 { + text-align: center; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-size: 70%; + width: 14%; +} + +TD.flag8 { + text-align: center; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-size: 70%; + width: 12%; +} + +TD.incipit { + text-align: center; + font-family: "Times New Roman", serif; + font-size: 85%; +} + +TD.mail { + width: 100px; + vertical-align: bottom; + text-align: center; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-size: 80%; +} + +TD.mail4 { + vertical-align: bottom; + text-align: center; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-size: 80%; + width: 28%; +} + +TD.mail5 { + vertical-align: bottom; + text-align: center; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-size: 80%; + width: 28%; +} + +TD.mail6 { + vertical-align: bottom; + text-align: center; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-size: 75%; + width: 20%; +} + +TD.mail7 { + vertical-align: bottom; + text-align: center; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-size: 70%; + width: 16%; +} + +TD.mail8 { + vertical-align: bottom; + text-align: center; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-size: 70%; + width: 16%; +} + +TD.icon { + width: 146px; + text-align: center; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-size: 69%; +} + TD.icon IMG.icon0 { + margin-top: 16px; + } + TD.icon IMG.icon1 { + margin-top: 16px; + } + TD.icon IMG.icon2 { + margin-top: 15px; + } + +/* PHASE OUT "TD.rubric": From now on, use TABLE.rubric (which specifies the 85% font); and each time, immediately delete all TD class attributes "CLASS="rubric" — leaving, however, any "TD CLASS="rubricB". When all "rubric" tables have been switched over, delete this style: it isn't needed at all. The model page is the main Umbertide page. */ +TD.rubric { + text-align: justify; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + margin-left: 10px; + margin-right: 10px; + font-size: 85%; +} + +TD.rubricTEMP { + text-align: justify; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + margin-left: 10px; + margin-right: 10px; +} + +TD.rubricB { + text-align: justify; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + margin-left: 10px; + margin-right: 10px; + vertical-align: bottom; +} + +TD.rubricT { + text-align: justify; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + margin-left: 10px; + margin-right: 10px; + vertical-align: top; +} + +TD.banner { + background-color: #ccffff ! important; + text-align: center; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-size: 100%; + color: #cc0066 ! important; + font-weight: bold; +} + +TD.update { + text-align: center; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + color: #cc0066 ! important; +} + +TR { + vertical-align: top; +} + +TR.down { + vertical-align: bottom; +} + +TR.middle { + vertical-align: middle; +} + +TR.up { + background-color: #ffffcc ! important; + empty-cells: show; + vertical-align: top; +} + +TR.also { + background-color: #ffff99 ! important; + empty-cells: show; + vertical-align: top; +} + +TR.church { + background-color: #ecdaff ! important; + empty-cells: show; + vertical-align: top; +} + +TR.diary { + background-color: #99ffcc ! important; + empty-cells: show; + vertical-align: top; +} + +TR.off { + background-color: #ffff66 ! important; + empty-cells: show; + vertical-align: top; +} + +TR.lapidary { + font-family: Verdana, sans-serif; + font-size: 90%; + color: #990000 ! important; + background-color: #ffffff ! important; +} + +.translation { + font-family: Verdana, sans-serif; + font-size: 90%; + color: #000066 ! important; + background-color: #ffff99 ! important; +} + +.sandstone .translation { + color: #000066 ! important; + background-color: #f0d9c7 ! important; +} + +TR.interpretation { + font-family: Verdana, sans-serif; + font-size: 90%; + color: #000033 ! important; + background-color: #ffcccc ! important; +} + +TABLE P.x1 { + margin-top: 0em; + margin-bottom: 0em; + margin-left: 20px; + margin-right: 10px; + text-indent: -10px; + } + +TABLE P.x2 { + margin-top: 0em; + margin-bottom: 0em; + margin-left: 30px; + margin-right: 30px; + text-indent: -30px; + } + +DIV.TOCbox { + width: 527px ! important; /* TOC minus 49 */ + background-color: #ccffff ! important; + text-align: justify; + font-size: 85%; + color: #000066 ! important; + margin: auto; + padding-top: 0.4em; + padding-bottom: 0.4em; + padding-left: 1.3em; + padding-right: 1.3em; + border-style: ridge +} + + .TOCbox H3 { + margin-top: 1.5em; /* same as halfstart */ + } + +TABLE.TOC { + background-color: #ffffff ! important; + color: #000066 ! important; + border-width: 5px; + border-collapse: collapse; + border-style: double; + font-size: 80%; +} + +TABLE.with_dividers { + border-collapse: collapse; +} + +TABLE.with_dividers TR.discreetly_separated{ + border-color: #ffffff; +} + + .TOC A { + color: #0000ff ! important; + } + .TOC A:link { + color: #0077cc ! important; + } + .TOC A:visited { + color: #ff0000 ! important; + } + .TOC A:hover { + color: #ff00ff ! important; + } + .TOC TD { + vertical-align: middle; + } + + .TOC P { + margin-top: 0em; + margin-bottom: 0em; + margin-left: 20px; + margin-right: 10px; + text-indent: -10px; + } + + .TOC P.center { + text-align: center; + margin-top: 0em; + margin-bottom: 0em; + margin-left: 0em; + margin-right: 0em; + text-indent: 0; + } + + .TOC P.white { + color: #000066; + } + + .TOC P.m1 { + margin-top: 0em; + margin-bottom: 0em; + margin-left: 30px; + margin-right: 20px; + text-indent: 0; + } + + .TOC P.m1x1 { + margin-top: 0em; + margin-bottom: 0em; + margin-left: 2em; + margin-right: 1em; + text-indent: -1em; + } + + .TOC P.m1x2 { + margin-top: 0em; + margin-bottom: 0em; + margin-left: 3em; + margin-right: 1em; + text-indent: -2em; + } + + .TOC P.m2 { + margin-top: 0em; + margin-bottom: 0em; + margin-left: 2em; + margin-right: 2em; + text-indent: 0; + } + + .TOC P.m2x1 { + margin-top: 0em; + margin-bottom: 0em; + margin-left: 3em; + margin-right: 2em; + text-indent: -1em; + } + + .TOC P.m2x2 { + margin-top: 0em; + margin-bottom: 0em; + margin-left: 4em; + margin-right: 2em; + text-indent: -2em; + } + + .TOC P.m3 { + margin-top: 0em; + margin-bottom: 0em; + margin-left: 3em; + margin-right: 3em; + text-indent: 0; + } + + .TOC P.m3x1 { + margin-top: 0em; + margin-bottom: 0em; + margin-left: 4em; + margin-right: 2em; + text-indent: -1em; + } + + .TOC P.m3x2 { + margin-top: 0em; + margin-bottom: 0em; + margin-left: 5em; + margin-right: 2em; + text-indent: -2em; + } + + .TOC P.m4 { + margin-top: 0em; + margin-bottom: 0em; + margin-left: 4em; + margin-right: 4em; + text-indent: 0; + } + + .TOC P.x2 { + margin-left: 50px; + text-indent: -40px; + } + +TABLE.TOC1 { + background-color: #ffffff ! important; + border-width: 5px; + border-style: double; + font-size: 80%; +} + + .TOC1 TD { + vertical-align: middle; + } + + .TOC1 P { + margin-top: 0.24em; + margin-bottom: 0.24em; + margin-left: 20px; + margin-right: 10px; + text-indent: -10px; + } + + .TOC1 .m1 { + margin-left: 30px; + margin-right: 30px; +} + +TABLE.newpages { + margin-top: 5em; + font-size: 85%; +} + + TABLE.newpages .m2x1 { + margin-left: 4em; + margin-right: 2em; + text-indent: -1em; + } + + TABLE.newpages .m3x1 { + margin-left: 5em; + margin-right: 3em; + text-indent: -1em; + } + + TABLE.newpages B { + color: #444444 ! important; + } + TABLE.newpages .bold { + color: #444444 ! important; + } + TABLE.newpages A.bold { + color: #0000ff ! important; + } + TABLE.newpages A:link { + color: #0000ff ! important; + } + TABLE.newpages A:visited { + color: #cc0000 ! important; + } + TABLE.newpages A:hover { + color: #ff00ff ! important; + } + TABLE.newpages A:active { + color: #ff00ff ! important; + } + +TABLE.dotpoints { + width: 90%; + margin: auto; + line-height: 1.5; + text-align: justify; +} + + TABLE.dotpoints TD { + padding-left: 10px; + padding-right: 10px; + } + +.TOCitem { + text-align: justify; + font-size: 80%; + margin-left: 2em; + margin-right: 1em; + text-indent: -1em; +} + +.TOCpagenum { + vertical-align: middle; + font-family: Courier, monospace; + text-align: right; + padding-right: 10px; + margin-left: 10px; +} + +.TOCchapnum { + vertical-align: middle; + text-align: center; + font-weight: bold; + font-size: 190%; +} + +TD.leadoff_summary { + background-color: #ccffff ! important; + font-family: Verdana, Arial, Helvetica, sans-serif; + font-size: 53%; + color: #000066 ! important; + text-align: center; + border-style: solid; + border-color: #990000; + border-width: 1px; +} + +TD.Roman_summary { + background-color: #ff99ff ! important; + font-family: Verdana, Arial, Helvetica, sans-serif; + font-size: 53%; + text-align: center; +} + +.big_caption { + text-align: center; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-weight: bold; +} + +.caption { + text-align: center; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-size: 80%; +} + + .caption .photo_credits { + margin-top: .5em; + margin-right: 0; +} + +.low_caption { + text-align: center; + font-size: 85%; + text-transform: uppercase; + margin-bottom: 0; +} + +.image_title { + text-align: center; + margin-top: 0.5em; + hyphens: none; +} + +TD.contents { + margin-left: 10px; + margin-right: 10px; + font-size: 80%; +} + +.contents { + margin-left: 10px; + margin-right: 10px; + font-size: 80%; +} + + .contents .inscription { + font-family: Verdana, sans-serif; + font-size: 80%; + line-height: 1.2; /* line-height of ".inscription" (1.5) multiplied by font-size of ".contents" */ +} + + .contents .small_inscription { + font-family: Verdana, sans-serif; + font-size: 80%; +} + + .contents .Ukrainian { + font-size: 80%; + line-height: 1.08; +} + + .contents .lapis { + font-family: Verdana, sans-serif; + font-size: 80%; + line-height: 1.2; +} + + .contents .nummus { + color: #990000 ! important; + font-family: Verdana, sans-serif; + font-size: 80%; + text-transform: uppercase; + line-height: 1.2; +} + + .contents P { + margin-left: 10px; + margin-right: 10px; +} + +.ecru1 { + background-color: #ffffcc ! important; +} + +.ecru2 { + background-color: #ffff99 ! important; +} + +.ecru3 { + background-color: #ffff66 ! important; +} + +.ex { + text-align: justify; + margin-left: 30px; + text-indent: -30px; +} + +.exdent { + text-align: justify; + margin-left: 30px; + text-indent: -30px; + font-family: Verdana, sans-serif; + font-size: 75%; + line-height: 120%; +} + +.exdent_quote { + text-align: justify; + margin-top: 0em; + margin-bottom: 0em; + margin-left: 30px; + text-indent: -30px; + font-family: Verdana, sans-serif; + font-size: 85%; + color: #990000 ! important; + line-height: 100%; +} + +.index { + text-align: justify; + margin-left: 30px; + text-indent: -30px; + font-size: 75%; +} + +.index-start { + margin-top: 3em; + text-align: justify; + margin-left: 30px; + text-indent: -30px; + font-size: 75%; +} + +.margin { + margin-left: 40px; + margin-right: 40px; +} + +.nomargin { + margin-left: -40px; + margin-right: -40px; +} + +.not_online1 { + background-color: #e0e0e0 ! important; + font-size: 90%; + color: #666666 ! important; +} + +.not_online2 { + background-color: #d0d0d0 ! important; + font-size: 90%; + color: #555555 ! important; +} + +.offsite1 { + background-color: #ccffe5 ! important; +} + +.offsite2 { + background-color: #99ffcc ! important; +} + +.pad { + margin-left: 10px; + margin-right: 10px; +} + +TABLE.padsides TD { + padding-left: 10px; + padding-right: 10px; + font-size: 90%; +} + +.proofread0 { + background-color: #b2ffff ! important; +} + +.proofread1 { /* 90% white */ + background-color: #ccffff ! important; +} + TR.proofread1 TD.not_online { + background-color: #e0e0e0 ! important; + font-size: 90%; + color: #555555 ! important; + } + + .proofread1 .comment { + font-weight: bold; + color: #990099! important; + } + + .proofread1 .emend { + color: #339933 ! important; + } + + .proofread1 .primary_source { + color: #2AA22A ! important; + } + + .proofread1 .source { + font-weight: bold; + color: #006600! important; + } + + TR.proofread1 TD A { + color: #0000ff! important; + } + TR.proofread1 TD A:link { + color: #0000ff ! important; + } + TR.proofread1 TD A:visited { + color: #ff0000 ! important; + } + TR.proofread1 TD A:hover { + color: #ff00ff ! important; + } + TR.proofread1 TD A:active { + color: #ff00ff ! important; + } + +.proofread2 { /* 80% white */ + background-color: #99ffff ! important; +} + TR.proofread2 TD.not_online { + background-color: #d0d0d0 ! important; + font-size: 90%; + color: #555555 ! important; + } + + .proofread2 .comment { + font-weight: bold; + color: #990099! important; + } + + .proofread2 .emend { + color: #339933 ! important; + } + + .proofread2 .source { + font-weight: bold; + color: #006600! important; + } + + TR.proofread2 TD A { + color: #0000ff! important; + } + + TR.proofread2 TD A:link { + color: #0000ff ! important; + } + TR.proofread2 TD A:visited { + color: #ff0000 ! important; + } + TR.proofread2 TD A:hover { + color: #ff00ff ! important; + } + TR.proofread2 TD A:active { + color: #ff00ff ! important; + } + +.needs_images0 { + background-color: #c6d9ff ! important; +} + +.needs_images1 { /* 90% white, and closer to proofread1 than to unproofread1 */ + background-color: #ccddff ! important; +} + TR.needs_images1 TD A { + color: #0000ff! important; + } + + TR.needs_images1 TD A:link { + color: #0000ff ! important; + } + TR.needs_images1 TD A:visited { + color: #ff0000 ! important; + } + TR.needs_images1 TD A:hover { + color: #ff00ff ! important; + } + TR.needs_images1 TD A:active { + color: #ff00ff ! important; + } + +.needs_images2 { /* 85% white, and closer to proofread2 than to unproofread2 */ + background-color: #b2ccff ! important; +} + TR.needs_images2 TD A { + color: #0000ff! important; + } + + TR.needs_images2 TD A:link { + color: #0000ff ! important; + } + TR.needs_images2 TD A:visited { + color: #ff0000 ! important; + } + TR.needs_images2 TD A:hover { + color: #ff00ff ! important; + } + TR.needs_images2 TD A:active { + color: #ff00ff ! important; + } + + +.gloss { + font-family: Verdana, sans-serif; + font-size: 90%; + color: #660099 ! important; + } + +/* An imperfect workaround used for pulling text up one line in order to superimpose two lines: the second line is the one that gets the style. */ +/* +Used in +E/Gazetteer/People/Robert_Edward_Coontz/From_the_Mississippi_to_the_Sea/Appendices/C*.html + */ +.up1line { + margin-top: -2.5em; +} + +.unindented_prose { + font-family: "Myriad Web Pro", Helvetica, Geneva, "Lucida Grande", sans-serif; + line-height: 1.5; + font-size: 85%; + text-align: justify; +} + +.allcaps { + text-transform: uppercase; + letter-spacing: .05em; +} + +.prose { + font-family: "Myriad Web Pro", Helvetica, Geneva, "Lucida Grande", sans-serif; + line-height: 1.5; + font-size: 85%; + margin-left: 2em; + margin-right: 2em; + text-align: justify; +} + + .prose .normal { + font-family: Verdana, sans-serif; + font-size: 90%; + color: #660099 ! important; + } + + .prose .citation { + font-weight: bold; + font-size: 85%; + font-variant: normal; + } + + .prose .manuscript { + font-size: 90%; + } + + .prose .Greek { + color: #996600 ! important; + font-family: "Lucida Grande", "Palatino Linotype", "Arial Unicode Ms", "Titus Cyberbit Basic", "Lucida Sans Unicode", sans-serif ! important; + font-size: 95%; + } + + .prose TABLE { + font-family: "Myriad Web Pro", Helvetica, Geneva, "Lucida Grande", sans-serif; + margin-left: -.2em; + margin-right: -.2em; + line-height: 1.5; + font-size: 100%; + text-align: justify; + } + +.outquote { + color: #7700b3 ! important; +} + +.quote { + font-family: Verdana, sans-serif; + font-size: 85%; +} + +.quote1 { + font-family: Verdana, sans-serif; + font-size: 85%; + margin-left: 2em; + margin-right: 2em; +} + + .quote1 P { + margin-top: 0em; + margin-bottom: 0em; + text-indent: 1em; + text-align: justify; + } + + .quote1 P.right { + margin-top: 0em; + margin-bottom: 0em; + text-align: right; + } + + .quote1 P.center { + margin-top: 0em; + margin-bottom: 0em; + text-align: center; + } + + .quote1 P.in{ + margin-top: 0em; + margin-bottom: 0em; + text-indent: 0em; + text-align: justify; + } + +.verseTEST { + font-family: Verdana, sans-serif; + font-size: 85%; + position: relative; + margin: auto; + height: 50%; + top: 25%; +} + +.verseTEST P { + margin: auto; + margin-top: 0em; + margin-bottom: 0em; + margin-left: 3em; + text-indent: -3em; +} + +/*Greek TEST (settled)*/ +.verse { + font-family: "Myriad Web Pro", Helvetica, Geneva, "Lucida Grande", sans-serif; + line-height: 1.5; + font-size: 85%; + letter-spacing: .06em; + margin-left: 2em; + margin-right: 2em; +} + + .mynote .verse { + color: #000066 ! important; + } + + .mynoteWide .verse { + color: #000066 ! important; + } + + +.verse .right { + font-family: "Myriad Web Pro", Helvetica, Geneva, "Lucida Grande", sans-serif; + font-size: 85%; + margin-left: 2em; + margin-right: 2em; +} + +.verse P { + margin-top: 0em; + margin-bottom: 0em; + margin-left: 3em; + margin-right: 3em; + text-indent: -3em; +} + +.verse P.nopad { + margin-top: 0em; + margin-bottom: 0em; + margin-left: 0em; + margin-right: 0em; + color: #ff6600 ! important;} + +/* +TABLE.verse P.center { + margin-top: 0em; + margin-bottom: 0em; + margin-left: 3em; + margin-right: 3em; +} +*/ + +.verse P.start { + margin-top: 1em; + margin-bottom: 0em; +} + +.verse P.start2 { + margin-top: 5em; + margin-bottom: 0em; +} + +.verse .verse { + font-size: 100%; + text-indent: -2em; +} + +.verse .verse1 { + text-indent: 0em; +} + +.verse .verse2 { + text-indent: 2em; +} + +.verse .verse3 { + text-indent: 4em; +} + +.verse .verse4 { + text-indent:6em; +} + +.verse .verse5 { + text-indent: 8em; +} + +.verse .verse6 { + text-indent: 10em; +} + +.verse .verse7 { + text-indent: 12em; +} + +.verse .verse8 { + text-indent: 14em; +} + +.verse .verse9 { + text-indent: 16em; +} + +.verse .verse10 { + text-indent: 18em; +} + +.verse .verse11 { + text-indent: 20em; +} + +.verse .verse12 { + text-indent: 22em; +} + +.unproofread0 { + background-color: #ffb2b2 ! important; +} + +.unproofread1 { /* 90% white */ + background-color: #ffcccc ! important; +} + TR.unproofread1 TD.not_online { + background-color: #e0e0e0 ! important; + font-size: 90%; + color: #555555 ! important; + } + + TR.unproofread1 TD A { + color: #0000ff! important; + } + + TR.unproofread1 TD A:link { + color: #0000ff ! important; + } + TR.unproofread1 TD A:visited { + color: #ff0000 ! important; + } + TR.unproofread1 TD A:hover { + color: #ff00ff ! important; + } + TR.unproofread1 TD A:active { + color: #ff00ff ! important; + } + +.unproofread2 { /* 80% white */ + background-color: #ff9999 ! important; +} + TR.unproofread2 TD.not_online { + background-color: #d0d0d0 ! important; + font-size: 90%; + color: #555555 ! important; + } + + TR.unproofread2 TD A { + color: #0000ff! important; + } + + TR.unproofread2 TD A:link { + color: #0000ff ! important; + } + TR.unproofread2 TD A:visited { + color: #ff0000 ! important; + } + TR.unproofread2 TD A:hover { + color: #ff00ff ! important; + } + TR.unproofread2 TD A:active { + color: #ff00ff ! important; + } + + +.unproofread3 { + background-color: #ff6666 ! important; +} + +.unproofread4 { + background-color: #ff3333 ! important; +} + +TR.thanks { + background-color: #ccffff ! important; +} + +.thanks { + margin-left: 10em; + font-size: 85%; + background-color: #ccffff ! important; + vertical-align: middle; + text-align: center; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + color: #cc3300 ! important; +} + +.thanks A:visited { + color: #00ff00 ! important; /* THIS DOESN'T WORK. */ +} + +.thanks A { + font-weight: bold; + font-size: 120%; + color: #0000ff ! important; +} + +P.thanks { + margin: 1em; +} + +/* COMPOUND SCHEMES: */ + +.callout1 { + font-family: sans-serif; + color: #8800cc ! important; +} + +.sans { + font-family: sans-serif; +} + +.callout-red { + font-family: sans-serif; + color: #cc0033 ! important; +} + +.callout-orange { + font-family: sans-serif; + color: #cc9900 ! important; +} + +.epitome { + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + color: #660066 ! important; +} + +.Tzetzes { + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + color: #003333 ! important; +} + +.nummus { + color: #990000 ! important; + font-family: Verdana, sans-serif ! important; + font-size: 80% ! important; + text-transform: uppercase ! important; +} + + .nummus .emend { + color: #ee6633 ! important; + } + + .nummus .superscript { + font-size: 50%; + vertical-align: top; + } + +.Tiny { + font-family: Tiny, sans-serif; + font-size: 62%; +} + +/* THIS SEEMS NOT TO BE USED. I COMMENTED IT OUT BECAUSE IT CONFLICTS WITH TR.up, CAUSING A MINOR BUT UNAESTHETIC GLITCH IN FOOTERS. IF IT NEEDS TO BE RESTORED, RENAME IT. +.up { + position: relative; + top: -4px; +} + */ + +.Verdana { + font-family: Verdana, sans-serif; + font-size: 85%; +} + +/* COLOR SCHEMES:*/ + /* for table columns and rows:*/ + +.green1 { + background-color: #ccffcc ! important; +} + +.green2 { + background-color: #99ff99 ! important; +} + +.beige1 { + background-color: #fff7f2 ! important; +} + +.beige2 { + background-color: #ffe7d9 ! important; +} + +.blue1 { + background-color: #ccffff ! important; +} + +.blue2 { + background-color: #99ffff ! important; +} + +.purple1 { + background-color: #ffddff ! important; +} + +.purple2 { + background-color: #ffaaff ! important; +} + +.red1 { + background-color: #ffbbbb ! important; +} + +.red2 { + background-color: #ff8888 ! important; +} + +.orange1 { + background-color: #ffddbb ! important; +} + +.orange2 { + background-color: #ffbb88 ! important; +} + +.yellow1 { + background-color: #ffffaa ! important; +} + +.yellow2 { + background-color: #ffff55 ! important; +} + +.grey0 { + background-color: #f6f6f6 ! important; +} + +.grey1 { + background-color: #e9e9e9 ! important; +} + +.grey2 { + background-color: #e3e3e3 ! important; +} + +.road1 { + background-color: #ffffcc ! important; +} + +.road2 { + background-color: #ffff99 ! important; +} + +.land1 { + background-color: #ccffcc ! important; +} + +.land2 { + background-color: #99ff99 ! important; +} + +.sandstone1 { + background-color: #ffeedd ! important; +} + +.sandstone2 { + background-color: #eeddcc ! important; +} + +.sea1 { + background-color: #ccffff ! important; +} + +.sea2 { + background-color: #99ffff ! important; +} + +.row1cell1 { + background-color: #ffffcc ! important; +} + +.row1cell2 { + background-color: #ccffff ! important; +} + +.row2cell1 { + background-color: #ffff99 ! important; +} + +.row2cell2 { + background-color: #99ffff ! important; +} + +.addendum { + color: #003399 ! important; +} + +.callout { + color: #8800cc ! important; +} + + +DIV.boxlinksprompt { + background-color: #E8E8E8 !important; + text-align: center; + font-size: 65%; + color: #061CBE !important; + width: 42em; + margin-left: auto; + margin-right: auto; + margin-top: 3em; + padding-top: 0.4em; + padding-bottom: 0.4em; + padding-left: 0.6em; + padding-right: 0.6em; + border: .25em ridge #ffffff !important; +} + +.GazetteerPrompt { + background-color: #ebebff ! important; + color: #0066ff ! important; +} + + .GazetteerPrompt .title { + margin-bottom: 0em; + text-align: center; + color: #0000ff ! important; +} + + .GazetteerPrompt P { + margin-top: 0em; +} + +.HistoryPrompt { + background-color: #ffebeb ! important; + color: #993333 ! important; +} + + .HistoryPrompt .title { + margin-bottom: 0em; + text-align: center; + color: #ff0000 ! important; +} + + .HistoryPrompt P { + margin-top: 0em; +} + +.MixedPrompt { + background-color: #ffe5ff ! important; + color: #663399 ! important; +} + + .MixedPrompt .title { + margin-bottom: 0em; + text-align: center; + color: #cc00ff ! important; +} + + .MixedPrompt P { + margin-top: 0em; +} + +.recommended { + background-color: #ccffcc ! important; +} + +.not_recommended { + background-color: #ffeedd ! important; +} + +/* +TABLE COLORS: use country name nouns, reserving adjectives for font styles +*/ +.France { + color: #001099 ! important; + border: 1px solid #cc0000 ! important; +} + +.Italy { + color: #309900 ! important; + border: 1px solid #cc0000 ! important; +} + +.Symbola{ + font-family: Symbola; +} diff --git a/sources/book_4a_files/up.gif b/sources/book_4a_files/up.gif new file mode 100644 index 0000000..526a178 Binary files /dev/null and b/sources/book_4a_files/up.gif differ diff --git a/sources/book_4b.html b/sources/book_4b.html new file mode 100644 index 0000000..2198387 --- /dev/null +++ b/sources/book_4b.html @@ -0,0 +1,3386 @@ + + + + + + + + + + +LacusCurtius • Ad Herennium — Book IV, 19‑46 + + + + + + + + + + + + + + + +

+ + + + +
+
+ 
+[image ALT: Much of my site will be useless to you if you've got the images turned off!]
+
+ + + + + + + + + + + + + + + + + +
+mail: +
+Bill Thayer + +
+ + 
+[image ALT: Cliccare qui per una pagina di aiuto in Italiano.]
+
+Italiano +
+
+ + 
+[Link to a series of help pages]
+
+Help +
+
+ + [Link to the next level up]
+Up +
+
+ + [Link to my homepage]
+Home +
+
+ + + + + +
+ previous: +
+ 
+[image ALT: link to previous section]
+
+IV.1‑18 +
+
+

+This webpage reproduces part of +
+a complete English translation of the +
+ +Rhetorica ad Herennium + +
+published in the +Loeb Classical Library, +
+1954 +

+The text is in the public domain. + +

+This page has been carefully proofread +
+and I believe it to be free of errors. +
+If you find a mistake though, +
+ +please let me know! + +

+ next: +
+ 
+[image ALT: link to next section]
+
+IV.47‑69 +
+
+
+ + +

+ +Rhetorica ad Herennium + +

+ +

+  p275  +Book IV +

+ + +

+ 13 +(18) To confer distinction upon style is to render it ornate,​1 embellishing it by variety. The divisions under Distinction are Figures of Diction and the Figures of Thought.​2 + It is a figure of diction if the adornment is comprised in the fine +polish of the language itself. A figure of thought derives a +certain distinction from the idea, not from the words. + +

+* * * + +

+19 Epanaphora​3 occurs when one and the same word forms successive beginnings for phrases expressing + + + p277 like and +different ideas, as follows: "To you must go the credit for this, to you + are thanks due, to you will this act of yours bring glory." Again: +"Scipio razed Numantia, Scipio destroyed Carthage, Scipio brought peace, + Scipio saved the state." Again: "You venture to enter the Forum? You +venture to face the light? You venture to come into the sight of these +men? Dare you say a word? Dare you make a request of them? Dare you beg +off punishment?​4 + What can you say in your defence? What do you dare to demand? What do +you think should be granted to you? Have you not violated your oath? +Have you not betrayed your friends? Have you not raised your hand +against your father? Have you not, I ask, wallowed in every shame?" + This figure has not only much charm, but also impressiveness and vigour + in highest degree; I therefore believe that it ought to be used +for both the embellishment and the amplification of style. + +

+In Antistrophe​5 + we repeat, not the first word in successive phrases, as in Epanaphora, +but the last, as follows: "It was by the justice of the Roman people +that the Carthaginians were conquered, by its force of arms that they +were conquered, by its generosity that they were conquered." Again: "Since + the time when from our state concord disappeared, liberty disappeared, +good faith disappeared, friendship disappeared, the common weal +disappeared." Again: "Gaius Laelius was a self-made man, a talented man, + a learned man, to good + + + p279 men and +good endeavour a friendly man; and so in the state he was the first +man." Again: "Is it acquittal by these men that you are demanding? Then +it is their perjury that you are demanding, it is their neglect of their + reputation that you are demanding, it is the surrender of the laws of +the Roman people to your caprice that you are demanding."6 + +

+ 14 + +20 Interlacement​7 + is the union of both figures, the combined use of Antistrophe and +Epanaphora, which are explained above; we repeat both the first word and + the last in a succession of phrase, as follows: "Who are they who have +often broken treaties? The Carthaginians. Who are they who have waged +war with severest cruelty? The Carthaginians. Who are they who have +marred the face of Italy? The Carthaginians. Who are they who now ask +for pardon? The Carthaginians.​8 + See then how appropriate it is for them to gain their request." Again: +"One whom the Senate has condemned, one whom the Roman people has +condemned, one whom universal public opinion has condemned, would you by + your votes acquit such a one?" + +

+Transplacement​9 + makes it possible for the same word to be frequently reintroduced, not +only without offence to good taste, but even so as to render the style +more elegant, as follows: "One who has nothing in life more desirable +than life cannot cultivate + + + p281 a virtuous life."​10 Again: "You call him a man, who, had he been a man, would never so cruelly have sought another man's life.​11 + But he was his enemy. Did he therefore wish thus to avenge himself upon + his enemy, only to prove himself his own enemy?" Again: "Leave riches +to the rich man, but as for you, to riches prefer virtue, for if you +will but compare riches with virtue, riches will in your eyes prove +scarcely worthy to be the lackeys of virtue." + +

+21 To the same type of figure belongs +that which occurs when the same word is used first in one function, and +then in another,​12 + as follows: "Why do you so zealously concern yourself with this matter, + which will cause you much concern?" Again: "To be dear to you would +bring me joy — if only I take care it shall not in anguish cost me +dear."​13 Again: "I would leave this place, should the Senate give me leave."14 + +

+In the four kinds of figures which I have thus far set forth,​15 + the frequent recourse to the same word is not dictated by verbal +poverty; rather there inheres in the repetition an elegance which the +ear can distinguish more easily than words can explain. + +

 p283  + 15 + +Antithesis​16 + occurs when the style is built upon contraries, as follows: "Flattery +has pleasant beginnings, but also brings on bitterest endings."​17 + Again: "To enemies you show yourself conciliatory, to friends +inexorable." Again: "When all is calm, you are confused; when all is in +confusion, you are calm. In a situation requiring all your coolness, you + are on fire; in one requiring all your ardour, you are cool.​18 + When there is need for you to be silent, you are uproarious; when you +should speak, you grow mute. Present, you wish to be absent; absent, you + are eager to return.​19 + In peace, you keep demanding war; in war, you yearn for peace. In the +Assembly, you talk of valour; in battle, you cannot for cowardice endure + the trumpet's sound." Embellishing our style by means of this figure we + shall be able to give it impressiveness and distinction. + +

+22 Apostrophe​20 + is the figure which expresses grief or indignation by means of an +address to some man or city or place or object, as follows: "It is you +I now address, Africanus, whose name even in death means splendour +and glory to the state! It is your famous grandsons​21 who by their own blood have fed the + + + p285 cruelty of their enemies." Again: "Perfidious Fregellae, how quickly, because of your crime, you have wasted away!​22 + As a result, of the city whose brilliance but yesterday irradiated +Italy, scarce the debris of the foundations now remains." Again: +"Plotters against good citizens,​23 + villains, you have sought the life of every decent man! Have you +assumed such power for your slanders thanks to the perversions of +justice?" If we use Apostrophe in its proper place, sparingly, and when +the importance of the subject seems to demand it,​24 we shall instill in the hearer as much indignation as we desire. + +

+Not all Interrogation​25 + is impressive or elegant, but that Interrogation is, which, when the +points against the adversaries' cause have been summed up, reinforces +the argument that has just been delivered, as follows: "So when you were + doing and saying and managing all this, were you, or were you not, +alienating and estranging from the republic the sentiments of our +allies? And was it, or was it not, needful to employ some one to thwart +these designs of yours and prevent their fulfilment?"26 + +

+ 16 + +23 Through the figure, Reasoning by Question and Answer,​27 we ask ourselves the reason for every + + + p287 statement +we make, and seek the meaning of each successive affirmation, as +follows: "When our ancestors condemned a woman for one crime, they +considered that by this single judgement she was convicted of many +transgressions. How so? Judged unchaste, she was also deemed guilty of +poisoning.​28 + Why? Because, having sold her body to the basest passion, she had to +live in fear of many persons. Who are these? Her husband, her parents, +and the others involved, as she sees, in the infamy of her dishonour. +And what then? Those whom she fears so much she would inevitably wish to + destroy. Why inevitably? Because no honourable motive can restrain a +woman who is terrified by the enormity of her crime, emboldened by her +lawlessness, and made heedless by the nature of her sex. Well now, what +did they think of a woman found guilty of poisoning? That she was +necessarily also unchaste? Why? because no motive could more easily have + led her to this crime than base love and unbridled lust. Furthermore, +if a woman's soul had been corrupted, they did not consider her body +chaste. Now then, did they observe this same principle with respect to +men? Not at all. And why? Because men are driven to each separate crime +by a different passion, whereas a woman is led into all crimes by one +sole passion."​29 Again: "It is a good principle which our ancestors established, of not putting to death any king captured by force of arms.​30 + Why is this so? Because it were unfair to use the advantage vouchsafed +to us by fortune to punish those whom the same fortune had but recently +placed in the highest station. But what + + + p289 of the +fact that he has led an army against us? I refuse to recall it. +Why? Because it is characteristic of a brave man to regard rivals for +victory as enemies, but when they have been vanquished to consider them +as fellow men,​31 + in order that his bravery may avail to put an end to the war, and his +humanity to advance peace. But had that king prevailed, he would not, +would he, have done the same? No, no doubt he would have been less wise. + Why, then, do you spare him? Because it is my habit to scorn, not +emulate, such folly." 24 This figure +is exceedingly well adapted to a conversational style, and both by its +stylistic grace and the anticipation of the reasons, holds the hearer's +attention. + +

+ 17 + +A Maxim​32 + is a saying drawn from life, which shows concisely either what happens +or ought to happen in life, for example: "Every beginning is difficult." + Again: "Least in the habit of giving reverence to the virtues is he who + has always enjoyed the favours of fortune." Again: "A free man is +that man to be judged who is a slave to no base habit."​33 Again: "As poor as the man who had not enough is the man who cannot have enough."​34 Again: "Choose the noblest way of living; habit will make it enjoyable."​35 + Simple maxims of this sort are not to be rejected, because, if no +reason is needed, the brevity of the statement has great charm. But + + + p291 we must +also favour that kind of maxim which is supported by an accompanying +reason, as follows: "All the rules for noble living should be based on +virtue, because virtue alone is within her own control, whereas all else + is subject to the sway of fortune."​36 + Again: "Those who have cultivated a man's friendship for his wealth one + and all fly from him as soon as his wealth has slipped away. For when +the motive of their intercourse has disappeared, there is nothing left +which can maintain that friendship."37 + +

+There are also maxims which are presented in double form. Without a reason,​38 + as follows: "They who in prosperity think to have escaped all the +onslaughts of fortune are mistaken; they who in favourable times fear a +reversal are wise in their forethought."​39 25 With a reason,​40 + as follows: "They who think that the sins of youth deserve indulgence +are deceived, because that time of life does not constitute a hindrance +to sound studious activities. But they act wisely who chastise the young + with especial severity in order to inculcate at the age most opportune +for it the desire to attain those virtues by which they can order their +whole lives."​41 + We should insert maxims only rarely, that we may be looked upon as +pleading the case, not preaching morals. When so interspersed, they will + add much distinction. Furthermore, the hearer, when he + + + p293 perceives that an indisputable principle drawn from practical life is being applied to a cause, must give it his tacit approval.42 + +

+ 18 + +Reasoning by Contraries​43 + is the figure which, of two opposite statements, uses one so as neatly +and directly to prove the other, as follows: "Now how should you expect +one who has ever been hostile to his own interests to be friendly to +another's?"​44 + Again: "Now why should you think that one who is, as you have learned, a + faithless friend, can be an honourable enemy? Or how should you expect a + person whose arrogance has been insufferable in private life, to be +agreeable and not forget himself when in power, and one who in ordinary +conversation and among friends has never spoken the truth, to refrain +from lies before public assemblies?" Again: "Do we fear to fight them on + the level plain when we have hurled them down from the hills? When they + outnumbered us, they were no match for us; now that we outnumber them, +do we fear that they will conquer us?" 26 This + figure ought to be brief, and completed in an unbroken period. +Furthermore, it is not only agreeable to the ear on account of its brief + and complete rounding-off, but by means of +the contrary statement it also forcibly proves what the speaker needs to + prove; and from a statement which is not open to question it draws a + + + p295 thought +which is in question, in such a way that the inference cannot be +refuted, or can be refuted only with much the greatest difficulty. + +

+ 19 + +Colon or Clause​45 + is the name given to a sentence member, brief and complete, which does +not express the entire thought, but is in turn supplemented by another +colon, as follows: "On the one hand you were helping your enemy." That +is one so‑called colon; it ought then to be +supplemented by a second: "And on the other you were hurting your +friend." This figure can consist of two cola, but it is neatest and most + complete when composed of three, as follows: "You were helping your +enemy, you were hurting your friend, and you were not consulting your +own best interests."​46 + Again: "You have not consulted the welfare of the republic, nor have +you helped your friends, nor have you resisted your enemies." + +

+It is called a Comma or Phrase​47 + when single words are set apart by pauses in staccato speech, as +follows: "By your vigour, voice, looks you have terrified your +adversaries." Again: "You have destroyed your enemies by jealousy, +injuries, influence, perfidy." + + + p297 There is +this difference in onset between the last figure and the one preceding: +the former moves upon its object more slowly and less often, the latter +strikes more quickly and frequently. Accordingly in the first figure it +seems that the arm draws back and the hand whirls about to bring the +sword to the adversary's body, while in the second his body is as it +were pierced with quick and repeated thrusts. + +

+27 A Period​48 is a close-packed + and uninterrupted group of words embra­cing a complete thought. We +shall best use it in three places: in a Maxim, in a Contrast,​49 + and in Conclusion. In a Maxim as follows: "Fortune cannot much harm him + who has built his support more firmly upon virtue than upon chance." In + a Contrast, as follows: "For if a person has not placed much hope in +chance, what great harm can chance do to him?" In a Conclusion, as +follows: "But if Fortune has her greatest power over those who have +committed all their plans to chance, we should not entrust our all with +her, lest she gain too great a domination over us."​50 + In these three types a compact style is so necessary for the force of +the period that the orator's power seems inadequate if he fails to +present the Maxim, Contrast, or Conclusion in a press of words. But in +other cases as well it is often proper, although not imperative, to +express certain thoughts by means of periods of this sort. + +

 p299  + 20 + +We call Isocolon​51 the figure comprised of cola (discussed above)​52 + which consist of a virtually equal number of syllables. To effect the +isocolon we shall not count the syllables — for that is surely childish — + but experience and practice will bring such a facility that by a sort +of instinct we can produce again a colon of equal length to the one +before it, as follows: "The father was meeting death in battle; the son +was planning marriage at his home. These omens wrote grievous +disasters." Again: "Another man's prosperity is the gift of fortune, but + this man's good character has been won by hard work." 28 In this figure it may often happen that the number of syllables seems equal without being precisely so​53 + — as when one colon is shorter than the other by one or even two +syllables, or when one colon contains more syllables, and the other +contains one or more longer or fuller-sounding + syllables, so that the length or fullness of sound of these matches and + counterbalances the greater number of syllables in the other. + +

The figure called Homoeoptoton​54 occurs when in the same period two or more words appear in the same case, and with like termination, as follows: "Hominem laudem egentem virtutis, abundantem felicitatis?"​55 Again: "Huic omnis in pecunia spes est, a sapientia est animus remotus; diligentia conparat divitias, neglegentia corrumpit animum, + + + p301 et tamen, cum ita vivit, neminem prae se ducit hominem."56 + +

Homoeoteleuton​57 + occurs when the word endings are similar, although the words are +indeclinable, as follows: "You dare to act dishonourably, you strive to +talk despicably; you live hatefully, you sin zealously, you speak +offensively." Again: "Blusteringly you threaten; cringingly you +appease."58 + +

+These two figures, of which one depends on like word endings and the +other on like case endings, are very much of a piece. And that is why +those who use them well generally set them together in the same passage +of a discourse. One should effect this in the following way: "Perditissima ratio est amorem petere, pudorem fugere, diligere formam, neglegere famam."​59 Here the declinable words​60 close with like case endings, and those lacking cases​61 close with like terminations.62 + +

+ 21 + +29 Paronomasia​63 is the figure in which, by means of a modification in sound, or change of letters, a close resemblance to a given verb or noun​64 is produced, + + + p303 so that +similar words express dissimilar things. This is accomplished by many +different methods: (1) by thinning or contracting​65 the same letter, as follows: "Hic qui se magnifice iactat atque ostentat, venīt antequam Romam venĭt;"​66 (2) and by the reverse: "Hic quos homines alea vincĭt, eos ferro statim vincīt;"​67 (3) by lengthening the same letter, as follows: "Hinc ăvium dulcedo ducit ad āvium;"​68 (4) by shortening the same letter: "Hic, tametsi videtur esse honoris cupidus, tantum tamen cūriam diligit quantum Cŭriam?";​69 (5) by adding letters, as follows: "Hic sibi posset temperare, nisi amori mallet obtemperare";​70 (6) and now by omitting letters, as follows: "Si lenones vitasset tamquam leones, vitae tradidisset se";​71 (7) by transposing letters, as follows: "Videte, iudices, utrum homini + + + p305 navo an vano credere malitis";​72 (8) by changing letters, as follows: "Deligere oportet quem velis diligere."73 + +

+These are word-plays which depend on a slight change or lengthening or transposition of letters, and the like. 22 30 There + are others also in which the words lack so close a resemblance, and yet + are not dissimilar. Here is an example of one kind of such word-plays: "Quid veniam, qui sim, quem insimulem, cui prosim, quae postulem, brevi cognoscetis."​74 + For in this example there is a sort of resemblance among certain words, + not so complete, to be sure, as in the instances above, yet sometimes +serviceable. An example of another kind: "Demus operam, Quirites, ne omnino patres conscripti circumscripti putentur."​75 + In this paronomasia the resemblance is closer than in the preceding, +yet is not so close as in those above, because some letters are added +and some at the same time removed. + +

 p307  +There is a third form of paronomasia, depending on a change of case in one or more proper nouns.​76 31 In + one noun, as follows: "Alexander of Macedon with consummate toil from +boyhood trained his mind to virtue. Alexander's virtues have been +broadcast with fame and glory throughout world. All men greatly feared +Alexander, yet deeply loved him. Had longer life been granted Alexander, + the Macedonian lances would have flown across the ocean."​77 + Here a single noun has been inflected, undergoing changes of case. +Several different nouns, with change of case, will produce a +paronomasia, as follows:​78 + "An undeserved death by violence prevented Tiberius Gracchus, while +guiding the republic, from abiding longer therein. There befell Gaius +Gracchus a like fate, which of a sudden tore from the bosom of the state + a hero and staunch patriot. Saturninus, victim of his faith in wicked +men, a treacherous crime deprived of life. O Drusus, your blood +bespattered the walls of your home, and your mother's face.​79 They were only now granting to Sulpicius every concession,​80 yet soon + + + p309 they suffered him not to live, nor even to be buried."81 + +

+32 These last three figures — the +first based on like case inflections, the second on like word endings, +and the third on paronomasia — are to be used very sparingly when we +speak in an actual cause, because their invention seems impossible +without labour and pains. 23 +Such endeavours, indeed, seem more suitable for a speech of entertainment than for use in an actual cause.​82 + Hence the speaker's credibility, impressiveness, and seriousness are +lessened by crowding these figures together. Furthermore, apart from +destroying the speaker's authority, such a style gives offence because +these figures have grace and elegance, but not impressiveness and +beauty. Thus the grand and beauti­ful can give pleasure for a long time, but the neat and graceful quickly sate the hearing, the most fastidious of the senses.​83 If, then, we crowd these figures together, we shall seem to be taking delight in a childish style;​84 + but if we insert them infrequently and scatter them with variations +throughout the whole discourse, we shall brighten our style agreeably +with striking ornaments. + +

 p311  + +33 Hypophora​85 + occurs when we enquire of our adversaries, or ask ourselves, what the +adversaries can say in their favour, or what can be said against us; +then we subjoin what ought or ought not to be said — that which will be +favourable to us or, by the same token, be prejudicial to the +opposition, as follows: "I ask, therefore, from what source has the + defendant become so wealthy? Has an ample patrimony been left to him? +But his father's goods were sold. Has some bequest come to him? That +cannot be urged; on the contrary he has even been disinherited by all +his kin. Has he received some award from a civil action, whether in the +older or the more recent form of procedure?​86 Not only is that not the case, but recently he himself lost a huge sum on a wager at law.​87 + Therefore, if, as you all see, he has not grown rich by these means, +either he has a gold mine in his home, or he has acquired monies from an + illicit source." + +

+ 24 +Another example: "Time and time again, men of the jury, have I +observed that numerous defendants look for support in some honourable +deed which not even their enemies can impeach. My adversary can do no +such thing. Will he take refuge in his father's virtue? On the contrary, + you have taken your oath and condemned him to death. Or will he turn to + his own life? What life, and wherein lived honourably? Why, the life +that this man has lived before your eyes is known to all of you. Or will + he enumerate his kinsmen, by whom you should be moved? But he has not +any. He will produce + + + p313 friends? But there is no one who does not consider it disgraceful to be called that fellow's friend."​88 + Again: "Your enemy, whom you considered to be guilty, you doubtless +summoned him to trial? No, for you slew him while he was yet +unconvicted. Did you respect the laws which forbid this act? On the +contrary, you decided that they did not even exist in the books. When he + reminded you of your old friendship, were you moved? No, you killed him + nevertheless, and with even greater eagerness. And then when his +children grovelled at your feet, were you moved to pity? No, in your +extreme cruelty you even prevented their father's burial."​89 34 There + is much vigour and impressiveness in this figure because, after having +posed the question, "What ought to have been done", we subjoin that that + was not done.​90 Thus it becomes very easy to amplify the baseness of the act. + +

+In another form of same figure we refer the hypophora to our own person,​91 + as follows: "Now what should I have done when I was +surrounded by so great a force of Gauls? Fight? But then our advance +would have been with a small band. Furthermore, we held a most +unfavourable position. Remain in camp? But we neither had reinforcements + to look for, nor the wherewithal to keep alive. Abandon the camp? But +we were blocked. Sacrifice the lives of the soldiers? But I thought + I had accepted them on the stipulation that so far as possible +I should preserve them unharmed for their fatherland and their +parents. Reject the enemy's terms? But the safety + + + p315 of the soldiers has priority over that of the baggage."​92 + The result of an accumulation of this kind of hypophora is to make it +seem obvious that of all the possibilities nothing preferable to the +thing done could have been done. + +

+ 25 + +Climax​93 + is the figure in which the speaker passes to the following word only +after advancing by steps to the preceding one, as follows: "Now what +remnant of the hope of liberty survives, if those men may do what they please,​94 if they can do what they may, if they dare do what they can, if they do what they dare, and if you approve what they do?" + Again: "I did not conceive this without counselling it; I did + not counsel it without myself at once undertaking it; I did not +undertake it without completing it; nor did I complete it without +winning approval of it."​95 Again: "The industry of Africanus brought him excellence, his excellence glory, his glory rivals."​96 Again: "The empire of Greece belonged to the Athenians; the Athenians were over­powered + by the Spartans; the Spartans were overcome by the Thebans; the Thebans + were conquered by the Macedonians; and the Macedonians in a short time +subdued Asia in war and joined her to the empire + + + p317 of Greece." 35 The constant repetition of the proceeding word, characteristic of this figure, carries a certain charm. + +

+Definition​97 + in brief and clear-cut fashion grasps the characteristic qualities of a + thing, as follows: "The sovereign majesty of the republic is that which + comprises the dignity and grandeur of the state."​98 + Again: "By an injury is meant doing violence to some one, to his person + by assault, or to his sensibilities by insulting language, or to his +reputation by some scandal."​99 + Again: That is not economy on your part, but greed, because economy is +careful conservation of one's own goods, and greed is wrongful +covetousness of the goods of others." Again: "That act of yours is not +bravery, but recklessness, because to be brave is to disdain toil and +peril, for a useful purpose and after weighing the advantages, while to +be reckless is to undertake perils like a gladiator, suffering pain +without taking thought."​100 + Definition is accounted useful for this reason: it sets forth the full +meaning and character of a thing so lucidly and briefly that to express +it in more words seems superfluous, and to express it in fewer is +considered impossible. + +

+ 26 + +Transition​101 is the name given to the figure which briefly recalls what has been said, and likewise + + + p319 briefly +sets forth what is to follow next, thus: "You know how he has just been +conducting himself towards his fatherland; now consider what kind of son + he has been to his parents."​102 + Again: "My benefactions to this defendant you know; now learn how he +has requited me." This figure is not without value for two ends: it +reminds the hearer of what the speaker has said, and also prepares him +for what is to come. + +

+36 Correction​103 + retracts what has been said and replaces it with what seems more +suitable, as follows: "But if the defendant had asked his hosts, or +rather had only hinted, this could easily have been accomplished." +Again: "After the men in question had conquered, or rather had been +conquered — for how shall I call that a conquest which has brought +more disaster than benefit to the conquerors?" Again: "O Virtue's +companion, Envy, who art wont to pursue good men, yes, even to persecute + them."​104 This figure makes an impression upon the hearer, for the idea when expressed by an ordinary word seems rather feebly stated, + but after the speaker's own amendment it is made more striking by means + of the more appropriate expression. "Then would it not be preferable," +some one will say, "especially in writing, to resort to the best and +choicest word at the beginning?" Sometimes this is not preferable, when, + as the change of word will serve to show, the thought is such that in +rendering it by an ordinary + + + p321 word you +seem to have expressed it rather feebly, but having come to a choicer +word you make the thought more striking. But if you had at once arrived +at this word, the grace neither of the thought nor of the word would +have been noticed. + +

+ 27 + +37 Paralipsis​105 + occurs when we say that we are passing by, or do not know, or refuse to + say that which precisely now we are saying, as follows: "Your boyhood, +indeed, which you dedicated to intemperance of all kinds, I would +discuss, if I thought this the right time. But at present +I advisedly leave that aside. This too I pass by, that the +tribunes have reported you as irregular in military service. Also that +you have given satisfaction to Lucius Labeo for injuries done him +I regard as irrelevant to the present matter. Of these things +I say nothing, but return to the issue in this trial."​106 + Again: "I do not mention that you have taken monies from our +allies; I do not concern myself with your having despoiled the +cities, kingdoms, and homes of them all. I pass by your thieveries +and robberies, all of them." This figure is useful if employed in a +matter which is not pertinent to call specifically to the attention of +others, because there is advantage in making only an indirect reference +to it, or because the direct reference would be tedious or undignified, +or cannot be made clear, or can easily be refuted. As a result, it is of + greater advantage to create a suspicion by Paralipsis than to insist +directly on a statement that is refutable.107 + +

 p323  + +Disjunction​108 + is used when each of two or more clauses ends with a special verb, as +follows: "By the Roman people Numantia was destroyed, Carthage razed, +Corinth demolished, Fregellae overthrown. Of no aid to the Numantines +was bodily strength; of no assistance to the Carthaginians was military +science; of no help to the Corinthians was polished cleverness; of no +avail to the Fregellans was fellow­ship with us in customs and in language."​109 Again: "With disease physical beauty fades, with age it dies."​110 In this example we see both clauses, and in the preceding each several clause ending with a special verb. + +

+38 Conjunction​111 + occurs when both the previous and the succeeding phrases are held +together by place and the verb between them, as follows: "Either with +disease physical beauty fades, or with age." + +

+It is Adjunction​112 + when the verb holding the sentence together is placed not in the +middle, but at the beginning or the end. At the beginning, as follows: +"Fades physical beauty with disease or age." At the end, as follows: +"Either with disease or age physical beauty fades." + +

+Disjunction is suited to elegant display, and so we shall use it +moderately, that it may not cloy; Conjunction is suited to brevity, and +hence is to be used more frequently. These three figures spring from a +single type. + +

 p325  + 28 + +Reduplication​113 + is the repetition of one or more words for the purpose of Amplification + or Appeal to Pity, as follows: "You are promoting riots, Gaius +Gracchus, yes, civil and internal riots." Again: "You were not moved +when his mother embraced your knees? You were not moved?"​114 + Again: "You now even dare to come into the sight of these citizens, +traitor to the fatherland? Traitor, I say, to the fatherland, you +dare come into the sight of these citizens?" The reiteration of the same + word makes a deep impression upon the hearer and inflicts a major wound + upon the opposition — as if a weapon should repeatedly pierce the same +part of the body. + +

+Synonymy or Interpretation​115 + is the figure which does not duplicate the same word by repeating it, +but replaces the word that has been used by another of the same meaning, + as follows: "You have overturned the republic from its roots; you have +demolished the state from its foundations." Again: "You have impiously +beaten your father; you have cruelly laid hands upon your parent." The +hearer cannot but be impressed when the force of the first expression is + renewed by the explanatory synonym. + +

+39 Reciprocal Change​116 + occurs when two discrepant thoughts are so expressed by transposition +that the latter follows from the former although contradictory to it, as + follows: "You must eat to live, not live to + + + p327 eat."​117 + Again: "I do not write poems, because I cannot write the sort + I wish, and I do not wish to write the sort I can."​118 + Again: "What can be told of that man is not being told; what is being +told of him cannot be told." Again: "A poem ought to be a painting +that speaks; a painting ought to be a silent poem."​119 + Again: "If you are a fool, for that reason you should be silent; and +yet, although you should be silent, you are not for that reason a fool." + One cannot deny that the effect is neat when in juxtaposing contrasted +ideas the words also are transposed. In order to make this figure, which + is hard to invent, quite clear, I have subjoined several examples — + so that, well understood, it may be easier for the speaker to invent. + +

+ 29 + +Surrender​120 + is used when we indicate in speaking that we yield and submit the whole + matter to another's will, as follows: "Since only soul and body remain +to me, now that I am deprived of everything else, even these, which + alone of many goods are left me, I deliver up to you and to your +power. You may use and even abuse me​121 in your own way as you think best; with impunity make your decision upon me, whatever it may be; speak and give a sign + + + p329 — + I shall obey." Although this figure is often to be used also +in other circumstances, it is especially suited to provoking pity. + +

+40 Indecision occurs when the speaker +seems to ask which of two or more words he had better use, as follows: +"At that time the republic suffered exceedingly from — ought I to +say — the folly of the consuls, or their wickedness, or both."​122 Again: "You have dared to say that, you of all men the — by what name worthy of your character shall I call you?"123 + +

+Elimination​124 + occurs when we have enumerated the several ways by which something +could have been brought about, and all are then discarded except the one + on which we are insisting, as follows: "Since it is established that +the estate you claim as yours was mine, you must show that you took +possession of it as vacant land, or made it your property by right of +prescription, or bought it, or that it came to you by inheritance. Since + I was on the premises, you could not have taken possession of it +as vacant land. Even by now you cannot have made it your property by +right of prescription. No sale is disclosed. Since I am alive, my +property could not have come to you by inheritance. It remains, then, +that you have expelled me by force from my estate." 41 This figure will furnish the strongest support to conjectural arguments, but unlike most other figures, it is not one + + + p331 which we can use at will, for in general we can use it only when the very nature of the business gives us the opportunity. + +

+ 30 + +Asyndeton​125 + is a presentation in separate parts, conjunctions being suppressed, as +follows: "Indulge your father, obey your relatives, gratify your +friends, submit to the laws." Again: "Enter into a complete defence, +make no objection, give your slaves to be examined, be eager to find the + truth." This figure has animation and great force,​126 and is suited to concision. + +

+Aposiopesis​127 + occurs when something is said and then the rest of what the speaker had + begun to say is left unfinished, as follows: "The contest between you +and me is unequal​128 + because, so far as concerns me, the Roman people — I am unwilling +to say it, lest by chance some one think me proud. But you the Roman +people has often considered worthy of disgrace." Again: "You dare to say + that, who recently at another's home — I shouldn't dare tell, lest + in saying things becoming to you, I should seem to say something +unbecoming to me."​129 Here a suspicion, unexpressed, becomes more telling than a detailed explanation would have been.130 + +

+Conclusion,​131 by means of a brief argument, deduces the necessary consequences of what has been said or + + + p333 done +before, as follows: "But if the oracle had predicted to the Danaans that + Troy could not be taken without the arrows of Philoctetes, and these +arrows moreover served only to smite Alexander, then certainly killing +Alexander was the same as taking Troy."132 + +

+ 31 +42 There remain also ten Figures of +Diction, which I have intentionally not scattered at random, but +have separated from those above, because they all belong in one class. +They indeed all have this in command, that the language departs from the + ordinary meaning of the words​133 and is, with a certain grace, applied in another sense. + +

+Of these figures the first is Onomatopoeia,​134 + which suggests to us that we should ourselves designate with a suitable + word, whether for the sake of imitation or expressiveness, a thing +which either lacks a name​135 + or has an inappropriate name. For the sake of imitation, as follows: +our ancestors, for example, said "roar," "bellow," "murmur," "hiss;" for + the sake of expressiveness, as follows: + + + p335 "after +this creature attacked the republic, there was a hullabaloo among the +first men of the state." This figure is to be used rarely, lest the +frequent recurrence of the neologism breed aversion; but if it is used +appropriately and sparingly, then the novelty, far from offending, even +gives distinction to the style. + +

+Antonomasia​136 + or Pronomination designates by a kind of adventitious epithet a thing +that cannot be called by its proper name; for example, if some one +speaking of the Gracchi should say: "Surely the grandsons of Africanus +did not behave like this!"; or again, if some one speaking of his +adversary should say: "See now, men of the jury, how your +Sir Swashbuckler​137 + there has treated me." In this way we shall be able, not without +elegance, in praise and in censure, concerning physical attributes, +qualities of character, or external circumstances,​138 to express ourselves by using a kind of epithet in place of the precise name.139 + +

+ 32 + +43 Metonymy​140 + is the figure which draws from an object closely akin or associated an +expression suggesting the object meant, but not called by its own name. +This is accomplished by substituting the name of the greater thing for +that of the lesser, as if one speaking of the Tarpeian Rock should term +it "the Capitoline"; . . . ; or by substituting the name +of the thing invented for that of the inventor, as if one should say +"wine" for "Liber," "wheat" for "Ceres";​141 ". . . ;" or the instrument for the possessor, as if one should refer to the Macedonians + + + p337 as +follows: "Not so quickly did the Lances get possession of Greece," and +likewise, meaning the Gauls: "nor was the Transalpine Pike so easily +driven from Italy"; the cause for the effect, as if a speaker, wishing +to show that some one has done something in war, should say: "Mars +forced you to do that"; or effect for cause, as when we call an art idle + because it produces idleness in people, or speak of numb cold because +cold produces numbness.​142 + Content will be designated by means of container as follows: "Italy +cannot be vanquished in warfare nor Greece in studies"; for here instead + of Greeks and Italians the lands that comprise them are designated. +Container will be designated by means of content:​143 + as if one wishing to give a name to wealth should call it gold or +silver or ivory. It is harder to distinguish all these metonymies in +teaching the principle than to find them when searching for them, for +the use of metonymies of this kind is abundant not only amongst the +poets and orators but also in everyday speech. + + +

+Periphrasis​144 + is a manner of speech used to express a simple idea by means of a +circumlocution, as follows: "The foresight of Scipio crushed the power +of Carthage." For here, if the speaker had not designed to embellish the + style, he might simply have said "Scipio" and "Carthage." + +

+44 Hyperbaton​145 upsets the word order by means either of Anastrophe​146 or Transposition. By Anastrophe, + + + p339 as follows: "Hoc vobis deos immortales arbitror dedisse virtute pro vestra."​147 By Transposition, as follows: "Instabilis in istum plurimum fortuna valuit. Omnes invidiose eripuit bene vivendi casus facultates."​148 + A transposition of this kind, that does not render the thought +obscure, will be very useful for periods, which I have discussed +above;​149 in these periods we ought to arrange the words in such a way as to approximate a poetic rhythm,​150 so that the period can achieve perfect fullness and the highest finish. + +

+ 33 + +Hyperbole​151 is a manner of speech exaggerating the truth, whether for the sake of magnifying or minifyingº + something. This is used independently, or with comparison. +Independently, as follows: "But if we maintain concord in the state, we +shall measure the empire's vastness by the rising and the setting of the + sun." Hyperbole with comparison + + + p341 is formed +from either equivalence or superiority. From equivalence, as follows: +"His body was as white as snow, his face burned like fire."​152 From superiority, as follows: "From his mouth flowed speech sweeter than honey."​153 Of the same type is the following: "So great was his splendour in arms that the sun's brilliance seemed dim by comparison." + +

+Synecdoche​154 + occurs when the whole is known from a small part or a part from the +whole. The whole is understood from a part in the following: "Were not +those nuptial flutes reminding you of his marriage?" Here the entire +marriage ceremony is suggested by one sign, the flutes. A part from + the whole, as if one should say to a person who displays himself in +luxurious garb or adornment: "You display your riches to me and vaunt +your ample treasures." 45 The plural +will be understood from the singular, as follows: "To the Carthaginian +came aid from the Spaniard, and from that fierce Transalpine. In Italy, +too, many a wearer of the toga shared the same sentiment." In the +following the singular will be understood from the plural: "Dread +disaster smote his breasts with grief; so, panting, from out his lungs' +very depth he sobbed for anguish." In the first example more than one +Spaniard, Gaul, and Roman citizen are understood, and in this last only +one breast and one lung.​155 In the former the quantity is minified for the sake of elegance, in the latter exaggerated for the sake of impressiveness. + +

 p343  + +Catachresis​156 + is the inexact use of a like and kindred word in place of the precise +and proper one, as follows: "The power of man is short," or "small +height," or "the long wisdom in the man," or "a mighty speech,"​157 + or "to engage in a slight conversation." Here it is easy to understand +that words of kindred, but not identical, meaning have been transferred +on the principle of inexact use. + +

+ 34 + +Metaphor​158 + occurs when a word applying to one thing is transferred to another, +because the similarity seems to justify this transference. Metaphor is +used for the sake of creating a vivid mental picture, as follows: "This +insurrection awoke Italy with sudden terror"; for the sake of brevity,​159 + as follows: "The recent arrival of an army suddenly blotted out the +state"; for the sake of avoiding obscenity, as follows: "Whose mother +delights in daily marriages";​160 + for the sake of magnifying, as follows: "No one's grief or disaster +could have appeased this creature's enmities and glutted his horrible +cruelty";​161 + for the sake of minifying, as follows: "He boasts that he was of great +help because, when we were in difficulties, he lightly breathed a +favouring breath";​162 for the sake of embellishment, as follows: "Some day the prosperity of the republic, + + + p345 which by +the malice of wicked men has withered away, will bloom again by the +virtue of the Conservatives." They say that a metaphor ought to be +restrained,​163 + so as to be a transition with good reason to a kindred thing, and not +seem an indiscriminate, reckless, and precipitate leap to an unlike +thing. + +

+46 Allegory​164 + is a manner of speech denoting one thing by the letter of the words, +but another by their meaning. It assumes three aspects: comparison, +argument, and contrast. It operates through a comparison when +a number of metaphors originating in a similarity in the mode of +expression are set together, as follows: "For when dogs act the part of +wolves, to what guardian, pray, are we going to entrust our herds of +cattle?" An Allegory is presented in the form of argument when a +similitude is drawn from a person or place or object in order to magnify + or minify, as if one should call Drusus a "faded reflection of the +Gracchi."​165 An Allegory is drawn from a contrast​166 + if, for example, one should mockingly call a spendthrift and voluptuary + frugal and thrifty. Both in this last type, based on a contrast, and in + the first above, drawn from a comparison, we can through the metaphor +make use of argument. In an Allegory operating through a comparison, as +follows: "What says this king — our Agamemnon, or rather, such is his +cruelty, our Atreus?" In an Allegory drawn from a contrast: for example, + if we should call some unduti­ful man who has beaten his father + + + p347 "Aeneas,"​167 or an intemperate and adulterous man "Hippolytus."168 + +

+This is substantially all I have thought it necessary to say on the + Figures of Diction. Now the subject itself directs me to turn next to +the Figures of Thought. + + + +


+

+The Loeb Editor's Notes: +

+ +

+ 1 +κατασκευή (sometimes κόσμος), which includes also gravitas (μεγαλοπρέπεια) and suavitas (τὸ ἡδύ), as is made clear in + +4.lvi.69 + +below; see also + +Cicero, De Inv. 2.xv.49. Ornamentation, worked out +exclusively by Figures, dominates our author's theory of Style. The +Atticists opposed this kind of domination; see + +Cicero, Orator 23.78‑24.79. + + +

+ + +

+ 2 +σχήματα (see + +note on 4.viii.11 + +above) λέξεως and σχήματα διανοίας. The distinction, here met for the first time, is best discussed by Quintilian, + +9.1.10 ff. + +Fortunatianus, 3.10 (Halm, pp126‑7), divides figures of diction into the grammatical (λέξεως) and the rhetorical (λόγου), probably following + + +a Stoic author. The ancients regarded Gorgias of Leontini (fifth century B.C.) as the inventor of σχήματα. + Our author's treatment is the oldest extant formal one, yet represents a + period preceding that of complete systematization (that of Quintilian +and Phoebammon). Tropes are considered at + +4.xxxi.42 + +below; the figures of thought begin at + +4.xxxv.47. The ancient rhetoricians differ sometimes greatly, +sometimes slightly, in their definitions of figures, which became +excessively numerous as refinements were made in distinguishing them. +The line of demarcation between tropes and figures, and that between +figures of thought and figures of diction were often vague. See +Quintilian, + +Bks. 8 and 9, especially + +9.1.1 ff.; Julius Rufinianus, De Schem. Dian. 1, in Halm, pp59‑60; Willy Barczat, De figurarum disciplina atque auctoribus, diss. Göttingen, 1904; Hermann Schrader in Hermes 39 (1904), 563‑603; Kroll, "Rhetorik," coll. 1108‑12; Volkmann, pp415 ff., 456 ff.; Cousin, Études sur Quintilien, 1.437‑517, and vol. 2. + + +

+ + +

+ 3 +ἐπαναφορά. ἐπιβολή in Rutilius Lupus, 1.7 (Halm, p6) is the same figure but also allows the use of synonyms instead of repeating the precise word. + + +

+ + +

+ 4 +Cf. the epanaphora of tu in the passage from the speech + +(Cicero, De Oratore 2.55.226) + +delivered by L. Licinius Crassus pro Plan(c)io against M. Junius Brutus c. 91 B.C.: + "You dare behold the light of day? You dare look these people in the +face? You dare present yourself in the forum, within the City, in the +plain view of the citizens? You do not tremble + + +in fear of that corpse, you do not tremble in fear of the very images [of your ancestors]?" + + +

+ + +

+ 5 +ἀντιστροφή. ἐπιφορά in Rutilius Lupus 1.8 (Halm, pp6‑7). Cf. Disjunction, + +4.xxvii.37 + +below. + + +

+ + +

+ 6 +A free paraphrase of Aeschines, Adv. Ctes. 198: +"Whoever, then, on the question of the penalty asks for your vote, is +asking for the remission of your anger; but whoever in the first speech +asks for your vote, is asking for the surrender of your oath, is asking +for the surrender of the law, is asking for the surrender of the +democratic constitution." The Greek original likewise illustrates +Antistrophe. + + +

+ + +

+ 7 +συμπλοκή. Cf. Aeschines, Adv. Ctes. 202: + "Against yourself you are calling him, against the laws you are calling + him, against the democratic constitution you are calling + + +him." Cf. also the complexio (Résumé of an argument) of + +2.xviii.28 + +above. + + +

+ + +

+ 8 +Quintilian, + +9.3.31, also cites the example, but without naming the figure. The +passage might have come from a debate of the sort engaged in by Cato the + Elder and Publius Scipio Nasica; see + +note on 3.ii.2 + +above. + + +

+ + +

+ 9 +πλοκή, ἀντιμετάθεσις, σύγκρισις. + + +

+ + +

+ 10 +Cf. Alexander Numenii (first half of second Christian century), De Schemat., in Spengel 3.37: "It is noble to live if one but learns how one ought to live." + + +

+ + +

+ 11 +This passage may belong to the controversia concerning the murder of Sulpicius, + +1.xv.25 + +above. Cf. Euripides, Androm. 590‑1: "Youman, most cowardly even of cowards? Where have you any claim to consideration as a man?"; + +Philemon, fragm. 119, in Kock, Com. Att. Fragm. 2.515: "Tell me, have you any right to speak? You go prattling among men as though you were a man?" + + +

+ + +

+ 12 +ἀντανάκλασις. διαφορά in Rutilius Lupus 1.12 (Halm, p8). Akin to Paronomasia, + +4.xxi.29 + +below. + + +

+ + +

+ 13 +Lit., "To be loved would be pleasant, if only we should take care that there is no bitterness in that love." Quintilian, + + +9.3.69‑70, considers this a flat pun even when used in jest, and quotes the example as something to be avoided, not imitated. Cf. Lucretius 4.1133 ff. + + +

+ + +

+ 14 +Lit., "I would come to you if the Senate should grant me permission." Cf. the Pompeian distich, Corp. Inscr. Lat. 4.4971: + +

+ + + +
+

+Sei quid Amor valeat nostei, sei te hominem scis, +

+Commiseresce mei, da veniam ut veniam. +

+ +

+"If you have learned the power of Love, if you know that you are human, pity me; give me leave to come." + + +

+ + +

+ 15 + +4.xiii.19‑xiv.21. + + +

+ + +

+ 16 +ἀντίθεσις, ἀντίθετον, contrapositum + +(Quintilian, 9.3.81). In + +Cicero, Part. Orat. 6.21, a feature of the agreeable (suave) style. See + +4.xlv.58 + +below, and cf. contrarium, + +4.xviii.25 + +below. + + +

+ + +

+ 17 +Cf. the saying assigned to Critias (leading spirit of the Thirty Tyrants) in Stobaeus, 3.14.2: + "He who so bears himself towards his friends that he does everything to + oblige them, renders hateful for the future that which is a pleasure +for the nonce"; also + +Alexis, fragm. 295, in Kock, Com. Att. Fragm. 2.402: "Avoid a pleasure which brings harm in its wake." + + +

+ + +

+ 18 +Cf. Sophocles, Antig. 88: "You have a hot spirit for cold business"; + +Horace, Ars Poet. 465: "Empedocles . . . coolly leapt into burning Aetna"; Alexander Numenii, De Schemat., in Spengel 3.36‑7: "They bathe the chilled men in hot springs." +

+Cf. with our author's last example of Antithesis + +Anth. Pal. 11.305: "Among grammarians you are a Platonist; but if asked about the doctrines of Plato, you are again a grammarian." + + +

+ + +

+ 19 +Cf.  +Horace, Serm. 2.7.28: "At home you long for the country; in the country, fickle man, you extol to heaven the distant city." + + +

+ + +

+ 20 +ἀποστροφή, ἐκφώνησις. Quintilian, + +9.2.27, considers as a figure only that kind of exclamatio which is simulated and artfully composed, and in + +9.3.97 + +assigns exclamatio to the figures of thought; cf. also + +9.2.38, + +9.3.24‑6, +and + +4.1.63. + + +

+ + +

+ 21 +Cornelia, daughter of the elder Scipio Africanus, was the mother of the Gracchi. + + +

+ + +

+ 22 +Cf. the passage, often used by rhetoricians, in Aeschines, Adv. Ctes. 133: "But Thebes, Thebes our neighbour-state, + has in one day been swept from the midst of Hellas." After +M. Fulvius Flaccus' bill granting Roman franchise to the Italian +allies failed to pass, Fregellae revolted and was destroyed +in 125 B.C. See + +4.ix.13 + +and + +4.xxvii.37. + + +

+ + +

+ 23 +Probably addressed to the public informers (quadruplatores). + + +

+ + +

+ 24 +A consideration of propriety, τὸ πρέπον. See note on + +4.x.15 + +above. + + +

+ + +

+ 25 +ἐρώτημα. Rogatio in + +Cicero, De Oratore 3.53.203. Assigned by Quintilian, + +9.3.98, to the figures of thought; see also + +9.2.7 + +on the "rhetorical question." + + +

+ + +

+ 26 +Cf. Demosthenes, De Corona 71, on Philip: +"By these acts was he, or was he not, committing wrong, breaking treaty, + and violating the terms of peace? And was it, or was it not, + + +right that some man of the Hellenes should come forth +to stop these incursions?" This passage was a favourite of the +rhetoricians. It may well be that our author has in mind Q. Varius +Hybrida, speaking on behalf of his law de maiestate (90 B.C.); see + +4.ix.13 + +above, and note. + + +

+ + +

+ 27 +αἰτιολογία, ἐξετασμός. Assigned by Quintilian, + +9.3.98, to the figures of thought. Cf. sibi ipsi responsio in + +Cicero, De Oratore 3.54.207 + +and + +Quintilian, 9.3.90, and + +4.xxiv.34 + +below, with note; also ἀπόφασις in Julius Rufinianus 8 (Halm, p40; cf. ἀπόφασις [infitiatio] in + +1.xvii.27 + +above). To be distinguished from ratiocinatio, the Type of Issue (Reasoning from Analogy), + +1.xi.19 + +above. + + +

+ + +

+ 28 +The same argument is used in + +Seneca, Contr. 7.3(18).6. + + +

+ + +

+ 29 +Cf. Quintilian, 5.11.39: + "Would not an adulteress on trial for poisoning be regarded as +condemned by the judgement of Marcus Cato, who said that every +adulteress was the same as a poisoner?" + + +

+ + +

+ 30 +This was true, e.g., of Perseus and Syphax, but not strictly of Jugurtha. + + +

+ + +

+ 31 +For the sentiment cf. Cicero, De Offic. 1.11.35 ff.; + +Horace, Carm. Saec. 51 f.; + +Virgil, Aeneid 6.853. + + +

+ + +

+ 32 +γνώμη. Aristotle, Rhet. 2.21 (1394A‑1395B), offers the classic treatment of maxims. On the virtue of brevity in maxims, see Demetrius, De Elocut. 9. Sententia is excluded from the figures by Quintilian + +(9.3.98). + + +

+ + +

+ 33 +Cf. Cicero, Paradoxa Stoic. 5.35: "All wicked men are therefore slaves — slaves, I say!"; + +Diogenes Laertius 7.21; Philo, Quod Omnis Probus Liber Sit. + + +

+ + +

+ 34 +A saying of Epicurus: "nothing is 'enough' to him who deems 'enough' to be 'too little' " (C. Wotke in Wiener Studien 10 [1888], 197, No. 68). + + +

+ + +

+ 35 +Attributed to Pythagoras (Stobaeus, 3.1.29, and Plutarch, + +De exilio 8, 602C). + + +

+ + +

+ 36 +Cf. the Stoic principle assigned to Pythagoras in +Stobaeus, 3.1.29: "This is God's law: Virtue is the strong and stable thing; all else is nonsense." Cf. also + +4.xix.27 + +below. + + +

+ + +

+ 37 +The experience, for example, of Timon of Athens (the Misanthrope). For the sentiment see Otto, s.v. "amicus," p22, and + +Caesar, Bellum Civ. 3.104.1. + + +

+ + +

+ 38 +ἄνευ αἰτίας or ἐπιλόγου. + + +

+ + +

+ 39 +For the topic of anticipating evil, see Posidonius in Galen, De plac. Hipp. et Plat. 4.7 (Diels, 6th ed., 2.13‑14), + + +Cicero, Tusc. Disp. 3.14.29, and + +Plutarch, Ad Apollon. 21 (112D), together with the lines of Euripides (fragm. 964D) they cite. + + +

+ + +

+ 40 +μετ’ αἰτίας or ἐπιλόγου. Perhaps a Stoic development of sententia. + + +

+ + +

+ 41 +Cf. the Adelphoe of Terence, in which both theories of education, in extreme form, are applied with equally bad results. + + +

+ + +

+ 42 +Cf. Aristotle, Rhet. 2.21 (1395B): + "Hearers are delighted when a speaker succeeds in expressing as a +universal truth the opinions they hold about particular cases." + + +

+ + +

+ 43 +ἐνθύμημα, σχημα ἐκ τοῦ ἐναντίου. See + +Quintilian, 5.10.2: "There are some who call a conclusion from +consequents an epicheireme, while you would find that a majority are of +opinion that an enthymeme is a conclusion from incompatibles. And that +is why Cornificius calls it Reasoning by Contraries;" + +9.3.99: "I shall pass by those authors who + + +have set almost no limit to the invention of technical + terms, and have even assigned to figures what really belongs under +arguments." Cf. the topos a fortiori in Aristotle, Rhet. 2.23 (1397B); contentio (ἀντίθετον) in + +4.xv.21 + +above and + +4.xlv.58 + +below. + + +

+ + +

+ 44 +Cf. Isocrates, Ad Callim. 56: "One who is so base where the interests of others are concerned — what would he not dare where his own are concerned?" + + +

+ + +

+ 45 +κῶλον. The concept originated in +comparison with the human body; it came into rhetoric from the art of +music. The doctrine of Colon, Comma, and Period is Peripatetic; cf. Aristotle, Rhet. 3.9 (1409A ff.). Quintilian, + +9.3.98, +excludes Colon and Comma from the list of figures. See A. du Mesnil, Begriff der drei Kunstformen der Rede: Komma, Kolon, Periode, nach der Lehre der Alten, in Zum zweihundertjährigen Jubiläum des königl. Friedrichs-Gymnas., Frankfurt on O., 1894, pp32‑121. + + +

+ + +

+ 46 +τρίκωλον. Note the dichorees (A macronA breveA macronA breve over a macron): consulebas, and below, restitisti, per)terruisti, sustulisti, conlocavit, ob)esse possit, contulerunt, domi)nationem (as also those in the example of Isocolon [compar], + +4.xx.27 + +below). This cadence was a favourite of the Asian orators. Cicero, + +Orator 63.215, + + +discusses the dangers resulting from its use: "First +it is recognized as rhythm, next it cloys, and then when it is seen to +be an easy device it is despised." Longinus, + +De Sublim. 41, disapproves of the agitated movement + dichorees give to language: "For all overrhythmical writing is at once +felt to be affected and finical and wholly lacking in passion owing to +the monotony of its superficial polish" (tr. W. Rhys Roberts). + See notes on + +4.viii.12 + +and + +4.xxxii.44. + +

+

+Thayer's Note: It's this same jerky, sing-song rhythm that makes long +stands of trochaic meter in English poetry so wearing, and Longfellow's Hiawatha so tempting to parody: Cicero and Longinus were right. +

+ + +

+ + +

+ 47 +κόμμα. Cicero, + +Orator 62.211, translates the word literally by incisum; note caesa oratione in our author's definition. Lit., articulus = "part joined on." Commata, rather than cola, are required in the forcible style (χαρακτὴρ δεινός), according to Demetrius, De elocut. 5.241. + + +

+ + +

+ 48 +περίοδος. For other Latin equivalents of this term see Cicero, + +Orator 61.204, + +De Oratore 3.48.186; + +Quintilian, 9.4.22. + + +

+ + +

+ 49 +ἐνθύμημα. See + +4.xviii.25 + +above. + + +

+ + +

+ 50 +For the theme cf. 4.xvii.24 + +above. Our author, unlike other post-Aristotelian rhetoricians, does not say that the Period is comprised of membra, yet this example seems to contain four — the upper limit usually allowed; see, e.g., + + +Cicero, Orator 66.222, and Demetrius, De Elocut. 1.16, but also + +Quintilian, 9.4.125. On the theory of the Period see esp. Aristotle, Rhet. 3.9 (1409A ff.); Demetrius, op. cit., 1.10 ff., 5.244, 303; + +Cicero, Orator 62.211 ff.; and Josef Zehetmeier, "Die Periodenlehre des Aristoteles," Philologus + 85 (1930), 192‑208, 255‑284, 414‑436. Aristotle recognized only +periods of either one or two cola, and in fact the division into cola +was not of primary importance in his theory. + + +

+ + +

+ 51 +ἰσόκωλον. Sometimes classed as a variety of πάρισον, παρίσωσις, parallelism in structure. The next three figures (cf. also Alliteration, + +4.xii.18 + +above) represent παρόμοιον, παρομοίωσις, parallelism in sound. Together with Antithesis (4.xv.21 + +above) this and the next three figures comprise the so‑called Gorgianic figures. Isocrates exemplifies the extensive and effective use of Isocolon. + + +

+ + +

+ 52 + +4.xix.26. + + +

+ + +

+ 53 +Note the phrase and metrical clausula, esse videatur (A macronA breve|A breveA breveA macronA breve over a macron) favoured by Cicero. See + +Tacitus, Dial. de Orator. 23 + +(ed. Gudeman, pp29 and 247 f.); Quintilian, + +10.2.18 + +and + +9.4.73; Rufinus, in Halm, pp575 and (citing Probus) 583. + + +

+ + +

+ 54 +ὁμοιόπτωτον. Cf. 4.xii.18 + +above. + + +

+ + +

+ 55 +"Am I to praise a man abounding in good luck, but lacking in virtue?" + + +

+ + +

+ 56 +"This man places all his hope in money; from wisdom is his soul +withdrawn. Through diligence he acquires riches, but through negligence +he corrupts his soul. And yet, living so, he counts no one any one +before himself." Cf. neclegentiam . . . diligentiam in + +Terence, Andria 20 f. + + +

+ + +

+ 57 +ὁμοιοέλευτον. For a study of our author's theory of Homoeoptoton and Homoeoteleuton see Karl Pohlheim, Die lateinische Reimprosa, Berlin, 1925, pp161 ff.; on the influence of the theory, see p463 ff. + + +

+ + +

+ 58 +Note in the Latin examples of this figure the correspondences in the +endings of the verb forms as well as in those of the adverbs. + + +

+ + +

+ 59 +"A most depraved principle it is — to seek love and to shun self-respect, to esteem beauty and to slight one's own good name." + + +

+ + +

+ 60 +πτωτικά. + + +

+ + +

+ 61 +ἄπτωτα. + + +

+ + +

+ 62 +καταλήξεις. + + +

+ + +

+ 63 +παρονομασία. Cicero, + +Orator 25.84, warns the speaker of the Attic plain style against the kind of Paronomasia which is produced by the change of a letter; yet cf. De Oratore 2.63.256 + +on Paronomasia in verbal witticisms. See Eduard Wölfflin, "Das Wortspiel im Lateinischen," Sitzungsb. Bayer. Akad. der Wiss. (philos.-philol. und histor. Classe), 1887 (2), pp187‑208. + + +

+ + +

+ 64 +Our author knows four parts of speech: proper name, or noun (nomen, ὄνομα), verb (verbum, ῥῆμα), common noun, or appellative (vocabulum, προσηγορία), conjunction (coniunctio, σύνδεσμος); "noun" would include "adjective," as in No. 7 below. + + +

+ + +

+ 65 +συστολή. Cf. the figure complexio + +4.14.20 + +above. + + +

+ + +

+ 66 +"That man who carries himself with a lofty bearing and makes a display of himself was sold as a slave before coming to Rome;" venīt is a contraction of veniit, and precedes the tenue (venĭt). + + +

+ + +

+ 67 +"Those men from whom he wins in dice he straightway binds in chains;" tenue precedes plenius (vincītvinciit). + + +

+ + +

+ 68 +"The sweet song of the birds draws us from here into pathless places." Quintilian, + +9.3.69‑71, quotes this pun, and the play upon amari in + +4.xiv.21 + +above, as examples to be avoided, not imitated, being flat even when +used in jest; he marvels that this artifice is included in the +textbooks. Virgil, + +Georg. 2.328, puns on the same words. Note in connection with the problem of author­ship of our treatise that the example here used for admonitio is, according to Quintilian, called an example of traductio by Cornificius; cf. 4.xiv.20 + +above. + + +

+ + +

+ 69 +"Does this man, although he seems desirous of public honour, yet love the Curia [the Senate-house] as much as he loves Curia?" The M group of MSS. reads Curiam meretricem. On this and the next three types of Paronomasia cf. in + Phoebammon (Spengel 3.45 ff.) the four principles governing +the formation of all figures: lack, superabundance, transposition, +interchange (ἔνδεια, πλεονασμός, μετάθεσις, ἐναλλαγή); in Quintilian, + +1.5.6 + +and + +1.5.38 ff., the four ways of committing barbarisms and solecisms, and, in + +6.3.53, the poor jests formed by punning in these ways; in Philo, De aetern. mundi 22.113, the four ways (Peripatetic doctrine) in which corruption occurs: addition (πρόσθεσις), subtraction (ἀφαίρεσις), transposition (μετάθεσις), and transmutation (ἀλλοίωσις); and H. Usener, Sitzungsb. Bayer. Akad. der Wiss. (philos.-philol.-hist. Cl.), 1892, pp628‑631. Cf. also + +Cicero, Part. Orat. 6.19, on the causes of obscurity in words and periods. + + +

+ + +

+ 70 +"This man could rule himself, if only he did not prefer to submit to love." + + +

+ + +

+ 71 +"If he had avoided panders as though they were lions, he would have devoted himself to life;" the text is corrupt. Tertullian, Apol. 50.12, puns on the same words. + + +

+ + +

+ 72 +"See, men of the jury, whether you prefer to trust an industrious man or a vainglorious one." + + +

+ + +

+ 73 +"You ought to choose such a one as you would wish to love." A form +of the saying attributed to Theophrastus, that one must not first love +and then judge, but first judge and then love (οὐ φιλοῦντα δεῖ κρίνειν ἀλλὰ κρίναντα φιλεῖν); see + +Plutarch, De fraterno amore 8 (482B); Rutilius Lupus 1.6 (Halm, p6); + +Seneca, Epist. 3.2, + +De Moribus 48; + +Cicero, De Amic. 22.85; Publilius Syrus 134 (ed. J. Wight Duff and A. M. Duff); Stobaeus, 4.27.14; + +Sidonius Apollinaris, Epist. 5.11.1. In modern form: "If you suspect a man, do not employ him; if you employ a man, do not suspect him." + + +

+ + +

+ 74 +"Why I come, who I am, whom I accuse, whom I am helping, what I ask for you will soon know." Cf. Plautus, Poen. 992: + +

+ + + +
+

+adei atque appella quid velit, quid venerit, +

+qui sit, quoiatis, unde sit. +

+ +

+"Go up to him and ask him what he wants, why he has come, who he is, of what country, and whence he comes." + + +

+ + +

+ 75 +"Let us see to it, fellow-citizens, that the Conscript Fathers be not thought to have been utterly duped." Quintilian, + +9.3.72, considers this kind of paronomasia as produ­cing the very worst of trivial effects. Seneca, + +Suas. 7.11, reproves for bad taste a speaker who punned on scripsit and proscripsit. + It has been conjectured (see Kroehnert, p31) that Crassus may have +uttered these words when speaking on behalf of the Servilian law; see + +note on 4.iii.5. + + +

+ + +

+ 76 +Polyptoton (πολύπτωτον). + + +

+ + +

+ 77 +Unlike a normal English word order, the Latin permits the proper noun in + each of its cases to be placed at the beginning of the sentence. + + +

+ + +

+ 78 +Note that in the two examples the cases are Greek, lacking the Latin +ablative, and that, unlike the disposition in the second, Roman, +example, the cases in the first example come in a definite order (the +accusative preceding the dative). Alexander's career was favourite +material with the + + +rhetoricians. The common suasoria + concerned his deliberation whether, having conquered Asia and India, he + should navigate the ocean (when he had heard the voice say: "Quousque invicte?"); cf. e.g., Seneca, + +Suas. 1.1, + +Contr. 7.7.19, + +Quintilian, 3.8.16. + + +

+ + +

+ 79 +Irmentraud Haug, Würzburger Jahrb. für die Altertumswissenschaft 2 (1947), 113, argues that the reference is to the bust of Drusus' father. + + +

+ + +

+ 80 +When in 88 B.C. the quarrel between populares and optimates grew serious, Sulla suspended the iustitium, + and fled to his army. Then Sulpicius, in control, put through his +measures granting the new Italian citizens a fuller share in political +power, and transferring the command in the East to Marius. + + +

+ + +

+ 81 +The sentiments are those of the Marian party. Ti. Sempronius +Gracchus was clubbed to death by Scipio Nasica and his followers +in 133 B.C. (see + +4.lv.68 + +below); C. Sempronius Gracchus was killed in flight after the +consul Opimius and his band had stormed the Aventine, in 121 B.C.; L. Appuleius Saturninus was stoned and torn to pieces by a mob in the Senate-house, in 100 B.C.; M. Livius Drusus was, according to + +Velleius Paterculus, 2.14, stabbed by an assassin in the area before his house, in 91 B.C.; on the death, in 88 B.C., of P. Sulpicius Rufus see + +note on 1.xv.25 + +above. Cicero, De Harusp. Resp.  +19.41 + +and + +20.43, in which all the above except Drusus are used as exempla, and + +Seneca, Octavia 882‑9, in which the fates of the Gracchi and Drusus are + + +joined, may have used the same source as did our author; cf. also Seneca, Ad Marc. de Cons. 16.3 f. + + +

+ + +

+ 82 +These figures serve epideictic better than judicial or deliberative +oratory. Cicero warns the speaker of the Attic plain style against the +use of these three figures (and of Isocolon, + +Orator 25.84), but allows them in epideictic discourse (Orator 12.38, + +Part. Orat. 21.72); Quintilian, + +8.3.12, also justifies the full use of ornamentation in epideictic. + + +

+ + +

+ 83 +Cf. Cicero, + +Orator 44.150, and + +De Oratore 3.25.97 ff.; also + +Longinus, De Sublim., ch. 7, and + +Plutarch, De recta ratione audiendi 7 (41E). + + +

+ + +

+ 84 +μειρακιώδης λέξις. + + +

+ + +

+ 85 +ὑποφορά, ἀνθυποφορά. Assigned by Quintilian, + +9.3.98, to the figures of thought. The figure subiectio is to be distinguished from the subiectio of + +2.xviii.28 + +and + +4.xvii.24. + + +

+ + +

+ 86 +Whether by legis actio or by the formula procedure. See Wenger, Institutes of the Roman Law of Civil Procedure, pp22 f., 123 ff., 132 ff. + + +

+ + +

+ 87 +The sponsio in a civil suit was an agreement by the litigants that the loser of the case would pay a certain sum of money. + + +

+ + +

+ 88 +This example bears a very close resemblance to Demosthenes, Adv. Aristogeit. 1.76 ff. + + +

+ + +

+ 89 +This passage may perhaps belong to the controversia on the murder of Sulpicius in + +1.xv.25 + +above. + + +

+ + +

+ 90 +Cf., in + +Quintilian, 9.2.106, προέκθεσις, "which means telling what ought to have been done and then what has been done"; also προέκθεσις (divisio), + +1.x.17 + +above. + + +

+ + +

+ 91 +Cf. sibi ipsi responsio in + +Quintilian, 9.3.90, there adjudged a figure of thought rather than of diction; ratiocinatio, + +4.xvi.23 + +above. + + +

+ + +

+ 92 +Popilius is speaking; see + +1.xv.25 + +above. + + +

+ + +

+ 93 +κλίμαξ. Also ἐπιπλοκή, ascensus, and catena. This figure joins with Epanaphora, Antistrophe, Interlacement, Transplacement, and Antanaklasis (4.xiii.19‑xiv.21 + +above) to form a complete theory of Repetition. + + +

+ + +

+ 94 +For a like word-play on libet and licet cf. Aquila Romanus 27 (Halm, pp30‑31) under Paronomasia (see + +4.xxi.29 + +above); + +Cicero, Pro Quinctio 30.94; Calpurnius Flaccus 16. + + +

+ + +

+ 95 +Quintilian, + +9.3.55, and others cite, and our author in this example imitates, Demosthenes, De Corona 179: + "I did not say this and then fail to make the motion; I did +not make the motion and then fail to act as an ambassador; I did +not act + + +as an ambassador and then fail to persuade the Thebans." Cf. Rom. 10.14; Rosalind in + +Shakespeare, As You Like It 5.2: "For your brother +and my sister no sooner met but they looked; no sooner looked but they +loved; no sooner loved but they sighed; no sooner sighed but they asked +one another the reason; no sooner knew the reason but they sought the +remedy; and in these degrees have they made a pair of stairs to +marriage"; + +St. Augustine, Confessions 7.10: O aeterna veritas et vera caritas et cara aeternitas!; also Lane Cooper, Sewanee Rev. 32 (1924), 32‑43. + + +

+ + +

+ 96 +Quintilian, + +9.3.56, uses the same example, representing it as from a Latin author. + + +

+ + +

+ 97 +ὁρισμός. Cf. Definition, the subtype of Legal Issue, + +1.xi.19, + +1.xii.21, +and + +2.xii.17 + +above. Quintilian, + +9.3.91, unlike "Cornificius and Rutilius," excludes finitio from the figures of diction. The figure goes back to Prodicus' Correct Use of Terms (ὀρθότης ὀνομάτων); see Radermacher, Artium Scriptores, pp67 ff. + + +

+ + +

+ 98 +See + +note on 1.xii.21 + +above. + + +

+ + +

+ 99 +For iniuria in Roman law, see Mommsen, pp784‑808; P. F. Girard, Mélanges de droit romain (Paris, 1923), 2.385‑411. + +

+

+Thayer's Note: For a more accessible primer, see the article + +Injuria + +in Smith's Dictionary of Greek and Roman Antiquities. +

+ + +

+ + +

+ 100 +The last two examples may also illustrate distinctio (παραδιαστολή); see +Quintilian, + +9.3.65: "But this depends wholly on definition, and so I doubt whether it is a figure," and + +9.3.82. + + +

+ + +

+ 101 +A figure combining the functions of the enumeratio of + +2.xxx.47 + +above (ἀνάμνησις, ἀνακεφαλαίωσις, παλιλλογία) and propositio (προέκθεσιςpropositio quid sis dicturus in Cicero, + +De Oratore 3.53.203 + +and + +Orator 40.137; cf. the expositio [ἔκθεσις] of + +1.x.17 + +above). Cf. in Anon. Seg. 12 (Spengel-Hammer 1[2].354) ἀνανέωσις, + a means used in the Proem to induce receptiveness — "we recall the +points previously made, and mark out those we intend to discuss," and +the second type of the figure μετάβασις in Rutilius Lupus 2.1 (Halm, pp12 f.). Quintilian, + +9.3.98, without defining transitio, classes it as a figure of thought; transitus in + +9.2.61 + +is rejected as a figure. + + +

+ + +

+ 102 +Cf. Demosthenes, De Corona 268, and (cited by Anon. Seg. 12, in illustration of ἀνανέωσις) Aeschines, Adv. Timarch. 116. + + +

+ + +

+ 103 +ἐπιδιόρθωσις, ἐπανόρθωσις, related to μετάνοια. + + +

+ + +

+ 104 +Cf.  +Horace, Serm. 2.3.13: "Are you preparing to appease envy by forsaking virtue?" Insector is the frequentative form of insequor. + + +

+ + +

+ 105 +παράλεψις, ἀντίφρασις, praeteritio, and sometimes παρασιώπησις, which Quintilian, + +9.3.99, excludes from the figures. Occultatio is assigned by Quintilian in + +9.3.98 + +to the figures of thought. Cf. praecisio, + +4.xxx.41 + +below, and Cicero's reticentia ( +De Oratore 3.53.205, and + +Orator 40.138). + + +

+ + +

+ 106 +Speaker, opponent, and Labeo all are unknown. The date may perhaps be assigned to the time of the Marsic war, about 90 B.C.; see Friedrich Muenzer, P.‑W. 12.245. + + +

+ + +

+ 107 +Cf. Quintilian, 9.2.75. + + +

+ + +

+ 108 +διεζευγμένον. Quintilian, + +9.3.64, says that devices like this and the two following are so common that they cannot lay claim to the art which figures involve. + + +

+ + +

+ 109 +Only the first sentence of this translation preserves the Disjunction, +which cannot be rendered throughout without violating normal English +word order. + + +

+ + +

+ 110 +Cf. Isocrates, Ad Demonicum 6: + "For beauty is spent by time or wasted by disease." The saying was +popular among Greek Patristic writers; see Engelbert Drerup, Isocratis Opera Omnia, Leipzig, 1906, 1.95. + + +

+ + +

+ 111 +συνεζευγμένον. To be distinguished, of course, from coniunctio (σύνδεσμος), the part of speech + +(4.xxx.41). + + +

+ + +

+ 112 +ἐπεζευγμένον. + + +

+ + +

+ 113 +ἀναδίπλωσις. In + +Quintilian, 9.3.28, adiectio. For the first example cf. Demosthenes, De Corona 143, + a favourite passage with the rhetoricians: "War it is that you are +bringing into Attica, Aeschines, an Amphictyonic war." + + +

+ + +

+ 114 +This passage may perhaps belong to the controversia on the murder of Sulpicius in + +1.xv.25 + +above. + + +

+ + +

+ 115 +συνωνυμία. Quintilian, + +9.3.98, denies that this is a figure. + + +

+ + +

+ 116 +ἀντιμεταβολή. + + +

+ + +

+ 117 +Ascribed to Socrates. See the Stoic C. Musonius Rufus (first Christian century) in Stobaeus, 3.18.37; + +Plutarch, Quomodo adulesc. poet. aud. deb. 4 (21E); + +Gellius 19.2; +Athenaeus 4, 158F; + +Diogenes Laertius 2.34; +Stobaeus, 3.17.21 + +("Socrates, when asked in what respect he differed from the rest of men, + replied: 'Whereas they live in order to eat, I eat in order to +live.' "); + +Macrobius, Sat., 2.8.16. Cf. also + +Quintilian, 9.3.85; Clement of Alexandria, Paed. 2.1, and + Strom. 7.14; + +Isidore, Etym. 2.21.11. + + +

+ + +

+ 118 +Porphyrio on Horace, Epist. 2.1.257, attributes this saying to Aristarchus of Samothrace (first half, second century B.C.), the editor and critic of Homer. Cf. Anth. Pal. 6.1: "For I [Lais] do not wish to see myself as I am, and cannot see myself as I used to be." + + +

+ + +

+ 119 +The saying is ascribed to Simonides (sixth century B.C.) in + +Plutarch, De glor. Athen. 3 (346F); see also Quaest. Conviv. 9.15 (748A), + +Quomodo adulesc. poet. aud. deb. 3 (17F), Quomodo adulat. ab amic. internosc. 15 (58B), De vita et poes. Hom. 216 (ed. Bernardakis, 7.460). Cf. Cicero, De Leg. 3.1.2: "It can truly be said that the magistrate is a speaking law, the law on the other hand a silent magistrate"; + +Horace, Ars Poet. 361: "A poem is like a painting"; + +Anth. Pal. 11.145; and Lessing, Laokoon, Preface. + + +

+ + +

+ 120 +ἐπιτροπή. + + +

+ + +

+ 121 +Varro in Priscian (Keil, Gramm. Lat. 2.381) makes a similar play upon utamur and abutamur. + + +

+ + +

+ 122 +ἀπορία, διαπόρησις. Quintilian, + +9.3.88, uses virtually the same example, after making the point that + Indecision can belong to either the figures of thought or the figures +of diction. Cf. Demosthenes, De Corona 20: +"Now what helped him . . . ? The cowardice, +ought I to say, or the stupidity, or both, of the other Greek +states." + + +

+ + +

+ 123 +Cf. Demosthenes, De Corona 22: "Why, you — what would be the correct name for one to call you?" + + +

+ + +

+ 124 +Now called the Method of Residues when used in Refutation. Quintilian, + +5.10.66 ff. + +and + +7.1.31 ff., considers this argumentorum genus ex remotione under Proof and Refutation, not under the Figures; see also + +Cicero, De Inv. 1.xxix.45 + +(enumeratio), and + +Quintilian, 9.3.99, in + +note on 4.xvii.25 + +above. Cf. in Aristotle, Rhet. 2.23 (1398A), the topos from logical division (ἐκ διαιρέσεως). + + +

+ + +

+ 125 +ἀσύνδετον. Variously also διάλυσις, solutum, dissolutio. Aristotle, Rhet. 3.12 (1413B): + "Asyndeta . . . are rightly condemned in the literary style, +but in the controversial style speakers do indeed use them because of +their dramatic effect." Cf. dissolutum, the slack style (4.xi.16 + +above). + + +

+ + +

+ 126 +The quality of σφοδρότης. Plutarch, De vita et poes. Hom. 40 (ed. Bernardakis, 7.355), assigns to Asyndeton the qualities of rapidity and emotional emphasis. + + +

+ + +

+ 127 +ἀποσιώπησις. Sometimes ἀποκοπή, obticentia, interruptio (Quintilian, 9.2.54, who here also identifies Cicero's reticentia with Aposiopesis; see + +note on occultatio, 4.xxvii.37 + +above). With the first example cf. Demosthenes, De Corona 3, a close parallel. + + +

+ + +

+ 128 +For the commonplace cf. Aeschylus in Aristophanes, Frogs 867; Lysias, Adv. Eratosth. 81; Fronto, ed. Naber, p42. + + +

+ + +

+ 129 +Cf. Demosthenes, De Corona 129: +"I hesitate, lest in saying things becoming to you, I may be +thought to have chosen things to say that are unbecoming to me." + + +

+ + +

+ 130 +Demetrius, De Elocut. 253, makes a like observation. + + +

+ + +

+ 131 +Like συμπέρασμα in logic. Quintilian, + +9.3.98, denies that conclusio is a figure. Cf. the conclusio of + +1.iii.4 + +and the duplex conclusio of + +2.xxiv.38 + +above. + + +

+ + +

+ 132 +Philoctetes killed Paris with the bow and arrows of Heracles, and thus +fulfilled the oracle revealed by the Trojan seer Helenus that only by +means of those weapons could Troy be taken. + + +

+ + +

+ 133 +These ten figures of diction are tropi (τρόποι, tropes), a term our author does not use; cf. Quintilian, 8.6.1: + "A trope is an artistic change of a word or phrase from its proper + signification to another." Tropes were at first, as here, not separated + from figures of thought and diction (σχήματα). Cicero, + +Brutus 18.69, tells us that the division was of Greek origin. Even in the time of Quintilian (see + +9.1.1‑9) the line of demarcation was not always clear. + + +

+ + +

+ 134 +ὀνοματοποιία. Cf. Julius Caesar in + +Gellius, 1.10.4: "Avoid, as you would a rock, an unheard‑of and unfamiliar + + +word." Cicero admits unusual (old-fashioned), new, and metaphorical words, although recognizing that these are allowed more freely in poetry than in oratory; see + +De Oratore 3.38.152 ff., Orator 20.68 + +and + +24.81, and also the advice which Horace, + +Ars Poet. 46 ff. + +and + +Epist. 2.2.119‑121, gives to poets to use neologisms, +but with restraint. Quintilian likewise tolerates neologism despite the +danger in their use, but does not allow Roman speakers the imitative +type of onomatopoeia, although this was "held as one of the highest +virtues by the Greeks;" see + +1.5.71 f., + +8.6.31 f., + +8.3.35‑37. Cf. also + +Gellius, 11.7.1: "But as for me I think it more objectionable and censurable to use words that are new, unknown, and unheard‑of than to use those that are hackneyed and mean." + + +

+ + +

+ 135 +See + +note on Metaphor, 4.xxxiv.45 + +below. + + +

+ + +

+ 136 +ἀντονομασία. + + +

+ + +

+ 137 +Lit., "flat of the blade." + + +

+ + +

+ 138 +Cf. 3.vi.10 + +above. + + +

+ + +

+ 139 +Pro nomine, hence the name for the figure, Pronominatio. + + +

+ + +

+ 140 +μετωνυμία. + + +

+ + +

+ 141 +Liber and Ceres are common metonyms; see Cicero, + +De Oratore 3.42.167, advising the frequent use of this kind of figure, and + +De Natura Deorum 2.23.60, citing + +Terence, Eunuch. 732; + +Quintilian, 8.6.24: "It would be too bold for the severe style of +the forum to tolerate our saying 'Liber' for 'wine' and 'Ceres' for +'bread.' " + + +

+ + +

+ 142 +This last illustration is used also by the grammarians Charisius (ed. Barwick, p360) and Diomedes (Keil, Gramm. Lat. 1.458). + + +

+ + +

+ 143 +Quintilian, + +8.6.24‑5, approves the substitution of container for content, but allows the converse only to poetic practice. + + +

+ + +

+ 144 +περίφρασις. When faulty, it is περισσολογία + +(Quintilian, 8.6.61). + + +

+ + +

+ 145 +ὑπερβατόν. See + +4.xii.18 + +above. + + +

+ + +

+ 146 +ἀναστροφή, Reversal of order. Quintilian, + +8.6.55, defines ἀναστροφή as a transposition confined to two words. + + +

+ + +

+ 147 +"This I deem the immortal gods have vouchsafed to you in reward for + your virtue." The strictly correct order would have been pro vestra virtute; virtūtĕ prō vēstrā gives the most favoured clausula. + + +

+ + +

+ 148 +"Unstable Fortune has exercised her greatest power on this creature. All + the means of living well Chance has jealously taken from him." Here the + adjectives are separated from the nouns they modify; fortūnă vălŭĭt and especially casūs făcūltātēs were favoured clausulae (see note next above). Our author employs the dichoree (A macronA breveA macronA breve over a macron) most. See the study of the cadences in A. W. de Groot, Der antike Prosarhythmus, Groningen and The Hague, 1921, pp106‑7; in Henri Bornecque, Les Clausules Métriques Latines, Lille, 1907, pp542 ff., 579 f.; and in Burdach, Schlesich-böhmische Briefmuster, pp110 ff.; also the notes on + +4.viii.12 + +and + +4.xix.26, and the next note here below. + + +

+ + +

+ 149 + +4.xix.27. The doctrines of rhythm were not taught as part of the regular curriculum by the Atticizing rhetoricians + +(Cicero, De Oratore 3.49.188); our author does not mention Rhythm under Composition in + +4.xii.18 + +above, save indirectly in his reference to concinnity in Hyperbaton. Here, however, he is under Asian influence. Cf. Cicero, Orator 69.229: "We must not transpose words in an obvious manner for the sake + + +of achieving a better cadence or a more flowing rhythm"; Dionysius Halic., De Composit. Verb., ch. 4; and Blass, Die Rhythmen der asian. und röm. Kunstprosa, + pp33 ff. Our author in his rhythms represents the transition +between Asian rules and those followed by Cicero; see Bornecque, op. cit., p546. On our author's generally ambivalent position with respect to Asianism, see Burdach, op. cit., pp96 ff. + + +

+ + +

+ 150 + +Cicero, Orator 56.187 f.: "It is, then, quite clear that + prose should be tightened up by rhythm, but be free of metre +. . . There are, to be sure, no rhythms other than those used +in poetry"; Crassus in + +De Oratore 1.33.151: "Good collocation and good +arrangement of words are perfected in writing by means of a certain +rhythm and measure not poetical, but oratorical." Thrasymachus of +Chalcedon (fifth century B.C.) was the inventor of prose rhythm, and Isocrates excelled in its use + +(Cicero, Orator 52.175). + +

+Thayer's Note: For the lives and works of Thrasymachus and Isocrates, see + +Dobson's Greek Orators. +
+ + +

+ + +

+ 151 +ὑπερβολή. Aristotle, Rhet. 3.11 (1413A), says that the use of Hyperbole is a juvenile characteristic, betraying vehemence. Cf. Quintilian, 8.6.67 ff. + + +

+ + +

+ 152 +Cf., for example, Homer, Il. 1.104: Agamemnon's +eyes "were flashing fire"; in 10.437 the horses of Rhesus are +"whiter than snow" (Hyperbole with comparison formed from superiority. + + +

+ + +

+ 153 +Homer, Il. 1.249, on Nestor. On the popularity of this passage in antiquity see Otto, pp242, 216 f. + + +

+ + +

+ 154 +συνεκδοχή. + + +

+ + +

+ 155 +In ancient physiology the lungs were considered to be the right and left + halves of a single organ, with the windpipe as the common outlet; cf., for example, Aristotle, De Part. Animal. 3.6‑7 (668B ff.), Hist. Animal. 2.17 (507 A19). + + +

+ + +

+ 156 +κατάχρησις. + + +

+ + +

+ 157 +Cf. Aristophanes, Birds 465: μέγα καὶ λαρινὸν ἔπος τι ("a stalwart and brawny oration," tr. B. B. Rogers). + + +

+ + +

+ 158 +μεταφορά. Cf. Aristotle, Rhet. 3.2 (1405A) ff., Poet., ch. 21; Demetrius, De Elocut. 2.78 ff.; + +Quintilian, 8.6.4 ff. + +According to Cicero, + +Orator 27.92, metaphor is used for the sake of charm (suavitas) or because of the lack (inopia) of a proper word; cf. also + +De Oratore 3.38.155. Quintilian, + +8.6.6, says that we use metaphor from necessity or because it achieves greater expressiveness or beauty. Cf. translatio criminis, + +2.xv.22 + +above, and translatio, the subtype of Legal Issue, + +1.xii.22. + + +

+ + +

+ 159 +Quintilian, + +8.6.8, terms Metaphor a shorter Simile. + + +

+ + +

+ 160 +Cf. Plautus, Cist. 43: "She is married to a husband every day, indeed she is;" and Demosthenes, De Corona 129, + + +addressing Aeschines: "Or how your mother practised nuptials in open daylight in the outhouse." + + +

+ + +

+ 161 +This may perhaps belong to the controversia concerning the murder of Sulpicius, + +1.xv.25 + +above. + + +

+ + +

+ 162 +Cf. Cicero, Leg. Agr. 2.5.13, on the unintelligible speech of the once truculent Rullus: "The keener-witted persons standing in the Assembly suspected that he had meant to say something or other about an agrarian law"; Quintilian, + +8.4.28, quotes this sentence of Cicero in illustration of ratio minuendi. + + +

+ + +

+ 163 +Cicero, + +De Oratore 3.41.165, makes the same point; cf. also Aristotle, Rhet. 3.2 (1405A), +Cicero, Epist. ad Fam. 16.17 (Theophrastus' verecunda tralatio), + +Longinus, De Sublim. 32.2, + +Quintilian, 8.3.37. + + +

+ + +

+ 164 +ἀλληγορία. + + +

+ + +

+ 165 +The text is corrupt. With Lindemann (ed. Leipzig, 1828, p343) and others I take Graccum as a genitive plural. The policy of M. Livius Drusus, tr. pl. in 91 B.C., finds a parallel in that of C. Gracchus; see Hugh Last in Cambr. Anc. History 9.177‑84. With Allegory per argumentum cf. Antonomasia, + +4.xxxi.42 + +above. + + +

+ + +

+ 166 +Cf. Quintilian, 8.6.54 ff. + +(ironia, illusio); Rhet. ad Alex. ch. 21, 1434A (εἰρωνεία); Anon., De Trop., in Walz 8.722 (ἀντίφρασις). + + +

+ + +

+ 167 +Called pius for his devotion to Anchises, his father. + + +

+ + +

+ 168 +Rejected the advances of his stepmother Phaedra. + + + +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+ +

+Page updated: +19 Feb 20 +

+ + \ No newline at end of file diff --git a/sources/book_4b_files/Ebox.js b/sources/book_4b_files/Ebox.js new file mode 100644 index 0000000..0c57824 --- /dev/null +++ b/sources/book_4b_files/Ebox.js @@ -0,0 +1,2921 @@ +//\//////////////////////////////// +//\ overLIB 3.33 -- This notice must remain untouched at all times. +//\ Copyright Erik Bosrup 1998-2001. All rights reserved. +//\ +//\ By Erik Bosrup (erik@bosrup.com). Last modified 2001-01-26. +//\ Portions by Dan Steinman (dansteinman.com). Additions by other people are +//\ listed on the overLIB homepage. +//\ +//\ Get the latest version at http://www.bosrup.com/web/overlib/ +//\ +//\ This script is published under an open source license. Please read the license +//\ agreement online at: http://www.bosrup.com/web/overlib/license.html +//\ If you have questions regarding the license please contact erik@bosrup.com. +//\ +//\ This script library was originally created for personal use. By request it has +//\ later been made public. This is free software. Do not sell this as your own +//\ work, or remove this copyright notice. For full details on copying or changing +//\ this script please read the license agreement at the link above. +//\ +//\ Please give credit on sites that use overLIB and submit changes of the script +//\ so other people can use them as well. This script is free to use, don't abuse. +//\//////////////////////////////// +//\mini + +//\//////////////////////////////// +//\ ▸ the URLs above, at "bosrup.com", are dead: the entire site went belly-up. +//\//////////////////////////////// + + +//\//////////////////////////////// +//\ Thayer flavor: +//\ I've renamed "overlib" to "Ebox", "Fbox", etc. +//\ to save 3 characters on each call +//\ while specifying the language (English, French, etc.) +//\//////////////////////////////// + + +//////////////////////////////////// +// CONSTANTS +// Don't touch these. :) +//////////////////////////////////// +var INARRAY = 1; +var CAPARRAY = 2; +var STICKY = 3; +var BACKGROUND = 4; +var NOCLOSE = 5; +var CAPTION = 6; +var LEFT = 7; +var RIGHT = 8; +var CENTER = 9; +var OFFSETX = 10; +var OFFSETY = 11; +var FGCOLOR = 12; +var BGCOLOR = 13; +var TEXTCOLOR = 14; +var CAPCOLOR = 15; +var CLOSECOLOR = 16; +var WIDTH = 17; +var BORDER = 18; +var STATUS = 19; +var AUTOSTATUS = 20; +var AUTOSTATUSCAP = 21; +var HEIGHT = 22; +var CLOSETEXT = 23; +var SNAPX = 24; +var SNAPY = 25; +var FIXX = 26; +var FIXY = 27; +var FGBACKGROUND = 28; +var BGBACKGROUND = 29; +var PADX = 30; +var PADY = 31; +var PADX2 = 32; +var PADY2 = 33; +var FULLHTML = 34; +var ABOVE = 35; +var BELOW = 36; +var CAPICON = 37; +var TEXTFONT = 38; +var CAPTIONFONT = 39; +var CLOSEFONT = 40; +var TEXTSIZE = 41; +var CAPTIONSIZE = 42; +var CLOSESIZE = 43; +var FRAME = 44; +var TIMEOUT = 45; +var FUNCTION = 46; +var DELAY = 47; +var HAUTO = 48; +var VAUTO = 49; + + +//////////////////////////////////// +// DEFAULT CONFIGURATION +// You don't have to change anything here if you don't want to. All of this can be +// changed on your html page or through an overLIB call. +//////////////////////////////////// + +// Main background color (the large area) +// Usually a bright color (white, yellow etc) +if (typeof ol_fgcolor == 'undefined') { var ol_fgcolor = "#FFFFDD";} + +// Border color and color of caption +// Usually a dark color (black, brown etc) +if (typeof ol_bgcolor == 'undefined') { var ol_bgcolor = "#333399";} + +// Text color +// Usually a dark color +if (typeof ol_textcolor == 'undefined') { var ol_textcolor = "#000066";} + +// Color of the caption text +// Usually a bright color +if (typeof ol_capcolor == 'undefined') { var ol_capcolor = "#FFFFFF";} + +// Color of "Close" when using Sticky +// Usually a semi-bright color +if (typeof ol_closecolor == 'undefined') { var ol_closecolor = "#9999FF";} + +// Font face for the main text +if (typeof ol_textfont == 'undefined') { var ol_textfont = "Courier, Courier New, serif";} + +// Font face for the caption +if (typeof ol_captionfont == 'undefined') { var ol_captionfont = "Courier, Courier New";} + +// Font face for the close text +if (typeof ol_closefont == 'undefined') { var ol_closefont = "Courier, Courier New";} + +// Font size for the main text +if (typeof ol_textsize == 'undefined') { var ol_textsize = "1";} + +// Font size for the caption +if (typeof ol_captionsize == 'undefined') { var ol_captionsize = "1";} + +// Font size for the close text +if (typeof ol_closesize == 'undefined') { var ol_closesize = "1";} + +// Width of the popups in pixels +// 100-300 pixels is typical +if (typeof ol_width == 'undefined') { var ol_width = "225";} + +// How thick the ol_border should be in pixels +// 1-3 pixels is typical +if (typeof ol_border == 'undefined') { var ol_border = "2";} + +// How many pixels to the right/left of the cursor to show the popup +// Values between 3 and 12 are best +if (typeof ol_offsetx == 'undefined') { var ol_offsetx = 10;} + +// How many pixels below the cursor to show the popup +// Values between 3 and 12 are best +if (typeof ol_offsety == 'undefined') { var ol_offsety = 10;} + +// Default text for popups +// Should you forget to pass something to overLIB this will be displayed. +if (typeof ol_text == 'undefined (but the link is good !)') { var ol_text = "Default Text"; } + +// Default caption +// You should leave this blank or you will have problems making non caps popups. +if (typeof ol_cap == 'undefined') { var ol_cap = ""; } + +// Decides if sticky popups are default. +// 0 for non, 1 for stickies. +if (typeof ol_sticky == 'undefined') { var ol_sticky = 0; } + +// Default background image. Better left empty unless you always want one. +if (typeof ol_background == 'undefined') { var ol_background = ""; } + +// Text for the closing sticky popups. +// Normal is "Close". +if (typeof ol_close == 'undefined') { var ol_close = "Close"; } + +// Default vertical alignment for popups. +// It's best to leave RIGHT here. Other options are LEFT and CENTER. +if (typeof ol_hpos == 'undefined') { var ol_hpos = RIGHT; } +// TO CHANGE THIS WITHIN A PAGE: see syntax on +// E/Gazetteer/Places/Asia/Russia/_Topics/history/_Texts/SMANPS/Appendices/C*.html +// (search for "ol_hpos") + +// Default status bar text when a popup is invoked. +if (typeof ol_status == 'undefined') { var ol_status = ""; } + +// If the status bar automatically should load either text or caption. +// 0=nothing, 1=text, 2=caption +if (typeof ol_autostatus == 'undefined') { var ol_autostatus = 0; } + +// Default height for popup. Often best left alone. +if (typeof ol_height == 'undefined') { var ol_height = -1; } + +// Horizontal grid spacing that popups will snap to. +// 0 makes no grid, anything else will cause a snap to that grid spacing. +if (typeof ol_snapx == 'undefined') { var ol_snapx = 0; } + +// Vertical grid spacing that popups will snap to. +// 0 makes no grid, anything else will cause a snap to that grid spacing. +if (typeof ol_snapy == 'undefined') { var ol_snapy = 0; } + +// Sets the popups horizontal position to a fixed column. +// Anything above -1 will cause fixed position. +if (typeof ol_fixx == 'undefined') { var ol_fixx = -1; } + +// Sets the popups vertical position to a fixed row. +// Anything above -1 will cause fixed position. +if (typeof ol_fixy == 'undefined') { var ol_fixy = -1; } + +// Background image for the popups inside. +if (typeof ol_fgbackground == 'undefined') { var ol_fgbackground = ""; } + +// Background image for the popups frame. +if (typeof ol_bgbackground == 'undefined') { var ol_bgbackground = ""; } + +// How much horizontal left padding text should get by default when BACKGROUND is used. +if (typeof ol_padxl == 'undefined') { var ol_padxl = 1; } + +// How much horizontal right padding text should get by default when BACKGROUND is used. +if (typeof ol_padxr == 'undefined') { var ol_padxr = 1; } + +// How much vertical top padding text should get by default when BACKGROUND is used. +if (typeof ol_padyt == 'undefined') { var ol_padyt = 1; } + +// How much vertical bottom padding text should get by default when BACKGROUND is used. +if (typeof ol_padyb == 'undefined') { var ol_padyb = 1; } + +// If the user by default must supply all html for complete popup control. +// Set to 1 to activate, 0 otherwise. +if (typeof ol_fullhtml == 'undefined') { var ol_fullhtml = 0; } + +// Default vertical position of the popup. Default should normally be BELOW. +// ABOVE only works when HEIGHT is defined. +if (typeof ol_vpos == 'undefined') { var ol_vpos = BELOW; } + +// Default height of popup to use when placing the popup above the cursor. +if (typeof ol_aboveheight == 'undefined') { var ol_aboveheight = 50; } + +// Default icon to place next to the popups caption. +if (typeof ol_caption == 'undefined') { var ol_capicon = ""; } + +// Default frame. We default to current frame if there is no frame defined. +if (typeof ol_frame == 'undefined') { var ol_frame = self; } + +// Default timeout. By default there is no timeout. +if (typeof ol_timeout == 'undefined') { var ol_timeout = 0; } + +// Default javascript function. By default there is none. +if (typeof ol_function == 'undefined') { var ol_function = Function(); } + +// Default timeout. By default there is no timeout. +if (typeof ol_delay == 'undefined') { var ol_delay = 0; } + +// If overLIB should decide the horizontal placement. +if (typeof ol_hauto == 'undefined') { var ol_hauto = 0; } + +// If overLIB should decide the vertical placement. +if (typeof ol_vauto == 'undefined') { var ol_vauto = 0; } + + +//////////////////////////////////// +// ARRAY CONFIGURATION +// You don't have to change anything here if you don't want to. The following +// arrays can be filled with text and html if you don't wish to pass it from +// your html page. +//////////////////////////////////// + +// THAYER'S BOILERPLATES: +var CClickHere = "

Feu clic aquí per
"; +var EClickHere = "

Click here for
"; +var FClickHere = "

Faire clic ici pour
"; +var IClickHere = "

Cliccare qui per
"; +var NClickHere = "

Klik hier voor
"; +var PClickHere = "

Clique aqui para
"; +var SClickHere = "

Haga clic aquí para
"; +var CZero = "

La pàgina s\'obre en
AQUESTA finestra
"; +var EZero = "

Page opens
in THIS window
"; +var FZero = "

S\'ouvre dans
CETTE fenêtre
"; +var IZero = "

Si apre in
QUESTO pannello
"; +var PZero = "

A página abre
NESTA janela
"; +var SZero = "

La página abre
en ESTA ventana
"; +var CThisWindow = "
La pàgina s\'obre
en AQUESTA finestra
"; +var EThisWindow = "
Page opens
in THIS window
"; +var FThisWindow = "
S\'ouvre dans
CETTE fenêtre
"; +var IThisWindow = "
Si apre in
QUESTO pannello
"; + +// THAYER'S ARRAYS: +// Array with texts. FOR SIMPLICITY, KEEP THIS AT LINE 280 (Number is then linenum minus 285) +// LANGUAGE ORDER: E:0 - F:10 - I:20 - L:30 - S:40 - P:90 (…0-4: EFILS) +// AFTER THE COMMA AT THE END OF EACH LINE: THERE MUST BE A SPACE! +// EXCEPT THE LAST LINE HAS NO COMMA, NO SPACE: FOR SIMPLICITY, KEEP IT AS A BLANK LINE. +var ol_texts = new Array( +EZero, +"

(Page opens in another window)", +"

Link is offsite:
page opens in
another window.
", +"

(This photo or a related one, opens in another window)", +"

(The photo will open in another window)", +"

(Elsewhere on this page)", +EClickHere+"the author\'s note at the bottom of this page.", +EClickHere+"my note at the bottom of this page.", +"

Click here
to go back
to the reference
in the text.", +"

If you don\'t know what this is about,
the explanation is only a click away.
(Opens in another window)", +FZero, +"

(La page s\'ouvre dans une autre fenêtre)", +"

Le lien est hors site :
la page s\'ouvre
dans une autre fenêtre
", +"

(Cette photo ou une photo apparentée, s\'ouvre dans une autre fenêtre)", +"

(Cette photo s\'ouvre dans une autre fenêtre)", +"

(Ailleurs sur cette page)", +FClickHere+"la note de l\'auteur au bas de la page.", +FClickHere+"ma note au bas de la page.", +FClickHere+"retourner au renvoi dans le texte.", +"

Si vous ne savez pas ce de quoi il s\'agit, il n\'y a qu\'à faire clic pour l\'explication.
(S'ouvre dans une autre fenêtre)", +"

(Die Seite öffnet sich in DIESEM Fenster)", +"

(Die Seite öffnet sich in einem anderen Fenster)", +"

(Auf externe Site: die Seite öffnet sich in einem anderen Fenster)", +"

(Dieses Foto oder ein Ähnliches Foto öffnet sich in einem anderen Fenster)", +"

(Die Foto öffnet sich in einem anderen Fenster)", +" ", +" ", +" ", +" ", +" ", +IZero, +"

(La pagina si apre in un altro pannello)", +"

Il link è fuori sito:
la pagina si apre
in un altro pannello
", +"

(Questa foto o una foto connessa, si apre in un altro pannello)", +"

(La foto si apre in un altro pannello)", +"

(Altrove su questa pagina)", +IClickHere+"la nota
dell\' autore a piè di pagina.", +IClickHere+"la mia nota a piè di pagina.", +IClickHere+"tornare al riferimento nel testo.", +"

Se questo non vi dice nulla, basta cliccare per la spiegazione.
(La pagina si apre in un altro pannello)", +"

(HAC in fenestra aperietur pagina)", +"

(Altera in fenestra aperietur pagina)", +"

(In alio situ: altera in fenestra aperietur pagina)", +"

(Altera in fenestra aperietur haec seu conexa photo)", +"

(Altera in fenestra aperietur photo)", +"

(Alibi in hac pagina)", +"

Cliccare hic
ad auctoris sive editoris
adnotationem legendam
in ima pagina", +"

Cliccare hic
ad adnotationem meam
in ima pagina legendam", +"

Cliccare hic
ad revertendum in textum", +" ", +SZero, +"

(La página abre en una otra ventana)", +"

(Fuera del sitio: la página abre en una otra ventana)", +"

(Esta foto o una foto relacionada, abre en una otra ventana)", +"

(La foto abre en una otra ventana)", +"

(Otra parte en esta página)", +SClickHere+"la nota del autor en bajo de la página.", +SClickHere+"mi nota en bajo de la página.", +SClickHere+"volver a la referencia en el texto.", +" ", +EClickHere+"the article in Smith\'s Dictionary."+EThisWindow, +FClickHere+"l\' article de Smith\'s Dictionary."+FThisWindow, +IClickHere+"
l\' articolo
di Smith\'s Dictionary."+IThisWindow, +" ", +SClickHere+"el artículo de Smith\'s Dictionary.
(Abre en ESTA ventana)", +EClickHere+"the article in Smith\'s Dictionary.
(Page opens in another window)", +FClickHere+"l\' article de Smith\'s Dictionary.
(S'ouvre dans une autre fenêtre)", +IClickHere+"l\' articolo di Smith\'s Dictionary.
(Si apre in un altro pannello)", +" ", +SClickHere+"el artículo de Smith\'s Dictionary.
(Abre en una otra ventana)", +"

If you don\'t know what this is about,
the explanation is only a click away."+EThisWindow, +"

Si vous ne savez pas ce de quoi il s\'agit,
il n\'y a qu\'à faire clic pour l\'explication."+FThisWindow, +"

Se non sapete che cosa è,
basta cliccare qui per la spiegazione."+IThisWindow, +" ", +" ", +"

If you don\'t know what this is about,
the explanation is only a click away.
(Offsite: opens in another window)", +"

Si vous ne savez pas ce de quoi il s\'agit,
il n\'y a qu\'à faire clic pour l\'explication.
(Hors site: s\'ouvre dans une autre fenêtre)", +"

Se non sapete che cosa è,
basta cliccare qui per la spiegazione.
(Fuori sito: si apre in un altro pannello)", +" ", +" ", +EClickHere+"the relevant section
of an article
in Smith\'s Dictionary."+EThisWindow, +FClickHere+"le passage ou le chapitre de l\' article
de Smith\'s Dictionary."+FThisWindow, +IClickHere+"la parte corrispettiva di un articolo
di Smith\'s Dictionary."+IThisWindow, +" ", +SClickHere+"la parte relativa del artículo de Smith\'s Dictionary.
(Abre en ESTA ventana)", +EClickHere+"the relevant section
of an article
in Smith\'s Dictionary.
(Page opens
in another window)
", +FClickHere+"le passage ou le chapitre de l\' article
de Smith\'s Dictionary.
(S'ouvre dans une autre fenêtre)", +IClickHere+"la parte corrispettiva di un articolo
di Smith\'s Dictionary.
(Si apre in un altro pannello)", +" ", +SClickHere+"la parte relativa del artículo de Smith\'s Dictionary.
(Abre en una otra ventana)", +PZero, +"

(A página abre em uma outra janela)", +"

(Offsite: a página abre em uma outra janela)", +"

(Esta foto ou uma foto relacionada, abre em uma outra janela)", +"

(A foto abre em uma outra janela)", +"

(Em outro lugar desta página)", +PClickHere+"a anotação do autor no fim da página.", +PClickHere+"a minha anotação no fim da página.", +PClickHere+"voltar para a referência no texto.", +" ", +EClickHere+"the main index page of Smith\'s Dictionary.
(Opens in a separate index window)", +FClickHere+"la page principale de Smith\'s Dictionary.
(S\'ouvre dans une autre fenêtre-index)", +IClickHere+"la pagina principale di Smith\'s Dictionary.
(Si apre in un altro pannello-indice)", +" ", +SClickHere+"la página principal de Smith\'s Dictionary.
(Abre en una otra ventana-indice)", +" ", +"

Click here
for the text discussion.
(Elsewhere on this page)", +EClickHere+"the main index page of Smith\'s Dictionary."+EThisWindow, +EClickHere+"the main index page of Daremberg & Saglio\'s Dictionary.
(Opens in a separate index window)", +EClickHere+"the main index page of Daremberg & Saglio\'s Dictionary."+EThisWindow, +EClickHere+"the article in Platner\'s Topographical Dictionary of Ancient Rome.
(Page opens in THIS window)", +FClickHere+"l\'article dans le Topographical Dictionary of Ancient Rome de Platner.
(La page s\'ouvre dans CETTE fenêtre)", +IClickHere+"l\' articolo nel Topographical Dictionary of Ancient Rome del Platner."+IThisWindow, +"

Cliccare hic ad articulum legendum
in Platneri Topographical Dictionary of Ancient Rome.
(Anglice, HANC in fenestram aperietur pagina)", +SClickHere+"el artículo en el Topographical Dictionary of Ancient Rome de Platner.
(Abre en ESTA ventana)", +EClickHere+"the article in Platner\'s Topographical Dictionary of Ancient Rome.
(Page opens in another window)", +FClickHere+"l\'article dans le Topographical Dictionary of Ancient Rome de Platner.
(La page s\'ouvre dans une autre fenêtre)", +IClickHere+"l\' articolo nel Topographical Dictionary of Ancient Rome del Platner.
(Si apre in un altro pannello)", +"

Cliccare hic ad articulum legendum
in Platneri Topographical Dictionary of Ancient Rome.
(Anglice, altera in fenestra aperietur pagina)", +SClickHere+"el artículo en el Topographical Dictionary of Ancient Rome de Platner.
(Abre en una otra ventana)", +EClickHere+"the article in Platner\'s Topographical Dictionary of Ancient Rome, with one or more photos.
(Page opens in THIS window)", +FClickHere+"l\'article dans le Topographical Dictionary of Ancient Rome de Platner, avec une ou plusieurs photos.
(La page s\'ouvre dans CETTE fenêtre)", +IClickHere+"l\' articolo nel Topographical Dictionary of Ancient Rome del Platner, con una o parecchie foto."+IThisWindow, +"

Cliccare hic ad articulum legendum
in Platneri Topographical Dictionary of Ancient Rome,
una pluribusve cum photographiis.
(Anglice, HANC in fenestram aperietur pagina)", +" ", +EClickHere+"the article in Platner\'s Topographical Dictionary of Ancient Rome, with one or more photos.
(Page opens in another window)", +FClickHere+"l\'article dans le Topographical Dictionary of Ancient Rome de Platner, avec une ou plusieurs photos.
(La page s\'ouvre dans une autre fenêtre)", +IClickHere+"l\' articolo nel Topographical Dictionary of Ancient Rome del Platner, con una o parecchie foto.
(Si apre in un altro pannello)", +"

Cliccare hic ad articulum legendum
in Platneri Topographical Dictionary of Ancient Rome,
una plurisve photographiis.
(Anglice, altera in fenestra aperietur pagina)", +" ", +EClickHere+"the relevant section of an article in Platner\'s Topographical Dictionary of Ancient Rome.
(Page opens in THIS window)", +FClickHere+"la partie relative à ce sujet dans l\'article du Topographical Dictionary of Ancient Rome de Platner.
(La page s\'ouvre dans CETTE fenêtre)", +IClickHere+"la parte pertinente di un articolo nel Topographical Dictionary of Ancient Rome del Platner."+IThisWindow, +" ", +SClickHere+"la parte pertinente de un artículo en el Topographical Dictionary of Ancient Rome de Platner.
(Abre en ESTA ventana)", +EClickHere+"the relevant section of an article in Platner\'s Topographical Dictionary of Ancient Rome.
(Page opens in another window)", +FClickHere+"la partie relative à ce sujet dans l\'article du Topographical Dictionary of Ancient Rome de Platner.
(La page s\'ouvre dans une autre fenêtre)", +IClickHere+"la parte pertinente di un articolo nel Topographical Dictionary of Ancient Rome del Platner.
(Si apre in un altro pannello)", +" ", +SClickHere+"la parte pertinente de un artículo en el Topographical Dictionary of Ancient Rome de Platner.
(Abre en una otra ventana)", +EClickHere+"the complete work(s), onsite.
(Page opens in THIS window)", +" ", +" ", +" ", +" ", +EClickHere+"the complete work(s), onsite.
(Page opens in another window)", +" ", +" ", +" ", +" ", +EClickHere+"Armellini\'s
Chiese di Roma,
to this passage.
(In Italian;
page opens in THIS window)
", +FClickHere+"Chiese di Roma de Mariano Armellini, à ce passage.
(en italien; la page s\'ouvre dans CETTE fenêtre)", +IClickHere+"le Chiese di Roma dell\' Armellini, a questo passo."+IThisWindow, +" ", +" ", +EClickHere+"Armellini\'s
Chiese di Roma,
to this passage.
(In Italian;
page opens
in another window)
", +FClickHere+"Chiese di Roma de Mariano Armellini, à ce passage.
(en italien; la page s\'ouvre dans une autre fenêtre)", +IClickHere+"le Chiese di Roma dell\' Armellini, a questo passo.
(Si apre in un altro pannello)", +" ", +" ", +EClickHere+"Christian Hülsen\'s
Chiese di Roma nel Medio Evo,
to this passage or section.
(In Italian;
page opens in THIS window)", +FClickHere+"Chiese di Roma nel Medio Evo de Christian Hülsen, à ce passage.
(en italien; la page s\'ouvre dans CETTE fenêtre)", +IClickHere+"le Chiese di Roma nel Medio Evo di Christian Hülsen, a questo passo."+IThisWindow, +" ", +" ", +EClickHere+"Christian Hülsen\'s
Chiese di Roma nel Medio Evo,
to this passage or section.
(In Italian;
page opens in another window)
", +FClickHere+"Chiese di Roma nel Medio Evo de Christian Hülsen, à ce passage.
(en italien; la page s\'ouvre dans une autre fenêtre)", +IClickHere+"le Chiese di Roma nel Medio Evo di Christian Hülsen, a questo passo.
(Si apre in un altro pannello)", +" ", +" ", +EClickHere+"my homepage for this church,
with the texts of Armellini, Hülsen, and Titi,
plus photos and offsite links.
(Page opens in THIS window)", +FClickHere+"mon site sur cette église,
avec les textes d\'Armellini, de Hülsen, et de Titi,
ainsi que des photos et des liens hors site."+FThisWindow, +IClickHere+"il mio sito sulla chiesa,
con i testi dell\' Armellini, del Hülsen, e/o del Titi;
e con fotografie e links fuori sito."+IThisWindow, +" ", +SClickHere+"mi sitio sobre esta iglesia, con los textos de Armellini, de Hülsen, y de Titi; y con fotos y enlaces externos.
(Abre en ESTA ventana)", +EClickHere+"my homepage for this church, with the texts of Armellini, Hülsen, and Titi, plus photos and offsite links.
(Page opens in another window)", +FClickHere+"mon site sur cette église, avec les textes d\'Armellini, de Hülsen, et de Titi, ainsi que des photos et des liens hors site.
(S\'ouvre dans une autre fenêtre)", +IClickHere+"il mio sito sulla chiesa, con i testi dell\' Armellini, del Hülsen, e/o del Titi; e con fotografie e links fuori sito.
(Si apre in un altro pannello)", +" ", +SClickHere+"mi sitio sobre esta iglesia, con los textos de Armellini, de Hülsen, y de Titi; y con fotos y enlaces externos.
(Abre en una otra ventana)", +EClickHere+"the article in Daremberg & Saglio\'s Dictionary.
(Page opens in THIS window)", +FClickHere+"l\' article du Dictionnaire de Daremberg & Saglio."+FThisWindow, +IClickHere+"l\' articolo del Dizionario di Daremberg e Saglio."+IThisWindow, +" ", +SClickHere+"el artículo del Diccionario de Daremberg y Saglio.
(Abre en ESTA ventana)", +EClickHere+"the article in Daremberg & Saglio\'s Dictionary.
(Page opens in another window)", +FClickHere+"l\' article du Dictionnaire de Daremberg & Saglio.
(S'ouvre dans une autre fenêtre)", +IClickHere+"l\' articolo del Dizionario di Daremberg e Saglio.
(Si apre in un altro pannello)", +" ", +SClickHere+"el artículo del Diccionario de Daremberg y Saglio.
(Abre en una otra ventana)", +EClickHere+"my page."+EThisWindow, +FClickHere+"ma page."+FThisWindow, +IClickHere+"la mia pagina."+IThisWindow, +" ", +SClickHere+"mi página.
(Abre en ESTA ventana)", +EClickHere+"my page.
(Opens in another window)", +FClickHere+"ma page.
(S'ouvre dans une autre fenêtre)", +IClickHere+"la mia pagina.
(Si apre in un altro pannello)", +" ", +SClickHere+"mi página.
(Abre en una otra ventana)", +EClickHere+"my pages.
(Orientation page opens in THIS window)", +FClickHere+"mes pages.
(La page d\'orientation s\'ouvre dans CETTE fenêtre)", +IClickHere+"le mie pagine.
(La pagina di orientazione si apre in QUESTO pannello)", +" ", +SClickHere+"mis páginas.
(La página de orientación abre en ESTA ventana)", +EClickHere+"my pages.
(Orientation page opens in another window)", +FClickHere+"mes pages.
(La page d\'orientation s\'ouvre dans une autre fenêtre)", +IClickHere+"le mie pagine.
(La pagina di orientazione si apre in un altro pannello)", +" ", +SClickHere+"mis páginas.
(La página de orientación abre en una otra ventana)", +EClickHere+"my page on this church, with photos."+EThisWindow, +FClickHere+"ma page sur cette église, avec photos."+FThisWindow, +IClickHere+"la mia pagina su questa chiesa, con delle foto."+IThisWindow, +" ", +SClickHere+"mi página sobre esta iglesia, con fotos.
(Abre en ESTA ventana)", +EClickHere+"my page on this church, with photos.
(Opens in another window)", +FClickHere+"ma page sur cette église, avec photos.
(S'ouvre dans une autre fenêtre)", +IClickHere+"la mia pagina su questa chiesa, con delle foto.
(Si apre in un altro pannello)", +" ", +SClickHere+"mi página sobre esta iglesia, con fotos.
(Abre en una otra ventana)", +EClickHere+"my pages on this church, with photos.
(Orientation page
opens in THIS window)
", +FClickHere+"mes pages sur cette église, avec photos.
(La page d\'orientation s\'ouvre dans CETTE fenêtre)", +IClickHere+"le mie pagine su questa chiesa, con delle foto.
(La pagina di orientazione si apre in QUESTO pannello)", +" ", +SClickHere+"mis páginas sobre esta iglesia, con fotos.
(La página de orientación abre en ESTA ventana)", +EClickHere+"my pages on this church, with photos.
(Orientation page
opens in another window)
", +FClickHere+"mes pages sur cette église, avec photos.
(La page d\'orientation s\'ouvre dans une autre fenêtre)", +IClickHere+"le mie pagine su questa chiesa, con delle foto.
(La pagina di orientazione si apre in un altro pannello)", +" ", +SClickHere+"mis páginas sobre esta iglesia, con fotos.
(La página de orientación abre en una otra ventana)", +EClickHere+"my site on this town,
with photos and links.
(Orientation page opens in THIS window)", +FClickHere+"mes pages sur cette ville,
avec photos et liens.
(La page d\'orientation s\'ouvre dans CETTE fenêtre)", +IClickHere+"le mie pagine su questa città,
con fotografie e un elenco di link.
(La pagina di orientazione si apre in QUESTO pannello)", +" ", +SClickHere+"mis páginas sobre esta ciudad,
con fotos y enlaces.
(La página de orientación abre en ESTA ventana)", +EClickHere+"my site on this town,
with photos and links.
(Orientation page opens in another window)", +FClickHere+"mes pages sur cette ville,
avec photos et liens.
(La page d\'orientation s\'ouvre dans une autre fenêtre)", +IClickHere+"le mie pagine su questa città,
con fotografie e un elenco di link.
(La pagina di orientazione si apre in un altro pannello)", +" ", +SClickHere+"mis páginas sobre esta ciudad,
con fotos y enlaces.
(La página de orientación abre en una otra ventana)", +EClickHere+"the passage
in an English translation
linked to the original Latin.
(Opens in another window)

", //"THIS IS WHAT REALLY BELONGS IN 520:
Click here for the passage
in the Latin text of Suetonius,
linked to an English translation.
(Opens in another window)", +FClickHere+"le passage
en traduction anglaise
lié au texte latin.
(S'ouvre dans une autre fenêtre)", +IClickHere+"il passo
in una traduzione inglese
collegato al testo latino.
(Si apre in un altro pannello)
", //"THIS IS WHAT REALLY BELONGS IN 522:
Cliccare qui per il passo
nel testo latino di Svetonio,
collegato a traduzioni in inglese e francese.
(Si apre in un altro pannello)", +"

Cliccare hic ad legendum
in anglica versione
ad Latinum textum conexum.
(Altera in fenestra aperietur pagina)", +SClickHere+"este pasaje
en una traducción inglesa
con enlace al texto latino.
(Abre en una otra ventana)", +EClickHere+"the passage
in an English translation
linked to the original Latin.
(Offsite, opens in another window)

", //"THIS IS WHAT REALLY BELONGS IN 525:
Click here for the passage
in the Latin text of Suetonius,
linked to an English translation.
(Opens in another window)", +FClickHere+"le passage
en traduction anglaise
lié au texte latin.
(Hors site, s\'ouvre dans une autre fenêtre)", +IClickHere+"il passo
in una traduzione inglese
collegato al testo latino.
(Fuori sito, si apre in un altro pannello)
", //"THIS IS WHAT REALLY BELONGS IN 507:
Cliccare qui per il passo
nel testo latino di Svetonio,
collegato a traduzioni in inglese e francese.
(Si apre in un altro pannello)", +"

Cliccare hic ad legendum
in anglica versione
ad Latinum textum conexum.
(Apud alios, altera in fenestra aperietur pagina)", +SClickHere+"este pasaje
en una traducción inglesa
con enlace al texto latino.
(Fuera del sitio, abre en una otra ventana)", +EClickHere+"the passage
in the original Latin
linked to an English translation.
(Opens in another window)

", //"THIS IS WHAT REALLY BELONGS IN 510:
Click here for the passage
in the Latin text of Suetonius,
linked to an English translation.
(Opens in another window)", +FClickHere+"le passage
dans le texte latin
lié à une traduction anglaise.
(S'ouvre dans une autre fenêtre)", +IClickHere+"il passo
nel testo latino
collegato ad una traduzione inglese.
(Si apre in un altro pannello)
", //"THIS IS WHAT REALLY BELONGS IN 512:
Cliccare qui per il passo
nel testo latino di Svetonio,
collegato a traduzioni in inglese e francese.
(Si apre in un altro pannello)", +"

Cliccare hic ad legendum
Latinum textum
ad anglicam versionem conexum.
(Altera in fenestra aperietur pagina)", +SClickHere+"este pasaje
en el texto latino
con enlace a una traducción inglesa.
(Abre en una otra ventana)", +EClickHere+"the passage
in the original Latin
linked to an English translation.
(Offsite, opens in another window)

", //"THIS IS WHAT REALLY BELONGS IN 515:
Click here for the passage
in the Latin text of Suetonius,
linked to an English translation.
(Opens in another window)", +FClickHere+"le passage
dans le texte latin
lié à une traduction anglaise.
(Hors site, s\'ouvre dans une autre fenêtre)", +IClickHere+"il passo
nel testo latino
collegato ad una traduzione inglese.
(Fuori sito, si apre in un altro pannello)
", //"THIS IS WHAT REALLY BELONGS IN 517:
Cliccare qui per il passo
nel testo latino di Svetonio,
collegato a traduzioni in inglese e francese.
(Si apre in un altro pannello)", +"

Cliccare hic ad legendum
Latinum textum
ad anglicam versionem conexum.
(Apud alios, altera in fenestra aperietur pagina)", +SClickHere+"este pasaje
en el texto latino
con enlace a una traducción inglesa.
(Fuera del sitio, abre en una otra ventana)", +EClickHere+"the passage
in Pliny the Elder\'s Natural History.
(Latin, opens in another window)", +FClickHere+"le passage
dans l\'Histoire Naturelle de Pline l\'ancien.
(En latin; s\'ouvre dans une autre fenêtre)", +IClickHere+"il passo
nella Storia Naturale di Plinio il Vecchio.
(In latino; si apre in un altro pannello)", +" ", +SClickHere+"el pasaje
en la Historia Natural de Plinio el Viejo.
(En latín; abre en una otra ventana)", +EClickHere+"the passage
in Ptolemy\'s Geography.
(English, opens in another window)", +FClickHere+"le passage
dans la Géographie de Ptolémé.
(En anglais; s\'ouvre dans une autre fenêtre)", +IClickHere+"il passo
nella Geografia di Tolomeo.
(In inglese; si apre in un altro pannello)", +"

Cliccare hic ad textum legendum
in Geographia Ptolemaei.
(Anglice, altera in fenestra aperietur pagina)", +" ", +EClickHere+"the passage
in Ammian
in an English translation
linked to the original Latin.
(Opens in another window)", +FClickHere+"le passage
dans Ammien
en traduction anglaise
liée au texte latin.(S'ouvre dans une autre fenêtre)", +"

Cliccare qui per il passo
in Ammiano
in una traduzione inglese
collegato al testo latino.
(Si apre in un altro pannello)", +" ", +" ", +EClickHere+"the passage
in Appian.
(English, opens in another window)", +FClickHere+"le passage
dans Appien.
(En anglais; s\'ouvre dans une autre fenêtre)", +IClickHere+"il passo
in Appiano.
(In inglese; si apre in un altro pannello)", +" ", +" ", +EClickHere+"the passage
in Cassius Dio\'s History.
(English, opens in another window)", +FClickHere+"le passage
dans l\'Histoire de Dion Cassius.
(En anglais; s\'ouvre dans une autre fenêtre)", +IClickHere+"il passo
nella Storia di Cassio Dione.
(In inglese; si apre in un altro pannello)", +" ", +SClickHere+"el pasaje
en Dion Cásio.
(en inglés, abre en una otra ventana)", +EClickHere+"the passage
in Plutarch.
(English, opens in another window)", +FClickHere+"le passage
dans Plutarque.
(En anglais; s\'ouvre dans une autre fenêtre)", +IClickHere+"il passo
in Plutarco.
(In inglese; si apre in un altro pannello)", +" ", +SClickHere+"el pasaje
en Plutarco.
(en inglés, abre en una otra ventana)", +EClickHere+"the passage
in Polybius\' Histories.
(English, opens in another window)", +FClickHere+"le passage
dans les Histoires de Polybe.
(En anglais; s\'ouvre dans une autre fenêtre)", +IClickHere+"il passo
nelle Storie di Polibio.
(In inglese; si apre in un altro pannello)", +"

Cliccare hic ad textum legendum
in Historiis Polybii.
(Anglice, altera in fenestra aperietur pagina)", +" ", +EClickHere+"the passage
in Strabo\'s Geography.
(English, opens in another window)", +FClickHere+"le passage
dans la Géographie de Strabon.
(En anglais; s\'ouvre dans une autre fenêtre)", +IClickHere+"il passo
nella Geografia di Strabone.
(In inglese; si apre in un altro pannello)", +"

Cliccare hic ad textum legendum
in Geographia Strabonis.
(Anglice, altera in fenestra aperietur pagina)", +" ", +IClickHere+"la scheda di questa chiesa.
(Rimane in questo pannello)", +IClickHere+"la scheda di questa chiesa.
(Un\' altra pagina si apre in QUESTO pannello)", +IClickHere+"la scheda di quest\' artista nell\' indice."+IThisWindow, +IClickHere+"la scheda di quest\' artista nell\' indice.
(Si apre in un altro pannello)", +IClickHere+"il catalogo,
al passo preciso.
(Si aprirà nel pannello dei cataloghi)", +IClickHere+"questo quadro della pianta.
(Si aprirà nel pannello delle piante)", +IClickHere+"QUESTO QUADRO ADIACENTE.
(Rimane in questo pannello)", +IClickHere+"questa chiesa.
(Si apre nel pannello principale del testo)", +EClickHere+"this artist\'s entry in the index.
(Open in THIS window)", +EClickHere+"this artist\'s entry in the index.
(Open in another window)", +EClickHere+"my site or page."+EThisWindow, +FClickHere+"mon site ou ma page."+FThisWindow, +IClickHere+"il mio sito o la mia pagina."+IThisWindow, +" ", +SClickHere+"mi sitio o página.
(Abre en ESTA ventana)", +EClickHere+"my site or page.
(Opens in another window)", +FClickHere+"mon site ou ma page.
(S'ouvre dans une autre fenêtre)", +IClickHere+"il mio sito o la mia pagina.
(Si apre in un altro pannello)", +" ", +SClickHere+"mi sitio o página.
(Abre en una otra ventana)", +EClickHere+"my subsite,
with several pages, photos, etc."+EThisWindow, +FClickHere+"mon sous-site,
qui comporte plusieurs pages, photos, etc."+FThisWindow, +IClickHere+"il mio sotto-sito,
con parecchie pagine e immagini, ecc."+IThisWindow, +" ", +SClickHere+"mi sub-sitio,
con varias páginas, imágenes, etc.
(Abre en ESTA ventana)", +EClickHere+"my subsite,
with several pages, photos, etc.
(Opens in another window)", +FClickHere+"mon sous-site,
qui comporte plusieurs pages, photos, etc.
(S'ouvre dans une autre fenêtre)", +IClickHere+"il mio sotto-sito,
con parecchie pagine e immagini, ecc.
(Si apre in un altro pannello)", +" ", +SClickHere+"mi sub-sitio,
con varias páginas, imágenes, etc.
(Abre en una otra ventana)", +EClickHere+"my subsite,
with many pages, photos, links."+EThisWindow, +FClickHere+"mon sous-site,
qui comporte de nombreux pages, photos, et liens."+FThisWindow, +IClickHere+"il mio sotto-sito,
con molti pagine, immagini, link."+IThisWindow, +" ", +SClickHere+"mi sub-sitio,
con muchas páginas, imágenes, y enlaces.
(Abre en ESTA ventana)", +EClickHere+"my subsite,
with many pages, photos, links.
(Opens in another window)", +FClickHere+"mon sous-site,
qui comporte de nombreuses pages et photos, et de nombreux liens.
(S'ouvre dans une autre fenêtre)", +IClickHere+"il mio sotto-sito,
con molte pagine e immagini, e molti link.
(Si apre in un altro pannello)", +" ", +SClickHere+"mi sub-sitio,
con muchas páginas y imagenes, y muchos enlaces.
(Abre en una otra ventana)", +"

The entire book is onsite.
(Orientation page opens in THIS window)", +"

Le livre entier se trouve sur le site.
(La page d\'orientation s\'ouvre dans CETTE fenêtre)", +"

Il libro intero si trova sul sito.
(La pagina di orientazione si apre in QUESTO pannello)", +" ", +"

El libro entero es reproducido en este sitio.
(La página de orientación abre en ESTA ventana)", +"

The entire book is onsite.
(Orientation page opens in another window)", +"

Le livre entier se trouve sur le site.
(La page d\'orientation s\'ouvre dans une autre fenêtre)", +"

Il libro intero si trova sul sito.
(La pagina di orientazione si apre in un altro pannello)", +" ", +"

El libro entero es reproducido en este sitio.
(La página de orientación abre en una otra ventana)", +EClickHere+"their website or page.
(Offsite, so it opens in another window)", +FClickHere+"leur site ou page.
(Hors site, s\'ouvrira donc dans une autre fenêtre)", +IClickHere+"loro sito o pagina.
(Fuori sito, si apre quindi in un altro pannello)", +" ", +SClickHere+"su sitio o página.
(Sitio externo: abre en una otra ventana)", +" ", +" ", +" ", +" ", +" ", +EClickHere+"the original Latin.
(Opens in another window)", +FClickHere+"le latin original.
(S'ouvre dans une autre fenêtre)", +IClickHere+"il latino originale.
(Si apre in un altro pannello)", +" ", +SClickHere+"el latino originale.
(Abre en una otra ventana)", +" ", +" ", +" ", +" ", +" ", +EClickHere+"the passage
in the Latin text.
(Opens in another window)", +FClickHere+"le passage du texte latin.
(S'ouvre dans une autre fenêtre)", +IClickHere+"il passo dell\' autore latino.
(Si apre in un altro pannello)", +" ", +SClickHere+"el pasaje del autor latino.
(Abre en una otra ventana)", +EClickHere+"the passage
in a Latin translation.
(Opens in another window)", +FClickHere+"le passage dans une traduction latine.
(S'ouvre dans une autre fenêtre)", +IClickHere+"il passo del testo tradotto in latino.
(Si apre in un altro pannello)", +" ", +SClickHere+"el pasaje del autor latino.
(Abre en una otra ventana)", +EClickHere+"the passage
in the Latin text.
(Offsite: opens in another window)", +FClickHere+"le passage du texte latin.
(Hors site: s\'ouvre dans une autre fenêtre)", +IClickHere+"il passo del testo latino.
(Fuori sito: si apre in un altro pannello)", +" ", +SClickHere+"el pasaje del texto latino.
(Fuera del sitio: abre en una otra ventana)", +EClickHere+"the passage
in the Latin text,
linked to a translation
(Offsite: opens in another window)", +FClickHere+"le passage du texte latin.
liée à une traduction(Hors site: s\'ouvre dans une autre fenêtre)", +IClickHere+"il passo del testo latino.
collegato ad una traduzione
(Fuori sito: si apre in un altro pannello)", +" ", +SClickHere+"el pasaje del texto latino.
con enlace a una traducción(Fuera del sitio: abre en una otra ventana)", +EClickHere+"the passage
in the Latin text,
linked to one or more translations.
(Opens in another window)", +FClickHere+"le passage du texte latin,
lié à une ou plusieurs traductions.
(S'ouvre dans une autre fenêtre)", +IClickHere+"il passo dell\' autore latino,
collegato ad una o più traduzioni.
(Si apre in un altro pannello)", +" ", +SClickHere+"el pasaje del autor latino,
con enlace a una o mas traducciones.
(Abre en una otra ventana)", +EClickHere+"the passage in the Latin text,
linked to one or more translations.
(Offsite: opens in another window)", +FClickHere+"le passage du texte latin,
lié à une ou plusieurs traductions.
(Hors site: s\'ouvre dans une autre fenêtre)", +IClickHere+"il passo dell\' autore latino,
collegato ad una o più traduzioni.
(Fuori sito: si apre in un altro pannello)", +" ", +SClickHere+"el pasaje del autor latino,
con enlace a una o mas traducciones.
(Fuera del sitio: abre en una otra ventana)", +EClickHere+"the text of this passage
in the original language.
(Opens in another window)", +FClickHere+"le texte de ce passage
dans la langue originale.
(S'ouvre dans une autre fenêtre)", +IClickHere+"il testo di questo passo
nella lingua originaria.
(Si apre in un altro pannello)", +"

Cliccare hic ad legendum textum
in lingua originali.
(Altera in fenestra aperietur pagina)", +SClickHere+"el texto de este pasaje
en la lingua original.
(Abre en una otra ventana)", +EClickHere+"the text of this passage
in the original language.
(Offsite: opens in another window)", +FClickHere+"le texte de ce passage
dans la langue originale.
(Hors site: s\'ouvre dans une autre fenêtre)", +IClickHere+"il testo di questo passo
nella lingua originaria.
(Fuori sito: si apre in un altro pannello)", +"

Cliccare hic ad legendum textum
in lingua originali.
(In situ externo: altera in fenestra aperietur pagina)", +SClickHere+"el texto de este pasaje
en la lingua original.
(Fuera del sitio: abre en una otra ventana)", +EClickHere+"an English translation
of this passage.
(Opens in another window)", +FClickHere+"une traduction en français de ce passage.
(S'ouvre dans une autre fenêtre)", +IClickHere+"una traduzione italiana di questo passo.
(Si apre in un altro pannello)", +" ", +SClickHere+"una traducción en castellano de este parágrafo.
(Abre en una otra ventana)", +EClickHere+"an English translation.
(Offsite: opens in another window)", +FClickHere+"une traduction en français.
(Hors site: s\'ouvre dans une autre fenêtre)", +IClickHere+"una traduzione italiana.
(Fuori sito: si apre in un altro pannello)", +" ", +SClickHere+"una traducción en castellano.
(Fuera del sitio: abre en una otra ventana)", +CZero, +"

(La pàgina s\'obre en una altra finestra)", +"

(Fora d\'aquest lloc: la pàgina s\'obre en una altra finestra)", +"

(Aquesta foto o una foto relacionada, s\'obre en una altra finestra)", +"

(La foto s\'obre en una altra finestra)", +"

(En una altra part d\'aquesta pàgina)", +CClickHere+"la nota de l'autor a peu de la pàgina.", +CClickHere+"la meva nota a peu de la pàgina.", +CClickHere+"torna a la referència en el text.", +" ", +"

(Offsite page
opens in another window)

Warning: PDF file.", +" ", +"

(La pagina, fuori sito,
si apre in un altro pannello)

Attenzione: documento PDF.", +" ", +" ", +"

(Page opens in another window)
JSTOR (limited access)", +" ", +" ", +" ", +" ", +"

(Page opens in another window)
Warning: The page contains coding errors and may not be visible in all browsers.", +" ", +"

(Si apre in un altro pannello)
Avvertimento: La pagina contiene errori di codaggio e può darsi che non sia visibile in tutti i navigatori.", +" ", +" ", +"

(Page opens in another window)
Warning: loud soundfile; you may want to turn down your volume level before going there.", +" ", +" ", +" ", +" ", +EClickHere+"the solution!
(Opens in another window)", +FClickHere+"la solution!
(S'ouvre dans une autre fenêtre)", +IClickHere+"la soluzione!
(Si apre in un altro pannello)", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +EClickHere+"the passage
in Diodorus\' Library of History.
(English, opens in another window)", +FClickHere+"le passage
dans l\'Histoire de Diodore.
(En anglais; s\'ouvre dans une autre fenêtre)", +IClickHere+"il passo
nella Storia di Diodoro.
(In inglese; si apre in un altro pannello)", +"

Cliccare hic ad textum legendum
in Historia Diodori.
(Anglice, altera in fenestra aperietur pagina)", +" ", +EClickHere+"the passage of Herodotus
(English, linked to the Greek original: opens in another window)", +FClickHere+"le passage d\'Hérodote
(En anglais, lié à l'original grec : s\'ouvre dans une autre fenêtre)", +IClickHere+"il passo di Erodoto
(In inglese, collegato all' originale greco; si apre in un altro pannello)", +" ", +" ", +EClickHere+"the passage of Pausanias
(Offsite: opens in another window)", +FClickHere+"le passage de Pausanias
(Hors site: s\'ouvre dans une autre fenêtre)", +IClickHere+"il passo di Pausania
(Fuori sito: si apre in un altro pannello)", +" ", +" ", +EClickHere+"the passage of Thucydides
(Offsite: opens in another window)", +FClickHere+"le passage de Thucydide
(Hors site: s\'ouvre dans une autre fenêtre)", +IClickHere+"il passo di Tucidide
(Fuori sito: si apre in un altro pannello)", +" ", +" ", +EClickHere+"the passage
in the Latin text of Frontinus,
linked to an English translation.
(Opens in another window)", +FClickHere+"le passage
dans le texte latin de Frontin,
lié à une traduction anglaise.
(S'ouvre dans une autre fenêtre)", +IClickHere+"il passo
nel testo latino di Frontino,
collegato ad una traduzione in inglese.
(Si apre in un altro pannello)", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +EClickHere+"the passage
in an English translation of Frontinus,
linked to the Latin text.
(Opens in another window)", +FClickHere+"le passage
dans une traduction anglaise de Frontin,
lié au texte latin.
(S'ouvre dans une autre fenêtre)", +" ", +" ", +" ", +EClickHere+"the passage
in Dionysius in English translation
(Opens in another window)", +" ", +IClickHere+"il passo
di Dionisio in traduzione inglese
(Si apre in un altro pannello)", +" ", +" ", +"

If you don\'t know what this is about,
the explanation is only a click away."+EThisWindow, +"

Si vous ne savez pas ce de quoi il s\'agit,
il n\'y a qu\'à faire clic pour l\'explication."+FThisWindow, +"

Se questo non vi dice nulla,
basta cliccare per la spiegazione.
(La pagina si apre in QUESTO pannello)", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +EClickHere+"the Latin original
of this passage.
(Opens in another window)", +FClickHere+"l\'original latin
de ce passage.
(S'ouvre dans une autre fenêtre)", +IClickHere+"l\' originale latino
di questo passo.
(Si apre in un altro pannello)", +" ", +" ", +EClickHere+"the Greek original
of this passage.
(Opens in another window)", +FClickHere+"l\'original grec
de ce passage.
(S'ouvre dans une autre fenêtre)", +IClickHere+"l\' originale greco
di questo passo.
(Si apre in un altro pannello)", +" ", +" ", +"

This site comprises roughly 15,000 pages of text and photos, mostly about American history, ancient Rome, classical Antiquity, and central Italy.
CLICK ON THE LINK FOR THE HOMEPAGE.
(Opens in THIS window.)", +"

Ce site comporte environ 15.000 pages de texte et de photos, surtout sur Rome antique et médiévale et l\'Italie centrale.
FAIRE CLIC SUR LE LIEN POUR LA PAGE D\'ACCUEIL.
(S\'ouvre dans CETTE fenêtre.)", +"

Questo sito contiene circa 15.000 pagine di testo e di foto, innanzitutto sulla Roma antica e medioevale e l\'Italia centrale.
CLICCARE SUL LINK PER LA PAGINA HOME.
(Si apre in QUESTO pannello.)", +"

Hic situs milia paginarum
textus photographiarumque
continet, plerumque
de historia Americana,
Roma antiqua et medievali,
antiquitate classica, et Italia centrali.
CLICCARE SUPER VINCULAM
AD PAGINAM PRINCIPALEM
VIDENDAM.

(HAC in fenestra
aperietur pagina.)
", +"

Deze site omvat ongeveer 15.000 pagina's tekst en foto's, meestal over de Amerikaanse geschiedenis, het oude Rome, de klassieke oudheid, en Midden-Italië.
KLIK OP DE LINK VOOR DE HOMEPAGE.
(Opent in DIT venster.)", +"

Este site contém cerca de 15.000 páginas de texto e fotos, especialmente sobre a história das Américas, a Roma antiga e medieval, e o centro da Itália.
CLIQUE NO LINK PARA A PÁGINA DE ACOLHIMENTO.
(A página abre NESTA janela.)", +"

Este sitio contiene aproximadamente 15.000 páginas de texto e fotos, sobre todo sobre la história de las Américas, Roma antigua y medieval, y el centro de Italia.
CLIC EN EL ENLACE PARA LA PÁGINA PRINCIPAL.
(La página abre en ESTA ventana.)", +" ", +" ", +" ", +"

This site comprises roughly 15,000 pages of text and photos, mostly about American history, ancient Rome, classical Antiquity, and central Italy.
CLICK HERE FOR THE HOMEPAGE.
(Opens in another window.)", +"

Ce site comporte environ 15.000 pages de texte et de photos, surtout sur Rome antique et médiévale et l\'Italie centrale.
FAIRE CLIC ICI POUR LA PAGE D\'ACCUEIL.
(S\'ouvre dans une autre fenêtre.)", +"

Questo sito contiene circa 15.000 pagine di testo e di foto, innanzitutto sulla Roma antica e medioevale e l\'Italia centrale.
CLICCARE QUI PER LA PAGINA HOME.
(Si apre in un altro pannello.)", +"

Hic situs milia paginarum
textus photographiarumque
continet, plerumque
de historia Americana,
Roma antiqua et medievali,
antiquitate classica, et Italia centrali.
CLICCARE HIC
AD PAGINAM PRINCIPALEM
VIDENDAM.

(In altera fenestra
aperietur pagina.)", +"

Deze site omvat ongeveer 15.000 pagina's tekst en foto's, meestal over de Amerikaanse geschiedenis, het oude Rome, de klassieke oudheid, en Midden-Italië.
KLIK OP DE LINK VOOR DE HOMEPAGE.
(Opent in DIT venster.)", +"

Este site contém cerca de 15.000 páginas de texto e fotos, especialmente sobre a Roma antiga e medieval, a história das Américas, e o centro da Itália.
CLIQUE NO LINK PARA A PÁGINA DE ACOLHIMENTO.
(A página abre em outra janela.)", +"

Este sitio contiene aproximadamente 15.000 páginas de texto e fotos, sobre todo sobre la história de las Américas, Roma antigua y medieval, y el centro de Italia.
HAGA CLIC AQUÍ PARA LA PÁGINA PRINCIPAL.
(La página abre en una otra ventana.)", +" ", +" ", +" ", +"

Click here to send me an e-mail; you\'ll first get a FAQ covering some of the commoner questions.
(Opens in another window)", +FClickHere+"m\'envoyer une e-mail; vous verrez d\'abord un FAQ traitant de quelques questions couramment posées.
(S'ouvre dans une autre fenêtre)", +IClickHere+"mandarmi un\' e-mail; vedrete prima un FAQ trattando di alcune frequenti questioni.
(Si apre in un altro pannello)", +"

Click here to send me an e-mail; you\'ll first get a FAQ covering some of the commoner things people write me about.
(Altera in fenestra aperietur)", +" ", +" ", +" ", +" ", +" ", +" ", +EClickHere+"the appropriate section of this page.
LET THE PAGE LOAD COMPLETELY BEFORE CLICKING.", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +EClickHere+"the author\'s note at the bottom of this page.", +" ", +IClickHere+"la nota
dell\' autore a piè di pagina.", +" ", +" ", +EClickHere+"the editor\'s note at the bottom of this page.", +FClickHere+"la note de l\'éditeur au bas de cette page.", +IClickHere+"la nota
dell\' editore a piè di pagina.", +"

Cliccare hic ad editoris notam legendam in ima pagina.", +" ", +EClickHere+"a textual note at the bottom of this page.", +" ", +IClickHere+"una nota testuale
a piè di pagina.", +" ", +" ", +EClickHere+"the Italian original
of this passage.
(Opens in another window)", +" ", +" ", +" ", +" ", +"

Click here to go one level up:
Opens in THIS window.", +"

Faire clic ici
pour remonter d\'un niveau
(S\'ouvre dans CETTE fenêtre.)", +"

Fare clic qui per risalire un livello
(Si apre in QUESTO pannello.)", +"

Cliccare hic ad paginam superiorem ingrediendam
(HAC in fenestra aperietur.)", +SClickHere+"ir al nivel superior
(Abre en ESTA ventana)", +" ", +" ", +" ", +" ", +" ", +"

Click here to go one level up
(Opens in another window.)", +FClickHere+"remonter d\'un niveau
(S\'ouvre dans une autre fenêtre.)", +"

Fare clic qui per risalire un livello
(Si apre in un altro pannello.)", +"

Cliccare hic ad paginam superiorem ingrediendam
(Altera in fenestra aperietur.)", +PClickHere+"subir um nivel
(Abre em uma outra janela)", +SClickHere+"ir al nivel superior
(Abre en una otra ventana)", +" ", +" ", +" ", +" ", +EClickHere+"the passage
in an English translation of Sallust,
linked to the Latin text.
(Opens in another window)", +FClickHere+"le passage
dans une traduction anglaise de Salluste,
lié au texte latin.
(S'ouvre dans une autre fenêtre)", +IClickHere+"il passo
in una traduzione inglese di Sallustio,
collegato al testo latino.
(Si apre in un altro pannello)", +" ", +" ", +EClickHere+"the passage
in the Latin text of Sallust,
linked to an English translation.
(Opens in another window)", +FClickHere+"le passage
dans le texte latin de Salluste,
lié à une traduction anglaise.
(S'ouvre dans une autre fenêtre)", +IClickHere+"il passo
nel testo latino di Sallustio,
collegato ad una traduzione in inglese.
(Si apre in un altro pannello)", +" ", +" ", +EClickHere+"the passage
in an English translation of Tacitus.
(Opens in another window)", +FClickHere+"le passage
dans une traduction anglaise de Tacite.
(S'ouvre dans une autre fenêtre)", +IClickHere+"il passo
in una traduzione inglese di Tacito.
(Si apre in un altro pannello)", +" ", +"

Haga clic aquí por el pasaje
en una traducción inglesa de Tacito.
(Abre en una otra ventana)", +EClickHere+"the passage
in the Latin text of Tacitus,
linked to an English translation.
(Opens in another window)", +FClickHere+"le passage
dans le texte latin de Tacite,
lié à une traduction anglaise.
(S'ouvre dans une autre fenêtre)", +IClickHere+"il passo
nel testo latino di Tacito,
collegato ad una traduzione in inglese.
(Si apre in un altro pannello)", +" ", +"

Haga clic aquí por el pasaje
en el texto latino de Tacito.
(Abre en una otra ventana)", +EClickHere+"the Bible verse
in Greek, Latin, English facing columns.
(Offsite, opens in another window)", +" ", +" ", +" ", +PClickHere+"o versículo da Bíblia
em colunas enfrentadas: grego, latim, inglês.
(Offsite: a página abre em uma outra janela)", +"

CULLUM NUMBER
(If you don\'t know what this is,
click here for an explanation
on the Cullum\'s Register homepage:
opens in another window.)
", +"

CLASS RANK
From 1818 to 1977, within each Class graduates are listed in order of their general merit: academic and military standing combined.", +" ", +" ", +" ", +"

(De pagina opent in DIT venster)", +"

(De pagina opent in een ander venster)", +"

(Offsite: de pagina opent in een ander venster)", +"

(Deze foto of een verwante foto, opent in een ander venster)", +"

(De foto wordt geopend in een ander venster)", +"

(Elders op deze pagina)", +NClickHere+"de nota van de auteur aan de onderkant van deze pagina.", +NClickHere+"mijn nota aan de onderkant van deze pagina.", +"

Klik hier om terug te gaan
de verwijzing in de tekst.", +"

Als je niet weet waar dit over gaat,
je alleen maar een klik verwijderd van de uitleg.
(Opent in een ander venster)", +"

Klik hier om een niveau omhoog gaan.
(Opent in DIT venster)
", +"

Klik hier om een niveau omhoog gaan.
(Opent in een ander venster)
", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +EClickHere+"the passage
in a Latin translation of Aelian.
(Opens in another window)", +FClickHere+"le passage
dans une traduction latine d\'Elien.
(S'ouvre dans une autre fenêtre)", +IClickHere+"il passo
in una traduzione latina di Eliano.
(Si apre in un altro pannello)", +" ", +SClickHere+"el pasaje
en una traducción latina de Eliano.
(Abre en una otra ventana)", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +EClickHere+"the passage
in the Greek text.
(Opens in another window)", +FClickHere+"le passage du texte grec.
(S'ouvre dans une autre fenêtre)", +IClickHere+"il passo dell\' autore greco.
(Si apre in un altro pannello)", +" ", +SClickHere+"el pasaje del autor griego.
(Abre en una otra ventana)", +EClickHere+"the passage
in the Greek text,
linked to a translation
(Opens in another window)", +FClickHere+"le passage du texte grec.
liée à une traduction(S'ouvre dans une autre fenêtre)", +IClickHere+"il passo dell\' autore greco.
collegato ad una traduzione
(Si apre in un altro pannello)", +" ", +SClickHere+"el pasaje del autor griego.
con enlace a una traducción(Abre en una otra ventana)", +EClickHere+"the passage
in the Greek text.
(Offsite: opens in another window)", +FClickHere+"le passage du texte grec.
(Hors site: s\'ouvre dans une autre fenêtre)", +IClickHere+"il passo dell\' autore greco.
(Fuori sito: si apre in un altro pannello)", +" ", +SClickHere+"el pasaje del autor griego.
(Fuera del sitio: abre en una otra ventana)", +EClickHere+"the passage
in the Greek text,
linked to a translation
(Offsite: opens in another window)", +FClickHere+"le passage du texte grec.
liée à une traduction(Hors site: s\'ouvre dans une autre fenêtre)", +IClickHere+"il passo dell\' autore greco.
collegato ad una traduzione
(Fuori sito: si apre in un altro pannello)", +" ", +SClickHere+"el pasaje del autor griego.
con enlace a una traducción(Fuera del sitio: abre en una otra ventana)", +EClickHere+"the passage
in an English translation
linked to the original Greek.
(Opens in another window)

", +FClickHere+"le passage
en traduction anglaise
lié au texte grec.
(S'ouvre dans une autre fenêtre)", +IClickHere+"il passo
in una traduzione inglese
collegato al testo greco.
(Si apre in un altro pannello)
", +"

Cliccare hic ad legendum
in anglica versione
ad Graecum textum conexum.
(Altera in fenestra aperietur pagina)", +SClickHere+"este pasaje
en una traducción inglesa
con enlace al texto greco.
(Abre en una otra ventana)", +EClickHere+"the passage
in an English translation
linked to the original Greek.
(Offsite, opens in another window)

", +FClickHere+"le passage
en traduction anglaise
lié au texte grec.
(Hors site, s\'ouvre dans une autre fenêtre)", +IClickHere+"il passo
in una traduzione inglese
collegato al testo greco.
(Fuori sito, si apre in un altro pannello)
", +"

Cliccare hic ad legendum
in anglica versione
ad Graecum textum conexum.
(Apud alios, altera in fenestra aperietur pagina)", +SClickHere+"este pasaje
en una traducción inglesa
con enlace al texto greco.
(Fuera del sitio, abre en una otra ventana)", +EClickHere+"the passage
in the original Greek
linked to an English translation.
(Opens in another window)

", +FClickHere+"le passage
dans le texte grec
lié à une traduction anglaise.
(S'ouvre dans une autre fenêtre)", +IClickHere+"il passo
nel testo greco
collegato ad una traduzione inglese.
(Si apre in un altro pannello)
", +"

Cliccare hic ad legendum
Graecum textum
ad anglicam versionem conexum.
(Altera in fenestra aperietur pagina)", +SClickHere+"este pasaje
en el texto greco
con enlace a una traducción inglesa.
(Abre en una otra ventana)", +EClickHere+"the passage
in the original Greek
linked to an English translation.
(Offsite, opens in another window)", +FClickHere+"le passage
dans le texte grec
lié à une traduction anglaise.
(Hors site, s\'ouvre dans une autre fenêtre)", +IClickHere+"il passo
nel testo greco
collegato ad una traduzione inglese.
(Fuori sito, si apre in un altro pannello)", +"

Cliccare hic ad legendum
Graecum textum
ad anglicam versionem conexum.
(Apud alios, altera in fenestra aperietur pagina)", +SClickHere+"este pasaje
en el texto greco
con enlace a una traducción inglesa.
(Fuera del sitio, abre en una otra ventana)", +EClickHere+"the passage in Plutarch
in an English translation
linked to the original Greek
(Opens in another window)", +FClickHere+"le passage dans Plutarque
en traduction anglaise
lié au texte grec(S\'ouvre dans une autre fenêtre)", +IClickHere+"il passo in Plutarco

in una traduzione inglese
collegato al testo greco.
(Si apre in un altro pannello)", +" ", +SClickHere+"el pasaje en Plutarco
en una traducción inglesa
con enlace al texto greco.
(en inglés, abre en una otra ventana)", +EClickHere+"the passage in the Res Gestae
— parallel texts:
Latin, Greek, English
(Opens in another window)", +" ", +" ", +" ", +" ", +"

Link is to the Livius.Org website:
page opens in
another window.
", +EClickHere+"Jona Lendering\'s note at the bottom of this page.", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +EClickHere+"the passage
in the original Latin
linked to a French translation.
(Opens in another window)", //"THIS IS WHAT REALLY BELONGS IN 510:

Click here for the passage
in the Latin text of Suetonius,
linked to an English translation.
(Opens in another window)", +FClickHere+"le passage
dans le texte latin
lié à une traduction française.
(S'ouvre dans une autre fenêtre)", +IClickHere+"il passo
nel testo latino
collegato ad una traduzione francese.
(Si apre in un altro pannello)
", //"THIS IS WHAT REALLY BELONGS IN 512:
Cliccare qui per il passo
nel testo latino di Svetonio,
collegato a traduzioni in inglese e francese.
(Si apre in un altro pannello)", +"

Cliccare hic ad legendum
Latinum textum
ad anglicam versionem conexum.
(Altera in fenestra aperietur pagina)", +SClickHere+"este pasaje
en el texto latino
con enlace a una traducción francesa.
(Abre en una otra ventana)", +EClickHere+"the passage
in the original Latin
linked to a French translation.
(Offsite, opens in another window)

", //"THIS IS WHAT REALLY BELONGS IN 515:
Click here for the passage
in the Latin text of Suetonius,
linked to an English translation.
(Opens in another window)", +FClickHere+"le passage
dans le texte latin
lié à une traduction française.
(Hors site, s\'ouvre dans une autre fenêtre)", +IClickHere+"il passo
nel testo latino
collegato ad una traduzione francese.
(Fuori sito, si apre in un altro pannello)
", //"THIS IS WHAT REALLY BELONGS IN 517:
Cliccare qui per il passo
nel testo latino di Svetonio,
collegato a traduzioni in inglese e francese.
(Si apre in un altro pannello)", +"

Cliccare hic ad legendum
Latinum textum
ad Francogallicam versionem conexum.
(Apud alios, altera in fenestra aperietur pagina)", +SClickHere+"este pasaje
en el texto latino
con enlace a una traducción francesa.
(Fuera del sitio, abre en una otra ventana)", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +"

THIS IS THE PAGE YOU\'RE ON.", +"

C\'EST LA PAGE QUE VOUS AVEZ DEVANT LES YEUX.", +"

QUESTA È LA PAGINA CHE AVETE DAVANTI AGLI OCCHI.", +" ", +" ", +"

ACTIVE AREAS:
WHEREVER THIS PROMPT
IS REPLACED BY ANOTHER", +"

ZONES ACTIVES :
PARTOUT OU CE MESSAGE EST REMPLACE PAR UN AUTRE", +"

AREE ATTIVE:
OVUNQUE QUESTO MESSAGGIO VIENE SOSTITUITO DA UN\' ALTRO", +"

Click here for the homepage of the
U. S. MILITARY ACADEMY.
(Offsite: opens in another window.)", +"

Click here for the homepage of the
U. S. NAVAL ACADEMY.
(Offsite: opens in another window.)", +"

Click here for the homepage of the
U. S. COAST GUARD ACADEMY.
(Offsite: opens in another window.)", + +" " //THIS LAST LINE MUST NOT END WITH A COMMA +); + +// Array with captions. +var ol_caps = new Array("Array Caption 0", "Array Caption 1"); + + +//\//////////////////////////////// +//\ Thayer CONSTANTS: +//\//////////////////////////////// + +var CarelessLoeb50 = "

The Loeb edition —
thru 50 years of reprintings! —
has "; +var CarelessLoeb60 = "
The Loeb edition —
thru 60 years of reprintings! —
has "; +var CarelessLoeb70 = "
The Loeb edition —
thru 70 years of reprintings! —
has "; +var CarelessLoeb80 = "
The Loeb edition —
thru 80 years of reprintings! —
has "; +var CarelessLoeb90 = "
The Loeb edition —
thru 90 years of reprintings! —
has "; +var CarelessLoebX = "
The Loeb edition —
thru many years of reprintings! —
has "; +var Cullum0 = ":
This is a link
to another entry
in Cullum\'s Register.
(Opens in THIS window)
"; +var Cullum1 = "
USMA, Class of "; +var Cullum2 = ":
This is a link to the biographical summary
in Cullum\'s Register.
(Opens in another window)
"; +var CullumR1 = "

CLASS RANK
— of "; +var CullumR2 = " in the Class"; + + +// ENGLISH: +var Eng2 = "
(English, opens in another window)"; +var EngSearch = "
then search for
"; + + +// FRENCH: +// var Fr0 = "

(La page s\'ouvre dans CETTE fenêtre)"; +// var Fr1 = "

(La page s\'ouvre dans une autre fenêtre)"; +// var Fr2 = "

Le lien est hors site :
la page s\'ouvre
dans une autre fenêtre
"; +// var Fr5 = "

(Ailleurs sur cette page)"; +var FrCullum0 = " :
Ceci est un lien à la notice biographique
dans Cullum\'s Register.
(S\'ouvre dans CETTE fenêtre)

"; +var FrCullum1 = "
USMA, Promotion de "; +var FrCullum2 = " :
Ceci est un lien à la notice biographique
dans Cullum\'s Register.
(S\'ouvre dans une autre fenêtre)
"; +var FrCullumR1 = "

CLASS RANK
— sur "; +var FrCullumR2 = " dans la Promotion"; +var FrGk2 = "
(Grec s\'ouvre dans une autre fenêtre)"; +var FrGkSearch = "
puis chercher
"; +var FrLat2 = "
(Latin, s\'ouvre dans une autre fenêtre)"; +var FrLatSearch = "
puis chercher
"; + + +// GREEK: +var Gk2 = "
(Greek, opens in another window)"; +var GkSearch = "
then search for
"; + + +// ITALIAN: +var It5 = "

(Altrove su questa pagina)"; +var ItGk2 = "
(in Greco, apre in un altro pannello)"; +var ItGkSearch = "
poi cercare
"; +var ItLat2 = "
(in Latino, apre in un altro pannello)"; +var ItLatSearch = "
poi cercare
"; + + +// LATIN: +var Lat2 = "
(Latin, opens in another window)"; +var LatSearch = "
then search for
"; +var RedSearch = "
then search for the word or passage in red"; + + +// SPANISH: +var SpGk2 = "
(Griego, abre en una otra ventana)"; +var SpGkSearch = "
pues buscar
"; +var SpLat2 = "
(Latín, abre en una otra ventana)"; +var SpLatSearch = "
pues buscar
"; + +//////////////////////////////////// +// END CONFIGURATION +//////////////////////////////////// + + + +//////////////////////////////////// +// INIT +//////////////////////////////////// + + +// Runtime variables init. Used for runtime only, don't change, not for config! +var o3_text = ""; +var o3_cap = ""; +var o3_sticky = 0; +var o3_background = ""; +var o3_close = "Close"; +var o3_hpos = RIGHT; +var o3_offsetx = 2; +var o3_offsety = -3; +var o3_fgcolor = ""; +var o3_bgcolor = ""; +var o3_textcolor = ""; +var o3_capcolor = ""; +var o3_closecolor = ""; +var o3_width = 100; +var o3_border = 1; +var o3_status = ""; +var o3_autostatus = 0; +var o3_height = -1; +var o3_snapx = 0; +var o3_snapy = 0; +var o3_fixx = -1; +var o3_fixy = -1; +var o3_fgbackground = ""; +var o3_bgbackground = ""; +var o3_padxl = 0; +var o3_padxr = 0; +var o3_padyt = 0; +var o3_padyb = 0; +var o3_fullhtml = 0; +var o3_vpos = ABOVE; +var o3_aboveheight = 3; +var o3_capicon = ""; +var o3_textfont = "Verdana,Arial,Helvetica"; +var o3_captionfont = "Verdana,Arial,Helvetica"; +var o3_closefont = "Verdana,Arial,Helvetica"; +var o3_textsize = "1"; +var o3_captionsize = "1"; +var o3_closesize = "1"; +var o3_frame = self; +var o3_timeout = 0; +var o3_timerid = 0; +var o3_allowmove = 0; +var o3_function = Function(); +var o3_delay = 0; +var o3_delayid = 0; +var o3_hauto = 0; +var o3_vauto = 0; + +// OTHER THAYER VARIABLES +var BadF = "
"; +var GreekF = "
"; +var LatinF = "
"; +var SearchF = "
"; + + + +var SourceErr = "

The printed text has
"; +var SourceOm = "

The printed text omits
"; +var SourceOmL = "

The printed text omits
"; +var SourceOmG = "

The printed text omits
"; +var SourceOm0 = "

The printed text
omits this."; +var SourceOm1 = "

The printed text
omits this word."; +var SourceOm2 = "

The printed text
omits these words."; + + + +var FrSourceErr = "

Le texte imprimé porte
"; +var FrSourceOm = "

Le texte imprimé omet
"; +var FrSourceOmL = "

Le texte imprimé omet
"; +var FrSourceOmG = "

Le texte imprimé omet
"; + +var FrSourceOm1 = "

Le texte imprimé omet ce mot."; +var FrSourceOm2 = "

Le texte imprimé omet ces mots."; + + + +var ItSourceErr = "

Il testo stampato reca
"; +var ItSourceOm = "

Il testo stampato omette
"; +var ItSourceOmL = "

Il testo stampato omette
"; +var ItSourceOmG = "

Il testo stampato omette
"; +var ItSourceOm0 = "

Il testo stampato
omette questo."; +var ItSourceOm1 = "

Il testo stampato
omette questa parola."; +var ItSourceOm2 = "

Il testo stampato
omette queste parole."; + + + +var NeSourceErr = "

In de gedrukte tekst leest
"; +var NeSourceOm = "

De gedrukte tekst weglaat
"; + + + + + + + + +var PgSourceOm0 = "

O texto impresso omite isso."; +var PgSourceErr = "

No texto impresso lê‑se
"; +var PgSourceOm = "

O texto impresso omite
"; +var PgSourceOmL = "

O texto impresso omite
"; +var PgSourceOmG = "

O texto impresso omite
"; + + + + + +var SpSourceErr = "

En el texto imprimido
se lee
"; +var SpSourceOm = "

El texto imprimido omite
"; +var SpSourceOmL = "

El texto imprimido omite
"; +var SpSourceOmG = "

El texto imprimido omite
"; + +var MyDiaryErr = "

In my diary, I wrote
"; + + + + +var SourceErrMe = "

I actually wrote
"; +var SourceOmMe = "

I omitted
"; + +var DivergenceFromLatin = "

The Latin text onsite is not the one on which this translation is based. It reads
"; +var DivergenceFromGreek = "

The Latin text onsite is not the one on which this translation is based. It reads
"; +var DivergenceInEnglish = "

The English translation onsite is not based on this text. It reads
"; + +var CloseF = ""; +var USMAPromptWidth = 205; +var USNAPromptWidth = 205; +var USCGAPromptWidth = 205; +var PDFPromptWidth = 216; +var DiaryErr = "

The diary actually reads
"; +var DiaryOm = "

The diary omits
"; + +var Ru2 = "

Ссылка выключен сайт:
страница открывается в другом окне
"; + + + +// THAYER'S ARRAY. (add 285 for the linenum of the corresponding text) +var ThisPhoto = 3; +var Photo = 4; +var OnPage = 5; +var Note = 6; +var MyNote = 7; +var BackRef = 8; +var Glossary = 9; + +var Ca0 = 420; var CaWidth0 = 210; +var Ca1 = 421; var CaWidth1 = 210; +var Ca2 = 422; var CaWidth2 = 140; +var CaThisPhoto = 423; var CaThisPhotoWidth = 180; +var CaPhoto = 424; +var CaOnPage = 425; var CaOnPageWidth = 150; +var CaNote = 426; +var CaMyNote = 427; +var CaBackRef = 428; +var CaGlossary = 429; + +var Fr0 = 10; var FrWidth0 = 180; +var Fr1 = 11; var FrWidth1 = 210; +var Fr2 = 12; +var FrThisPhoto = 13; +var FrPhoto = 14; +var FrOnPage = 15; +var FrNote = 16; +var FrMyNote = 17; +var FrBackRef = 18; +var FrGlossary = 19; + +var Ge0 = 20; +var Ge1 = 21; +var Ge2 = 22; +var GeThisPhoto = 23; +var GePhoto = 24; +var GeOnPage = 25; +var GeNote = 26; +var GeMyNote = 27; +var GeBackRef = 28; +var GeGlossary = 29; + +var It0 = 30; var ItWidth0 = 210; +var It1 = 31; var ItWidth1 = 210; +var It2 = 32; var ItWidth2 = 210; +var ItThisPhoto = 33; var ItThisPhotoWidth = 180; +var ItPhoto = 34; +var ItOnPage = 35; var ItOnPageWidth = 150; +var ItNote = 36; +var ItMyNote = 37; +var ItBackRef = 38; +var ItGlossary = 39; + +var La0 = 40; +var La1 = 41; +var La2 = 42; +var LaThisPhoto = 43; +var LaPhoto = 44; +var LaOnPage = 45; +var LaNote = 46; +var LaMyNote = 47; +var LaGlossary = 49; + +var Sp0 = 50; var SpWidth0 = 210; +var Sp1 = 51; var SpWidth1 = 210; +var Sp2 = 52; var SpWidth2 = 140; +var SpThisPhoto = 53; var SpThisPhotoWidth = 180; +var SpPhoto = 54; +var SpOnPage = 55; var SpOnPageWidth = 150; +var SpNote = 56; +var SpMyNote = 57; +var SpBackRef = 58; +var SpGlossary = 59; + +var Pt0 = 90; var PtWidth0 = 210; +var Pt1 = 91; var PtWidth1 = 210; +var Pt2 = 92; var PtWidth2 = 140; +var PtThisPhoto = 93; var PtThisPhotoWidth = 180; +var PtPhoto = 94; +var PtOnPage = 95; var PtOnPageWidth = 190; +var PtNote = 96; +var PtMyNote = 97; +var PtBackRef = 98; +var PtGlossary = 99; + +var Smith0 = 60; var SmithWidth0 = 200; +var FrSmith0 = 61; +var ItSmith0 = 62; +var SpSmith0 = 64; +var Smith1 = 65; var SmithWidth1 = 200; +var FrSmith1 = 66; +var ItSmith1 = 67; +var SpSmith1 = 69; + +var Glossary0 = 70; +var FrGlossary0 = 71; +var ItGlossary0 = 72; + +var Glossary2 = 75; +var FrGlossary2 = 76; +var ItGlossary2 = 77; + +var SmithSub0 = 80; +var FrSmithSub0 = 81; +var ItSmithSub0 = 82; +var SpSmithSub0 = 84; + +var SmithSub1 = 85; var SmithSubWidth1 = 190; +var FrSmithSub1 = 86; +var ItSmithSub1 = 87; +var SpSmithSub1 = 89; + +var XMarksTheSpot = 790; +var FrXMarksTheSpot = 791; +var ItXMarksTheSpot = 792; + +var ActiveAreas = 795; +var FrActiveAreas = 796; +var ItActiveAreas = 797; + +var USMA = 798; +var USNA = 799; +var USCGA = 800; + +var SmithHome = 100; +var FrSmithHome = 101; +var ItSmithHome = 102; +var SpSmithHome = 104; +var TextOnPage = 106; +var SmithHome0 = 107; +var DarembergHome = 108; +var DarembergHome0 = 109; + +var Platner0 = 110; +var FrPlatner0 = 111; +var ItPlatner0 = 112; +var LaPlatner0 = 113; +var SpPlatner0 = 114; +var Platner1 = 115; +var FrPlatner1 = 116; +var ItPlatner1 = 117; +var LaPlatner1 = 118; +var SpPlatner1 = 119; + +var PlatnerPhoto0 = 120; +var FrPlatnerPhoto0 = 121; +var ItPlatnerPhoto0 = 122; +var LaPlatnerPhoto0 = 123; +var SpPlatnerPhoto0 = 124; +var PlatnerPhoto1 = 125; +var FrPlatnerPhoto1 = 126; +var ItPlatnerPhoto1 = 127; +var LaPlatnerPhoto1 = 128; +var SpPlatnerPhoto1 = 129; + +var PlatnerSub0 = 130; +var FrPlatnerSub0 = 131; +var ItPlatnerSub0 = 132; +var SpPlatnerSub0 = 134; +var PlatnerSub1 = 135; +var FrPlatnerSub1 = 136; +var ItPlatnerSub1 = 137; +var SpPlatnerSub1 = 139; + +var CompleteWork0 = 140; +var FrCompleteWork0 = 141; +var ItCompleteWork0 = 142; +var SpCompleteWork0 = 144; +var CompleteWork1 = 145; +var FrCompleteWork1 = 146; +var ItCompleteWork1 = 147; +var SpCompleteWork1 = 149; + +var Armellini0 = 150; +var FrArmellini0 = 151; +var ItArmellini0 = 152; +var SpArmellini0 = 154; +var Armellini1 = 155; +var FrArmellini1 = 156; +var ItArmellini1 = 157; +var SpArmellini1 = 159; + +var Huelsen0 = 160; +var FrHuelsen0 = 161; +var ItHuelsen0 = 162; +var SpHuelsen0 = 164; +var Huelsen1 = 165; +var FrHuelsen1 = 166; +var ItHuelsen1 = 167; +var SpHuelsen1 = 169; + +var RomeChurch0 = 170; +var FrRomeChurch0 = 171; +var ItRomeChurch0 = 172; +var SpRomeChurch0 = 174; +var RomeChurch1 = 175; +var FrRomeChurch1 = 176; +var ItRomeChurch1 = 177; +var SpRomeChurch1 = 179; + +var Daremberg0 = 180; +var FrDaremberg0 = 181; +var ItDaremberg0 = 182; +var SpDaremberg0 = 184; +var Daremberg1 = 185; +var FrDaremberg1 = 186; +var ItDaremberg1 = 187; +var SpDaremberg1 = 189; + +var Page0 = 190; +var FrPage0 = 191; +var ItPage0 = 192; +var LaPage0 = 193; +var SpPage0 = 194; +var Page1 = 195; +var FrPage1 = 196; +var ItPage1 = 197; +var LaPage1 = 198; +var SpPage1 = 199; + +var Pages0 = 200; +var FrPages0 = 201; +var ItPages0 = 202; +var LaPages0 = 203; +var SpPages0 = 204; +var Pages1 = 205; +var FrPages1 = 206; +var ItPages1 = 207; +var LaPages1 = 208; +var SpPages1 = 209; + +var ChurchPage0 = 210; +var FrChurchPage0 = 211; +var ItChurchPage0 = 212; +var LaChurchPage0 = 213; +var SpChurchPage0 = 214; +var ChurchPage1 = 215; +var FrChurchPage1 = 216; +var ItChurchPage1 = 217; +var LaChurchPage1 = 218; +var SpChurchPage1 = 219; + +var ChurchPages0 = 220; +var FrChurchPages0 = 221; +var ItChurchPages0 = 222; +var LaChurchPages0 = 223; +var SpChurchPages0 = 224; +var ChurchPages1 = 225; +var FrChurchPages1 = 226; +var ItChurchPages1 = 227; +var LaChurchPages1 = 228; +var SpChurchPages1 = 229; + +var Town0 = 230; +var FrTown0 = 231; +var ItTown0 = 232; +var LaTown0 = 233; +var SpTown0 = 234; +var Town1 = 235; +var FrTown1 = 236; +var ItTown1 = 237; +var LaTown1 = 238; +var SpTown1 = 239; + +var EPlusL = 240; +var FrEPlusL = 241; +var ItEPlusL = 242; +var SpEPlusL = 244; +var EPlusL2 = 245; +var FrEPlusL2 = 246; +var ItEPlusL2 = 247; +var LaEPlusL2 = 248; +var SpEPlusL2 = 249; + +var LPlusE = 250; +var FrLPlusE = 251; +var ItLPlusE = 252; +var SpLPlusE = 254; +var LPlusE2 = 255; +var FrLPlusE2 = 256; +var ItLPlusE2 = 257; +var SpLPlusE2 = 259; + +var Pliny = 260; +var FrPliny = 261; +var ItPliny = 262; +var SpPliny = 264; + +var Ptolemy = 265; +var FrPtolemy = 266; +var ItPtolemy = 267; +var LaPtolemy = 268; + +var Ammian = 270; +var FrAmmian = 271; +var ItAmmian = 272; + +var Appian = 275; +var FrAppian = 276; +var ItAppian = 277; + +var Dio = 280; +var FrDio = 281; +var ItDio = 282; +var SpDio = 284; + +var Plutarch = 285; var PlutarchWidth = 230; +var FrPlutarch = 286; +var ItPlutarch = 287; +var SpPlutarch = 289; + +var Polybius = 290; +var FrPolybius = 291; +var ItPolybius = 292; +var LaPolybius = 293; + +var Strabo = 295; +var FrStrabo = 296; +var ItStrabo = 297; +var LaStrabo = 298; + +var Chiesa0 = 300; +var Chiesa1 = 301; +var Artista0 = 302; +var Artista = 303; +var Catalogo = 304; +var Pianta = 305; +var QuadroPianta = 306; +var ChiesaNelTesto = 307; +var ETitiArtista0 = 308; +var ETitiArtista = 309; + +var MySite0 = 310; +var FrMySite0 = 311; +var ItMySite0 = 312; +var SpMySite0 = 314; +var MySite1 = 315; +var FrMySite1 = 316; +var ItMySite1 = 317; +var SpMySite1 = 319; + +var MyMidSite0 = 320; +var FrMyMidSite0 = 321; +var ItMyMidSite0 = 322; +var SpMyMidSite0 = 324; +var MyMidSite1 = 325; +var FrMyMidSite1 = 326; +var ItMyMidSite1 = 327; +var SpMyMidSite1 = 329; + +var MyBigSite0 = 330; +var FrMyBigSite0 = 331; +var ItMyBigSite0 = 332; +var SpMyBigSite0 = 334; +var MyBigSite1 = 335; +var FrMyBigSite1 = 336; +var ItMyBigSite1 = 337; +var SpMyBigSite1 = 339; + +var MyBook0 = 340; +var FrMyBook0 = 341; +var ItMyBook0 = 342; +var LaMyBook0 = 343; +var SpMyBook0 = 344; +var MyBook1 = 345; +var FrMyBook1 = 346; +var ItMyBook1 = 347; +var LaMyBook1 = 348; +var SpMyBook1 = 349; + +var TheirSite = 350; +var FrTheirSite = 351; +var ItTheirSite = 352; +var SpTheirSite = 357; + +var LatinText = 360; +var FrLatinText = 361; +var ItLatinText = 362; +var SpLatinText = 367; + +var LatinRef1 = 370; +var FrLatinRef1 = 371; +var ItLatinRef1 = 372; +var SpLatinRef1 = 374; +var LatinTrans1 = 375; +var FrLatinTrans1 = 376; +var ItLatinTrans1 = 377; +var SpLatinTrans1 = 379; + +var LatinRef2 = 380; +var FrLatinRef2 = 381; +var ItLatinRef2 = 382; +var SpLatinRef2 = 384; +var LatinRef2PlusTranslation = 385; //KEEP. Use for texts with translations into languages other than English +var FrLatinRef2PlusTranslation = 386; +var ItLatinRef2PlusTranslation = 387; +var SpLatinRef2PlusTranslation = 389; + +var LatinPlus1 = 390; +var FrLatinPlus1 = 391; +var ItLatinPlus1 = 392; +var SpLatinPlus1 = 394; +var LatinPlus2 = 395; +var FrLatinPlus2 = 396; +var ItLatinPlus2 = 397; +var SpLatinPlus2 = 399; + +var Original1 = 400; +var FrOriginal1 = 401; +var ItOriginal1 = 402; +var LaOriginal1 = 403; +var SpOriginal1 = 404; +var Original2 = 405; +var FrOriginal2 = 406; +var ItOriginal2 = 407; +var LaOriginal2 = 408; +var SpOriginal2 = 409; + +var Translation1 = 410; +var FrTranslation1 = 411; +var ItTranslation1 = 412; +var SpTranslation1 = 414; +var Translation2 = 415; +var FrTranslation2 = 416; +var ItTranslation2 = 417; +var SpTranslation2 = 419; + +var PDF = 430; +var FrPDF = 431; +var ItPDF = 432; +var SpPDF = 434; + +var JSTOR = 435; +var FrJSTOR = 436; +var ItJSTOR = 437; +var SpJSTOR = 438; + +var BadCoding = 440; +var FrBadCoding = 441; +var ItBadCoding = 442; +var SpBadCoding = 444; +var Loud = 445; +var FrLoud = 446; +var ItLoud = 447; +var SpLoud = 448; + +var Solution = 450; +var FrSolution = 451; +var ItSolution = 452; +var SpSolution = 454; + +var Diodorus = 460; +var FrDiodorus = 461; +var ItDiodorus = 462; +var SpDiodorus = 464; + +var Herodotus = 465; +var FrHerodotus = 466; +var ItHerodotus = 467; +var SpHerodotus = 469; + +var Pausanias = 470; +var FrPausanias = 471; +var ItPausanias = 472; +var SpPausanias = 474; + +var Thucydides = 475; +var FrThucydides = 476; +var ItThucydides = 477; +var SpThucydides = 479; + +var FrontinusL = 480; +var FrFrontinusL = 481; +var ItFrontinusL = 482; +var SpFrontinusL = 484; + +var FrontinusE = 490; +var FrFrontinusF = 491; + +var Dionysius = 495; +var FrDionysius = 496; +var ItDionysius = 497; +var LaDionysius = 498; +var SpDionysius = 499; + +var Glossary0 = 500; +var FrGlossary0 = 501; +var ItGlossary0 = 502; +var SpGlossary0 = 507; + +var LatinOriginal = 510; +var FrLatinOriginal = 511; +var ItLatinOriginal = 512; +var SpLatinOriginal = 513; + +var GreekOriginal = 515; +var FrGreekOriginal = 516; +var ItGreekOriginal = 517; +var SpGreekOriginal = 518; + +var Home = 520; +var FrHome = 521; +var ItHome = 522; +var LaHome = 524; +var SpHome = 527; +var Home1 = 530; +var FrHome1 = 531; +var ItHome1 = 532; +var LaHome1 = 533; +var NeHome1 = 534; +var PtHome1 = 535; +var SpHome1 = 536; + +var Mail = 540; +var FrMail = 541; +var ItMail = 542; +var LaMail = 543; +var SpMail = 544; + +var LetLoad = 550; +var FrLetLoad = 551; +var ItLetLoad = 552; +var LaLetLoad = 553; +var SpLetLoad = 554; + +var AuNote = 560; +var ItAuNote = 562; + +var EdNote = 565; +var FrEdNote = 566; +var ItEdNote = 567; var ItEdNoteWidth = 230; + +var CritNote = 570; +var ItCritNote = 572; + +var ItalianOriginal = 575; +var FrItalianOriginal = 576; +var ItItalianOriginal = 577; +var SpItalianOriginal = 578; + +var Up = 580; +var FrUp = 581; +var ItUp = 582; +var LaUp = 583; +var SpUp = 584; +var Up1 = 590; +var FrUp1 = 591; +var ItUp1 = 592; +var LaUp1 = 593; +var PtUp1 = 594; +var SpUp1 = 595; + +var SallustE = 600; +var FrSallustE = 601; +var ItSallustE = 602; + +var SallustL = 605; +var FrSallustL = 606; +var ItSallustL = 607; + +var Tacitus = 610; +var FrTacitusE = 611; +var ItTacitusE = 612; +var SpTacitusE = 614; + +var TacitusL = 615; +var FrTacitusL = 616; +var ItTacitusL = 617; +var SpTacitusL = 619; + +var Bible = 620; +var FrBible = 621; +var ItBible = 622; +var PtBible = 624; +// var SpBible = 624; + +var CullumNo = 625; +var CullumRank = 626; + +var Ne0 = 630; var NeWidth0 = 190; +var Ne1 = 631; var NeWidth1 = 210; +var Ne2 = 632; var NeWidth2 = 140; +var NeThisPhoto = 633; var NeThisPhotoWidth = 180; +var NePhoto = 634; +var NeOnPage = 635; var NeOnPageWidth = 150; +var NeNote = 636; +var NeMyNote = 637; +var NeBackRef = 638; +var NeGlossary = 639; +var NeUp = 640; +var NeUp1 = 641; var NeUpWidth1 = 210; +var NeHome = 525; var NeHomeWidth = 240; + +var Aelian = 650; +var FrAelian = 651; +var ItAelian = 652; +var SpAelian = 654; + +var GreekRef1 = 670; +var FrGreekRef1 = 671; +var ItGreekRef1 = 672; +var SpGreekRef1 = 674; +var GreekTrans1 = 675; var GreekTransWidth1 = 240; +var FrGreekTrans1 = 676; +var ItGreekTrans1 = 677; +var SpGreekTrans1 = 679; + +var GreekRef2 = 680; +var FrGreekRef2 = 681; +var ItGreekRef2 = 682; +var SpGreekRef2 = 684; +var GreekRef2PlusTranslation = 685; //KEEP. Use for texts with translations into languages other than English +var FrGreekRef2PlusTranslation = 686; +var ItGreekRef2PlusTranslation = 687; +var SpGreekRef2PlusTranslation = 689; + +var EPlusG = 690; var EPlusGWidth = 240; +var FrEPlusG = 691; +var ItEPlusG = 692; +var LaEPlusG = 693; +var SpEPlusG = 694; +var EPlusG2 = 695; +var FrEPlusG2 = 696; +var ItEPlusG2 = 697; +var LaEPlusG2 = 698; +var SpEPlusG2 = 699; + +var GPlusE = 700; +var FrGPlusE = 701; +var ItGPlusE = 702; +var LaGPlusE = 703; +var SpGPlusE = 704; +var GPlusE2 = 705; +var FrGPlusE2 = 706; +var ItGPlusE2 = 707; +var LaGPlusE2 = 708; +var SpGPlusE2 = 709; + +var PlutarchPlusG = 710; /* var PlutarchWidth = 230; */ +var FrPlutarchPlusG = 286; +var ItPlutarchPlusG = 287; +var SpPlutarchPlusG = 289; + +var ResGestae = 715; + +var toLivius = 720; +var LenderingNote = 721; + +var EnLPlusF = 730; +var LPlusF = 731; +var ItLPlusF = 732; +var LaLPlusF = 733; +var SpLPlusF = 734; +var LPlusF2 = 735; +var FrLPlusF2 = 736; +var ItLPlusF2 = 737; +var LaLPlusF2 = 738; +var SpLPlusF2 = 739; + + +// Ссылка выключен сайт, страница открывается в другом окне. + + +// Display state variables +var o3_x = 0; +var o3_y = 0; +var o3_allow = 0; +var o3_showingsticky = 0; +var o3_removecounter = 0; + +// Our layer +var over = null; + + +// Decide browser version +var ns4 = (document.layers)? true:false; +var ns6 = (document.getElementById)? true:false; +var ie4 = (document.all)? true:false; +var ie5 = false; + +// Microsoft Stupidity Check(tm). +if (ie4) { + if (navigator.userAgent.indexOf('MSIE 5')>0) { + ie5 = true; + } + if (ns6) { + ns6 = false; + } +} + + +// Capture events, alt. diffuses the overlib function. +if ( (ns4) || (ie4) || (ns6)) { + document.onmousemove = mouseMove + if (ns4) document.captureEvents(Event.MOUSEMOVE) +} else { + Ebox = no_box; + nd = no_box; + ver3fix = true; +} + + +// Fake function for 3.0 users. +function no_box() { + return ver3fix; +} + + + +//////////////////////////////////// +// PUBLIC FUNCTIONS +//////////////////////////////////// + + +// Ebox(arg0, ..., argN) +// Loads parameters into global runtime variables. +function Ebox() { + + // Load defaults to runtime. + o3_text = ol_text; + o3_cap = ol_cap; + o3_sticky = ol_sticky; + o3_background = ol_background; + o3_close = ol_close; + o3_hpos = ol_hpos; + o3_offsetx = ol_offsetx; + o3_offsety = ol_offsety; + o3_fgcolor = ol_fgcolor; + o3_bgcolor = ol_bgcolor; + o3_textcolor = ol_textcolor; + o3_capcolor = ol_capcolor; + o3_closecolor = ol_closecolor; + o3_width = ol_width; + o3_border = ol_border; + o3_status = ol_status; + o3_autostatus = ol_autostatus; + o3_height = ol_height; + o3_snapx = ol_snapx; + o3_snapy = ol_snapy; + o3_fixx = ol_fixx; + o3_fixy = ol_fixy; + o3_fgbackground = ol_fgbackground; + o3_bgbackground = ol_bgbackground; + o3_padxl = ol_padxl; + o3_padxr = ol_padxr; + o3_padyt = ol_padyt; + o3_padyb = ol_padyb; + o3_fullhtml = ol_fullhtml; + o3_vpos = ol_vpos; + o3_aboveheight = ol_aboveheight; + o3_capicon = ol_capicon; + o3_textfont = ol_textfont; + o3_captionfont = ol_captionfont; + o3_closefont = ol_closefont; + o3_textsize = ol_textsize; + o3_captionsize = ol_captionsize; + o3_closesize = ol_closesize; + o3_timeout = ol_timeout; + o3_function = ol_function; + o3_delay = ol_delay; + o3_hauto = ol_hauto; + o3_vauto = ol_vauto; + + + + // Special for frame support, over must be reset... + if ( (ns4) || (ie4) || (ns6) ) { + o3_frame = ol_frame; + if (ns4) over = o3_frame.document.overDiv + if (ie4) over = o3_frame.overDiv.style + if (ns6) over = o3_frame.document.getElementById("overDiv"); + } + + + // What the next argument is expected to be. + var parsemode = -1; + + var ar = arguments; + + for (i = 0; i < ar.length; i++) { + + if (parsemode == 0) { + // Arg is command + if (ar[i] == INARRAY) { parsemode = INARRAY; } + if (ar[i] == CAPARRAY) { parsemode = CAPARRAY; } + if (ar[i] == STICKY) { parsemode = opt_STICKY(ar[i]); } + if (ar[i] == BACKGROUND) { parsemode = BACKGROUND; } + if (ar[i] == NOCLOSE) { parsemode = opt_NOCLOSE(ar[i]); } + if (ar[i] == CAPTION) { parsemode = CAPTION; } + if (ar[i] == LEFT) { parsemode = opt_HPOS(ar[i]); } + if (ar[i] == RIGHT) { parsemode = opt_HPOS(ar[i]); } + if (ar[i] == CENTER) { parsemode = opt_HPOS(ar[i]); } + if (ar[i] == OFFSETX) { parsemode = OFFSETX; } + if (ar[i] == OFFSETY) { parsemode = OFFSETY; } + if (ar[i] == FGCOLOR) { parsemode = FGCOLOR; } + if (ar[i] == BGCOLOR) { parsemode = BGCOLOR; } + if (ar[i] == TEXTCOLOR) { parsemode = TEXTCOLOR; } + if (ar[i] == CAPCOLOR) { parsemode = CAPCOLOR; } + if (ar[i] == CLOSECOLOR) { parsemode = CLOSECOLOR; } + if (ar[i] == WIDTH) { parsemode = WIDTH; } + if (ar[i] == BORDER) { parsemode = BORDER; } + if (ar[i] == STATUS) { parsemode = STATUS; } + if (ar[i] == AUTOSTATUS) { parsemode = opt_AUTOSTATUS(ar[i]); } + if (ar[i] == AUTOSTATUSCAP) { parsemode = opt_AUTOSTATUSCAP(ar[i]); } + if (ar[i] == HEIGHT) { parsemode = HEIGHT; } + if (ar[i] == CLOSETEXT) { parsemode = CLOSETEXT; } + if (ar[i] == SNAPX) { parsemode = SNAPX; } + if (ar[i] == SNAPY) { parsemode = SNAPY; } + if (ar[i] == FIXX) { parsemode = FIXX; } + if (ar[i] == FIXY) { parsemode = FIXY; } + if (ar[i] == FGBACKGROUND) { parsemode = FGBACKGROUND; } + if (ar[i] == BGBACKGROUND) { parsemode = BGBACKGROUND; } + if (ar[i] == PADX) { parsemode = PADX; } + if (ar[i] == PADY) { parsemode = PADY; } + if (ar[i] == FULLHTML) { parsemode = opt_FULLHTML(ar[i]); } + if (ar[i] == ABOVE) { parsemode = opt_VPOS(ar[i]); } + if (ar[i] == BELOW) { parsemode = opt_VPOS(ar[i]); } + if (ar[i] == CAPICON) { parsemode = CAPICON; } + if (ar[i] == TEXTFONT) { parsemode = TEXTFONT; } + if (ar[i] == CAPTIONFONT) { parsemode = CAPTIONFONT; } + if (ar[i] == CLOSEFONT) { parsemode = CLOSEFONT; } + if (ar[i] == TEXTSIZE) { parsemode = TEXTSIZE; } + if (ar[i] == CAPTIONSIZE) { parsemode = CAPTIONSIZE; } + if (ar[i] == CLOSESIZE) { parsemode = CLOSESIZE; } + if (ar[i] == FRAME) { parsemode = FRAME; } + if (ar[i] == TIMEOUT) { parsemode = TIMEOUT; } + if (ar[i] == FUNCTION) { parsemode = FUNCTION; } + if (ar[i] == DELAY) { parsemode = DELAY; } + if (ar[i] == HAUTO) { parsemode = opt_HAUTO(ar[i]); } + if (ar[i] == VAUTO) { parsemode = opt_VAUTO(ar[i]); } + + + } else { + if (parsemode < 0) { + // Arg is maintext, unless INARRAY + if (ar[i] == INARRAY) { + parsemode = INARRAY; + } else { + o3_text = ar[i]; + parsemode = 0; + } + } else { + // Arg is option for command + if (parsemode == INARRAY) { parsemode = opt_INARRAY(ar[i]); } + if (parsemode == CAPARRAY) { parsemode = opt_CAPARRAY(ar[i]); } + if (parsemode == BACKGROUND) { parsemode = opt_BACKGROUND(ar[i]); } + if (parsemode == CAPTION) { parsemode = opt_CAPTION(ar[i]); } + if (parsemode == OFFSETX) { parsemode = opt_OFFSETX(ar[i]); } + if (parsemode == OFFSETY) { parsemode = opt_OFFSETY(ar[i]); } + if (parsemode == FGCOLOR) { parsemode = opt_FGCOLOR(ar[i]); } + if (parsemode == BGCOLOR) { parsemode = opt_BGCOLOR(ar[i]); } + if (parsemode == TEXTCOLOR) { parsemode = opt_TEXTCOLOR(ar[i]); } + if (parsemode == CAPCOLOR) { parsemode = opt_CAPCOLOR(ar[i]); } + if (parsemode == CLOSECOLOR) { parsemode = opt_CLOSECOLOR(ar[i]); } + if (parsemode == WIDTH) { parsemode = opt_WIDTH(ar[i]); } + if (parsemode == BORDER) { parsemode = opt_BORDER(ar[i]); } + if (parsemode == STATUS) { parsemode = opt_STATUS(ar[i]); } + if (parsemode == HEIGHT) { parsemode = opt_HEIGHT(ar[i]); } + if (parsemode == CLOSETEXT) { parsemode = opt_CLOSETEXT(ar[i]); } + if (parsemode == SNAPX) { parsemode = opt_SNAPX(ar[i]); } + if (parsemode == SNAPY) { parsemode = opt_SNAPY(ar[i]); } + if (parsemode == FIXX) { parsemode = opt_FIXX(ar[i]); } + if (parsemode == FIXY) { parsemode = opt_FIXY(ar[i]); } + if (parsemode == FGBACKGROUND) { parsemode = opt_FGBACKGROUND(ar[i]); } + if (parsemode == BGBACKGROUND) { parsemode = opt_BGBACKGROUND(ar[i]); } + if (parsemode == PADX2) { parsemode = opt_PADX2(ar[i]); } // must be before PADX + if (parsemode == PADY2) { parsemode = opt_PADY2(ar[i]); } // must be before PADY + if (parsemode == PADX) { parsemode = opt_PADX(ar[i]); } + if (parsemode == PADY) { parsemode = opt_PADY(ar[i]); } + if (parsemode == CAPICON) { parsemode = opt_CAPICON(ar[i]); } + if (parsemode == TEXTFONT) { parsemode = opt_TEXTFONT(ar[i]); } + if (parsemode == CAPTIONFONT) { parsemode = opt_CAPTIONFONT(ar[i]); } + if (parsemode == CLOSEFONT) { parsemode = opt_CLOSEFONT(ar[i]); } + if (parsemode == TEXTSIZE) { parsemode = opt_TEXTSIZE(ar[i]); } + if (parsemode == CAPTIONSIZE) { parsemode = opt_CAPTIONSIZE(ar[i]); } + if (parsemode == CLOSESIZE) { parsemode = opt_CLOSESIZE(ar[i]); } + if (parsemode == FRAME) { parsemode = opt_FRAME(ar[i]); } + if (parsemode == TIMEOUT) { parsemode = opt_TIMEOUT(ar[i]); } + if (parsemode == FUNCTION) { parsemode = opt_FUNCTION(ar[i]); } + if (parsemode == DELAY) { parsemode = opt_DELAY(ar[i]); } + + } + } + } + + if (o3_delay == 0) { + return box333(); + } else { + o3_delayid = setTimeout("box333()", o3_delay); + + if (o3_sticky) { + return false; + } else { + return true; + } + } +} + + + +// Clears popups if appropriate +function nd() { + if ( o3_removecounter >= 1 ) { o3_showingsticky = 0 }; + if ( (ns4) || (ie4) || (ns6) ) { + if ( o3_showingsticky == 0 ) { + o3_allowmove = 0; + if (over != null) hideObject(over); + } else { + o3_removecounter++; + } + } + + return true; +} + + + + + + + +//////////////////////////////////// +// OVERLIB 3.33 FUNCTION +//////////////////////////////////// + + +// This function decides what it is we want to display and how we want it done. +function box333() { + + // Make layer content + var layerhtml; + + if (o3_background != "" || o3_fullhtml) { + // Use background instead of box. + layerhtml = ol_content_background(o3_text, o3_background, o3_fullhtml); + } else { + // They want a popup box. + + // Prepare popup background + if (o3_fgbackground != "") { + o3_fgbackground = "BACKGROUND=\""+o3_fgbackground+"\""; + } + if (o3_bgbackground != "") { + o3_bgbackground = "BACKGROUND=\""+o3_bgbackground+"\""; + } + + // Prepare popup colors + if (o3_fgcolor != "") { + o3_fgcolor = "BGCOLOR=\""+o3_fgcolor+"\""; + } + if (o3_bgcolor != "") { + o3_bgcolor = "BGCOLOR=\""+o3_bgcolor+"\""; + } + + // Prepare popup height + if (o3_height > 0) { + o3_height = "HEIGHT=" + o3_height; + } else { + o3_height = ""; + } + + // Decide which kinda box. + if (o3_cap == "") { + // Plain + layerhtml = ol_content_simple(o3_text); + } else { + // With caption + if (o3_sticky) { + // Show close text + layerhtml = ol_content_caption(o3_text, o3_cap, o3_close); + } else { + // No close text + layerhtml = ol_content_caption(o3_text, o3_cap, ""); + } + } + } + + // We want it to stick! + if (o3_sticky) { + o3_showingsticky = 1; + o3_removecounter = 0; + } + + // Write layer + layerWrite(layerhtml); + + // Prepare status bar + if (o3_autostatus > 0) { + o3_status = o3_text; + if (o3_autostatus > 1) { + o3_status = o3_cap; + } + } + + // When placing the layer the first time, even stickies may be moved. + o3_allowmove = 0; + + // Initiate a timer for timeout + if (o3_timeout > 0) { + if (o3_timerid > 0) clearTimeout(o3_timerid); + o3_timerid = setTimeout("cClick()", o3_timeout); + } + + // Show layer + disp(o3_status); + + // Stickies should stay where they are. + if (o3_sticky) { + o3_allowmove = 0; + return false; + } else { + return true; + } +} + + + +//////////////////////////////////// +// LAYER GENERATION FUNCTIONS +//////////////////////////////////// + +// Makes simple table without caption +function ol_content_simple(text) { + txt = "
"+text+"
"; + set_background(""); + return txt; +} + +// Makes table with caption and optional close link +function ol_content_caption(text, title, close) { + closing = ""; + if (close != "") { + closing = ""+close+""; + } + if (o3_capicon != "") { + o3_capicon = " "; + } + txt = "
"+closing+"
"+o3_capicon+title+"
"+text+"
"; + set_background(""); + return txt; +} + +// Sets the background picture, padding and lots more :) +function ol_content_background(text, picture, hasfullhtml) { + if (hasfullhtml) { + txt = text; + } else { + txt = "
"+text+"
"; + } + set_background(picture); + return txt; +} + +// Loads a picture into the div. +function set_background(pic) { + if (pic == "") { + if (ie4) over.backgroundImage = "none"; + if (ns6) over.style.backgroundImage = "none"; + } else { + if (ns4) { + over.background.src = pic; + } else if (ie4) { + over.backgroundImage = "url("+pic+")"; + } else if (ns6) { + over.style.backgroundImage = "url("+pic+")"; + } + } +} + + + +//////////////////////////////////// +// HANDLING FUNCTIONS +//////////////////////////////////// + + +// Displays the popup +function disp(statustext) { + if ( (ns4) || (ie4) || (ns6) ) { + if (o3_allowmove == 0) { + placeLayer(); + showObject(over); + o3_allowmove = 1; + } + } + + if (statustext != "") { + self.status = statustext; + } +} + +// Decides where we want the popup. +function placeLayer() { + var placeX, placeY; + + // HORIZONTAL PLACEMENT + if (o3_fixx > -1) { + // Fixed position + placeX = o3_fixx; + } else { + winoffset = (ie4) ? o3_frame.document.body.scrollLeft : o3_frame.pageXOffset; + if (ie4) iwidth = o3_frame.document.body.clientWidth; + if (ns4) iwidth = o3_frame.innerWidth; // was screwed in mozilla, fixed now? + if (ns6) iwidth = o3_frame.outerWidth; + + // If HAUTO, decide what to use. + if (o3_hauto == 1) { + if ( (o3_x - winoffset) > ((eval(iwidth)) / 2)) { + o3_hpos = LEFT; + } else { + o3_hpos = RIGHT; + } + } + + // From mouse + if (o3_hpos == CENTER) { // Center + placeX = o3_x+o3_offsetx-(o3_width/2); + } + if (o3_hpos == RIGHT) { // Right + placeX = o3_x+o3_offsetx; + if ( (eval(placeX) + eval(o3_width)) > (winoffset + iwidth) ) { + placeX = iwidth + winoffset - o3_width; + if (placeX < 0) placeX = 0; + } + } + if (o3_hpos == LEFT) { // Left + placeX = o3_x-o3_offsetx-o3_width; + if (placeX < winoffset) placeX = winoffset; + } + + // Snapping! + if (o3_snapx > 1) { + var snapping = placeX % o3_snapx; + if (o3_hpos == LEFT) { + placeX = placeX - (o3_snapx + snapping); + } else { + // CENTER and RIGHT + placeX = placeX + (o3_snapx - snapping); + } + if (placeX < 0) placeX = 0; + } + } + + + + // VERTICAL PLACEMENT + if (o3_fixy > -1) { + // Fixed position + placeY = o3_fixy; + } else { + // If VAUTO, decide what to use. + if (o3_vauto == 1) { + if (ie4) iheight = o3_frame.document.body.clientHeight; + if (ns4) iheight = o3_frame.innerHeight; + if (ns6) iheight = o3_frame.outerHeight; + + iheight = (eval(iheight)) / 2; + if (o3_y > iheight) { + o3_vpos = ABOVE; + } else { + o3_vpos = BELOW; + } + } + + // From mouse + if (o3_aboveheight > 0 && o3_vpos == ABOVE) { + placeY = o3_y - (o3_aboveheight + o3_offsety); + } else { + // BELOW + placeY = o3_y + o3_offsety; + } + + // Snapping! + if (o3_snapy > 1) { + var snapping = placeY % o3_snapy; + + if (o3_aboveheight > 0 && o3_vpos == ABOVE) { + placeY = placeY - (o3_snapy + snapping); + } else { + placeY = placeY + (o3_snapy - snapping); + } + + if (placeY < 0) placeY = 0; + } + } + + + // Actually move the object. + repositionTo(over, placeX, placeY); +} + + +// Moves the layer +function mouseMove(e) { + if ( (ns4) || (ns6) ) {o3_x=e.pageX; o3_y=e.pageY;} + if (ie4) {o3_x=event.x; o3_y=event.y;} + if (ie5) {o3_x=event.x+o3_frame.document.body.scrollLeft; o3_y=event.y+o3_frame.document.body.scrollTop;} + + if (o3_allowmove == 1) { + placeLayer(); + } +} + +// The Close onMouseOver function for stickies +function cClick() { + hideObject(over); + o3_showingsticky = 0; +} + + +// Makes sure target frame has overLIB +function compatibleframe(frameid) { + if (ns4) { + if (typeof frameid.document.overDiv =='undefined') return false; + } else if (ie4) { + if (typeof frameid.document.all["overDiv"] =='undefined') return false; + } else if (ns6) { + if (frameid.document.getElementById('overDiv') == null) return false; + } + + return true; +} + + + +//////////////////////////////////// +// LAYER FUNCTIONS +//////////////////////////////////// + + +// Writes to a layer +function layerWrite(txt) { + txt += "\n"; + + if (ns4) { + var lyr = o3_frame.document.overDiv.document + + lyr.write(txt) + lyr.close() + } else if (ie4) { + o3_frame.document.all["overDiv"].innerHTML = txt + } else if (ns6) { + range = o3_frame.document.createRange(); + range.setStartBefore(over); + domfrag = range.createContextualFragment(txt); + while (over.hasChildNodes()) { + over.removeChild(over.lastChild); + } + over.appendChild(domfrag); + } +} + +// Make an object visible +function showObject(obj) { + if (ns4) obj.visibility = "show"; + else if (ie4) obj.visibility = "visible"; + else if (ns6) obj.style.visibility = "visible"; +} + +// Hides an object +function hideObject(obj) { + if (ns4) obj.visibility = "hide"; + else if (ie4) obj.visibility = "hidden"; + else if (ns6) obj.style.visibility = "hidden"; + if (o3_timerid > 0) clearTimeout(o3_timerid); + if (o3_delayid > 0) clearTimeout(o3_delayid); + o3_timerid = 0; + o3_delayid = 0; + self.status = ""; +} + +// Move a layer +function repositionTo(obj,xL,yL) { + if ( (ns4) || (ie4) ) { + obj.left = xL; + obj.top = yL; + } else if (ns6) { + obj.style.left = xL + "px"; + obj.style.top = yL+ "px"; + } +} + + + +//////////////////////////////////// +// PARSER FUNCTIONS +//////////////////////////////////// + + +// Sets text from array. +function opt_INARRAY(id) { + o3_text = ol_texts[id]; + return 0; +} + +// Sets caption from array. +function opt_CAPARRAY(id) { + o3_cap = ol_caps[id]; + return 0; +} + +// Sets stickiness. +function opt_STICKY(unused) { + o3_sticky = 1; + return 0; +} + +// Sets background picture. +function opt_BACKGROUND(file) { + o3_background = file; + return 0; +} + +// Sets use of close text. +function opt_NOCLOSE(unused) { + o3_close = ""; + return 0; +} + +// Sets caption. +function opt_CAPTION(text) { + o3_cap = text; + return 0; +} + +// Sets hpos, for LEFT, RIGHT and CENTER. +function opt_HPOS(pos) { + o3_hpos = pos; + return 0; +} + +// Sets the x offset +function opt_OFFSETX(offset) { + o3_offsetx = offset; + return 0; +} + +// Sets the y offset +function opt_OFFSETY(offset) { + o3_offsety = offset; + return 0; +} + + +// Sets the fg color +function opt_FGCOLOR(clr) { + o3_fgcolor = clr; + return 0; +} + +// Sets the bg color +function opt_BGCOLOR(clr) { + o3_bgcolor = clr; + return 0; +} + +// Sets the text color +function opt_TEXTCOLOR(clr) { + o3_textcolor = clr; + return 0; +} + +// Sets the caption color +function opt_CAPCOLOR(clr) { + o3_capcolor = clr; + return 0; +} + +// Sets the close color +function opt_CLOSECOLOR(clr) { + o3_closecolor = clr; + return 0; +} + +// Sets the popup width +function opt_WIDTH(pixels) { + o3_width = pixels; + return 0; +} + +// Sets the popup border width +function opt_BORDER(pixels) { + o3_border = pixels; + return 0; +} + +// Sets the status bar text +function opt_STATUS(text) { + o3_status = text; + return 0; +} + +// Sets that status bar text to the text +function opt_AUTOSTATUS(val) { + o3_autostatus = 1; + return 0; +} + +// Sets that status bar text to the caption +function opt_AUTOSTATUSCAP(val) { + o3_autostatus = 2; + return 0; +} + +// Sets the popup height +function opt_HEIGHT(pixels) { + o3_height = pixels; + o3_aboveheight = pixels; + return 0; +} + +// Sets the close text. +function opt_CLOSETEXT(text) { + o3_close = text; + return 0; +} + +// Sets horizontal snapping +function opt_SNAPX(pixels) { + o3_snapx = pixels; + return 0; +} + +// Sets vertical snapping +function opt_SNAPY(pixels) { + o3_snapy = pixels; + return 0; +} + +// Sets horizontal position +function opt_FIXX(pos) { + o3_fixx = pos; + return 0; +} + +// Sets vertical position +function opt_FIXY(pos) { + o3_fixy = pos; + return 0; +} + +// Sets the fg background +function opt_FGBACKGROUND(picture) { + o3_fgbackground = picture; + return 0; +} + +// Sets the bg background +function opt_BGBACKGROUND(picture) { + o3_bgbackground = picture; + return 0; +} + +// Sets the left x padding for background +function opt_PADX(pixels) { + o3_padxl = pixels; + return PADX2; +} + +// Sets the top y padding for background +function opt_PADY(pixels) { + o3_padyt = pixels; + return PADY2; +} + +// Sets the right x padding for background +function opt_PADX2(pixels) { + o3_padxr = pixels; + return 0; +} + +// Sets the bottom y padding for background +function opt_PADY2(pixels) { + o3_padyb = pixels; + return 0; +} + +// Sets that user provides full html. +function opt_FULLHTML(unused) { + o3_fullhtml = 1; + return 0; +} + +// Sets vpos, for ABOVE and BELOW +function opt_VPOS(pos) { + o3_vpos = pos; + return 0; +} + +// Sets the caption icon. +function opt_CAPICON(icon) { + o3_capicon = icon; + return 0; +} + +// Sets the text font +function opt_TEXTFONT(fontname) { + o3_textfont = fontname; + return 0; +} + +// Sets the caption font +function opt_CAPTIONFONT(fontname) { + o3_captionfont = fontname; + return 0; +} + +// Sets the close font +function opt_CLOSEFONT(fontname) { + o3_closefont = fontname; + return 0; +} + +// Sets the text font size +function opt_TEXTSIZE(fontsize) { + o3_textsize = fontsize; + return 0; +} + +// Sets the caption font size +function opt_CAPTIONSIZE(fontsize) { + o3_captionsize = fontsize; + return 0; +} + +// Sets the close font size +function opt_CLOSESIZE(fontsize) { + o3_closesize = fontsize; + return 0; +} + +// Defines which frame we should point to. +function opt_FRAME(frm) { + o3_frame = compatibleframe(frm) ? frm : ol_frame; + + if ( (ns4) || (ie4 || (ns6)) ) { + if (ns4) over = o3_frame.document.overDiv; + if (ie4) over = o3_frame.overDiv.style; + if (ns6) over = o3_frame.document.getElementById("overDiv"); + } + + return 0; +} + +// Sets the popup timeout (note: 1 sec = 1000) +function opt_TIMEOUT(maxtime) { + o3_timeout = maxtime; + return 0; +} + +// Calls an external function +function opt_FUNCTION(callme) { + o3_text = callme() + return 0; +} + +// Sets the popup delay (note: 1 sec = 1000) +function opt_DELAY(waittime) { + o3_delay = waittime; + return 0; +} + +// Sets the auto horizontal option +function opt_HAUTO(onoff) { + if (o3_hauto == 0) { + o3_hauto = 1; + } else { + o3_hauto = 0; + } + return 0; +} + +// Sets the auto vertical option +function opt_VAUTO(onoff) { + if (o3_vauto == 0) { + o3_vauto = 1; + } else { + o3_vauto = 0; + } + return 0; +} + + +//end (OF OVERLIB. OTHER ITEMS MAY FOLLOW) + + +// Opens a single window of parametered size, called "pannellino" +function makeWindow(W,H) { + if (W == null) { W = 567; } + if (H == null) { H = 378; } +W = W+16; +H = H+16; +window.open("","pannellino","width="+W+",height="+H+",innerwidth="+W+",innerheight="+H+",titlebar=no,title=no,resizable=no"); +} + +// Opens multiple windows of parametered size, each called "pannellinoN" (N = 1, 2, etc.) +// used in SMIGRA Coma +function makeWindow1(W,H,N) { + if (W == null) { W = 567; } + if (H == null) { H = 378; } +N = "pannellino"+N; +W = W+16; +H = H+16; +window.open("",N,"width="+W+",height="+H+",innerwidth="+W+",innerheight="+H+",titlebar=no,title=no,resizable=no"); +} + +// Opens a single window of parametered size, called "pannellone" +function makeWindow2(W,H) { + if (W == null) { W = 567; } + if (H == null) { H = 378; } +W = W+16; +H = H+16; +window.open("","pannellone","width="+W+",height="+H+",innerwidth="+W+",innerheight="+H+",titlebar=no,title=no,resizable=no"); +} + diff --git a/sources/book_4b_files/Italy.gif b/sources/book_4b_files/Italy.gif new file mode 100644 index 0000000..4e82f2c Binary files /dev/null and b/sources/book_4b_files/Italy.gif differ diff --git a/sources/book_4b_files/LIGHT.css b/sources/book_4b_files/LIGHT.css new file mode 100644 index 0000000..e46698f --- /dev/null +++ b/sources/book_4b_files/LIGHT.css @@ -0,0 +1,10 @@ +.running_title { + color: #000066 ! important; +} + .running_title .emend { + color: #0066cc ! important; + } + +.my_running_title { + color: #0066cc ! important; /* matches .emend */ +} diff --git a/sources/book_4b_files/breve.gif b/sources/book_4b_files/breve.gif new file mode 100644 index 0000000..133a104 Binary files /dev/null and b/sources/book_4b_files/breve.gif differ diff --git a/sources/book_4b_files/breve_or_macron.gif b/sources/book_4b_files/breve_or_macron.gif new file mode 100644 index 0000000..59b72e7 Binary files /dev/null and b/sources/book_4b_files/breve_or_macron.gif differ diff --git a/sources/book_4b_files/colors.css b/sources/book_4b_files/colors.css new file mode 100644 index 0000000..dc4a17a --- /dev/null +++ b/sources/book_4b_files/colors.css @@ -0,0 +1,2173 @@ +/* +KEEP IN THE FOLLOWING ORDER: + 1. GOOGLEMAP COLORS FIRST ▸ search for <1> + 2. PLAIN FONT COLORS NO BACKGROUNDS ▸ search for <2> + 3. PLAIN BACKGROUND COLORS ▸ search for <3> + 4. COMBINED FONT+BACKGROUND SCHEMES ▸ search for <4> +*/ + +/* +ideally: + plain color names should be for plain font colors + evocative names should be for combined schemes + */ + +/* +TABLES WITH ALTERNATING ROWS/BANDS: + Across all backgrounds and stylesheets, they are CLASS="Orvieto", + differently defined in the various stylesheets. + Model use: +E/Gazetteer/Places/America/United_States/_Topics/history/_Texts/DULOCT/Appendix*.html + */ + +/*<1>*/ + +SPAN.WalkColor { + color: #00bf40 ! important; +} + +SPAN.RideColor { + color: #cc6600 ! important; +} + +SPAN.ApproximateColor { + color: #ff99ff ! important; +} + +/*<2>*/ +/* +KEEP IN THE FOLLOWING ORDER: + 1. NAMED COLORS ▸ search for + 2. colorNNNNNN PLACEHOLDERS ▸ search for , within which: + 2a. WEBSAFE: xxyyzz with x, y, z = {0,3,6,9,C,F} + 2b. OTHER +*/ + +/**/ +.black { + color: #000000 ! important; + } + +.blue { + color: #0000ff ! important; +} + +.celadon { + color: #33CCFF ! important; + } + +.chancery { + color: #FF33FF ! important; + } + +.cordovan { + color: #993300 ! important; + } + +.fuchsia { + color: #ff00ff ! important; + } + +.green { + color: #009900 ! important; +} + +.dark_green { + color: #003300 ! important; + } + +.lawngreen { + color: #7cfc00 ! important; +} + +.light_green { + color: #33ff33 ! important; +} + + A.light_green { + background-color: inherit ! important; + color: #33ff33 ! important; + } + +.light_red { + color: #ff3333 ! important; +} + +.light_yellow { + color: #ffff33 ! important; +} + +.pale_green { + color: #ccffcc ! important; +} + + A.pale_green { + background-color: inherit ! important; + color: #ccffcc ! important; + } + +.pale_yellow { + color: #ffffcc ! important; +} + +.lemon { + color: #FFFF99 ! important; + } + +.maroon { + color: #990000 ! important; + } + +.muted { + color: #666666 ! important; + } + +.semimuted { + color: #999999 ! important; + } + +.ochre { + color: #996600 ! important; + } + +.ochre_yellow { + color: #ccad00 ! important; +} + +.orange { + color: #FFAA22 ! important; + } + +.pale_magenta { + color: #ff6699 ! important; +} + +.pale_purple { + color: #ffccff ! important; +} + + A.pale_purple { + background-color: inherit ! important; + color: #ffccff ! important; + } + +.purple { + color: #990099 ! important; + } + +.red { + color: #ff0000 ! important; +} + +.rust { + color: #CC6600 ! important; + } + +.salmon { + color: #ff6666 ! important; +} + +.USMA_gold { + color: #ffdd00 ! important; + } + +.USMA_stripes { + color: #fffb98 ! important; + } + +.violet { + color: #200080 ! important; +} + +/**/ + /**/ + /* Should eventually be replaced by mnemonic names */ + +.color001100 { + color: #001100 ! important; + } + +.color000033 { + color: #000033 ! important; + } + +.color000066 { + color: #000066 ! important; + } + +.color000099 { + color: #000099 ! important; + } + +.color0000CC { + color: #0000CC ! important; + } + +.color003333 { + color: #003333 ! important; + } + +.color003366 { + color: #003366 ! important; + } + +.color0033CC { + color: #0033CC ! important; + } + +.color006600 { + color: #006600 ! important; + } + +.color006633 { + color: #006633 ! important; + } + +.color0066CC { + color: #0066CC ! important; + } + +.color0066FF { + color: #0066FF ! important; + } + +.color00CC99 { + color: #00CC99 ! important; + } + +.color00FF99 { + color: #00FF99 ! important; + } + +.color330000 { + color: #330000 ! important; + } + +.color330033 { + color: #330033 ! important; + } + +.color333333 { + color: #333333 ! important; + } + +.color333300 { + color: #333300 ! important; + } + +.color333366 { + color: #333366 ! important; + } + +.color333399 { + color: #333399 ! important; + } + +.color3333CC { + color: #3333CC ! important; + } + +.color3333FF { + color: #3333FF ! important; + } + +.color336600 { + color: #336600 ! important; + } + +.color336633 { + color: #336633 ! important; + } + +.color3366FF { + color: #3366FF ! important; + } + +.color339900 { + color: #339900 ! important; + } + +.color339933 { + color: #339933 ! important; + } + +.color33FFFF { + color: #33FFFF ! important; + } + +.color660000 { + color: #660000 ! important; + } + +.color660033 { + color: #660033 ! important; + } + +.color660066 { + color: #660066 ! important; + } + +.color660099 { + color: #660099 ! important; + } + +.color663300 { + color: #663300 ! important; + } + +.color663333 { + color: #663333 ! important; + } + +.color6699CC { + color: #6699CC ! important; + } + +.color993333 { + color: #993333 ! important; + } + +.color996666 { + color: #996666 ! important; + } + +.color999999 { + color: #999999 ! important; + } + +.color99CCFF { + color: #99CCFF ! important; + } + +.color99FF66 { + color: #99FF66 ! important; + } + +.color99FFFF { + color: #99FFFF ! important; + } + +.colorCC0000 { + color: #CC0000 ! important; + } + +.colorCC0033 { + color: #CC0033 ! important; + } + +.colorCC0066 { + color: #CC0066 ! important; + } + +.colorCC0099 { + color: #CC0099 ! important; + } + +.colorCC00CC { + color: #CC00CC ! important; + } + +.colorCC3300 { + color: #CC3300 ! important; + } + +.colorCC6666 { + color: #CC6666 ! important; + } + +.colorCC9900 { + color: #CC9900 ! important; + } + +.colorCCCCFF { + color: #CCCCFF ! important; + } + +.colorCCFFCC { + color: #CCFFCC ! important; + } + +.colorCCFFFF { + color: #CCFFFF ! important; + } + +.colorFF0066 { + color: #FF0066 ! important; + } + +.colorFF0099 { + color: #FF0099 ! important; + } + +.colorFF3300 { + color: #FF3300 ! important; + } + +.colorFF6600 { + color: #FF6600 ! important; + } + +.colorFF9900 { + color: #FF9900 ! important; + } + +.colorFF9933 { + color: #FF9933 ! important; + } + +.colorFF9966 { + color: #FF9966 ! important; + } + +.colorFF9999 { + color: #FF9999 ! important; + } + +.colorFF99CC { + color: #FF99CC ! important; + } + +.colorFF99FF { + color: #FF99FF ! important; + } + +.colorFFCC00 { + color: #FFCC00 ! important; + } + +.colorFFCC33 { + color: #FFCC33 ! important; + } + +.colorFFCC66 { + color: #FFCC66 ! important; + } + +.colorFFCC99 { + color: #FFCC99 ! important; + } + +.colorFFCCCC { + color: #FFCCCC ! important; + } + +.colorFFFF00 { + color: #FFFF00 ! important; + } + +.colorFFFF66 { + color: #FFFF66 ! important; + } + +.colorFFFFFF { + color: #FFFFFF ! important; + } + + /**/ + +.color000090 { + color: #000090 ! important; + } + +.color002200 { + color: #002200 ! important; + } + +.color004000 { + color: #004000 ! important; + } + +.color0040B0 { + color: #0040B0 ! important; + } + +.color004400 { + color: #004400 ! important; + } + +.color004A00 { + color: #004A00 ! important; + } + +.color0060FF { + color: #0060FF ! important; + } + +.color006E3A { + color: #006E3A ! important; + } + +.color007000 { + color: #007000 ! important; + } + +.color008000 { + color: #008000 ! important; + } + +.color0080FF { + color: #0080FF ! important; + } + +.color008800 { + color: #008800 ! important; + } + +.color008C00 { + color: #008C00 ! important; + } + +.color0C3000 { + color: #0C3000 ! important; + } + +.color110000 { + color: #110000 ! important; + } + +.color110011 { + color: #110011 ! important; + } + +.color112200 { + color: #112200 ! important; + } + +.color200000 { + color: #200000 ! important; + } + +.color223344 { + color: #223344 ! important; + } + +.color330010 { + color: #330010 ! important; + } + +.color332222 { + color: #332222 ! important; + } + +.color3900D6 { + color: #3900D6 ! important; + } + +.color3900E6 { + color: #3900E6 ! important; + } + +.color400080 { + color: #400080 ! important; + } + +.color4040FF { + color: #4040FF ! important; + } + +.color410000 { + color: #410000 ! important; + } + +.color4B2700 { + color: #4B2700 ! important; + } + +.color4C1900 { + color: #4C1900 ! important; + } + +.color4C9900 { + color: #4C9900 ! important; + } + +.color5000D0 { + color: #5000D0 ! important; + } + +.color600000 { + color: #600000 ! important; + } + +.color6A0080 { + color: #6A0080 ! important; + } + +.color6F0000 { + color: #6F0000 ! important; + } + +.color800000 { + color: #800000 ! important; + } + +.color800080 { + color: #800080 ! important; + } + +.color802600 { + color: #802600 ! important; + } + +.color900000 { + color: #900000 ! important; + } + +.color903030 { + color: #903030 ! important; + } + +.color992200 { + color: #992200 ! important; + } + +.color994C4C { + color: #994C4C ! important; + } + +.color9C2973 { + color: #9C2973 ! important; + } + +.color9C6342 { + color: #9C6342 ! important; + } + +.colorA00000 { + color: #A00000 ! important; + } + +.colorAACC00 { + color: #AACC00 ! important; + } + +.colorBE5F00 { + color: #BE5F00 ! important; + } + +.colorC03A3A { + color: #C03A3A ! important; + } + +.colorCCCCDD { + color: #CCCCDD ! important; + } + +.colorD00000 { + color: #D00000 ! important; + } + +.colorD10022 { + color: #D10022 ! important; + } + +.colorD56A00 { + color: #D56A00 ! important; + } + +.colorDDDDCC { + color: #DDDDCC ! important; + } + +.colorDDDDDD { + color: #DDDDDD ! important; + } + +.colorDDDDEE { + color: #DDDDEE ! important; + } + +.colorDDDDFF { + color: #DDDDFF ! important; + } + +.colorDDFFCC { + color: #DDFFCC ! important; + } + +.colorE0FFCC { + color: #E0FFCC ! important; + } + +.colorE77300 { + color: #E77300 ! important; + } + +.colorEECC99 { + color: #EECC99 ! important; + } + +.colorEEEEEE { + color: #EEEEEE ! important; + } + +.colorEEEEFF { + color: #EEEEFF ! important; + } + +.colorEEFFFF { + color: #EEFFFF ! important; + } + +.colorFF002A { + color: #FF002A ! important; + } + +.colorFF4000 { + color: #FF4000 ! important; + } + +.colorFF5500 { + color: #FF5500 ! important; + } + +.colorFF6633 { + color: #FF6633 ! important; + } + +.colorFF7F00 { + color: #FF7F00 ! important; + } + +.colorFFAA00 { + color: #FFAA00 ! important; + } + +.colorFFBB88 { + color: #FFBB88 ! important; + } + +.colorFFDD00 { + color: #FFDD00 ! important; + } + +.colorFFDD99 { + color: #FFDD99 ! important; + } + +.colorFFDDBB { + color: #FFDDBB ! important; + } + +.colorFFDDDD { + color: #FFDDDD ! important; + } + +.colorFFDDEE { + color: #FFDDEE ! important; + } + +.colorFFEEDD { + color: #FFEEDD ! important; + } + +.colorFFEEEE { + color: #FFEEEE ! important; + } + +.colorFFFFEE { + color: #FFFFEE ! important; + } + +/*<3>*/ + +.aquawhite { + background-color: #f7fbff ! important; +} + +.bluewhite { + background-color: #f7f7ff ! important; +} + +.ecruwhite { + background-color: #fffff7 ! important; +} + +.redwhite { + background-color: #fff7f7 ! important; +} + +.bistre { + background-color: #cccc99 ! important; +} + +SPAN.bistre { + background-color: inherit ! important; + color: #cccc99 ! important; +} + +.ecru { + background-color: #ffffcc ! important; + color: #000066 ! important; +} + +SPAN.ecru { + background-color: inherit ! important; + color: #ffffcc ! important; +} + +.grey { + background-color: #cccccc ! important; +} + +SPAN.grey { + color: #cccccc ! important; +} + +.pale_grey { + background-color: #ddddee ! important; + } + +.paler_grey { + background-color: #eeeef6 ! important; + } + +.lagoon { + background-color: #99ffff ! important; + color: #000066 ! important; +} + + SPAN.lagoon { + background-color: inherit ! important; + color: #99ffff ! important; +} + +.lime { + background-color: #ccff99 ! important; +} + +.mist_green { + background-color: #e8ffe8 ! important; +} + +.mustard { + background-color: #ffcc44 ! important; +} + +.pale_blue { + background-color: #ccccff ! important; +} + SPAN.pale_blue { + background-color: inherit ! important; + color: #ccccff ! important; + } + +.hospital_wall { + background-color: #ccffcc ! important; +} + SPAN.hospital_wall { + background-color: inherit ! important; + color: #ccffcc ! important; + } + + A.hospital_wall { + background-color: inherit ! important; + color: #ccffcc ! important; + } + +.pale_red { + background-color: #ffcccc ! important; +} + SPAN.pale_red { + background-color: inherit ! important; + color: #ffcccc ! important; + } + + A.pale_red { + background-color: inherit ! important; + color: #ffcccc ! important; + } + +.pink { + background-color: #fff2ff ! important; +} + +.plaster { + background-color: #ffeedd ! important; +} + +.pumpkin { + background-color: #ff9933 ! important; +} + +.silver { + background-color: #f6f6ff ! important; +} + +.silver .emend { + color: #0066cc ! important; +} + +.sky { + background-color: #99ccff ! important; +} + SPAN.sky { + background-color: inherit ! important; + color: #99ccff ! important; + } + +.sunset { + background-color: #ffff99 ! important; +} + +.tawny { + background-color: #ffcc66 ! important; +} + + .tawny .Latin { + color: #660000 ! important; + } + + .tawny .lapis { + color: #660000 ! important; + } + + .tawny .nummus { + color: #660000 ! important; + } + + .tawny .Latin .emend { + color: #cc3399 ! important; + } + + .tawny .lapis .emend { + color: #cc3399 ! important; + } + + .tawny .nummus .emend { + color: #cc3399 ! important; + } + +.terracotta { + background-color: #ff9966 ! important; +} + +.white { + background-color: #ffffff ! important; + color: #000066 ! important; +} + + SPAN.white { + background-color: inherit ! important; + color: #ffffff ! important; + } + +/*<4>*/ + +.Acquaeortus { + background-color: #ff6666 ! important; + color: #ffffff ! important; +} + +.Air_Force { + background-color: #003366 ! important; + color: #ffffff ! important; +} + .Air_Force A { + color: #ffff33 ! important; + } + +.Algol { + background-color: #444444 ! important; + color: #ff6600 ! important; +} + + .Algol P { + color: #ff6600 ! important; + } + + .Algol .Italian { + color: #99ff99 ! important; + } + + .Algol .source { + color: #99ff99 ! important; + } + .Algol A { + color: #ffcccc ! important; + } + +.Algol2 { + background-color: #333333 ! important; + color: #ff6633 ! important; +} + + .Algol2 P { + color: #ff6633 ! important; + } + + .Algol2 .source { + color: #99ff99 ! important; + } + .Algol2 A { + color: #ffcccc ! important; + } + +.Americas { + background-color: #bbffff ! important; + color: #336633 ! important; +} + +.amphora { + background-color: #993333 ! important; + color: #ffffcc ! important; +} + + .amphora .Latin { + color: #ffff99 ! important; + } + + .amphora .lapis { + color: #ff9999 ! important; + } + + .amphora .nummus { + color: #ff9999 ! important; + } + .amphora A { + color: #33ff33 ! important; + } + +.angelica { + background-color: #99cc33 ! important; +} + +.angels { + background-color: #000099 ! important; + color: #ffff66 ! important; +} + .angels A { + color: #99ffff ! important; + } + +.Antares { + background-color: #000000 ! important; + color: #ff3300 ! important; +} + .Antares A { + color: #ffff66 ! important; + } + +.aqua { + background-color: #ccffff ! important; + color: #000066 ! important; +} + A.aqua { + background-color: inherit ! important; + color: #ccffff ! important; + } + + SPAN.aqua { + background-color: inherit ! important; + color: #ccffff ! important; + } + +.Arizona { + background-color: #ffe6cc ! important; +} + .Arizona .Italian { + color: #20bb44 ! important; + } + +.Arnhem { + background-color: #3333ff ! important; + color: #ffffff ! important; +} + + A.Arnhem { + background-color: inherit ! important; + color: #3333ff ! important; + } + + SPAN.Arnhem { + color: #ffffff ! important; + } + +.Augustus { + background-color: #660022 ! important; + color: #ffffff ! important; +} + .Augustus A { + color: #00ffcc ! important; + } + +.autumn { + background-color: #663333 ! important; + color: #ffcc99 ! important; +} + .autumn A { + color: #99ffff ! important; + } + +.autumn_gold { + background-color: #663333 ! important; + color: #ffff66 ! important; +} + +.autumn_sand { + background-color: #663333 ! important; + color: #ffffcc ! important; +} + +.azure { + background-color: #150080 ! important; + color: #ffffcc ! important; +} + +.Bonely { + background-color: #cccccc ! important; + color: #000011 ! important; +} + +.Boston_red { + color: #cc0000 ! important; +} + +.brick { + background-color: #773300 ! important; + color: #ffffff ! important; +} + + .brick .Latin { + color: #ffff99 ! important; + } + + .brick .lapis { + color: #ffff99 ! important; + } + + .brick .nummus { + color: #ffff99 ! important; + } + .brick A { + color: #33ff33 ! important; + } + +.brickstamp { + background-color: #ffcc99 ! important; +} + +.brickstamp1 { + background-color: #ffcc99 ! important; + color: #cc3333 ! important; +} + +.brickstamp2 { + background-color: #ffcc99 ! important; + color: #993333 ! important; +} + +.Britain { + background-color: #00237d ! important; + /*must be the same color as BODY in Britannia.css*/ + color: #ffffff ! important; +} + +.brown { + background-color: #330000 ! important; + color: #ffffcc ! important; +} + + .brown .Latin { + color: #ffcc66 ! important; + } + + .brown .lapis { + color: #ffcc66 ! important; + } + + .brown .nummus { + color: #ffcc66 ! important; + } + + .brown .source { + color: #99ff33 ! important; + } + + SPAN.brown { + background-color: inherit ! important; + color: #330000 ! important; + } + + SPAN.brown A { + color: #0000ff ! important; + } + .brown A { + color: #99ff99 ! important; + } + +.dark_brown { + background-color: #332222 ! important; + color: #ffffcc ! important; +} + + .dark_brown .Latin { + color: #ffcc66 ! important; + } + + .dark_brown .lapis { + color: #ffcc66 ! important; + } + + .dark_brown .nummus { + color: #ffcc66 ! important; + } + + .dark_brown .source { + color: #99ff33 ! important; + } + +.burgundy { + background-color: #330000 ! important; + color: #ffcccc ! important; +} + +.butterscotch { + background-color: #995500 ! important; + color: #ffffff ! important; +} + + .butterscotch .Latin { + color: #ffff99 ! important; + } + + .butterscotch .lapis { + color: #ffff99 ! important; + } + + .butterscotch .nummus { + color: #ffff99 ! important; + } + .butterscotch A { + color: #33ff33 ! important; + } + +.cadet_grey { + background-color: #a5a6bb ! important; + color: #000066 ! important; +} + +.light_cadet_grey { + background-color: #c5c6d3 ! important; + color: #000066 ! important; +} + +/* The red of the Cambodian flag is e00025; the color here is slightly bluer, and much darker, for readability and so as not to confuse it with a link. */ +/* OLD: +.Cambodia { + background-color: #ffffff ! important; + color: #bf0050 ! important; + border-color: #032ea1 ! important; + border-width: 2px ! important; +} + .Cambodia A { + color: #cc00ff ! important; + } + */ + +.Cambodia { + background-color: #e00025 ! important; + color: #ffffff ! important; + border-color: #032ea1 ! important; + border-width: 2px ! important; +} + .Cambodia A { + color: #99ffff ! important; + } + .Cambodia A.ref { + color: #99ffff ! important; + } + +.Canada { + background-color: #ffffff ! important; + color: #37495f ! important; /* matches the Canadian Government's site */ + border-color: #ff0000 ! important; +} + .Canada A { + color: #cc00ff ! important; + } + +.Capella { + background-color: #000000 ! important; + color: #ffffcc ! important; +} + .Capella A { + color: #ffff66 ! important; + } + + .Capella .source { + color: #66ff66 ! important; + } + +.caramel { + background-color: #996633 ! important; + color: #ffffff ! important; +} + .caramel A { + color: #bbbbff ! important; + } + +.Cartagena { + background-color: #ff6666 ! important; + color: #ffff99 ! important; +} + +.Catalunya { + background-color: #fcdd09 ! important; + color: #da131a ! important; + border-color: #da131a ! important; +} + .Catalunya A { + color: #cc00ff ! important; + } + +/* +The following style was called "Catholic" but I renamed it to avoid conflict with BODY CLASS= "Catholic". It appears to be very rarely called; but if in fact it is called a lot, I may have to revert the name. + */ +.Kapaun { + background-color: #90191b ! important; + color: #ffff33 ! important; + font-size: 90%; +} + .Kapaun A { + color: #ffff00 ! important; + } + +.charcoal { + background-color: #333333 ! important; + color: #ffffff ! important; +} + .charcoal A { + color: #ffff33 ! important; + } + +.checkColor { /* = ecru */ + background-color: #ffffcc ! important; +} + +.Chicago_maroon { + background-color: #cccccc ! important; + color: #990000 ! important; +} + +.Chile { + background-color: #ffffff ! important; + color: #0044cc ! important; + border-color: #d83820 ! important; +} + .Chile A { + color: #cc00ff ! important; + } + +.chocolate { + background-color: #330000 ! important; + color: #ffff99 ! important; +} + .chocolate A { + color: #33ff33 ! important; + } + +.Claudian { + background-color: #333333 ! important; + color: #cccccc ! important; +} + + .Claudian P { + color: #cccccc ! important; + } + + .Claudian .source { + color: #99ff99 ! important; + } + .Claudian A { + color: #66ccff ! important; + } + +.cobblestone { + background-color: #999999 ! important; + color: #ffffff ! important; +} + +.cocoa { + background-color: #665555 ! important; + color: #ffffcc ! important; +} + .cocoa A { + color: #33ccff ! important; + } + +.coffee { + background-color: #998866 ! important; + color: #ffffee ! important; +} + .coffee A { + color: #0033ff ! important; + } + +.crimson { + background-color: #990033 ! important; + color: #ffcc00 ! important; +} + + .crimson P { + color: #ffcc00 ! important; + } + +.daffodil { + background-color: #ffffff ! important; + color: #70a000 ! important; +} + +.Dalmatian { + background-color: #ffffff ! important; + color: #000000 ! important; +} + +.dandelion { + background-color: #003300 ! important; + color: #ffcc00 ! important; +} + .dandelion A { + color: #9999ff ! important; + } + + .dandelion .source { + color: #99ff99 ! important; + } + +.Daniel { + background-color: #006600 ! important; + color: #ffff99 ! important; +} + .Daniel A { + color: #ff6633 ! important; + } + +.dark_blue { + background-color: #003399 ! important; + color: #ffffff ! important; +} + .dark_blue A { + background-color: inherit ! important; + font-weight: bold; + color: #ffff33 ! important; + } + + SPAN.dark_blue { + color: #003399 ! important; + } + +.dark_pines { + background-color: #003300 ! important; + color: #ffffff ! important; +} + .dark_pines A { + color: #9999ff ! important; + } + + .dark_pines .source { + color: #99ff99 ! important; + } + +.dark_sepia { + background-color: #888877 ! important; + color: #ddddcc ! important; +} + .dark_sepia A { + color: #99ffff ! important; + } + + .dark_sepia .source { + color: #99ff99 ! important; + } + +.dark_slate { + background-color: #444444 ! important; + color: #ffffff ! important; +} + +.doughboy { + background-color: #a67c41 ! important; + color: #e5c68e ! important; +} + +.Dutch2 { + background-color: #ddffff ! important; /*e9feff*/ + color: #ee8800 ! important; /*eb810f*/ +} + +.early_spring { + background-color: #99cc66 ! important; + color: #ffffff ! important; +} + +.empyrean { + background-color: #000033 ! important; + color: #ffcc99 ! important; +} + .empyrean A { + color: #99ffff ! important; + } + + .empyrean .Latin { + color: #ff9999 ! important; + } + + .empyrean .lapis { + color: #ff9999 ! important; + } + + .empyrean .nummus { + color: #ff9999 ! important; + } + +.eucalyptus { + background-color: #669966 ! important; + color: #0033cc ! important; +} + .eucalyptus A { + color: #33ff33 ! important; + } + +.farmhouse { + background-color: #113300 ! important; + color: #ffffcc ! important; +} + .farmhouse A { + color: #99ccff ! important; + } + +.fertile { + background-color: #663300 ! important; + color: #33ff00 ! important; +} + +.Firenze_ghibellino { + background-color: #ff3333 ! important; + color: #ffffff ! important; +} + +.Firenze { + background-color: #ffffff ! important; + color: #ff3333 ! important; +} + +.forest_sunset { + background-color: #336633 ! important; + color: #ffddbb ! important; +} + .forest_sunset A { + color: #ccccff ! important; + } + +.French2 { + background-color: #99ccff ! important; + color: #ee4037 ! important; +} + +.French_paperback { + background-color: #fff7f2 ! important; + color: #b7375c ! important; +} + +.fudge { + background-color: #996600 ! important; + color: #ffffff ! important; +} + +.glauque { + background-color: #669999 ! important; + color: #ffffff ! important; +} + .glauque A { + color: #ccccff ! important; + } + .glauque A:visited { + color: #ffcccc ! important; + } + +.Gran_Colombia { + background-color: #fee88a ! important; + color: #0044cc ! important; /* why doesn't this work? */ + border-color: #d83820 ! important; +} + .Gran_Colombia TD { + color: #0044cc ! important; /* workaround because previous doesn't work! */ + } + + .Gran_Colombia A { + color: #339900 ! important; + } + +.grey_pines { + background-color: #336600 ! important; + color: #ccccff ! important; +} + .grey_pines A { + color: #ffffcc ! important; + } + + .grey_pines .source { + color: #99ff99 ! important; + } + + .grey_pines .Italian { + color: #7acc7a ! important; + } + +.Harlequin { + background-color: #000000 ! important; + color: #ffffff ! important; +} + .Harlequin A { + color: #ffff66 ! important; + } + + .Harlequin .source { + color: #66ff66 ! important; + } + + .Harlequin .bland { + color: #ffffff ! important; + } + +.imperial { + background-color: #4d0099 ! important; + color: #ffff66 ! important; +} + +.ink_blue { + background-color: #000033 ! important; + color: #ffffff ! important; +} + .ink_blue A { + color: #99ffff ! important; + } + + .ink_blue P { + color: #ffffff ! important; + } + + SPAN.ink_blue { + color: #000033 ! important; + } + +.Labro { + background-color: #506600 ! important; + color: #fff9e5 ! important; +} + +.landscape { + background-color: #559900 ! important; + color: #ffffff ! important; +} + +.laterite { + background-color: #cc6633 ! important; + color: #ccffff ! important; +} + +.late_spring { + background-color: #339900 ! important; + color: #ffcccc ! important; +} + .late_spring A { + font-weight: bold; + color: #ffff33 ! important; + } + +.light_ochre { + background-color: #cc9933 ! important; + color: #ffffff ! important; +} + +.limestone { + background-color: #ffffcc ! important; + color: #663300 ! important; +} + +.London { + background-color: #cccccc ! important; + color: #993333 ! important; +} + +.lupine { + background-color: #113300 ! important; + color: #ffffff ! important; +} + .lupine A { + color: #99ccff ! important; + } + +.marl { + background-color: #ffcccc ! important; + color: #333366 ! important; +} + +.mahogany { + background-color: #330000 ! important; + color: #ffffff ! important; +} + .mahogany A { + color: #33ff33 ! important; + } + + .mahogany A.comment { + color: #33ccff ! important; + font-weight: bold; + font-size: 85%; + } + + .mahogany .Latin { + color: #ff6600 ! important; + } + + .mahogany .Latin .emend { + color: #ffaa00 ! important; + } + + .mahogany .lapis { + color: #ff6600 ! important; + } + + .mahogany .lapis .emend { + color: #ffaa00 ! important; + } + +.masoor_dal { + background-color: #cc6600 ! important; + color: #ffffff ! important; +} + + .masoor_dal .Latin { + color: #ffff99 ! important; + } + + .masoor_dal .lapis { + color: #ffff99 ! important; + } + + .masoor_dal .nummus { + color: #ffff99 ! important; + } + .masoor_dal A { + color: #33ff33 ! important; + } + +.mimosa { + background-color: #336633 ! important; + color: #ffff99 ! important; +} + +.minium { + background-color: #ffe0aa ! important; + color: #cc0000 ! important; +} + +.mint { + background-color: #003300 ! important; + color: #ccffcc ! important; +} + .mint A { + color: #9999ff ! important; + } + + .mint .source { + color: #99ff99 ! important; + } + +.mordore { + background-color: #663300 ! important; + color: #ffffcc ! important; +} + .mordore A { + color: #33ff33 ! important; + } + + .mordore .emend { + color: #99ffff ! important; + } + + .mordore .Latin { + color: #ff3300 ! important; + } + + .mordore .Latin .emend { + color: #cc3399 ! important; + } + +.mossy_pavement { + background-color: #cccccc ! important; + color: #006600 ! important; +} + +.mourning_dove { + background-color: #a8a99b ! important; + color: #f1e0d6 ! important; +} + .mourning_dove A { + color: #4662d0 ! important; + } + +.MrWhite { + background-color: #ffffff ! important; + color: #993333 ! important; +} + +.Nar { + background-color: #808066 ! important; + color: #ffffcc ! important; +} + +.Navajo { + background-color: #330000 ! important; + color: #33ff00 ! important; +} + .Navajo A { + color: #99ff33 ! important; + } + +.navy { + background-color: #110044 ! important; + color: #ffffff ! important; +} + +.Netherlands { + background-color: #ffffff ! important; + color: #3075f6 ! important; + border-color: #f29e39 ! important; +} + .Netherlands A { + color: #cc00ff ! important; + } + +.Newburgh { + background-color: #b4b5cc ! important; + color: #fff600 ! important; +} + +.nicotine { + background-color: #ffffcc ! important; + color: #993333 ! important; +} + +.Nigeria { + background-color: #006600 ! important; + color: #ffffff ! important; +} + .Nigeria A { + color: #ff6633 ! important; + } + +.North_Carolina { + background-color: #ffffff ! important; + color: #003399 ! important;/*102f5f*/ + border-color: #bf2b45 ! important; +} + .North_Carolina A { + color: #ff6633 ! important; + } + +.old_belfry { + background-color: #998866 ! important; + color: #ddffff ! important; +} + +.olive { + background-color: #666633 ! important; + color: #ffffcc ! important; +} + .olive A { + color: #ccccff ! important; + } + +.dark_olive { + background-color: #333300 ! important; + color: #ffffff ! important; +} + .dark_olive A { + color: #99ffff ! important; + } + + .dark_olive .emend { + color: #ccffff ! important; + } + +.light_olive { + background-color: #999966 ! important; + color: #ffffcc ! important; +} + .light_olive A { + color: #ccccff ! important; + } + +.Oxford { + background-color: #ddeeff ! important; + color: #f36512 ! important; + font-weight: bold; +} + .Oxford A { + color: #993333 ! important; + } + + .Oxford .bland { + color: #000066 ! important; + font-weight: normal; +} + +SPAN.pale_yellow { + background-color: inherit ! important; + color: #ffffcc ! important; + } + +A.pale_yellow { + background-color: inherit ! important; + color: #ffffcc ! important; + } + +.paleo { + background-color: #e6d7b8 ! important; + color: #331900 ! important; +} + .paleo .Italian { + color: #20bb44 ! important; + } + +.parchment { + background-color: #ffffff ! important; + color: #663300 ! important; +} + +.Pentecost { + background-color: #660000 ! important; + color: #ffff66 ! important; +} + +.pietra_morta { + background-color: #ccccb0 ! important; + color: #330000 ! important; +} + +.pigeon { + background-color: #99cccc ! important; + color: #660000 ! important; +} + +.pines { + background-color: #447711 ! important; + color: #ffffff ! important; +} + .pines A { + color: #66ffff ! important; + } + + .pines .source { + color: #99ff99 ! important; + } + +.Ravenna { + background-color: #440055 ! important; + color: #ccffcc ! important; +} + +.red_wax { + background-color: #cc3333 ! important; + color: #ffffff ! important; +} + .red_wax A { + color: #66ffff ! important; + } + +.rockscape { + background-color: #330000 ! important; + color: #ccffff ! important; +} + .rockscape A { + color: #66ffff ! important; + } + +.sand { + background-color: #ffeeee ! important; + color: #663300 ! important; +} + +.sandstone { + background-color: #ffeedd ! important; + color: #663300 ! important; +} + +.shaded_stone { + background-color: #cccccc ! important; + color: #663300 ! important; +} + +.sigillata { + background-color: #660000 ! important; + color: #ffffff ! important; +} + .sigillata .Latin { + color: #ffff99 ! important; + } + .sigillata .lapis { + color: #ff9999 ! important; + } + .sigillata .nummus { + color: #ff9999 ! important; + } + .sigillata A { + color: #33ff33 ! important; + } + +.slate { + background-color: #666666 ! important; + color: #ffffff ! important; +} + +.spaceflight { + background-color: #150080 ! important; + color: #ffff66 ! important; +} + +.spearmint { + background-color: #ffffff ! important; + color: #006600 ! important; +} + +.spring { + background-color: #66cc00 ! important; + color: #ffffff ! important; +} + +.stone_walls { + background-color: #221100 ! important; + color: #cc7733 ! important; +} + .stone_walls A { + color: #66ffff ! important; + } + +.storm_pines { + background-color: #003300 ! important; + color: #cccccc ! important; +} + .storm_pines A { + color: #9999ff ! important; + } + .storm_pines .source { + color: #99ff99 ! important; + } + +.straw { + background-color: #ffffff ! important; + color: #996600 ! important; +} + +.summer { + background-color: #7c9645 ! important; + color: #ffffff ! important; +} + .summer A { + color: #0044ff ! important; + } + +.tobacco { + background-color: #663300 ! important; + color: #ffcc00 ! important; +} + +.toffee { + background-color: #cc9966 ! important; + color: #660000 ! important; +} + + .toffee .Latin { + color: #cc3300 ! important; + } + + .toffee .lapis { + color: #ffff99 ! important; + } + + .toffee .nummus { + color: #ffff99 ! important; + } + +.Ukraine { + background-color: #ffffff ! important; + color: #0056bd ! important; + border-color: #fed700 ! important; +} + +.umber { + background-color: #663300 ! important; + color: #ffffff ! important; +} + .umber A { + color: #33ff33 ! important; + } + .umber .emend { + color: #99ffff ! important; + } + .umber .Latin { + color: #ff3300 ! important; + } + .umber .Latin .emend { + color: #cc3399 ! important; + } + +.Venezuela { + background-color: #ffea80 ! important; + color: #152169 ! important; +} + +.very_green { + background-color: #002200 ! important; + color: #aacc00 ! important; +} + .very_green A { + color: #ccccff ! important; + } + +.wintergreen { + background-color: #ffffff ! important; + color: #0099cc ! important; +} + +.woodruff { + background-color: #336633 ! important; + color: #ffffff ! important; +} + .woodruff A { + color: #ccccff ! important; + } + .woodruff .emend { + color: #ddffff ! important; + } + +.Wyoming { + background-color: #ffffff ! important; + color: #003399 ! important; + border-color: #bf0b32 ! important; +} + .Wyoming A { + color: #ff6633 ! important; + } + +.zinnia { + background-color: #003300 ! important; + color: #ff8800 ! important; +} + + SPAN.zinnia { + background-color: inherit ! important; + color: #003300 ! important; +} + .zinnia A { + color: #6699ff ! important; + } + +/* ORVIETO */ +/* +BODY. TABLE.Orvieto { +} + */ diff --git a/sources/book_4b_files/empty.gif b/sources/book_4b_files/empty.gif new file mode 100644 index 0000000..d37a0bb Binary files /dev/null and b/sources/book_4b_files/empty.gif differ diff --git a/sources/book_4b_files/home_.gif b/sources/book_4b_files/home_.gif new file mode 100644 index 0000000..4ec156c Binary files /dev/null and b/sources/book_4b_files/home_.gif differ diff --git a/sources/book_4b_files/home__small.gif b/sources/book_4b_files/home__small.gif new file mode 100644 index 0000000..cf2137e Binary files /dev/null and b/sources/book_4b_files/home__small.gif differ diff --git a/sources/book_4b_files/logo__.gif b/sources/book_4b_files/logo__.gif new file mode 100644 index 0000000..0fbb441 Binary files /dev/null and b/sources/book_4b_files/logo__.gif differ diff --git a/sources/book_4b_files/macron.gif b/sources/book_4b_files/macron.gif new file mode 100644 index 0000000..79ff63b Binary files /dev/null and b/sources/book_4b_files/macron.gif differ diff --git a/sources/book_4b_files/next.gif b/sources/book_4b_files/next.gif new file mode 100644 index 0000000..2f1682a Binary files /dev/null and b/sources/book_4b_files/next.gif differ diff --git a/sources/book_4b_files/ol.js b/sources/book_4b_files/ol.js new file mode 100644 index 0000000..8ed611d --- /dev/null +++ b/sources/book_4b_files/ol.js @@ -0,0 +1,8 @@ +!function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e():"function"==typeof define&&define.amd?define([],e):"object"==typeof exports?exports.ol=e():t.ol=e()}(window,function(){return function(t){var e={};function i(r){if(e[r])return e[r].exports;var n=e[r]={i:r,l:!1,exports:{}};return t[r].call(n.exports,n,n.exports,i),n.l=!0,n.exports}return i.m=t,i.c=e,i.d=function(t,e,r){i.o(t,e)||Object.defineProperty(t,e,{enumerable:!0,get:r})},i.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},i.t=function(t,e){if(1&e&&(t=i(t)),8&e)return t;if(4&e&&"object"==typeof t&&t&&t.__esModule)return t;var r=Object.create(null);if(i.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:t}),2&e&&"string"!=typeof t)for(var n in t)i.d(r,n,function(e){return t[e]}.bind(null,n));return r},i.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return i.d(e,"a",e),e},i.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},i.p="",i(i.s=9)}([function(t,e,i){"use strict";t.exports=n,t.exports.default=n;var r=i(5);function n(t,e){if(!(this instanceof n))return new n(t,e);this._maxEntries=Math.max(4,t||9),this._minEntries=Math.max(2,Math.ceil(.4*this._maxEntries)),e&&this._initFormat(e),this.clear()}function o(t,e,i){if(!i)return e.indexOf(t);for(var r=0;r=t.minX&&e.maxY>=t.minY}function y(t){return{children:t,height:1,leaf:!0,minX:1/0,minY:1/0,maxX:-1/0,maxY:-1/0}}function v(t,e,i,n,o){for(var s,a=[e,i];a.length;)(i=a.pop())-(e=a.pop())<=n||(s=e+Math.ceil((i-e)/n/2)*n,r(t,s,e,i,o),a.push(e,s,s,i))}n.prototype={all:function(){return this._all(this.data,[])},search:function(t){var e=this.data,i=[],r=this.toBBox;if(!g(t,e))return i;for(var n,o,s,a,h=[];e;){for(n=0,o=e.children.length;n=0&&o[e].children.length>this._maxEntries;)this._split(o,e),e--;this._adjustParentBBoxes(n,o,e)},_split:function(t,e){var i=t[e],r=i.children.length,n=this._minEntries;this._chooseSplitAxis(i,n,r);var o=this._chooseSplitIndex(i,n,r),a=y(i.children.splice(o,i.children.length-o));a.height=i.height,a.leaf=i.leaf,s(i,this.toBBox),s(a,this.toBBox),e?t[e-1].children.push(a):this._splitRoot(i,a)},_splitRoot:function(t,e){this.data=y([t,e]),this.data.height=t.height+1,this.data.leaf=!1,s(this.data,this.toBBox)},_chooseSplitIndex:function(t,e,i){var r,n,o,s,h,l,u,c;for(l=u=1/0,r=e;r<=i-e;r++)s=f(n=a(t,0,r,this.toBBox),o=a(t,r,i,this.toBBox)),h=p(n)+p(o),s=e;n--)o=t.children[n],h(u,t.leaf?s(o):o),p+=c(u);return p},_adjustParentBBoxes:function(t,e,i){for(var r=i;r>=0;r--)h(e[r],t)},_condense:function(t){for(var e,i=t.length-1;i>=0;i--)0===t[i].children.length?i>0?(e=t[i-1].children).splice(e.indexOf(t[i]),1):this.clear():s(t[i],this.toBBox)},_initFormat:function(t){var e=["return a"," - b",";"];this.compareMinX=new Function("a","b",e.join(t[0])),this.compareMinY=new Function("a","b",e.join(t[1])),this.toBBox=new Function("a","return {minX: a"+t[0]+", minY: a"+t[1]+", maxX: a"+t[2]+", maxY: a"+t[3]+"};")}}},function(t,e,i){"use strict";t.exports=n;var r=i(6);function n(t){this.buf=ArrayBuffer.isView&&ArrayBuffer.isView(t)?t:new Uint8Array(t||0),this.pos=0,this.type=0,this.length=this.buf.length}n.Varint=0,n.Fixed64=1,n.Bytes=2,n.Fixed32=5;function o(t){return t.type===n.Bytes?t.readVarint()+t.pos:t.pos+1}function s(t,e,i){return i?4294967296*e+(t>>>0):4294967296*(e>>>0)+(t>>>0)}function a(t,e,i){var r=e<=16383?1:e<=2097151?2:e<=268435455?3:Math.ceil(Math.log(e)/(7*Math.LN2));i.realloc(r);for(var n=i.pos-1;n>=t;n--)i.buf[n+r]=i.buf[n]}function h(t,e){for(var i=0;i>>8,t[i+2]=e>>>16,t[i+3]=e>>>24}function m(t,e){return(t[e]|t[e+1]<<8|t[e+2]<<16)+(t[e+3]<<24)}n.prototype={destroy:function(){this.buf=null},readFields:function(t,e,i){for(i=i||this.length;this.pos>3,o=this.pos;this.type=7&r,t(n,e,this),this.pos===o&&this.skip(r)}return e},readMessage:function(t,e){return this.readFields(t,e,this.readVarint()+this.pos)},readFixed32:function(){var t=y(this.buf,this.pos);return this.pos+=4,t},readSFixed32:function(){var t=m(this.buf,this.pos);return this.pos+=4,t},readFixed64:function(){var t=y(this.buf,this.pos)+4294967296*y(this.buf,this.pos+4);return this.pos+=8,t},readSFixed64:function(){var t=y(this.buf,this.pos)+4294967296*m(this.buf,this.pos+4);return this.pos+=8,t},readFloat:function(){var t=r.read(this.buf,this.pos,!0,23,4);return this.pos+=4,t},readDouble:function(){var t=r.read(this.buf,this.pos,!0,52,8);return this.pos+=8,t},readVarint:function(t){var e,i,r=this.buf;return e=127&(i=r[this.pos++]),i<128?e:(e|=(127&(i=r[this.pos++]))<<7,i<128?e:(e|=(127&(i=r[this.pos++]))<<14,i<128?e:(e|=(127&(i=r[this.pos++]))<<21,i<128?e:function(t,e,i){var r,n,o=i.buf;if(n=o[i.pos++],r=(112&n)>>4,n<128)return s(t,r,e);if(n=o[i.pos++],r|=(127&n)<<3,n<128)return s(t,r,e);if(n=o[i.pos++],r|=(127&n)<<10,n<128)return s(t,r,e);if(n=o[i.pos++],r|=(127&n)<<17,n<128)return s(t,r,e);if(n=o[i.pos++],r|=(127&n)<<24,n<128)return s(t,r,e);if(n=o[i.pos++],r|=(1&n)<<31,n<128)return s(t,r,e);throw new Error("Expected varint not more than 10 bytes")}(e|=(15&(i=r[this.pos]))<<28,t,this))))},readVarint64:function(){return this.readVarint(!0)},readSVarint:function(){var t=this.readVarint();return t%2==1?(t+1)/-2:t/2},readBoolean:function(){return Boolean(this.readVarint())},readString:function(){var t=this.readVarint()+this.pos,e=function(t,e,i){var r="",n=e;for(;n239?4:h>223?3:h>191?2:1;if(n+u>i)break;1===u?h<128&&(l=h):2===u?128==(192&(o=t[n+1]))&&(l=(31&h)<<6|63&o)<=127&&(l=null):3===u?(o=t[n+1],s=t[n+2],128==(192&o)&&128==(192&s)&&((l=(15&h)<<12|(63&o)<<6|63&s)<=2047||l>=55296&&l<=57343)&&(l=null)):4===u&&(o=t[n+1],s=t[n+2],a=t[n+3],128==(192&o)&&128==(192&s)&&128==(192&a)&&((l=(15&h)<<18|(63&o)<<12|(63&s)<<6|63&a)<=65535||l>=1114112)&&(l=null)),null===l?(l=65533,u=1):l>65535&&(l-=65536,r+=String.fromCharCode(l>>>10&1023|55296),l=56320|1023&l),r+=String.fromCharCode(l),n+=u}return r}(this.buf,this.pos,t);return this.pos=t,e},readBytes:function(){var t=this.readVarint()+this.pos,e=this.buf.subarray(this.pos,t);return this.pos=t,e},readPackedVarint:function(t,e){var i=o(this);for(t=t||[];this.pos127;);else if(e===n.Bytes)this.pos=this.readVarint()+this.pos;else if(e===n.Fixed32)this.pos+=4;else{if(e!==n.Fixed64)throw new Error("Unimplemented type: "+e);this.pos+=8}},writeTag:function(t,e){this.writeVarint(t<<3|e)},realloc:function(t){for(var e=this.length||16;e268435455||t<0?function(t,e){var i,r;t>=0?(i=t%4294967296|0,r=t/4294967296|0):(r=~(-t/4294967296),4294967295^(i=~(-t%4294967296))?i=i+1|0:(i=0,r=r+1|0));if(t>=0x10000000000000000||t<-0x10000000000000000)throw new Error("Given varint doesn't fit into 10 bytes");e.realloc(10),function(t,e,i){i.buf[i.pos++]=127&t|128,t>>>=7,i.buf[i.pos++]=127&t|128,t>>>=7,i.buf[i.pos++]=127&t|128,t>>>=7,i.buf[i.pos++]=127&t|128,t>>>=7,i.buf[i.pos]=127&t}(i,0,e),function(t,e){var i=(7&t)<<4;if(e.buf[e.pos++]|=i|((t>>>=3)?128:0),!t)return;if(e.buf[e.pos++]=127&t|((t>>>=7)?128:0),!t)return;if(e.buf[e.pos++]=127&t|((t>>>=7)?128:0),!t)return;if(e.buf[e.pos++]=127&t|((t>>>=7)?128:0),!t)return;if(e.buf[e.pos++]=127&t|((t>>>=7)?128:0),!t)return;e.buf[e.pos++]=127&t}(r,e)}(t,this):(this.realloc(4),this.buf[this.pos++]=127&t|(t>127?128:0),t<=127||(this.buf[this.pos++]=127&(t>>>=7)|(t>127?128:0),t<=127||(this.buf[this.pos++]=127&(t>>>=7)|(t>127?128:0),t<=127||(this.buf[this.pos++]=t>>>7&127))))},writeSVarint:function(t){this.writeVarint(t<0?2*-t-1:2*t)},writeBoolean:function(t){this.writeVarint(Boolean(t))},writeString:function(t){t=String(t),this.realloc(4*t.length),this.pos++;var e=this.pos;this.pos=function(t,e,i){for(var r,n,o=0;o55295&&r<57344){if(!n){r>56319||o+1===e.length?(t[i++]=239,t[i++]=191,t[i++]=189):n=r;continue}if(r<56320){t[i++]=239,t[i++]=191,t[i++]=189,n=r;continue}r=n-55296<<10|r-56320|65536,n=null}else n&&(t[i++]=239,t[i++]=191,t[i++]=189,n=null);r<128?t[i++]=r:(r<2048?t[i++]=r>>6|192:(r<65536?t[i++]=r>>12|224:(t[i++]=r>>18|240,t[i++]=r>>12&63|128),t[i++]=r>>6&63|128),t[i++]=63&r|128)}return i}(this.buf,t,this.pos);var i=this.pos-e;i>=128&&a(e,i,this),this.pos=e-1,this.writeVarint(i),this.pos+=i},writeFloat:function(t){this.realloc(4),r.write(this.buf,t,this.pos,!0,23,4),this.pos+=4},writeDouble:function(t){this.realloc(8),r.write(this.buf,t,this.pos,!0,52,8),this.pos+=8},writeBytes:function(t){var e=t.length;this.writeVarint(e),this.realloc(e);for(var i=0;i=128&&a(i,r,this),this.pos=i-1,this.writeVarint(r),this.pos+=r},writeMessage:function(t,e,i){this.writeTag(t,n.Bytes),this.writeRawMessage(e,i)},writePackedVarint:function(t,e){this.writeMessage(t,h,e)},writePackedSVarint:function(t,e){this.writeMessage(t,l,e)},writePackedBoolean:function(t,e){this.writeMessage(t,c,e)},writePackedFloat:function(t,e){this.writeMessage(t,u,e)},writePackedDouble:function(t,e){this.writeMessage(t,p,e)},writePackedFixed32:function(t,e){this.writeMessage(t,d,e)},writePackedSFixed32:function(t,e){this.writeMessage(t,f,e)},writePackedFixed64:function(t,e){this.writeMessage(t,_,e)},writePackedSFixed64:function(t,e){this.writeMessage(t,g,e)},writeBytesField:function(t,e){this.writeTag(t,n.Bytes),this.writeBytes(e)},writeFixed32Field:function(t,e){this.writeTag(t,n.Fixed32),this.writeFixed32(e)},writeSFixed32Field:function(t,e){this.writeTag(t,n.Fixed32),this.writeSFixed32(e)},writeFixed64Field:function(t,e){this.writeTag(t,n.Fixed64),this.writeFixed64(e)},writeSFixed64Field:function(t,e){this.writeTag(t,n.Fixed64),this.writeSFixed64(e)},writeVarintField:function(t,e){this.writeTag(t,n.Varint),this.writeVarint(e)},writeSVarintField:function(t,e){this.writeTag(t,n.Varint),this.writeSVarint(e)},writeStringField:function(t,e){this.writeTag(t,n.Bytes),this.writeString(e)},writeFloatField:function(t,e){this.writeTag(t,n.Fixed32),this.writeFloat(e)},writeDoubleField:function(t,e){this.writeTag(t,n.Fixed64),this.writeDouble(e)},writeBooleanField:function(t,e){this.writeVarintField(t,Boolean(e))}}},function(t,e,i){var r=i(7);e.Processor=r},,,function(t,e,i){t.exports=function(){"use strict";function t(t,e,i){var r=t[e];t[e]=t[i],t[i]=r}function e(t,e){return te?1:0}return function(i,r,n,o,s){!function e(i,r,n,o,s){for(;o>n;){if(o-n>600){var a=o-n+1,h=r-n+1,l=Math.log(a),u=.5*Math.exp(2*l/3),p=.5*Math.sqrt(l*u*(a-u)/a)*(h-a/2<0?-1:1),c=Math.max(n,Math.floor(r-h*u/a+p)),d=Math.min(o,Math.floor(r+(a-h)*u/a+p));e(i,r,c,d,s)}var f=i[r],_=n,g=o;for(t(i,n,r),s(i[o],f)>0&&t(i,n,o);_0;)g--}0===s(i[n],f)?t(i,n,g):t(i,++g,o),g<=r&&(n=g+1),r<=g&&(o=g-1)}}(i,r,n||0,o||i.length-1,s||e)}}()},function(t,e){e.read=function(t,e,i,r,n){var o,s,a=8*n-r-1,h=(1<>1,u=-7,p=i?n-1:0,c=i?-1:1,d=t[e+p];for(p+=c,o=d&(1<<-u)-1,d>>=-u,u+=a;u>0;o=256*o+t[e+p],p+=c,u-=8);for(s=o&(1<<-u)-1,o>>=-u,u+=r;u>0;s=256*s+t[e+p],p+=c,u-=8);if(0===o)o=1-l;else{if(o===h)return s?NaN:1/0*(d?-1:1);s+=Math.pow(2,r),o-=l}return(d?-1:1)*s*Math.pow(2,o-r)},e.write=function(t,e,i,r,n,o){var s,a,h,l=8*o-n-1,u=(1<>1,c=23===n?Math.pow(2,-24)-Math.pow(2,-77):0,d=r?0:o-1,f=r?1:-1,_=e<0||0===e&&1/e<0?1:0;for(e=Math.abs(e),isNaN(e)||e===1/0?(a=isNaN(e)?1:0,s=u):(s=Math.floor(Math.log(e)/Math.LN2),e*(h=Math.pow(2,-s))<1&&(s--,h*=2),(e+=s+p>=1?c/h:c*Math.pow(2,1-p))*h>=2&&(s++,h/=2),s+p>=u?(a=0,s=u):s+p>=1?(a=(e*h-1)*Math.pow(2,n),s+=p):(a=e*Math.pow(2,p-1)*Math.pow(2,n),s=0));n>=8;t[i+d]=255&a,d+=f,a/=256,n-=8);for(s=s<0;t[i+d]=255&s,d+=f,s/=256,l-=8);t[i+d-f]|=128*_}},function(t,e,i){var r=i(8).newImageData;function n(t){var e=!0;try{new ImageData(10,10)}catch(t){e=!1}function i(t,i,r){return e?new ImageData(t,i,r):{data:t,width:i,height:r}}return function(e){var r,n,o=e.buffers,s=e.meta,a=e.imageOps,h=e.width,l=e.height,u=o.length,p=o[0].byteLength;if(a){var c=new Array(u);for(n=0;nthis._maxQueueLength;)this._queue.shift().callback(null,null)},s.prototype._dispatch=function(){if(0===this._running&&this._queue.length>0){var t=this._job=this._queue.shift(),e=t.inputs[0].width,i=t.inputs[0].height,r=t.inputs.map(function(t){return t.data.buffer}),n=this._workers.length;if(this._running=n,1===n)this._workers[0].postMessage({buffers:r,meta:t.meta,imageOps:this._imageOps,width:e,height:i},r);else for(var o=t.inputs[0].data.length,s=4*Math.ceil(o/4/n),a=0;a0},e.prototype.removeEventListener=function(t,e){var i=this.listeners_[t];if(i){var r=i.indexOf(e);t in this.pendingRemovals_?(i[r]=I,++this.pendingRemovals_[t]):(i.splice(r,1),0===i.length&&delete this.listeners_[t])}},e}(C),M={CHANGE:"change",CLEAR:"clear",CONTEXTMENU:"contextmenu",CLICK:"click",DBLCLICK:"dblclick",DRAGENTER:"dragenter",DRAGOVER:"dragover",DROP:"drop",ERROR:"error",KEYDOWN:"keydown",KEYPRESS:"keypress",LOAD:"load",MOUSEDOWN:"mousedown",MOUSEMOVE:"mousemove",MOUSEOUT:"mouseout",MOUSEUP:"mouseup",MOUSEWHEEL:"mousewheel",MSPOINTERDOWN:"MSPointerDown",RESIZE:"resize",TOUCHSTART:"touchstart",TOUCHMOVE:"touchmove",TOUCHEND:"touchend",WHEEL:"wheel"};var F=function(t){function e(){t.call(this),this.revision_=0}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.changed=function(){++this.revision_,this.dispatchEvent(M.CHANGE)},e.prototype.getRevision=function(){return this.revision_},e.prototype.on=function(t,e){if(Array.isArray(t)){for(var i=t.length,r=new Array(i),n=0;n0;)this.pop()},e.prototype.extend=function(t){for(var e=0,i=t.length;ee?1:t=0}function z(t,e,i){var r,n=t.length;if(t[0]<=e)return 0;if(e<=t[n-1])return n-1;if(i>0){for(r=1;r>>0,n=0;nn&&(h|=$.RIGHT),ao&&(h|=$.ABOVE),h===$.UNKNOWN&&(h=$.INTERSECTING),h}function ht(){return[1/0,1/0,-1/0,-1/0]}function lt(t,e,i,r,n){return n?(n[0]=t,n[1]=e,n[2]=i,n[3]=r,n):[t,e,i,r]}function ut(t){return lt(1/0,1/0,-1/0,-1/0,t)}function pt(t,e){var i=t[0],r=t[1];return lt(i,r,i,r,e)}function ct(t,e,i,r,n){return yt(ut(n),t,e,i,r)}function dt(t,e){return t[0]==e[0]&&t[2]==e[2]&&t[1]==e[1]&&t[3]==e[3]}function ft(t,e){return e[0]t[2]&&(t[2]=e[2]),e[1]t[3]&&(t[3]=e[3]),t}function _t(t,e){e[0]t[2]&&(t[2]=e[0]),e[1]t[3]&&(t[3]=e[1])}function gt(t,e){for(var i=0,r=e.length;ie[0]?r[0]=t[0]:r[0]=e[0],t[1]>e[1]?r[1]=t[1]:r[1]=e[1],t[2]=e[0]&&t[1]<=e[3]&&t[3]>=e[1]}function bt(t){return t[2]1?(i=n,r=o):h>0&&(i+=s*h,r+=a*h)}return Yt(t,e,i,r)}function Yt(t,e,i,r){var n=i-t,o=r-e;return n*n+o*o}function Bt(t){return 180*t/Math.PI}function Vt(t){return t*Math.PI/180}function Xt(t,e){var i=t%e;return i*e<0?i+e:i}function zt(t,e,i){return t+i*(e-t)} +/** + * @license + * Latitude/longitude spherical geodesy formulae taken from + * http://www.movable-type.co.uk/scripts/latlong.html + * Licensed under CC-BY-3.0. + */var Wt=6371008.8;function Kt(t,e,i){var r=i||Wt,n=Vt(t[1]),o=Vt(e[1]),s=(o-n)/2,a=Vt(e[0]-t[0])/2,h=Math.sin(s)*Math.sin(s)+Math.sin(a)*Math.sin(a)*Math.cos(n)*Math.cos(o);return 2*r*Math.atan2(Math.sqrt(h),Math.sqrt(1-h))}function Ht(t,e){for(var i=0,r=0,n=t.length;r1?i:2,o=e;void 0===o&&(o=n>2?t.slice():new Array(r));for(var s=re,a=0;as?h=s:h<-s&&(h=-s),o[a+1]=h}return o}function le(t,e,i){var r=t.length,n=i>1?i:2,o=e;void 0===o&&(o=n>2?t.slice():new Array(r));for(var s=0;s=2;--l)s[a+l]=e[a+l]}return s}}function we(t,e,i,r){var n=Ee(t),o=Ee(e);ge(n,o,Re(i)),ge(o,n,Re(r))}function Ie(t,e){if(t===e)return!0;var i=t.getUnits()===e.getUnits();return t.getCode()===e.getCode()?i:Le(t,e)===ve&&i}function Le(t,e){var i=ye(t.getCode(),e.getCode());return i||(i=me),i}function Oe(t,e){return Le(Ee(t),Ee(e))}function Pe(t,e,i){return Oe(e,i)(t,void 0,t.length)}function be(t,e,i){return Ft(t,Oe(e,i))}Te(ae),Te(de),function(t,e,i,r){t.forEach(function(t){e.forEach(function(e){ge(t,e,i),ge(e,t,r)})})}(de,ae,he,le);var Me=new Array(6);function Fe(t){return Ne(t,1,0,0,1,0,0)}function Ae(t,e){var i=t[0],r=t[1],n=t[2],o=t[3],s=t[4],a=t[5],h=e[0],l=e[1],u=e[2],p=e[3],c=e[4],d=e[5];return t[0]=i*h+n*l,t[1]=r*h+o*l,t[2]=i*u+n*p,t[3]=r*u+o*p,t[4]=i*c+n*d+s,t[5]=r*c+o*d+a,t}function Ne(t,e,i,r,n,o,s){return t[0]=e,t[1]=i,t[2]=r,t[3]=n,t[4]=o,t[5]=s,t}function Ge(t,e){return t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[4]=e[4],t[5]=e[5],t}function De(t,e){var i=e[0],r=e[1];return e[0]=t[0]*i+t[2]*r+t[4],e[1]=t[1]*i+t[3]*r+t[5],e}function ke(t,e){var i=Math.cos(e),r=Math.sin(e);return Ae(t,Ne(Me,i,r,-r,i,0,0))}function je(t,e,i){return Ae(t,Ne(Me,e,0,0,i,0,0))}function Ue(t,e,i){return Ae(t,Ne(Me,1,0,0,1,e,i))}function Ye(t,e,i,r,n,o,s,a){var h=Math.sin(o),l=Math.cos(o);return t[0]=r*l,t[1]=n*h,t[2]=-r*h,t[3]=n*l,t[4]=s*r*l-a*r*h+e,t[5]=s*n*h+a*n*l+i,t}function Be(t){var e=function(t){return t[0]*t[3]-t[1]*t[2]}(t);Y(0!==e,32);var i=t[0],r=t[1],n=t[2],o=t[3],s=t[4],a=t[5];return t[0]=o/e,t[1]=-r/e,t[2]=-n/e,t[3]=i/e,t[4]=(n*a-o*s)/e,t[5]=-(i*a-r*s)/e,t}var Ve=[1,0,0,1,0,0],Xe=function(t){function e(){t.call(this),this.extent_=[1/0,1/0,-1/0,-1/0],this.extentRevision_=-1,this.simplifiedGeometryCache={},this.simplifiedGeometryMaxMinSquaredTolerance=0,this.simplifiedGeometryRevision=0}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.clone=function(){return r()},e.prototype.closestPointXY=function(t,e,i,n){return r()},e.prototype.containsXY=function(t,e){return!1},e.prototype.getClosestPoint=function(t,e){var i=e||[NaN,NaN];return this.closestPointXY(t[0],t[1],i,1/0),i},e.prototype.intersectsCoordinate=function(t){return this.containsXY(t[0],t[1])},e.prototype.computeExtent=function(t){return r()},e.prototype.getExtent=function(t){return this.extentRevision_!=this.getRevision()&&(this.extent_=this.computeExtent(this.extent_),this.extentRevision_=this.getRevision()),function(t,e){return e?(e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],e):t}(this.extent_,t)},e.prototype.rotate=function(t,e){r()},e.prototype.scale=function(t,e,i){r()},e.prototype.simplify=function(t){return this.getSimplifiedGeometry(t*t)},e.prototype.getSimplifiedGeometry=function(t){return r()},e.prototype.getType=function(){return r()},e.prototype.applyTransform=function(t){r()},e.prototype.intersectsExtent=function(t){return r()},e.prototype.translate=function(t,e){r()},e.prototype.transform=function(t,e){var i=Ee(t),r=i.getUnits()==$t.TILE_PIXELS?function(t,r,n){var o=i.getExtent(),s=i.getWorldExtent(),a=Rt(s)/Rt(o);return Ye(Ve,s[0],s[3],a,-a,0,0,0),Gt(t,0,t.length,n,Ve,r),Oe(i,e)(t,r,n)}:Oe(i,e);return this.applyTransform(r),this},e}(D);function ze(t){var e;return t==At.XY?e=2:t==At.XYZ||t==At.XYM?e=3:t==At.XYZM&&(e=4),e}var We=function(t){function e(){t.call(this),this.layout=At.XY,this.stride=2,this.flatCoordinates=null}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.computeExtent=function(t){return ct(this.flatCoordinates,0,this.flatCoordinates.length,this.stride,t)},e.prototype.getCoordinates=function(){return r()},e.prototype.getFirstCoordinate=function(){return this.flatCoordinates.slice(0,this.stride)},e.prototype.getFlatCoordinates=function(){return this.flatCoordinates},e.prototype.getLastCoordinate=function(){return this.flatCoordinates.slice(this.flatCoordinates.length-this.stride)},e.prototype.getLayout=function(){return this.layout},e.prototype.getSimplifiedGeometry=function(t){if(this.simplifiedGeometryRevision!=this.getRevision()&&(p(this.simplifiedGeometryCache),this.simplifiedGeometryMaxMinSquaredTolerance=0,this.simplifiedGeometryRevision=this.getRevision()),t<0||0!==this.simplifiedGeometryMaxMinSquaredTolerance&&t<=this.simplifiedGeometryMaxMinSquaredTolerance)return this;var e=t.toString();if(this.simplifiedGeometryCache.hasOwnProperty(e))return this.simplifiedGeometryCache[e];var i=this.getSimplifiedGeometryInternal(t);return i.getFlatCoordinates().length1)a=i;else{if(c>0){for(var d=0;dn&&(n=l),o=a,s=h}return n}function Je(t,e,i,r,n){for(var o=0,s=i.length;o0;){for(var p=l.pop(),c=l.pop(),d=0,f=t[c],_=t[c+1],g=t[p],y=t[p+1],v=c+r;vd&&(u=v,d=m)}d>n&&(h[(u-e)/r]=1,c+r0&&_>d)&&(f<0&&g0&&g>f)?(a=p,h=c):(o[s++]=a,o[s++]=h,l=a,u=h,a=p,h=c)}}return o[s++]=a,o[s++]=h,s}function ui(t,e,i,r,n,o,s,a){for(var h=0,l=i.length;ho&&(l-a)*(o-h)-(n-a)*(u-h)>0&&s++:u<=o&&(l-a)*(o-h)-(n-a)*(u-h)<0&&s--,a=l,h=u}return 0!==s}function _i(t,e,i,r,n,o){if(0===i.length)return!1;if(!fi(t,e,i[0],r,n,o))return!1;for(var s=1,a=i.length;sx&&_i(t,e,i,r,l=(u+p)/2,f)&&(m=l,x=E),u=p}return isNaN(m)&&(m=n[o]),s?(s.push(m,f,x),s):[m,f,x]}function yi(t,e,i,r,n){for(var o=[],s=0,a=i.length;s=n[0]&&o[2]<=n[2]||(o[1]>=n[1]&&o[3]<=n[3]||vi(t,e,i,r,function(t,e){return function(t,e,i){var r=!1,n=at(t,e),o=at(t,i);if(n===$.INTERSECTING||o===$.INTERSECTING)r=!0;else{var s,a,h=t[0],l=t[1],u=t[2],p=t[3],c=e[0],d=e[1],f=i[0],_=i[1],g=(_-d)/(f-c);o&$.ABOVE&&!(n&$.ABOVE)&&(r=(s=f-(_-p)/g)>=h&&s<=u),r||!(o&$.RIGHT)||n&$.RIGHT||(r=(a=_-(f-u)*g)>=l&&a<=p),r||!(o&$.BELOW)||n&$.BELOW||(r=(s=f-(_-l)/g)>=h&&s<=u),r||!(o&$.LEFT)||n&$.LEFT||(r=(a=_-(f-h)*g)>=l&&a<=p)}return r}(n,t,e)}))))}function xi(t,e,i,r,n){if(!function(t,e,i,r,n){return!!(mi(t,e,i,r,n)||fi(t,e,i,r,n[0],n[1])||fi(t,e,i,r,n[0],n[3])||fi(t,e,i,r,n[2],n[1])||fi(t,e,i,r,n[2],n[3]))}(t,e,i[0],r,n))return!1;if(1===i.length)return!0;for(var o=1,s=i.length;o0}function Ti(t,e,i,r,n){for(var o=void 0!==n&&n,s=0,a=i.length;se?r:new Array(1+e-n).join("0")+r}function Ki(t,e){for(var i=(""+t).split("."),r=(""+e).split("."),n=0;ns)return 1;if(s>o)return-1}return 0}function Hi(t,e){return t[0]+=e[0],t[1]+=e[1],t}function Zi(t,e){var i,r,n=t[0],o=t[1],s=e[0],a=e[1],h=s[0],l=s[1],u=a[0],p=a[1],c=u-h,d=p-l,f=0===c&&0===d?0:(c*(n-h)+d*(o-l))/(c*c+d*d||0);return f<=0?(i=h,r=l):f>=1?(i=u,r=p):(i=h+f*c,r=l+f*d),[i,r]}function qi(t,e,i){var r=Xt(e+180,360)-180,n=Math.abs(3600*r),o=i||0,s=Math.pow(10,o),a=Math.floor(n/3600),h=Math.floor((n-3600*a)/60),l=n-3600*a-60*h;return(l=Math.ceil(l*s)/s)>=60&&(l=0,h+=1),h>=60&&(h=0,a+=1),a+"° "+Wi(h,2)+"′ "+Wi(l,2,o)+"″"+(0==r?"":" "+t.charAt(r<0?1:0))}function Ji(t,e,i){return t?e.replace("{x}",t[0].toFixed(i)).replace("{y}",t[1].toFixed(i)):""}function Qi(t,e){for(var i=!0,r=t.length-1;r>=0;--r)if(t[r]!=e[r]){i=!1;break}return i}function $i(t,e){var i=Math.cos(e),r=Math.sin(e),n=t[0]*i-t[1]*r,o=t[1]*i+t[0]*r;return t[0]=n,t[1]=o,t}function tr(t,e){return t[0]*=e,t[1]*=e,t}function er(t,e){var i=t[0]-e[0],r=t[1]-e[1];return i*i+r*r}function ir(t,e){return Math.sqrt(er(t,e))}function rr(t,e){return er(t,Zi(t,e))}function nr(t,e){return Ji(t,"{x}, {y}",e)}function or(t,e,i,r,n,o){var s=NaN,a=NaN,h=(i-e)/r;if(1===h)s=t[e],a=t[e+1];else if(2==h)s=(1-n)*t[e]+n*t[e+r],a=(1-n)*t[e+1]+n*t[e+r+1];else if(0!==h){for(var l=t[e],u=t[e+1],p=0,c=[0],d=e+r;d>1)],e))<0?s=r+1:(a=r,h=!n);return h?s:~s}(c,g);if(y<0){var v=(g-c[-y-2])/(c[-y-1]-c[-y-2]),m=e+(-y-2)*r;s=zt(t[m],t[m+r],v),a=zt(t[m+1],t[m+r+1],v)}else s=t[e+y*r],a=t[e+y*r+1]}return o?(o[0]=s,o[1]=a,o):[s,a]}function sr(t,e,i,r,n,o){if(i==e)return null;var s;if(n>1;n0&&g.length>0;)o=g.pop(),u=f.pop(),c=_.pop(),(h=o.toString())in y||(l.push(c[0],c[1]),y[h]=!0),s=g.pop(),p=f.pop(),d=_.pop(),Ut((n=e(r=t(a=(o+s)/2)))[0],n[1],c[0],c[1],d[0],d[1])=1024){var n=0;for(var o in t)0==(3&n++)&&(delete t[o],--e)}r=function(t){var e,i,r,n,o;cr.exec(t)&&(t=function(t){var e=document.createElement("div");if(e.style.color=t,""!==e.style.color){document.body.appendChild(e);var i=getComputedStyle(e).color;return document.body.removeChild(e),i}return""}(t));if(pr.exec(t)){var s,a=t.length-1;s=a<=4?1:2;var h=4===a||8===a;e=parseInt(t.substr(1+0*s,s),16),i=parseInt(t.substr(1+1*s,s),16),r=parseInt(t.substr(1+2*s,s),16),n=h?parseInt(t.substr(1+3*s,s),16):255,1==s&&(e=(e<<4)+e,i=(i<<4)+i,r=(r<<4)+r,h&&(n=(n<<4)+n)),o=[e,i,r,n/255]}else 0==t.indexOf("rgba(")?gr(o=t.slice(5,-1).split(",").map(Number)):0==t.indexOf("rgb(")?((o=t.slice(4,-1).split(",").map(Number)).push(1),gr(o)):Y(!1,14);return o}(i),t[i]=r,++e}return r}}();function _r(t){return Array.isArray(t)?t:fr(t)}function gr(t){return t[0]=kt(t[0]+.5|0,0,255),t[1]=kt(t[1]+.5|0,0,255),t[2]=kt(t[2]+.5|0,0,255),t[3]=kt(t[3],0,1),t}function yr(t){var e=t[0];e!=(0|e)&&(e=e+.5|0);var i=t[1];i!=(0|i)&&(i=i+.5|0);var r=t[2];return r!=(0|r)&&(r=r+.5|0),"rgba("+e+","+i+","+r+","+(void 0===t[3]?1:t[3])+")"}var vr=function(t){var e=t||{};this.color_=void 0!==e.color?e.color:null,this.checksum_=void 0};vr.prototype.clone=function(){var t=this.getColor();return new vr({color:Array.isArray(t)?t.slice():t||void 0})},vr.prototype.getColor=function(){return this.color_},vr.prototype.setColor=function(t){this.color_=t,this.checksum_=void 0},vr.prototype.getChecksum=function(){if(void 0===this.checksum_){var t=this.color_;t?Array.isArray(t)||"string"==typeof t?this.checksum_="f"+dr(t):this.checksum_=o(this.color_):this.checksum_="f-"}return this.checksum_};var mr=vr,xr=function(t){var e=t||{};this.color_=void 0!==e.color?e.color:null,this.lineCap_=e.lineCap,this.lineDash_=void 0!==e.lineDash?e.lineDash:null,this.lineDashOffset_=e.lineDashOffset,this.lineJoin_=e.lineJoin,this.miterLimit_=e.miterLimit,this.width_=e.width,this.checksum_=void 0};xr.prototype.clone=function(){var t=this.getColor();return new xr({color:Array.isArray(t)?t.slice():t||void 0,lineCap:this.getLineCap(),lineDash:this.getLineDash()?this.getLineDash().slice():void 0,lineDashOffset:this.getLineDashOffset(),lineJoin:this.getLineJoin(),miterLimit:this.getMiterLimit(),width:this.getWidth()})},xr.prototype.getColor=function(){return this.color_},xr.prototype.getLineCap=function(){return this.lineCap_},xr.prototype.getLineDash=function(){return this.lineDash_},xr.prototype.getLineDashOffset=function(){return this.lineDashOffset_},xr.prototype.getLineJoin=function(){return this.lineJoin_},xr.prototype.getMiterLimit=function(){return this.miterLimit_},xr.prototype.getWidth=function(){return this.width_},xr.prototype.setColor=function(t){this.color_=t,this.checksum_=void 0},xr.prototype.setLineCap=function(t){this.lineCap_=t,this.checksum_=void 0},xr.prototype.setLineDash=function(t){this.lineDash_=t,this.checksum_=void 0},xr.prototype.setLineDashOffset=function(t){this.lineDashOffset_=t,this.checksum_=void 0},xr.prototype.setLineJoin=function(t){this.lineJoin_=t,this.checksum_=void 0},xr.prototype.setMiterLimit=function(t){this.miterLimit_=t,this.checksum_=void 0},xr.prototype.setWidth=function(t){this.width_=t,this.checksum_=void 0},xr.prototype.getChecksum=function(){return void 0===this.checksum_&&(this.checksum_="s",this.color_?"string"==typeof this.color_?this.checksum_+=this.color_:this.checksum_+=o(this.color_):this.checksum_+="-",this.checksum_+=","+(void 0!==this.lineCap_?this.lineCap_.toString():"-")+","+(this.lineDash_?this.lineDash_.toString():"-")+","+(void 0!==this.lineDashOffset_?this.lineDashOffset_:"-")+","+(void 0!==this.lineJoin_?this.lineJoin_:"-")+","+(void 0!==this.miterLimit_?this.miterLimit_.toString():"-")+","+(void 0!==this.width_?this.width_.toString():"-")),this.checksum_};var Er=xr,Sr="point",Tr="line",Cr=function(t){var e=t||{};this.font_=e.font,this.rotation_=e.rotation,this.rotateWithView_=e.rotateWithView,this.scale_=e.scale,this.text_=e.text,this.textAlign_=e.textAlign,this.textBaseline_=e.textBaseline,this.fill_=void 0!==e.fill?e.fill:new mr({color:"#333"}),this.maxAngle_=void 0!==e.maxAngle?e.maxAngle:Math.PI/4,this.placement_=void 0!==e.placement?e.placement:Sr,this.overflow_=!!e.overflow,this.stroke_=void 0!==e.stroke?e.stroke:null,this.offsetX_=void 0!==e.offsetX?e.offsetX:0,this.offsetY_=void 0!==e.offsetY?e.offsetY:0,this.backgroundFill_=e.backgroundFill?e.backgroundFill:null,this.backgroundStroke_=e.backgroundStroke?e.backgroundStroke:null,this.padding_=void 0===e.padding?null:e.padding};Cr.prototype.clone=function(){return new Cr({font:this.getFont(),placement:this.getPlacement(),maxAngle:this.getMaxAngle(),overflow:this.getOverflow(),rotation:this.getRotation(),rotateWithView:this.getRotateWithView(),scale:this.getScale(),text:this.getText(),textAlign:this.getTextAlign(),textBaseline:this.getTextBaseline(),fill:this.getFill()?this.getFill().clone():void 0,stroke:this.getStroke()?this.getStroke().clone():void 0,offsetX:this.getOffsetX(),offsetY:this.getOffsetY(),backgroundFill:this.getBackgroundFill()?this.getBackgroundFill().clone():void 0,backgroundStroke:this.getBackgroundStroke()?this.getBackgroundStroke().clone():void 0})},Cr.prototype.getOverflow=function(){return this.overflow_},Cr.prototype.getFont=function(){return this.font_},Cr.prototype.getMaxAngle=function(){return this.maxAngle_},Cr.prototype.getPlacement=function(){return this.placement_},Cr.prototype.getOffsetX=function(){return this.offsetX_},Cr.prototype.getOffsetY=function(){return this.offsetY_},Cr.prototype.getFill=function(){return this.fill_},Cr.prototype.getRotateWithView=function(){return this.rotateWithView_},Cr.prototype.getRotation=function(){return this.rotation_},Cr.prototype.getScale=function(){return this.scale_},Cr.prototype.getStroke=function(){return this.stroke_},Cr.prototype.getText=function(){return this.text_},Cr.prototype.getTextAlign=function(){return this.textAlign_},Cr.prototype.getTextBaseline=function(){return this.textBaseline_},Cr.prototype.getBackgroundFill=function(){return this.backgroundFill_},Cr.prototype.getBackgroundStroke=function(){return this.backgroundStroke_},Cr.prototype.getPadding=function(){return this.padding_},Cr.prototype.setOverflow=function(t){this.overflow_=t},Cr.prototype.setFont=function(t){this.font_=t},Cr.prototype.setMaxAngle=function(t){this.maxAngle_=t},Cr.prototype.setOffsetX=function(t){this.offsetX_=t},Cr.prototype.setOffsetY=function(t){this.offsetY_=t},Cr.prototype.setPlacement=function(t){this.placement_=t},Cr.prototype.setFill=function(t){this.fill_=t},Cr.prototype.setRotation=function(t){this.rotation_=t},Cr.prototype.setScale=function(t){this.scale_=t},Cr.prototype.setStroke=function(t){this.stroke_=t},Cr.prototype.setText=function(t){this.text_=t},Cr.prototype.setTextAlign=function(t){this.textAlign_=t},Cr.prototype.setTextBaseline=function(t){this.textBaseline_=t},Cr.prototype.setBackgroundFill=function(t){this.backgroundFill_=t},Cr.prototype.setBackgroundStroke=function(t){this.backgroundStroke_=t},Cr.prototype.setPadding=function(t){this.padding_=t};var Rr=Cr,wr=new Er({color:"rgba(0,0,0,0.2)"}),Ir=[90,45,30,20,10,5,2,1,.5,.2,.1,.05,.01,.005,.002,.001],Lr=function(t){var e=t||{};this.map_=null,this.postcomposeListenerKey_=null,this.projection_=null,this.maxLat_=1/0,this.maxLon_=1/0,this.minLat_=-1/0,this.minLon_=-1/0,this.maxLatP_=1/0,this.maxLonP_=1/0,this.minLatP_=-1/0,this.minLonP_=-1/0,this.targetSize_=void 0!==e.targetSize?e.targetSize:100,this.maxLines_=void 0!==e.maxLines?e.maxLines:100,this.meridians_=[],this.parallels_=[],this.strokeStyle_=void 0!==e.strokeStyle?e.strokeStyle:wr,this.fromLonLatTransform_=void 0,this.toLonLatTransform_=void 0,this.projectionCenterLonLat_=null,this.meridiansLabels_=null,this.parallelsLabels_=null,1==e.showLabels&&(this.lonLabelFormatter_=void 0==e.lonLabelFormatter?qi.bind(this,"EW"):e.lonLabelFormatter,this.latLabelFormatter_=void 0==e.latLabelFormatter?qi.bind(this,"NS"):e.latLabelFormatter,this.lonLabelPosition_=void 0==e.lonLabelPosition?0:e.lonLabelPosition,this.latLabelPosition_=void 0==e.latLabelPosition?1:e.latLabelPosition,this.lonLabelStyle_=void 0!==e.lonLabelStyle?e.lonLabelStyle:new Rr({font:"12px Calibri,sans-serif",textBaseline:"bottom",fill:new mr({color:"rgba(0,0,0,1)"}),stroke:new Er({color:"rgba(255,255,255,1)",width:3})}),this.latLabelStyle_=void 0!==e.latLabelStyle?e.latLabelStyle:new Rr({font:"12px Calibri,sans-serif",textAlign:"end",fill:new mr({color:"rgba(0,0,0,1)"}),stroke:new Er({color:"rgba(255,255,255,1)",width:3})}),this.meridiansLabels_=[],this.parallelsLabels_=[]),this.intervals_=void 0!==e.intervals?e.intervals:Ir,this.setMap(void 0!==e.map?e.map:null)};Lr.prototype.addMeridian_=function(t,e,i,r,n,o){var s=this.getMeridian_(t,e,i,r,o);if(Pt(s.getExtent(),n)){if(this.meridiansLabels_){var a=this.getMeridianPoint_(s,n,o);this.meridiansLabels_[o]={geom:a,text:this.lonLabelFormatter_(t)}}this.meridians_[o++]=s}return o},Lr.prototype.getMeridianPoint_=function(t,e,i){var r,n=t.getFlatCoordinates(),o=Math.max(e[1],n[1]),s=Math.min(e[3],n[n.length-1]),a=kt(e[1]+Math.abs(e[1]-e[3])*this.lonLabelPosition_,o,s),h=[n[0],a];return i in this.meridiansLabels_?(r=this.meridiansLabels_[i].geom).setCoordinates(h):r=new ci(h),r},Lr.prototype.addParallel_=function(t,e,i,r,n,o){var s=this.getParallel_(t,e,i,r,o);if(Pt(s.getExtent(),n)){if(this.parallelsLabels_){var a=this.getParallelPoint_(s,n,o);this.parallelsLabels_[o]={geom:a,text:this.latLabelFormatter_(t)}}this.parallels_[o++]=s}return o},Lr.prototype.getParallelPoint_=function(t,e,i){var r,n=t.getFlatCoordinates(),o=Math.max(e[0],n[0]),s=Math.min(e[2],n[n.length-2]),a=[kt(e[0]+Math.abs(e[0]-e[2])*this.latLabelPosition_,o,s),n[1]];return i in this.parallelsLabels_?(r=this.parallelsLabels_[i].geom).setCoordinates(a):r=new ci(a),r},Lr.prototype.createGraticule_=function(t,e,i,r){var n=this.getInterval_(i);if(-1==n)return this.meridians_.length=this.parallels_.length=0,this.meridiansLabels_&&(this.meridiansLabels_.length=0),void(this.parallelsLabels_&&(this.parallelsLabels_.length=0));var o,s,a,h,l=this.toLonLatTransform_(e),u=l[0],p=l[1],c=this.maxLines_,d=[Math.max(t[0],this.minLonP_),Math.max(t[1],this.minLatP_),Math.min(t[2],this.maxLonP_),Math.min(t[3],this.maxLatP_)],f=(d=be(d,this.projection_,"EPSG:4326"))[3],_=d[2],g=d[1],y=d[0];for(h=kt(u=Math.floor(u/n)*n,this.minLon_,this.maxLon_),s=this.addMeridian_(h,g,f,r,t,0),o=0;h!=this.minLon_&&o++0&&this.points_[i+2]>t;)i-=3;var r=this.points_[e+2]-this.points_[i+2];if(r<1e3/60)return!1;var n=this.points_[e]-this.points_[i],o=this.points_[e+1]-this.points_[i+1];return this.angle_=Math.atan2(o,n),this.initialVelocity_=Math.sqrt(n*n+o*o)/r,this.initialVelocity_>this.minVelocity_},Pr.prototype.getDistance=function(){return(this.minVelocity_-this.initialVelocity_)/this.decay_},Pr.prototype.getAngle=function(){return this.angle_};var br=Pr,Mr=function(t){function e(e,i,r){t.call(this,e),this.map=i,this.frameState=void 0!==r?r:null}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e}(P),Fr=function(t){function e(e,i,r,n,o){t.call(this,e,i,o),this.originalEvent=r,this.pixel=i.getEventPixel(r),this.coordinate=i.getCoordinateFromPixel(this.pixel),this.dragging=void 0!==n&&n}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.preventDefault=function(){t.prototype.preventDefault.call(this),this.originalEvent.preventDefault()},e.prototype.stopPropagation=function(){t.prototype.stopPropagation.call(this),this.originalEvent.stopPropagation()},e}(Mr),Ar={SINGLECLICK:"singleclick",CLICK:M.CLICK,DBLCLICK:M.DBLCLICK,POINTERDRAG:"pointerdrag",POINTERMOVE:"pointermove",POINTERDOWN:"pointerdown",POINTERUP:"pointerup",POINTEROVER:"pointerover",POINTEROUT:"pointerout",POINTERENTER:"pointerenter",POINTERLEAVE:"pointerleave",POINTERCANCEL:"pointercancel"},Nr=function(t){function e(e,i,r,n,o){t.call(this,e,i,r.originalEvent,n,o),this.pointerEvent=r}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e}(Fr),Gr={POINTERMOVE:"pointermove",POINTERDOWN:"pointerdown",POINTERUP:"pointerup",POINTEROVER:"pointerover",POINTEROUT:"pointerout",POINTERENTER:"pointerenter",POINTERLEAVE:"pointerleave",POINTERCANCEL:"pointercancel"},Dr=function(t,e){this.dispatcher=t,this.mapping_=e};Dr.prototype.getEvents=function(){return Object.keys(this.mapping_)},Dr.prototype.getHandlerForEvent=function(t){return this.mapping_[t]};var kr=Dr,jr=1,Ur="mouse";function Yr(t){if(!this.isEventSimulatedFromTouch_(t)){jr.toString()in this.pointerMap&&this.cancel(t);var e=Wr(t,this.dispatcher);this.pointerMap[jr.toString()]=t,this.dispatcher.down(e,t)}}function Br(t){if(!this.isEventSimulatedFromTouch_(t)){var e=Wr(t,this.dispatcher);this.dispatcher.move(e,t)}}function Vr(t){if(!this.isEventSimulatedFromTouch_(t)){var e=this.pointerMap[jr.toString()];if(e&&e.button===t.button){var i=Wr(t,this.dispatcher);this.dispatcher.up(i,t),this.cleanupMouse()}}}function Xr(t){if(!this.isEventSimulatedFromTouch_(t)){var e=Wr(t,this.dispatcher);this.dispatcher.enterOver(e,t)}}function zr(t){if(!this.isEventSimulatedFromTouch_(t)){var e=Wr(t,this.dispatcher);this.dispatcher.leaveOut(e,t)}}function Wr(t,e){var i=e.cloneEvent(t,t),r=i.preventDefault;return i.preventDefault=function(){t.preventDefault(),r()},i.pointerId=jr,i.isPrimary=!0,i.pointerType=Ur,i}var Kr=function(t){function e(e){var i={mousedown:Yr,mousemove:Br,mouseup:Vr,mouseover:Xr,mouseout:zr};t.call(this,e,i),this.pointerMap=e.pointerMap,this.lastTouches=[]}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.isEventSimulatedFromTouch_=function(t){for(var e=this.lastTouches,i=t.clientX,r=t.clientY,n=0,o=e.length,s=void 0;n=e.length){for(var n=[],o=0;o-1;r&&t.splice(i,1)}(e,r)},this.dedupTimeout_)}},e}(kr),Sn=[["bubbles",!1],["cancelable",!1],["view",null],["detail",null],["screenX",0],["screenY",0],["clientX",0],["clientY",0],["ctrlKey",!1],["altKey",!1],["shiftKey",!1],["metaKey",!1],["button",0],["relatedTarget",null],["buttons",0],["pointerId",0],["width",0],["height",0],["pressure",0],["tiltX",0],["tiltY",0],["pointerType",""],["hwTimestamp",0],["isPrimary",!1],["type",""],["target",null],["currentTarget",null],["which",0]],Tn=function(t){function e(e){t.call(this),this.element_=e,this.pointerMap={},this.eventMap_={},this.eventSourceList_=[],this.registerSources()}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.registerSources=function(){if(Yi)this.registerSource("native",new dn(this));else if(Bi)this.registerSource("ms",new nn(this));else{var t=new Kr(this);this.registerSource("mouse",t),Ui&&this.registerSource("touch",new En(this,t))}this.register_()},e.prototype.registerSource=function(t,e){var i=e,r=i.getEvents();r&&(r.forEach(function(t){var e=i.getHandlerForEvent(t);e&&(this.eventMap_[t]=e.bind(i))}.bind(this)),this.eventSourceList_.push(i))},e.prototype.register_=function(){for(var t=this.eventSourceList_.length,e=0;ethis.moveTolerance_||Math.abs(t.clientY-this.down_.clientY)>this.moveTolerance_},e.prototype.disposeInternal=function(){this.relayedListenerKey_&&(E(this.relayedListenerKey_),this.relayedListenerKey_=null),this.pointerdownListenerKey_&&(E(this.pointerdownListenerKey_),this.pointerdownListenerKey_=null),this.dragListenerKeys_.forEach(E),this.dragListenerKeys_.length=0,this.documentPointerEventHandler_&&(this.documentPointerEventHandler_.dispose(),this.documentPointerEventHandler_=null),this.pointerEventHandler_&&(this.pointerEventHandler_.dispose(),this.pointerEventHandler_=null),t.prototype.disposeInternal.call(this)},e}(b),Rn="postrender",wn="movestart",In="moveend",Ln={LAYERGROUP:"layergroup",SIZE:"size",TARGET:"target",VIEW:"view"},On={IDLE:0,LOADING:1,LOADED:2,ERROR:3,EMPTY:4,ABORT:5},Pn=function(t,e){this.priorityFunction_=t,this.keyFunction_=e,this.elements_=[],this.priorities_=[],this.queuedElements_={}};Pn.prototype.clear=function(){this.elements_.length=0,this.priorities_.length=0,p(this.queuedElements_)},Pn.prototype.dequeue=function(){var t=this.elements_,e=this.priorities_,i=t[0];1==t.length?(t.length=0,e.length=0):(t[0]=t.pop(),e[0]=e.pop(),this.siftUp_(0));var r=this.keyFunction_(i);return delete this.queuedElements_[r],i},Pn.prototype.enqueue=function(t){Y(!(this.keyFunction_(t)in this.queuedElements_),31);var e=this.priorityFunction_(t);return e!=1/0&&(this.elements_.push(t),this.priorities_.push(e),this.queuedElements_[this.keyFunction_(t)]=!0,this.siftDown_(0,this.elements_.length-1),!0)},Pn.prototype.getCount=function(){return this.elements_.length},Pn.prototype.getLeftChildIndex_=function(t){return 2*t+1},Pn.prototype.getRightChildIndex_=function(t){return 2*t+2},Pn.prototype.getParentIndex_=function(t){return t-1>>1},Pn.prototype.heapify_=function(){var t;for(t=(this.elements_.length>>1)-1;t>=0;t--)this.siftUp_(t)},Pn.prototype.isEmpty=function(){return 0===this.elements_.length},Pn.prototype.isKeyQueued=function(t){return t in this.queuedElements_},Pn.prototype.isQueued=function(t){return this.isKeyQueued(this.keyFunction_(t))},Pn.prototype.siftUp_=function(t){for(var e=this.elements_,i=this.priorities_,r=e.length,n=e[t],o=i[t],s=t;t>1;){var a=this.getLeftChildIndex_(t),h=this.getRightChildIndex_(t),l=ht;){var s=this.getParentIndex_(e);if(!(r[s]>o))break;i[e]=i[s],r[e]=r[s],e=s}i[e]=n,r[e]=o},Pn.prototype.reprioritize=function(){var t,e,i,r=this.priorityFunction_,n=this.elements_,o=this.priorities_,s=0,a=n.length;for(e=0;e0;)n=(r=this.dequeue()[0]).getKey(),(i=r.getState())===On.ABORT?s=!0:i!==On.IDLE||n in this.tilesLoadingKeys_||(this.tilesLoadingKeys_[n]=!0,++this.tilesLoading_,++o,r.load());0===o&&s&&this.tileChangeCallback_()},e}(bn),Fn=42,An=256;function Nn(t){return t}function Gn(t,e){return void 0!==t?0:void 0}function Dn(t,e){return void 0!==t?t+e:void 0}var kn=0,jn=1,Un="center",Yn="resolution",Bn="rotation";function Vn(t){return Math.pow(t,3)}function Xn(t){return 1-Vn(1-t)}function zn(t){return 3*t*t-2*t*t*t}function Wn(t){return t}var Kn=0;function Hn(t,e){setTimeout(function(){t(e)},0)}function Zn(t){return!(t.sourceCenter&&t.targetCenter&&!Qi(t.sourceCenter,t.targetCenter))&&(t.sourceResolution===t.targetResolution&&t.sourceRotation===t.targetRotation)}var qn=function(t){function e(e){t.call(this);var i=u({},e);this.hints_=[0,0],this.animations_=[],this.updateAnimationKey_,this.updateAnimations_=this.updateAnimations_.bind(this),this.projection_=Ce(i.projection,"EPSG:3857"),this.applyOptions_(i)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.applyOptions_=function(t){var e={};e[Un]=void 0!==t.center?t.center:null;var i=function(t){var e,i,r,n=void 0!==t.minZoom?t.minZoom:Kn,o=void 0!==t.maxZoom?t.maxZoom:28,s=void 0!==t.zoomFactor?t.zoomFactor:2;if(void 0!==t.resolutions){var a=t.resolutions;i=a[n],r=void 0!==a[o]?a[o]:a[a.length-1],e=function(t){return function(e,i,r){if(void 0!==e){var n=z(t,e,r);n=kt(n+i,0,t.length-1);var o=Math.floor(n);if(n!=o&&o1&&"function"==typeof arguments[r-1]&&(e=arguments[r-1],--r),!this.isDef()){var n=arguments[r-1];return n.center&&this.setCenter(n.center),void 0!==n.zoom&&this.setZoom(n.zoom),void 0!==n.rotation&&this.setRotation(n.rotation),void(e&&Hn(e,!0))}for(var o=Date.now(),s=this.getCenter().slice(),a=this.getResolution(),h=this.getRotation(),l=[],u=0;u0},e.prototype.getInteracting=function(){return this.hints_[jn]>0},e.prototype.cancelAnimations=function(){this.setHint(kn,-this.hints_[kn]);for(var t=0,e=this.animations_.length;t=0;--i){for(var r=this.animations_[i],n=!0,o=0,s=r.length;o0?h/a.duration:1;l>=1?(a.complete=!0,l=1):n=!1;var u=a.easing(l);if(a.sourceCenter){var p=a.sourceCenter[0],c=a.sourceCenter[1],d=p+u*(a.targetCenter[0]-p),f=c+u*(a.targetCenter[1]-c);this.set(Un,[d,f])}if(a.sourceResolution&&a.targetResolution){var _=1===u?a.targetResolution:a.sourceResolution+u*(a.targetResolution-a.sourceResolution);a.anchor&&this.set(Un,this.calculateCenterZoom(_,a.anchor)),this.set(Yn,_)}if(void 0!==a.sourceRotation&&void 0!==a.targetRotation){var g=1===u?Xt(a.targetRotation+Math.PI,2*Math.PI)-Math.PI:a.sourceRotation+u*(a.targetRotation-a.sourceRotation);a.anchor&&this.set(Un,this.calculateCenterRotate(g,a.anchor)),this.set(Bn,g)}if(e=!0,!a.complete)break}}if(n){this.animations_[i]=null,this.setHint(kn,-1);var y=r[0].callback;y&&Hn(y,!0)}}this.animations_=this.animations_.filter(Boolean),e&&void 0===this.updateAnimationKey_&&(this.updateAnimationKey_=requestAnimationFrame(this.updateAnimations_))}},e.prototype.calculateCenterRotate=function(t,e){var i,r=this.getCenter();return void 0!==r&&($i(i=[r[0]-e[0],r[1]-e[1]],t-this.getRotation()),Hi(i,e)),i},e.prototype.calculateCenterZoom=function(t,e){var i,r=this.getCenter(),n=this.getResolution();void 0!==r&&void 0!==n&&(i=[e[0]-t*(e[0]-r[0])/n,e[1]-t*(e[1]-r[1])/n]);return i},e.prototype.getSizeFromViewport_=function(){var t=[100,100],e='.ol-viewport[data-view="'+o(this)+'"]',i=document.querySelector(e);if(i){var r=getComputedStyle(i);t[0]=parseInt(r.width,10),t[1]=parseInt(r.height,10)}return t},e.prototype.constrainCenter=function(t){return this.constraints_.center(t)},e.prototype.constrainResolution=function(t,e,i){var r=e||0,n=i||0;return this.constraints_.resolution(t,r,n)},e.prototype.constrainRotation=function(t,e){var i=e||0;return this.constraints_.rotation(t,i)},e.prototype.getCenter=function(){return this.get(Un)},e.prototype.getConstraints=function(){return this.constraints_},e.prototype.getHints=function(t){return void 0!==t?(t[0]=this.hints_[0],t[1]=this.hints_[1],t):this.hints_.slice()},e.prototype.calculateExtent=function(t){var e=t||this.getSizeFromViewport_(),i=this.getCenter();Y(i,1);var r=this.getResolution();Y(void 0!==r,2);var n=this.getRotation();return Y(void 0!==n,3),Ct(i,r,n,e)},e.prototype.getMaxResolution=function(){return this.maxResolution_},e.prototype.getMinResolution=function(){return this.minResolution_},e.prototype.getMaxZoom=function(){return this.getZoomForResolution(this.minResolution_)},e.prototype.setMaxZoom=function(t){this.applyOptions_(this.getUpdatedOptions_({maxZoom:t}))},e.prototype.getMinZoom=function(){return this.getZoomForResolution(this.maxResolution_)},e.prototype.setMinZoom=function(t){this.applyOptions_(this.getUpdatedOptions_({minZoom:t}))},e.prototype.getProjection=function(){return this.projection_},e.prototype.getResolution=function(){return this.get(Yn)},e.prototype.getResolutions=function(){return this.resolutions_},e.prototype.getResolutionForExtent=function(t,e){var i=e||this.getSizeFromViewport_(),r=Ot(t)/i[0],n=Rt(t)/i[1];return Math.max(r,n)},e.prototype.getResolutionForValueFunction=function(t){var e=t||2,i=this.maxResolution_,r=this.minResolution_,n=Math.log(i/r)/Math.log(e);return function(t){return i/Math.pow(e,t*n)}},e.prototype.getRotation=function(){return this.get(Bn)},e.prototype.getValueForResolutionFunction=function(t){var e=t||2,i=this.maxResolution_,r=this.minResolution_,n=Math.log(i/r)/Math.log(e);return function(t){return Math.log(i/t)/Math.log(e)/n}},e.prototype.getState=function(t){var e=this.getCenter(),i=this.getProjection(),r=this.getResolution(),n=r/t,o=this.getRotation();return{center:[Math.round(e[0]/n)*n,Math.round(e[1]/n)*n],projection:void 0!==i?i:null,resolution:r,rotation:o,zoom:this.getZoom()}},e.prototype.getZoom=function(){var t,e=this.getResolution();return void 0!==e&&(t=this.getZoomForResolution(e)),t},e.prototype.getZoomForResolution=function(t){var e,i,r=this.minZoom_||0;if(this.resolutions_){var n=z(this.resolutions_,t,1);r=n,e=this.resolutions_[n],i=n==this.resolutions_.length-1?2:e/this.resolutions_[n+1]}else e=this.maxResolution_,i=this.zoomFactor_;return r+Math.log(e/t)/Math.log(i)},e.prototype.getResolutionForZoom=function(t){return this.constrainResolution(this.maxResolution_,t-this.minZoom_,0)},e.prototype.fit=function(t,e){var i,r=e||{},n=r.size;n||(n=this.getSizeFromViewport_()),Y(Array.isArray(t)||"function"==typeof t.getSimplifiedGeometry,24),Array.isArray(t)?(Y(!bt(t),25),i=Oi(t)):t.getType()===Nt.CIRCLE?(i=Oi(t=t.getExtent())).rotate(this.getRotation(),Tt(t)):i=t;var o,s=void 0!==r.padding?r.padding:[0,0,0,0],a=void 0===r.constrainResolution||r.constrainResolution,h=void 0!==r.nearest&&r.nearest;o=void 0!==r.minResolution?r.minResolution:void 0!==r.maxZoom?this.constrainResolution(this.maxResolution_,r.maxZoom-this.minZoom_,0):0;for(var l=i.getFlatCoordinates(),u=this.getRotation(),p=Math.cos(-u),c=Math.sin(-u),d=1/0,f=1/0,_=-1/0,g=-1/0,y=i.getStride(),v=0,m=l.length;v=0;i--){var r=e[i];if(r.getActive())if(!r.handleEvent(t))break}}},e.prototype.handlePostRender=function(){var t=this.frameState_,e=this.tileQueue_;if(!e.isEmpty()){var i=this.maxTilesLoading_,r=i;if(t){var n=t.viewHints;n[kn]&&(i=this.loadTilesWhileAnimating_?8:0,r=2),n[jn]&&(i=this.loadTilesWhileInteracting_?8:0,r=2)}e.getTilesLoading()0&&t[1]>0}(i)&&r&&r.isDef()){for(var h=r.getHints(this.frameState_?this.frameState_.viewHints:void 0),l=this.getLayerGroup().getLayerStatesArray(),u={},p=0,c=l.length;p=t.minResolution&&e0;if(this.renderedVisible_!=i&&(this.element.style.display=i?"":"none",this.renderedVisible_=i),!Z(e,this.renderedAttributions_)){to(this.ulElement_);for(var r=0,n=e.length;r0?t.animate({rotation:0,duration:this.duration_,easing:Xn}):t.setRotation(0))},e}(uo),Ro=function(t){function e(e){var i=e||{};t.call(this,{element:document.createElement("div"),target:i.target});var r=void 0!==i.className?i.className:"ol-zoom",n=void 0!==i.delta?i.delta:1,o=void 0!==i.zoomInLabel?i.zoomInLabel:"+",s=void 0!==i.zoomOutLabel?i.zoomOutLabel:"−",a=void 0!==i.zoomInTipLabel?i.zoomInTipLabel:"Zoom in",h=void 0!==i.zoomOutTipLabel?i.zoomOutTipLabel:"Zoom out",l=document.createElement("button");l.className=r+"-in",l.setAttribute("type","button"),l.title=a,l.appendChild("string"==typeof o?document.createTextNode(o):o),v(l,M.CLICK,this.handleClick_.bind(this,n));var u=document.createElement("button");u.className=r+"-out",u.setAttribute("type","button"),u.title=h,u.appendChild("string"==typeof s?document.createTextNode(s):s),v(u,M.CLICK,this.handleClick_.bind(this,-n));var p=r+" "+fo+" "+go,c=this.element;c.className=p,c.appendChild(l),c.appendChild(u),this.duration_=void 0!==i.duration?i.duration:250}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.handleClick_=function(t,e){e.preventDefault(),this.zoomByDelta_(t)},e.prototype.zoomByDelta_=function(t){var e=this.getMap().getView();if(e){var i=e.getResolution();if(i){var r=e.constrainResolution(i,t);this.duration_>0?(e.getAnimating()&&e.cancelAnimations(),e.animate({resolution:r,duration:this.duration_,easing:Xn})):e.setResolution(r)}}},e}(uo);function wo(t){var e=t||{},i=new U;return(void 0===e.zoom||e.zoom)&&i.push(new Ro(e.zoomOptions)),(void 0===e.rotate||e.rotate)&&i.push(new Co(e.rotateOptions)),(void 0===e.attribution||e.attribution)&&i.push(new So(e.attributionOptions)),i}var Io={ACTIVE:"active"};function Lo(t,e,i,r){Oo(t,e=t.constrainRotation(e,0),i,r)}function Oo(t,e,i,r){if(void 0!==e){var n=t.getRotation(),o=t.getCenter();void 0!==n&&o&&r>0?t.animate({rotation:e,anchor:i,duration:r,easing:Xn}):t.rotate(e,i)}}function Po(t,e,i,r,n){Mo(t,e=t.constrainResolution(e,0,n),i,r)}function bo(t,e,i,r){var n=t.getResolution(),o=t.constrainResolution(n,e,0);if(void 0!==o){var s=t.getResolutions();o=kt(o,t.getMinResolution()||s[s.length-1],t.getMaxResolution()||s[0])}if(i&&void 0!==o&&o!==n){var a=t.getCenter(),h=t.calculateCenterZoom(o,i);h=t.constrainCenter(h),i=[(o*a[0]-n*h[0])/(o-n),(o*a[1]-n*h[1])/(o-n)]}Mo(t,o,i,r)}function Mo(t,e,i,r){if(e){var n=t.getResolution(),o=t.getCenter();if(void 0!==n&&o&&e!==n&&r)t.animate({resolution:e,anchor:i,duration:r,easing:Xn});else{if(i){var s=t.calculateCenterZoom(e,i);t.setCenter(s)}t.setResolution(e)}}}var Fo=function(t){function e(e){t.call(this),e.handleEvent&&(this.handleEvent=e.handleEvent),this.map_=null,this.setActive(!0)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.getActive=function(){return this.get(Io.ACTIVE)},e.prototype.getMap=function(){return this.map_},e.prototype.handleEvent=function(t){return!0},e.prototype.setActive=function(t){this.set(Io.ACTIVE,t)},e.prototype.setMap=function(t){this.map_=t},e}(D);function Ao(t){var e=!1;if(t.type==Ar.DBLCLICK){var i=t.originalEvent,r=t.map,n=t.coordinate,o=i.shiftKey?-this.delta_:this.delta_;bo(r.getView(),o,n,this.duration_),t.preventDefault(),e=!0}return!e}var No=function(t){function e(e){t.call(this,{handleEvent:Ao});var i=e||{};this.delta_=i.delta?i.delta:1,this.duration_=void 0!==i.duration?i.duration:250}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e}(Fo),Go=function(t){var e=t.originalEvent;return e.altKey&&!(e.metaKey||e.ctrlKey)&&!e.shiftKey},Do=function(t){var e=t.originalEvent;return e.altKey&&!(e.metaKey||e.ctrlKey)&&e.shiftKey},ko=function(t){return t.target.getTargetElement()===document.activeElement},jo=R,Uo=function(t){var e=t.originalEvent;return 0==e.button&&!(Ni&&Gi&&e.ctrlKey)},Yo=w,Bo=function(t){return"pointermove"==t.type},Vo=function(t){return t.type==Ar.SINGLECLICK},Xo=function(t){var e=t.originalEvent;return!e.altKey&&!(e.metaKey||e.ctrlKey)&&!e.shiftKey},zo=function(t){var e=t.originalEvent;return!e.altKey&&!(e.metaKey||e.ctrlKey)&&e.shiftKey},Wo=function(t){var e=t.originalEvent.target.tagName;return"INPUT"!==e&&"SELECT"!==e&&"TEXTAREA"!==e},Ko=function(t){var e=t.pointerEvent;return Y(void 0!==e,56),"mouse"==e.pointerType},Ho=function(t){var e=t.pointerEvent;return Y(void 0!==e,56),e.isPrimary&&0===e.button};function Zo(t){for(var e=t.length,i=0,r=0,n=0;n0}}else if(t.type==Ar.POINTERDOWN){var r=this.handleDownEvent(t);r&&t.preventDefault(),this.handlingDownUpSequence=r,e=this.stopDown(r)}else t.type==Ar.POINTERMOVE&&this.handleMoveEvent(t);return!e},e.prototype.handleMoveEvent=function(t){},e.prototype.handleUpEvent=function(t){return!1},e.prototype.stopDown=function(t){return t},e.prototype.updateTrackedPointers_=function(t){if(function(t){var e=t.type;return e===Ar.POINTERDOWN||e===Ar.POINTERDRAG||e===Ar.POINTERUP}(t)){var e=t.pointerEvent,i=e.pointerId.toString();t.type==Ar.POINTERUP?delete this.trackedPointers_[i]:t.type==Ar.POINTERDOWN?this.trackedPointers_[i]=e:i in this.trackedPointers_&&(this.trackedPointers_[i]=e),this.targetPointers=c(this.trackedPointers_)}},e}(Fo),Jo=function(t){function e(e){t.call(this,{stopDown:w});var i=e||{};this.kinetic_=i.kinetic,this.lastCentroid=null,this.lastPointersCount_,this.panning_=!1,this.condition_=i.condition?i.condition:Xo,this.noKinetic_=!1}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.handleDragEvent=function(t){this.panning_||(this.panning_=!0,this.getMap().getView().setHint(jn,1));var e=this.targetPointers,i=Zo(e);if(e.length==this.lastPointersCount_){if(this.kinetic_&&this.kinetic_.update(i[0],i[1]),this.lastCentroid){var r=this.lastCentroid[0]-i[0],n=i[1]-this.lastCentroid[1],o=t.map.getView(),s=[r,n];tr(s,o.getResolution()),$i(s,o.getRotation()),Hi(s,o.getCenter()),s=o.constrainCenter(s),o.setCenter(s)}}else this.kinetic_&&this.kinetic_.begin();this.lastCentroid=i,this.lastPointersCount_=e.length},e.prototype.handleUpEvent=function(t){var e=t.map,i=e.getView();if(0===this.targetPointers.length){if(!this.noKinetic_&&this.kinetic_&&this.kinetic_.end()){var r=this.kinetic_.getDistance(),n=this.kinetic_.getAngle(),o=i.getCenter(),s=e.getPixelFromCoordinate(o),a=e.getCoordinateFromPixel([s[0]-r*Math.cos(n),s[1]-r*Math.sin(n)]);i.animate({center:i.constrainCenter(a),duration:500,easing:Xn})}return this.panning_&&(this.panning_=!1,i.setHint(jn,-1)),!1}return this.kinetic_&&this.kinetic_.begin(),this.lastCentroid=null,!0},e.prototype.handleDownEvent=function(t){if(this.targetPointers.length>0&&this.condition_(t)){var e=t.map.getView();return this.lastCentroid=null,e.getAnimating()&&e.setCenter(t.frameState.viewState.center),this.kinetic_&&this.kinetic_.begin(),this.noKinetic_=this.targetPointers.length>1,!0}return!1},e}(qo),Qo=function(t){function e(e){var i=e||{};t.call(this,{stopDown:w}),this.condition_=i.condition?i.condition:Do,this.lastAngle_=void 0,this.duration_=void 0!==i.duration?i.duration:250}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.handleDragEvent=function(t){if(Ko(t)){var e=t.map,i=e.getView();if(i.getConstraints().rotation!==Gn){var r=e.getSize(),n=t.pixel,o=Math.atan2(r[1]/2-n[1],n[0]-r[0]/2);if(void 0!==this.lastAngle_){var s=o-this.lastAngle_;Oo(i,i.getRotation()-s)}this.lastAngle_=o}}},e.prototype.handleUpEvent=function(t){if(!Ko(t))return!0;var e=t.map.getView();return e.setHint(jn,-1),Lo(e,e.getRotation(),void 0,this.duration_),!1},e.prototype.handleDownEvent=function(t){return!!Ko(t)&&(!(!Uo(t)||!this.condition_(t))&&(t.map.getView().setHint(jn,1),this.lastAngle_=void 0,!0))},e}(qo),$o=function(t){function e(e){t.call(this),this.geometry_=null,this.element_=document.createElement("div"),this.element_.style.position="absolute",this.element_.className="ol-box "+e,this.map_=null,this.startPixel_=null,this.endPixel_=null}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.disposeInternal=function(){this.setMap(null)},e.prototype.render_=function(){var t=this.startPixel_,e=this.endPixel_,i=this.element_.style;i.left=Math.min(t[0],e[0])+"px",i.top=Math.min(t[1],e[1])+"px",i.width=Math.abs(e[0]-t[0])+"px",i.height=Math.abs(e[1]-t[1])+"px"},e.prototype.setMap=function(t){if(this.map_){this.map_.getOverlayContainer().removeChild(this.element_);var e=this.element_.style;e.left=e.top=e.width=e.height="inherit"}this.map_=t,this.map_&&this.map_.getOverlayContainer().appendChild(this.element_)},e.prototype.setPixels=function(t,e){this.startPixel_=t,this.endPixel_=e,this.createOrUpdateGeometry(),this.render_()},e.prototype.createOrUpdateGeometry=function(){var t=this.startPixel_,e=this.endPixel_,i=[t,[t[0],e[1]],e,[e[0],t[1]]].map(this.map_.getCoordinateFromPixel,this.map_);i[4]=i[0].slice(),this.geometry_?this.geometry_.setCoordinates([i]):this.geometry_=new Ii([i])},e.prototype.getGeometry=function(){return this.geometry_},e}(C),ts="boxstart",es="boxdrag",is="boxend",rs=function(t){function e(e,i,r){t.call(this,e),this.coordinate=i,this.mapBrowserEvent=r}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e}(P),ns=function(t){function e(e){t.call(this);var i=e||{};this.box_=new $o(i.className||"ol-dragbox"),this.minArea_=void 0!==i.minArea?i.minArea:64,this.onBoxEnd_=i.onBoxEnd?i.onBoxEnd:I,this.startPixel_=null,this.condition_=i.condition?i.condition:jo,this.boxEndCondition_=i.boxEndCondition?i.boxEndCondition:this.defaultBoxEndCondition}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.defaultBoxEndCondition=function(t,e,i){var r=i[0]-e[0],n=i[1]-e[1];return r*r+n*n>=this.minArea_},e.prototype.getGeometry=function(){return this.box_.getGeometry()},e.prototype.handleDragEvent=function(t){Ko(t)&&(this.box_.setPixels(this.startPixel_,t.pixel),this.dispatchEvent(new rs(es,t.coordinate,t)))},e.prototype.handleUpEvent=function(t){return!Ko(t)||(this.box_.setMap(null),this.boxEndCondition_(t,this.startPixel_,t.pixel)&&(this.onBoxEnd_(t),this.dispatchEvent(new rs(is,t.coordinate,t))),!1)},e.prototype.handleDownEvent=function(t){return!!Ko(t)&&(!(!Uo(t)||!this.condition_(t))&&(this.startPixel_=t.pixel,this.box_.setMap(t.map),this.box_.setPixels(this.startPixel_,this.startPixel_),this.dispatchEvent(new rs(ts,t.coordinate,t)),!0))},e}(qo);function os(){var t=this.getMap(),e=t.getView(),i=t.getSize(),r=this.getGeometry().getExtent();if(this.out_){var n=e.calculateExtent(i),o=function(t,e){return gt(ut(e),t)}([t.getPixelFromCoordinate(Et(r)),t.getPixelFromCoordinate(Lt(r))]);Mt(n,1/e.getResolutionForExtent(o,i)),r=n}var s=e.constrainResolution(e.getResolutionForExtent(r,i)),a=Tt(r);a=e.constrainCenter(a),e.animate({resolution:s,center:a,duration:this.duration_,easing:Xn})}var ss=function(t){function e(e){var i=e||{},r=i.condition?i.condition:zo;t.call(this,{condition:r,className:i.className||"ol-dragzoom",onBoxEnd:os}),this.duration_=void 0!==i.duration?i.duration:200,this.out_=void 0!==i.out&&i.out}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e}(ns),as={LEFT:37,UP:38,RIGHT:39,DOWN:40};function hs(t){var e=!1;if(t.type==M.KEYDOWN){var i=t.originalEvent.keyCode;if(this.condition_(t)&&(i==as.DOWN||i==as.LEFT||i==as.RIGHT||i==as.UP)){var r=t.map.getView(),n=r.getResolution()*this.pixelDelta_,o=0,s=0;i==as.DOWN?s=-n:i==as.LEFT?o=-n:i==as.RIGHT?o=n:s=n;var a=[o,s];$i(a,r.getRotation()),function(t,e,i){var r=t.getCenter();if(r){var n=t.constrainCenter([r[0]+e[0],r[1]+e[1]]);i?t.animate({duration:i,easing:Wn,center:n}):t.setCenter(n)}}(r,a,this.duration_),t.preventDefault(),e=!0}}return!e}var ls=function(t){function e(e){t.call(this,{handleEvent:hs});var i=e||{};this.defaultCondition_=function(t){return Xo(t)&&Wo(t)},this.condition_=void 0!==i.condition?i.condition:this.defaultCondition_,this.duration_=void 0!==i.duration?i.duration:100,this.pixelDelta_=void 0!==i.pixelDelta?i.pixelDelta:128}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e}(Fo);function us(t){var e=!1;if(t.type==M.KEYDOWN||t.type==M.KEYPRESS){var i=t.originalEvent.charCode;if(this.condition_(t)&&(i=="+".charCodeAt(0)||i=="-".charCodeAt(0))){var r=t.map,n=i=="+".charCodeAt(0)?this.delta_:-this.delta_;bo(r.getView(),n,void 0,this.duration_),t.preventDefault(),e=!0}}return!e}var ps=function(t){function e(e){t.call(this,{handleEvent:us});var i=e||{};this.condition_=i.condition?i.condition:Wo,this.delta_=i.delta?i.delta:1,this.duration_=void 0!==i.duration?i.duration:100}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e}(Fo),cs="trackpad",ds="wheel",fs=function(t){function e(e){var i=e||{};t.call(this,i),this.delta_=0,this.duration_=void 0!==i.duration?i.duration:250,this.timeout_=void 0!==i.timeout?i.timeout:80,this.useAnchor_=void 0===i.useAnchor||i.useAnchor,this.constrainResolution_=i.constrainResolution||!1,this.condition_=i.condition?i.condition:jo,this.lastAnchor_=null,this.startTime_=void 0,this.timeoutId_,this.mode_=void 0,this.trackpadEventGap_=400,this.trackpadTimeoutId_,this.trackpadDeltaPerZoom_=300,this.trackpadZoomBuffer_=1.5}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.decrementInteractingHint_=function(){this.trackpadTimeoutId_=void 0,this.getMap().getView().setHint(jn,-1)},e.prototype.handleEvent=function(t){if(!this.condition_(t))return!0;var e=t.type;if(e!==M.WHEEL&&e!==M.MOUSEWHEEL)return!0;t.preventDefault();var i,r=t.map,n=t.originalEvent;if(this.useAnchor_&&(this.lastAnchor_=t.coordinate),t.type==M.WHEEL?(i=n.deltaY,Fi&&n.deltaMode===WheelEvent.DOM_DELTA_PIXEL&&(i/=Di),n.deltaMode===WheelEvent.DOM_DELTA_LINE&&(i*=40)):t.type==M.MOUSEWHEEL&&(i=-n.wheelDeltaY,Ai&&(i/=3)),0===i)return!1;var o=Date.now();if(void 0===this.startTime_&&(this.startTime_=o),(!this.mode_||o-this.startTime_>this.trackpadEventGap_)&&(this.mode_=Math.abs(i)<4?cs:ds),this.mode_===cs){var s=r.getView();this.trackpadTimeoutId_?clearTimeout(this.trackpadTimeoutId_):s.setHint(jn,1),this.trackpadTimeoutId_=setTimeout(this.decrementInteractingHint_.bind(this),this.trackpadEventGap_);var a=s.getResolution()*Math.pow(2,i/this.trackpadDeltaPerZoom_),h=s.getMinResolution(),l=s.getMaxResolution(),u=0;if(al&&(a=Math.min(a,l*this.trackpadZoomBuffer_),u=-1),this.lastAnchor_){var p=s.calculateCenterZoom(a,this.lastAnchor_);s.setCenter(s.constrainCenter(p))}return s.setResolution(a),0===u&&this.constrainResolution_&&s.animate({resolution:s.constrainResolution(a,i>0?-1:1),easing:Xn,anchor:this.lastAnchor_,duration:this.duration_}),u>0?s.animate({resolution:h,easing:Xn,anchor:this.lastAnchor_,duration:500}):u<0&&s.animate({resolution:l,easing:Xn,anchor:this.lastAnchor_,duration:500}),this.startTime_=o,!1}this.delta_+=i;var c=Math.max(this.timeout_-(o-this.startTime_),0);return clearTimeout(this.timeoutId_),this.timeoutId_=setTimeout(this.handleWheelZoom_.bind(this,r),c),!1},e.prototype.handleWheelZoom_=function(t){var e=t.getView();e.getAnimating()&&e.cancelAnimations();bo(e,-kt(this.delta_,-1,1),this.lastAnchor_,this.duration_),this.mode_=void 0,this.delta_=0,this.lastAnchor_=null,this.startTime_=void 0,this.timeoutId_=void 0},e.prototype.setMouseAnchor=function(t){this.useAnchor_=t,t||(this.lastAnchor_=null)},e}(Fo),_s=function(t){function e(e){var i=e||{},r=i;r.stopDown||(r.stopDown=w),t.call(this,r),this.anchor_=null,this.lastAngle_=void 0,this.rotating_=!1,this.rotationDelta_=0,this.threshold_=void 0!==i.threshold?i.threshold:.3,this.duration_=void 0!==i.duration?i.duration:250}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.handleDragEvent=function(t){var e=0,i=this.targetPointers[0],r=this.targetPointers[1],n=Math.atan2(r.clientY-i.clientY,r.clientX-i.clientX);if(void 0!==this.lastAngle_){var o=n-this.lastAngle_;this.rotationDelta_+=o,!this.rotating_&&Math.abs(this.rotationDelta_)>this.threshold_&&(this.rotating_=!0),e=o}this.lastAngle_=n;var s=t.map,a=s.getView();if(a.getConstraints().rotation!==Gn){var h=s.getViewport().getBoundingClientRect(),l=Zo(this.targetPointers);if(l[0]-=h.left,l[1]-=h.top,this.anchor_=s.getCoordinateFromPixel(l),this.rotating_){var u=a.getRotation();s.render(),Oo(a,u+e,this.anchor_)}}},e.prototype.handleUpEvent=function(t){if(this.targetPointers.length<2){var e=t.map.getView();if(e.setHint(jn,-1),this.rotating_)Lo(e,e.getRotation(),this.anchor_,this.duration_);return!1}return!0},e.prototype.handleDownEvent=function(t){if(this.targetPointers.length>=2){var e=t.map;return this.anchor_=null,this.lastAngle_=void 0,this.rotating_=!1,this.rotationDelta_=0,this.handlingDownUpSequence||e.getView().setHint(jn,1),!0}return!1},e}(qo),gs=function(t){function e(e){var i=e||{},r=i;r.stopDown||(r.stopDown=w),t.call(this,r),this.constrainResolution_=i.constrainResolution||!1,this.anchor_=null,this.duration_=void 0!==i.duration?i.duration:400,this.lastDistance_=void 0,this.lastScaleDelta_=1}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.handleDragEvent=function(t){var e=1,i=this.targetPointers[0],r=this.targetPointers[1],n=i.clientX-r.clientX,o=i.clientY-r.clientY,s=Math.sqrt(n*n+o*o);void 0!==this.lastDistance_&&(e=this.lastDistance_/s),this.lastDistance_=s;var a=t.map,h=a.getView(),l=h.getResolution(),u=h.getMaxResolution(),p=h.getMinResolution(),c=l*e;c>u?(e=u/l,c=u):ce.getMaxResolution()){var r=this.lastScaleDelta_-1;Po(e,i,this.anchor_,this.duration_,r)}return!1}return!0},e.prototype.handleDownEvent=function(t){if(this.targetPointers.length>=2){var e=t.map;return this.anchor_=null,this.lastDistance_=void 0,this.lastScaleDelta_=1,this.handlingDownUpSequence||e.getView().setHint(jn,1),!0}return!1},e}(qo);function ys(t){var e=t||{},i=new U,r=new br(-.005,.05,100);return(void 0===e.altShiftDragRotate||e.altShiftDragRotate)&&i.push(new Qo),(void 0===e.doubleClickZoom||e.doubleClickZoom)&&i.push(new No({delta:e.zoomDelta,duration:e.zoomDuration})),(void 0===e.dragPan||e.dragPan)&&i.push(new Jo({condition:e.onFocusOnly?ko:void 0,kinetic:r})),(void 0===e.pinchRotate||e.pinchRotate)&&i.push(new _s),(void 0===e.pinchZoom||e.pinchZoom)&&i.push(new gs({constrainResolution:e.constrainResolution,duration:e.zoomDuration})),(void 0===e.keyboard||e.keyboard)&&(i.push(new ls),i.push(new ps({delta:e.zoomDelta,duration:e.zoomDuration}))),(void 0===e.mouseWheelZoom||e.mouseWheelZoom)&&i.push(new fs({condition:e.onFocusOnly?ko:void 0,constrainResolution:e.constrainResolution,duration:e.zoomDuration})),(void 0===e.shiftDragZoom||e.shiftDragZoom)&&i.push(new ss({duration:e.zoomDuration})),i}var vs=.5,ms=function(t){function e(e,i,r,n){t.call(this),this.extent=e,this.pixelRatio_=r,this.resolution=i,this.state=n}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.changed=function(){this.dispatchEvent(M.CHANGE)},e.prototype.getExtent=function(){return this.extent},e.prototype.getImage=function(){return r()},e.prototype.getPixelRatio=function(){return this.pixelRatio_},e.prototype.getResolution=function(){return this.resolution},e.prototype.getState=function(){return this.state},e.prototype.load=function(){r()},e}(b),xs={IDLE:0,LOADING:1,LOADED:2,ERROR:3},Es=function(t){function e(e,i,r,n,o){var s=void 0!==o?xs.IDLE:xs.LOADED;t.call(this,e,i,r,s),this.loader_=void 0!==o?o:null,this.canvas_=n,this.error_=null}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.getError=function(){return this.error_},e.prototype.handleLoad_=function(t){t?(this.error_=t,this.state=xs.ERROR):this.state=xs.LOADED,this.changed()},e.prototype.load=function(){this.state==xs.IDLE&&(this.state=xs.LOADING,this.changed(),this.loader_(this.handleLoad_.bind(this)))},e.prototype.getImage=function(){return this.canvas_},e}(ms),Ss={IMAGE:"IMAGE",TILE:"TILE",VECTOR_TILE:"VECTOR_TILE",VECTOR:"VECTOR"},Ts={IMAGE:"image",VECTOR:"vector"},Cs=function(t){function e(e,i,r,n,o){t.call(this,e),this.vectorContext=i,this.frameState=r,this.context=n,this.glContext=o}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e}(P),Rs=function(t){function e(e){t.call(this),this.highWaterMark=void 0!==e?e:2048,this.count_=0,this.entries_={},this.oldest_=null,this.newest_=null}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.canExpireCache=function(){return this.getCount()>this.highWaterMark},e.prototype.clear=function(){this.count_=0,this.entries_={},this.oldest_=null,this.newest_=null,this.dispatchEvent(M.CLEAR)},e.prototype.containsKey=function(t){return this.entries_.hasOwnProperty(t)},e.prototype.forEach=function(t,e){for(var i=this.oldest_;i;)t.call(e,i.value_,i.key_,this),i=i.newer},e.prototype.get=function(t){var e=this.entries_[t];return Y(void 0!==e,15),e===this.newest_?e.value_:(e===this.oldest_?(this.oldest_=this.oldest_.newer,this.oldest_.older=null):(e.newer.older=e.older,e.older.newer=e.newer),e.newer=null,e.older=this.newest_,this.newest_.newer=e,this.newest_=e,e.value_)},e.prototype.remove=function(t){var e=this.entries_[t];return Y(void 0!==e,15),e===this.newest_?(this.newest_=e.older,this.newest_&&(this.newest_.newer=null)):e===this.oldest_?(this.oldest_=e.newer,this.oldest_&&(this.oldest_.older=null)):(e.newer.older=e.older,e.older.newer=e.newer),delete this.entries_[t],--this.count_,e.value_},e.prototype.getCount=function(){return this.count_},e.prototype.getKeys=function(){var t,e=new Array(this.count_),i=0;for(t=this.newest_;t;t=t.older)e[i++]=t.key_;return e},e.prototype.getValues=function(){var t,e=new Array(this.count_),i=0;for(t=this.newest_;t;t=t.older)e[i++]=t.value_;return e},e.prototype.peekLast=function(){return this.oldest_.value_},e.prototype.peekLastKey=function(){return this.oldest_.key_},e.prototype.peekFirstKey=function(){return this.newest_.key_},e.prototype.pop=function(){var t=this.oldest_;return delete this.entries_[t.key_],t.newer&&(t.newer.older=null),this.oldest_=t.newer,this.oldest_||(this.newest_=null),--this.count_,t.value_},e.prototype.replace=function(t,e){this.get(t),this.entries_[t].value_=e},e.prototype.set=function(t,e){Y(!(t in this.entries_),16);var i={key_:t,newer:null,older:this.newest_,value_:e};this.newest_?this.newest_.newer=i:this.oldest_=i,this.newest_=i,this.entries_[t]=i,++this.count_},e.prototype.setSize=function(t){this.highWaterMark=t},e.prototype.prune=function(){for(;this.canExpireCache();)this.pop()},e}(b),ws=[0,0,0,1],Is=[],Ls=[0,0,0,1],Os=[0,0,0,0],Ps=new Rs,bs={},Ms=null,Fs={},As=function(){var t,e,i=60,r=bs,n="32px ",o=["monospace","serif"],s=o.length,a="wmytzilWMYTZIL@#/&?$%10";function h(t){for(var i=Ns(),r=100;r<=700;r+=300){for(var h=r+" ",l=!0,u=0;uthis.maxCacheSize_){var t=0;for(var e in this.cache_){var i=this.cache_[e];0!=(3&t++)||i.hasListener()||(delete this.cache_[e],--this.cacheSize_)}}},zs.prototype.get=function(t,e,i){var r=Ws(t,e,i);return r in this.cache_?this.cache_[r]:null},zs.prototype.set=function(t,e,i,r){var n=Ws(t,e,i);this.cache_[n]=r,++this.cacheSize_},zs.prototype.setSize=function(t){this.maxCacheSize_=t,this.expire()};var Ks=new zs;function Hs(t,e){Ks.expire()}function Zs(t,e){return t.zIndex-e.zIndex}var qs=function(t){function e(e){t.call(this),this.map_=e,this.layerRenderers_={},this.layerRendererListeners_={},this.layerRendererConstructors_=[]}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.dispatchRenderEvent=function(t,e){r()},e.prototype.registerLayerRenderers=function(t){this.layerRendererConstructors_.push.apply(this.layerRendererConstructors_,t)},e.prototype.calculateMatrices2D=function(t){var e=t.viewState,i=t.coordinateToPixelTransform,r=t.pixelToCoordinateTransform;Ye(i,t.size[0]/2,t.size[1]/2,1/e.resolution,-1/e.resolution,-e.rotation,-e.center[0],-e.center[1]),Be(Ge(r,i))},e.prototype.removeLayerRenderers=function(){for(var t in this.layerRenderers_)this.removeLayerRendererByKey_(t).dispose()},e.prototype.forEachFeatureAtCoordinate=function(t,e,i,r,n,s,a){var h,l=e.viewState,u=l.resolution;function p(t,i){var s=e.layerStates[o(i)].managed;if(!(o(t)in e.skippedFeatureUids)||s)return r.call(n,t,s?i:null)}var c=l.projection,d=t;if(c.canWrapX()){var f=c.getExtent(),_=Ot(f),g=t[0];if(gf[2])d=[g+_*Math.ceil((f[0]-g)/_),t[1]]}var y,v=e.layerStatesArray;for(y=v.length-1;y>=0;--y){var m=v[y],x=m.layer;if(mo(m,u)&&s.call(a,x)){var E=this.getLayerRenderer(x),S=x.getSource();if(S&&(h=E.forEachFeatureAtCoordinate(S.getWrapX()?d:t,e,i,p)),h)return h}}},e.prototype.forEachLayerAtPixel=function(t,e,i,n,o,s,a){return r()},e.prototype.hasFeatureAtCoordinate=function(t,e,i,r,n){return void 0!==this.forEachFeatureAtCoordinate(t,e,i,R,this,r,n)},e.prototype.getLayerRenderer=function(t){var e=o(t);if(e in this.layerRenderers_)return this.layerRenderers_[e];for(var i,r=0,n=this.layerRendererConstructors_.length;r=0;--h){var d=u[h],f=d.layer;if(mo(d,l)&&o.call(s,f))if(a=this.getLayerRenderer(f).forEachLayerAtCoordinate(c,e,i,r,n))return a}},e.prototype.registerLayerRenderers=function(e){t.prototype.registerLayerRenderers.call(this,e);for(var i=0,r=e.length;i=.5&&p>=.5&&i.drawImage(r,0,0,+r.width,+r.height,Math.round(h),Math.round(l),Math.round(u),Math.round(p)),i.globalAlpha=a,o&&i.restore()}this.postCompose(i,t,e)},e.prototype.getImage=function(){return r()},e.prototype.getImageTransform=function(){return r()},e.prototype.forEachLayerAtCoordinate=function(t,e,i,r,n){if(this.getImage()){var o=De(this.coordinateToCanvasPixelTransform,t.slice());tr(o,e.viewState.resolution/this.renderedResolution),this.hitCanvasContext_||(this.hitCanvasContext_=Jn(1,1)),this.hitCanvasContext_.clearRect(0,0,1,1),this.hitCanvasContext_.drawImage(this.getImage(),o[0],o[1],1,1,0,0,1,1);var s=this.hitCanvasContext_.getImageData(0,0,1,1).data;return s[3]>0?r.call(n,this.getLayer(),s):void 0}},e}(ta),ia=function(t){function e(i){if(t.call(this,i),this.image_=null,this.imageTransform_=[1,0,0,1,0,0],this.skippedFeatures_=[],this.vectorRenderer_=null,i.getType()===Ss.VECTOR)for(var r=0,n=Js.length;rthis.maxX&&(this.maxX=t.maxX),t.minYthis.maxY&&(this.maxY=t.maxY)},na.prototype.getHeight=function(){return this.maxY-this.minY+1},na.prototype.getSize=function(){return[this.getWidth(),this.getHeight()]},na.prototype.getWidth=function(){return this.maxX-this.minX+1},na.prototype.intersects=function(t){return this.minX<=t.maxX&&this.maxX>=t.minX&&this.minY<=t.maxY&&this.maxY>=t.minY};var sa=na,aa=function(t){function e(e,i){t.call(this,e),this.context=i?null:Jn(),this.oversampling_,this.renderedExtent_=null,this.renderedRevision,this.renderedTiles=[],this.newTiles_=!1,this.tmpExtent=[1/0,1/0,-1/0,-1/0],this.tmpTileRange_=new sa(0,0,0,0),this.imageTransform_=[1,0,0,1,0,0],this.zDirection=0}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.isDrawableTile_=function(t){var e=this.getLayer(),i=t.getState(),r=e.getUseInterimTilesOnError();return i==On.LOADED||i==On.EMPTY||i==On.ERROR&&!r},e.prototype.getTile=function(t,e,i,r,n){var o=this.getLayer(),s=o.getSource().getTile(t,e,i,r,n);return s.getState()==On.ERROR&&(o.getUseInterimTilesOnError()?o.getPreload()>0&&(this.newTiles_=!0):s.setState(On.LOADED)),this.isDrawableTile_(s)||(s=s.getInterimTile()),s},e.prototype.prepareFrame=function(t,e){var i=t.pixelRatio,r=t.size,n=t.viewState,s=n.projection,a=n.resolution,h=n.center,l=this.getLayer(),u=l.getSource(),p=u.getRevision(),c=u.getTileGridForProjection(s),d=c.getZForResolution(a,this.zDirection),f=c.getResolution(d),_=Math.round(a/f)||1,g=t.extent;if(void 0!==e.extent&&(g=wt(g,e.extent)),bt(g))return!1;var y=c.getTileRangeForExtentAndZ(g,d),v=c.getTileRangeExtent(d,y),m=u.getTilePixelRatio(i),x={};x[d]={};var E,S,T,C=this.createLoadedTileFinder(u,s,x),R=t.viewHints,w=R[kn]||R[jn],I=this.tmpExtent,L=this.tmpTileRange_;for(this.newTiles_=!1,S=y.minX;S<=y.maxX;++S)for(T=y.minY;T<=y.maxY;++T)if(!(Date.now()-t.time>16&&w)){if(E=this.getTile(d,S,T,i,s),this.isDrawableTile_(E)){var O=o(this);if(E.getState()==On.LOADED){x[d][E.tileCoord.toString()]=E;var P=E.inTransition(O);this.newTiles_||!P&&-1!==this.renderedTiles.indexOf(E)||(this.newTiles_=!0)}if(1===E.getAlpha(O,t.time))continue}var b=c.getTileCoordChildTileRange(E.tileCoord,L,I),M=!1;b&&(M=C(d+1,b)),M||c.forEachTileCoordParentTileRange(E.tileCoord,C,null,L,I)}var F=f*i/m*_;if(!(this.renderedResolution&&Date.now()-t.time>16&&w)&&(this.newTiles_||!this.renderedExtent_||!ot(this.renderedExtent_,g)||this.renderedRevision!=p||_!=this.oversampling_||!w&&F!=this.renderedResolution)){var A=this.context;if(A){var N=u.getTilePixelSize(d,i,s),G=Math.round(y.getWidth()*N[0]/_),D=Math.round(y.getHeight()*N[1]/_),k=A.canvas;k.width!=G||k.height!=D?(this.oversampling_=_,k.width=G,k.height=D):(this.renderedExtent_&&!dt(v,this.renderedExtent_)&&A.clearRect(0,0,G,D),_=this.oversampling_)}this.renderedTiles.length=0;var j,U,Y,B,V,X,z,W,K,H,Z=Object.keys(x).map(Number);for(Z.sort(function(t,e){return t===d?1:e===d?-1:t>e?1:t0},e.prototype.drawTileImage=function(t,e,i,r,n,s,a,h,l){var u=this.getTileImage(t);if(u){var p=o(this),c=l?t.getAlpha(p,e.time):1,d=this.getLayer().getSource();1!==c||d.getOpaque(e.viewState.projection)||this.context.clearRect(r,n,s,a);var f=c!==this.context.globalAlpha;f&&(this.context.save(),this.context.globalAlpha=c),this.context.drawImage(u,h,h,u.width-2*h,u.height-2*h,r,n,s,a),f&&this.context.restore(),1!==c?e.animate=!0:l&&t.endTransition(p)}},e.prototype.getImage=function(){var t=this.context;return t?t.canvas:null},e.prototype.getImageTransform=function(){return this.imageTransform_},e.prototype.getTileImage=function(t){return t.getImage()},e}(ea);aa.handles=function(t){return t.getType()===Ss.TILE},aa.create=function(t,e){return new aa(e)},aa.prototype.getLayer;var ha=aa,la=i(0),ua=i.n(la),pa=function(){};pa.prototype.getReplay=function(t,e){return r()},pa.prototype.isEmpty=function(){return r()},pa.prototype.addDeclutter=function(t){return r()};var ca=pa,da={CIRCLE:"Circle",DEFAULT:"Default",IMAGE:"Image",LINE_STRING:"LineString",POLYGON:"Polygon",TEXT:"Text"};function fa(t,e,i,r,n,o,s,a){for(var h,l,u,p=[],c=t[e]>t[i-r],d=n.length,f=t[e],_=t[e+1],g=t[e+=r],y=t[e+1],v=0,m=Math.sqrt(Math.pow(g-f,2)+Math.pow(y-_,2)),x="",E=0,S=0;S0?-Math.PI:Math.PI),void 0!==u){var L=I-u;if(L+=L>Math.PI?-2*Math.PI:L<-Math.PI?2*Math.PI:0,Math.abs(L)>a)return null}var O=w/m,P=zt(f,g,O),b=zt(_,y,O);u==I?(c&&(h[0]=P,h[1]=b,h[2]=C/2),h[4]=x):(E=C,h=[P,b,C/2,I,x=T],c?p.unshift(h):p.push(h),u=I),s+=C}return p}var _a={BEGIN_GEOMETRY:0,BEGIN_PATH:1,CIRCLE:2,CLOSE_PATH:3,CUSTOM:4,DRAW_CHARS:5,DRAW_IMAGE:6,END_GEOMETRY:7,FILL:8,MOVE_TO_LINE_TO:9,SET_FILL_STYLE:10,SET_STROKE_STYLE:11,STROKE:12},ga=[_a.FILL],ya=[_a.STROKE],va=[_a.BEGIN_PATH],ma=[_a.CLOSE_PATH],xa=_a,Ea=[da.POLYGON,da.CIRCLE,da.LINE_STRING,da.IMAGE,da.TEXT,da.DEFAULT],Sa={left:0,end:0,center:.5,right:1,start:1,top:0,middle:.5,hanging:.2,alphabetic:.8,ideographic:.8,bottom:1},Ta=[1/0,1/0,-1/0,-1/0],Ca=[1,0,0,1,0,0],Ra=function(t){function e(e,i,r,n,o,s){t.call(this),this.declutterTree=s,this.tolerance=e,this.maxExtent=i,this.overlaps=o,this.pixelRatio=n,this.maxLineWidth=0,this.resolution=r,this.alignFill_,this.beginGeometryInstruction1_=null,this.beginGeometryInstruction2_=null,this.bufferedMaxExtent_=null,this.instructions=[],this.coordinates=[],this.coordinateCache_={},this.renderedTransform_=[1,0,0,1,0,0],this.hitDetectionInstructions=[],this.pixelCoordinates_=null,this.state={},this.viewRotation_=0}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.replayTextBackground_=function(t,e,i,r,n,o,s){t.beginPath(),t.moveTo.apply(t,e),t.lineTo.apply(t,i),t.lineTo.apply(t,r),t.lineTo.apply(t,n),t.lineTo.apply(t,e),o&&(this.alignFill_=o[2],this.fill_(t)),s&&(this.setStrokeStyle_(t,s),t.stroke())},e.prototype.replayImage_=function(t,e,i,r,n,o,s,a,h,l,u,p,c,d,f,_,g,y){var v=g||y;e-=n*=c,i-=o*=c;var m,x,E,S,T=f+l>r.width?r.width-l:f,C=a+u>r.height?r.height-u:a,R=_[3]+T*c+_[1],w=_[0]+C*c+_[2],I=e-_[3],L=i-_[0];(v||0!==p)&&(m=[I,L],x=[I+R,L],E=[I+R,L+w],S=[I,L+w]);var O=null;if(0!==p){var P=e+n,b=i+o;O=Ye(Ca,P,b,1,1,p,-P,-b),ut(Ta),_t(Ta,De(Ca,m)),_t(Ta,De(Ca,x)),_t(Ta,De(Ca,E)),_t(Ta,De(Ca,S))}else lt(I,L,I+R,L+w,Ta);var M=t.canvas,F=y?y[2]*c/2:0,A=Ta[0]-F<=M.width&&Ta[2]+F>=0&&Ta[1]-F<=M.height&&Ta[3]+F>=0;if(d&&(e=Math.round(e),i=Math.round(i)),s){if(!A&&1==s[4])return;ft(s,Ta);var N=A?[t,O?O.slice(0):null,h,r,l,u,T,C,e,i,c]:null;N&&v&&N.push(g,y,m,x,E,S),s.push(N)}else A&&(v&&this.replayTextBackground_(t,m,x,E,S,g,y),Us(t,O,h,r,l,u,T,C,e,i,c))},e.prototype.applyPixelRatio=function(t){var e=this.pixelRatio;return 1==e?t:t.map(function(t){return t*e})},e.prototype.appendFlatCoordinates=function(t,e,i,r,n,o){var s=this.coordinates.length,a=this.getBufferedMaxExtent();o&&(e+=r);var h,l,u,p=[t[e],t[e+1]],c=[NaN,NaN],d=!0;for(h=e+r;h5){var i=t[4];if(1==i||i==t.length-5){var r={minX:t[0],minY:t[1],maxX:t[2],maxY:t[3],value:e};if(!this.declutterTree.collides(r)){this.declutterTree.insert(r);for(var n=5,o=t.length;n11&&this.replayTextBackground_(s[0],s[13],s[14],s[15],s[16],s[11],s[12]),Us.apply(void 0,s))}}t.length=5,ut(t)}}},e.prototype.replay_=function(t,e,i,r,n,s,a){var h;this.pixelCoordinates_&&Z(e,this.renderedTransform_)?h=this.pixelCoordinates_:(this.pixelCoordinates_||(this.pixelCoordinates_=[]),h=Gt(this.coordinates,0,this.coordinates.length,2,e,this.pixelCoordinates_),Ge(this.renderedTransform_,e));for(var l,u,p,c,f,_,g,y,v,m,x,E,S=!d(i),T=0,C=r.length,R=0,w=0,I=0,L=null,O=null,P=this.coordinateCache_,b=this.viewRotation_,M={context:t,pixelRatio:this.pixelRatio,resolution:this.resolution,rotation:b},F=this.instructions!=r||this.overlaps?0:200;TF&&(this.fill_(t),w=0),I>F&&(t.stroke(),I=0),w||I||(t.beginPath(),c=f=NaN),++T;break;case xa.CIRCLE:var N=h[R=A[1]],G=h[R+1],D=h[R+2]-N,k=h[R+3]-G,j=Math.sqrt(D*D+k*k);t.moveTo(N+j,G),t.arc(N,G,j,0,2*Math.PI,!0),++T;break;case xa.CLOSE_PATH:t.closePath(),++T;break;case xa.CUSTOM:R=A[1],l=A[2];var U=A[3],Y=A[4],B=6==A.length?A[5]:void 0;M.geometry=U,M.feature=m,T in P||(P[T]=[]);var V=P[T];B?B(h,R,l,2,V):(V[0]=h[R],V[1]=h[R+1],V.length=2),Y(V,M),++T;break;case xa.DRAW_IMAGE:R=A[1],l=A[2],v=A[3],u=A[4],p=A[5],y=s?null:A[6];var X=A[7],z=A[8],W=A[9],K=A[10],H=A[11],q=A[12],J=A[13],Q=A[14],$=void 0,tt=void 0,et=void 0;for(A.length>16?($=A[15],tt=A[16],et=A[17]):($=Os,tt=et=!1),H&&(q+=b);Rthis.maxLineWidth&&(this.maxLineWidth=i.lineWidth,this.bufferedMaxExtent_=null)}else i.strokeStyle=void 0,i.lineCap=void 0,i.lineDash=null,i.lineDashOffset=void 0,i.lineJoin=void 0,i.lineWidth=void 0,i.miterLimit=void 0},e.prototype.createFill=function(t,e){var i=t.fillStyle,r=[xa.SET_FILL_STYLE,i];return"string"!=typeof i&&r.push(!0),r},e.prototype.applyStroke=function(t){this.instructions.push(this.createStroke(t))},e.prototype.createStroke=function(t){return[xa.SET_STROKE_STYLE,t.strokeStyle,t.lineWidth*this.pixelRatio,t.lineCap,t.lineJoin,t.miterLimit,this.applyPixelRatio(t.lineDash),t.lineDashOffset*this.pixelRatio]},e.prototype.updateFillStyle=function(t,e,i){var r=t.fillStyle;"string"==typeof r&&t.currentFillStyle==r||(void 0!==r&&this.instructions.push(e.call(this,t,i)),t.currentFillStyle=r)},e.prototype.updateStrokeStyle=function(t,e){var i=t.strokeStyle,r=t.lineCap,n=t.lineDash,o=t.lineDashOffset,s=t.lineJoin,a=t.lineWidth,h=t.miterLimit;(t.currentStrokeStyle!=i||t.currentLineCap!=r||n!=t.currentLineDash&&!Z(t.currentLineDash,n)||t.currentLineDashOffset!=o||t.currentLineJoin!=s||t.currentLineWidth!=a||t.currentMiterLimit!=h)&&(void 0!==i&&e.call(this,t),t.currentStrokeStyle=i,t.currentLineCap=r,t.currentLineDash=n,t.currentLineDashOffset=o,t.currentLineJoin=s,t.currentLineWidth=a,t.currentMiterLimit=h)},e.prototype.endGeometry=function(t,e){this.beginGeometryInstruction1_[2]=this.instructions.length,this.beginGeometryInstruction1_=null,this.beginGeometryInstruction2_[2]=this.hitDetectionInstructions.length,this.beginGeometryInstruction2_=null;var i=[xa.END_GEOMETRY,e];this.instructions.push(i),this.hitDetectionInstructions.push(i)},e.prototype.getBufferedMaxExtent=function(){if(!this.bufferedMaxExtent_&&(this.bufferedMaxExtent_=it(this.maxExtent),this.maxLineWidth>0)){var t=this.resolution*(this.maxLineWidth+1)/2;et(this.bufferedMaxExtent_,t,this.bufferedMaxExtent_)}return this.bufferedMaxExtent_},e}(Vs),wa=function(t){function e(e,i,r,n,o,s){t.call(this,e,i,r,n,o,s),this.declutterGroup_=null,this.hitDetectionImage_=null,this.image_=null,this.anchorX_=void 0,this.anchorY_=void 0,this.height_=void 0,this.opacity_=void 0,this.originX_=void 0,this.originY_=void 0,this.rotateWithView_=void 0,this.rotation_=void 0,this.scale_=void 0,this.width_=void 0}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.drawCoordinates_=function(t,e,i,r){return this.appendFlatCoordinates(t,e,i,r,!1,!1)},e.prototype.drawPoint=function(t,e){if(this.image_){this.beginGeometry(t,e);var i=t.getFlatCoordinates(),r=t.getStride(),n=this.coordinates.length,o=this.drawCoordinates_(i,0,i.length,r);this.instructions.push([xa.DRAW_IMAGE,n,o,this.image_,this.anchorX_,this.anchorY_,this.declutterGroup_,this.height_,this.opacity_,this.originX_,this.originY_,this.rotateWithView_,this.rotation_,this.scale_*this.pixelRatio,this.width_]),this.hitDetectionInstructions.push([xa.DRAW_IMAGE,n,o,this.hitDetectionImage_,this.anchorX_,this.anchorY_,this.declutterGroup_,this.height_,this.opacity_,this.originX_,this.originY_,this.rotateWithView_,this.rotation_,this.scale_,this.width_]),this.endGeometry(t,e)}},e.prototype.drawMultiPoint=function(t,e){if(this.image_){this.beginGeometry(t,e);var i=t.getFlatCoordinates(),r=t.getStride(),n=this.coordinates.length,o=this.drawCoordinates_(i,0,i.length,r);this.instructions.push([xa.DRAW_IMAGE,n,o,this.image_,this.anchorX_,this.anchorY_,this.declutterGroup_,this.height_,this.opacity_,this.originX_,this.originY_,this.rotateWithView_,this.rotation_,this.scale_*this.pixelRatio,this.width_]),this.hitDetectionInstructions.push([xa.DRAW_IMAGE,n,o,this.hitDetectionImage_,this.anchorX_,this.anchorY_,this.declutterGroup_,this.height_,this.opacity_,this.originX_,this.originY_,this.rotateWithView_,this.rotation_,this.scale_,this.width_]),this.endGeometry(t,e)}},e.prototype.finish=function(){this.reverseHitDetectionInstructions(),this.anchorX_=void 0,this.anchorY_=void 0,this.hitDetectionImage_=null,this.image_=null,this.height_=void 0,this.scale_=void 0,this.opacity_=void 0,this.originX_=void 0,this.originY_=void 0,this.rotateWithView_=void 0,this.rotation_=void 0,this.width_=void 0},e.prototype.setImageStyle=function(t,e){var i=t.getAnchor(),r=t.getSize(),n=t.getHitDetectionImage(1),o=t.getImage(1),s=t.getOrigin();this.anchorX_=i[0],this.anchorY_=i[1],this.declutterGroup_=e,this.hitDetectionImage_=n,this.image_=o,this.height_=r[1],this.opacity_=t.getOpacity(),this.originX_=s[0],this.originY_=s[1],this.rotateWithView_=t.getRotateWithView(),this.rotation_=t.getRotation(),this.scale_=t.getScale(),this.width_=r[0]},e}(Ra),Ia=function(t){function e(e,i,r,n,o,s){t.call(this,e,i,r,n,o,s)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.drawFlatCoordinates_=function(t,e,i,r){var n=this.coordinates.length,o=this.appendFlatCoordinates(t,e,i,r,!1,!1),s=[xa.MOVE_TO_LINE_TO,n,o];return this.instructions.push(s),this.hitDetectionInstructions.push(s),i},e.prototype.drawLineString=function(t,e){var i=this.state,r=i.strokeStyle,n=i.lineWidth;if(void 0!==r&&void 0!==n){this.updateStrokeStyle(i,this.applyStroke),this.beginGeometry(t,e),this.hitDetectionInstructions.push([xa.SET_STROKE_STYLE,i.strokeStyle,i.lineWidth,i.lineCap,i.lineJoin,i.miterLimit,i.lineDash,i.lineDashOffset],va);var o=t.getFlatCoordinates(),s=t.getStride();this.drawFlatCoordinates_(o,0,o.length,s),this.hitDetectionInstructions.push(ya),this.endGeometry(t,e)}},e.prototype.drawMultiLineString=function(t,e){var i=this.state,r=i.strokeStyle,n=i.lineWidth;if(void 0!==r&&void 0!==n){this.updateStrokeStyle(i,this.applyStroke),this.beginGeometry(t,e),this.hitDetectionInstructions.push([xa.SET_STROKE_STYLE,i.strokeStyle,i.lineWidth,i.lineCap,i.lineJoin,i.miterLimit,i.lineDash,i.lineDashOffset],va);for(var o=t.getEnds(),s=t.getFlatCoordinates(),a=t.getStride(),h=0,l=0,u=o.length;lt&&(y>g&&(g=y,f=v,_=o),y=0,v=o-n)),s=a,u=c,p=d),h=m,l=x}return(y+=a)>g?[v,o]:[f,_]}var Pa={Circle:La,Default:Ra,Image:wa,LineString:Ia,Polygon:La,Text:function(t){function e(e,i,r,n,o,s){t.call(this,e,i,r,n,o,s),this.declutterGroup_,this.labels_=null,this.text_="",this.textOffsetX_=0,this.textOffsetY_=0,this.textRotateWithView_=void 0,this.textRotation_=0,this.textFillState_=null,this.fillStates={},this.textStrokeState_=null,this.strokeStates={},this.textState_={},this.textStates={},this.textKey_="",this.fillKey_="",this.strokeKey_="",this.widths_={},Ps.prune()}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.drawText=function(t,e){var i=this.textFillState_,r=this.textStrokeState_,n=this.textState_;if(""!==this.text_&&n&&(i||r)){var o,s,a=this.coordinates.length,h=t.getType(),l=null,u=2,p=2;if(n.placement===Tr){if(!Pt(this.getBufferedMaxExtent(),t.getExtent()))return;var c;if(l=t.getFlatCoordinates(),p=t.getStride(),h==Nt.LINE_STRING)c=[l.length];else if(h==Nt.MULTI_LINE_STRING)c=t.getEnds();else if(h==Nt.POLYGON)c=t.getEnds().slice(0,1);else if(h==Nt.MULTI_POLYGON){var d=t.getEndss();for(c=[],o=0,s=d.length;o=E)&&l.push(S[o],S[o+1]);if(0==(u=l.length))return}u=this.appendFlatCoordinates(l,0,u,p,!1,!1),(n.backgroundFill||n.backgroundStroke)&&(this.setFillStrokeStyle(n.backgroundFill,n.backgroundStroke),n.backgroundFill&&(this.updateFillStyle(this.state,this.createFill,t),this.hitDetectionInstructions.push(this.createFill(this.state,t))),n.backgroundStroke&&(this.updateStrokeStyle(this.state,this.applyStroke),this.hitDetectionInstructions.push(this.createStroke(this.state)))),this.beginGeometry(t,e),this.drawTextImage_(x,a,u),this.endGeometry(t,e)}}},e.prototype.getImage=function(t,e,i,r){var n,o=r+e+t+i+this.pixelRatio;if(!Ps.containsKey(o)){var s=r?this.strokeStates[r]||this.textStrokeState_:null,a=i?this.fillStates[i]||this.textFillState_:null,h=this.textStates[e]||this.textState_,l=this.pixelRatio,u=h.scale*l,p=Sa[h.textAlign||"center"],c=r&&s.lineWidth?s.lineWidth:0,d=t.split("\n"),f=d.length,_=[],g=function(t,e,i){for(var r=e.length,n=0,o=0;o=o;)Fa(i,t+n,t+o),Fa(i,t+o,t+n),Fa(i,t-o,t+n),Fa(i,t-n,t+o),Fa(i,t-n,t-o),Fa(i,t-o,t-n),Fa(i,t+o,t-n),Fa(i,t+n,t-o),2*((s+=1+2*++o)-n)+1>0&&(s+=1-2*(n-=1));return Ma[t]=i,i}(r);function f(t){for(var e=u.getImageData(0,0,h,h).data,i=0;i0){var n=void 0;return(!p||c!=da.IMAGE&&c!=da.TEXT||-1!==p.indexOf(t))&&(n=o(t)),n||void u.clearRect(0,0,h,h)}}this.declutterTree_&&(p=this.declutterTree_.all().map(function(t){return t.value}));var _,g,y,v,m,x=Object.keys(this.replaysByZIndex_).map(Number);for(x.sort(V),_=x.length-1;_>=0;--_){var E=x[_].toString();for(y=this.replaysByZIndex_[E],g=Ea.length-1;g>=0;--g)if(void 0!==(v=y[c=Ea[g]]))if(!s||c!=da.IMAGE&&c!=da.TEXT){if(m=v.replayHitDetection(u,l,i,n,f,a))return m}else{var S=s[E];S?S.push(v,l.slice(0)):s[E]=[v,l.slice(0)]}}},e.prototype.getClipCoords=function(t){var e=this.maxExtent_,i=e[0],r=e[1],n=e[2],o=e[3],s=[i,r,i,o,n,o,n,r];return Gt(s,0,8,2,t,s),s},e.prototype.getReplay=function(t,e){var i=void 0!==t?t.toString():"0",r=this.replaysByZIndex_[i];void 0===r&&(r={},this.replaysByZIndex_[i]=r);var n=r[e];void 0===n&&(n=new(0,Pa[e])(this.tolerance_,this.maxExtent_,this.resolution_,this.pixelRatio_,this.overlaps_,this.declutterTree_),r[e]=n);return n},e.prototype.getReplays=function(){return this.replaysByZIndex_},e.prototype.isEmpty=function(){return d(this.replaysByZIndex_)},e.prototype.replay=function(t,e,i,r,n,o,s){var a=Object.keys(this.replaysByZIndex_).map(Number);a.sort(V),t.save(),this.clip(t,e);var h,l,u,p,c,d,f=o||Ea;for(h=0,l=a.length;h=n)for(r=n;rl[2];)O=b*++M,p=this.getTransform(e,O),f.replay(_,p,h,o,w),P-=b}if(ks(_,h,I/2,L/2),x&&this.dispatchRenderEvent(_,e,p),_!=t){if(m){var F=t.globalAlpha;t.globalAlpha=i.opacity,t.drawImage(_.canvas,-y,-v),t.globalAlpha=F}else t.drawImage(_.canvas,-y,-v);_.translate(-y,-v)}m||(_.globalAlpha=C)}d&&t.restore()},e.prototype.composeFrame=function(t,e,i){var r=this.getTransform(t,0);this.preCompose(i,t,r),this.compose(i,t,e),this.postCompose(i,t,e,r)},e.prototype.forEachFeatureAtCoordinate=function(t,e,i,r,n){if(this.replayGroup_){var s=e.viewState.resolution,a=e.viewState.rotation,h=this.getLayer(),l={};return this.replayGroup_.forEachFeatureAtCoordinate(t,s,a,i,{},function(t){var e=o(t);if(!(e in l))return l[e]=!0,r.call(n,t,h)},null)}},e.prototype.handleFontsChanged_=function(t){var e=this.getLayer();e.getVisible()&&this.replayGroup_&&e.changed()},e.prototype.handleStyleImageChange_=function(t){this.renderIfReadyAndVisible()},e.prototype.prepareFrame=function(t,e){var i=this.getLayer(),r=i.getSource(),n=t.viewHints[kn],o=t.viewHints[jn],s=i.getUpdateWhileAnimating(),a=i.getUpdateWhileInteracting();if(!this.dirty_&&!s&&n||!a&&o)return!0;var h=t.extent,l=t.viewState,u=l.projection,p=l.resolution,c=t.pixelRatio,d=i.getRevision(),f=i.getRenderBuffer(),_=i.getRenderOrder();void 0===_&&(_=Da);var g=et(h,f*p),y=l.projection.getExtent();if(r.getWrapX()&&l.projection.canWrapX()&&!ot(y,t.extent)){var v=Ot(y),m=Math.max(Ot(g)/2,v);g[0]=y[0]-m,g[2]=y[2]+m}if(!this.dirty_&&this.renderedResolution_==p&&this.renderedRevision_==d&&this.renderedRenderOrder_==_&&ot(this.renderedExtent_,g))return this.replayGroupChanged=!1,!0;this.replayGroup_=null,this.dirty_=!1;var x=new Aa(ja(p,c),g,p,c,r.getOverlaps(),this.declutterTree_,i.getRenderBuffer());r.loadFeatures(g,p,u);var E=function(t){var e,r=t.getStyleFunction()||i.getStyleFunction();if(r&&(e=r(t,p)),e){var n=this.renderFeature(t,p,c,e,x);this.dirty_=this.dirty_||n}}.bind(this);if(_){var S=[];r.forEachFeatureInExtent(g,function(t){S.push(t)}),S.sort(_);for(var T=0,C=S.length;T=0;--x){var E=g[x];if(E.getState()!=On.ABORT)for(var S=E.tileCoord,T=y.getTileCoordExtent(S,this.tmpExtent)[0]-E.extent[0],C=void 0,R=0,w=E.tileKeys.length;R radius + v_halfWidth) {\n if (u_strokeColor.a == 0.0) {\n gl_FragColor = u_fillColor;\n } else {\n gl_FragColor = u_strokeColor;\n }\n gl_FragColor.a = gl_FragColor.a - (dist - (radius + v_halfWidth));\n } else if (u_fillColor.a == 0.0) {\n // Hooray, no fill, just stroke. We can use real antialiasing.\n gl_FragColor = u_strokeColor;\n if (dist < radius - v_halfWidth) {\n gl_FragColor.a = gl_FragColor.a - (radius - v_halfWidth - dist);\n }\n } else {\n gl_FragColor = u_fillColor;\n float strokeDist = radius - v_halfWidth;\n float antialias = 2.0 * v_pixelRatio;\n if (dist > strokeDist) {\n gl_FragColor = u_strokeColor;\n } else if (dist >= strokeDist - antialias) {\n float step = smoothstep(strokeDist - antialias, strokeDist, dist);\n gl_FragColor = mix(u_fillColor, u_strokeColor, step);\n }\n }\n gl_FragColor.a = gl_FragColor.a * u_opacity;\n if (gl_FragColor.a <= 0.0) {\n discard;\n }\n}\n"),ch=new uh("varying vec2 v_center;\nvarying vec2 v_offset;\nvarying float v_halfWidth;\nvarying float v_pixelRatio;\n\n\nattribute vec2 a_position;\nattribute float a_instruction;\nattribute float a_radius;\n\nuniform mat4 u_projectionMatrix;\nuniform mat4 u_offsetScaleMatrix;\nuniform mat4 u_offsetRotateMatrix;\nuniform float u_lineWidth;\nuniform float u_pixelRatio;\n\nvoid main(void) {\n mat4 offsetMatrix = u_offsetScaleMatrix * u_offsetRotateMatrix;\n v_center = vec4(u_projectionMatrix * vec4(a_position, 0.0, 1.0)).xy;\n v_pixelRatio = u_pixelRatio;\n float lineWidth = u_lineWidth * u_pixelRatio;\n v_halfWidth = lineWidth / 2.0;\n if (lineWidth == 0.0) {\n lineWidth = 2.0 * u_pixelRatio;\n }\n vec2 offset;\n // Radius with anitaliasing (roughly).\n float radius = a_radius + 3.0 * u_pixelRatio;\n // Until we get gl_VertexID in WebGL, we store an instruction.\n if (a_instruction == 0.0) {\n // Offsetting the edges of the triangle by lineWidth / 2 is necessary, however\n // we should also leave some space for the antialiasing, thus we offset by lineWidth.\n offset = vec2(-1.0, 1.0);\n } else if (a_instruction == 1.0) {\n offset = vec2(-1.0, -1.0);\n } else if (a_instruction == 2.0) {\n offset = vec2(1.0, -1.0);\n } else {\n offset = vec2(1.0, 1.0);\n }\n\n gl_Position = u_projectionMatrix * vec4(a_position + offset * radius, 0.0, 1.0) +\n offsetMatrix * vec4(offset * lineWidth, 0.0, 0.0);\n v_offset = vec4(u_projectionMatrix * vec4(a_position.x + a_radius, a_position.y,\n 0.0, 1.0)).xy;\n\n if (distance(v_center, v_offset) > 20000.0) {\n gl_Position = vec4(v_center, 0.0, 1.0);\n }\n}\n\n\n"),dh=function(t,e){this.u_projectionMatrix=t.getUniformLocation(e,"u_projectionMatrix"),this.u_offsetScaleMatrix=t.getUniformLocation(e,"u_offsetScaleMatrix"),this.u_offsetRotateMatrix=t.getUniformLocation(e,"u_offsetRotateMatrix"),this.u_lineWidth=t.getUniformLocation(e,"u_lineWidth"),this.u_pixelRatio=t.getUniformLocation(e,"u_pixelRatio"),this.u_opacity=t.getUniformLocation(e,"u_opacity"),this.u_fillColor=t.getUniformLocation(e,"u_fillColor"),this.u_strokeColor=t.getUniformLocation(e,"u_strokeColor"),this.u_size=t.getUniformLocation(e,"u_size"),this.a_position=t.getAttribLocation(e,"a_position"),this.a_instruction=t.getAttribLocation(e,"a_instruction"),this.a_radius=t.getAttribLocation(e,"a_radius")};function fh(t,e){return t[0]=e[0],t[1]=e[1],t[4]=e[2],t[5]=e[3],t[12]=e[4],t[13]=e[5],t}var _h=function(t){function e(e,i){t.call(this),this.tolerance=e,this.maxExtent=i,this.origin=Tt(i),this.projectionMatrix_=[1,0,0,1,0,0],this.offsetRotateMatrix_=[1,0,0,1,0,0],this.offsetScaleMatrix_=[1,0,0,1,0,0],this.tmpMat4_=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1],this.indices=[],this.indicesBuffer=null,this.startIndices=[],this.startIndicesFeature=[],this.vertices=[],this.verticesBuffer=null,this.lineStringReplay=void 0}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.getDeleteResourcesFunction=function(t){return r()},e.prototype.finish=function(t){r()},e.prototype.setUpProgram=function(t,e,i,n){return r()},e.prototype.shutDownProgram=function(t,e){r()},e.prototype.drawReplay=function(t,e,i,n){r()},e.prototype.drawHitDetectionReplayOneByOne=function(t,e,i,n,o){return r()},e.prototype.drawHitDetectionReplay=function(t,e,i,r,n,o){return n?this.drawHitDetectionReplayOneByOne(t,e,i,r,o):this.drawHitDetectionReplayAll(t,e,i,r)},e.prototype.drawHitDetectionReplayAll=function(t,e,i,r){t.clear(t.COLOR_BUFFER_BIT|t.DEPTH_BUFFER_BIT),this.drawReplay(t,e,i,!0);var n=r(null);return n||void 0},e.prototype.replay=function(t,e,i,r,n,o,s,a,h,l,u){var p,c,d,f,_,g,y,v,m=t.getGL();this.lineStringReplay&&(p=m.isEnabled(m.STENCIL_TEST),c=m.getParameter(m.STENCIL_FUNC),d=m.getParameter(m.STENCIL_VALUE_MASK),f=m.getParameter(m.STENCIL_REF),_=m.getParameter(m.STENCIL_WRITEMASK),g=m.getParameter(m.STENCIL_FAIL),y=m.getParameter(m.STENCIL_PASS_DEPTH_PASS),v=m.getParameter(m.STENCIL_PASS_DEPTH_FAIL),m.enable(m.STENCIL_TEST),m.clear(m.STENCIL_BUFFER_BIT),m.stencilMask(255),m.stencilFunc(m.ALWAYS,1,255),m.stencilOp(m.KEEP,m.KEEP,m.REPLACE),this.lineStringReplay.replay(t,e,i,r,n,o,s,a,h,l,u),m.stencilMask(0),m.stencilFunc(m.NOTEQUAL,1,255)),t.bindBuffer(34962,this.verticesBuffer),t.bindBuffer(34963,this.indicesBuffer);var x=this.setUpProgram(m,t,n,o),E=Fe(this.projectionMatrix_);je(E,2/(i*n[0]),2/(i*n[1])),ke(E,-r),Ue(E,-(e[0]-this.origin[0]),-(e[1]-this.origin[1]));var S=Fe(this.offsetScaleMatrix_);je(S,2/n[0],2/n[1]);var T,C=Fe(this.offsetRotateMatrix_);return 0!==r&&ke(C,-r),m.uniformMatrix4fv(x.u_projectionMatrix,!1,fh(this.tmpMat4_,E)),m.uniformMatrix4fv(x.u_offsetScaleMatrix,!1,fh(this.tmpMat4_,S)),m.uniformMatrix4fv(x.u_offsetRotateMatrix,!1,fh(this.tmpMat4_,C)),m.uniform1f(x.u_opacity,s),void 0===h?this.drawReplay(m,t,a,!1):T=this.drawHitDetectionReplay(m,t,a,h,l,u),this.shutDownProgram(m,x),this.lineStringReplay&&(p||m.disable(m.STENCIL_TEST),m.clear(m.STENCIL_BUFFER_BIT),m.stencilFunc(c,f,d),m.stencilMask(_),m.stencilOp(g,v,y)),T},e.prototype.drawElements=function(t,e,i,r){var n=e.hasOESElementIndexUint?5125:5123,o=r-i,s=i*(e.hasOESElementIndexUint?4:2);t.drawElements(4,o,n,s)},e}(Vs),gh=[0,0,0,1],yh=[],vh=[0,0,0,1],mh=Number.EPSILON||2.220446049250313e-16,xh=function(t,e,i,r,n,o){var s=(i-t)*(o-e)-(n-t)*(r-e);return s<=mh&&s>=-mh?void 0:s>0},Eh=35044,Sh=function(t,e){this.arr_=void 0!==t?t:[],this.usage_=void 0!==e?e:Eh};Sh.prototype.getArray=function(){return this.arr_},Sh.prototype.getUsage=function(){return this.usage_};var Th=Sh,Ch=function(t){function e(e,i){t.call(this,e,i),this.defaultLocations_=null,this.styles_=[],this.styleIndices_=[],this.radius_=0,this.state_={fillColor:null,strokeColor:null,lineDash:null,lineDashOffset:void 0,lineWidth:void 0,changed:!1}}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.drawCoordinates_=function(t,e,i,r){var n,o,s=this.vertices.length,a=this.indices.length,h=s/4;for(n=e,o=i;n0&&(this.styles_=[]),this.vertices=null,this.indices=null},e.prototype.getDeleteResourcesFunction=function(t){var e=this.verticesBuffer,i=this.indicesBuffer;return function(){t.deleteBuffer(e),t.deleteBuffer(i)}},e.prototype.setUpProgram=function(t,e,i,r){var n,o=e.getProgram(ph,ch);return this.defaultLocations_?n=this.defaultLocations_:(n=new dh(t,o),this.defaultLocations_=n),e.useProgram(o),t.enableVertexAttribArray(n.a_position),t.vertexAttribPointer(n.a_position,2,5126,!1,16,0),t.enableVertexAttribArray(n.a_instruction),t.vertexAttribPointer(n.a_instruction,1,5126,!1,16,8),t.enableVertexAttribArray(n.a_radius),t.vertexAttribPointer(n.a_radius,1,5126,!1,16,12),t.uniform2fv(n.u_size,i),t.uniform1f(n.u_pixelRatio,r),n},e.prototype.shutDownProgram=function(t,e){t.disableVertexAttribArray(e.a_position),t.disableVertexAttribArray(e.a_instruction),t.disableVertexAttribArray(e.a_radius)},e.prototype.drawReplay=function(t,e,i,r){var n,o,s,a;if(d(i))for(s=this.startIndices[this.startIndices.length-1],n=this.styleIndices_.length-1;n>=0;--n)o=this.styleIndices_[n],a=this.styles_[n],this.setFillStyle_(t,a[0]),this.setStrokeStyle_(t,a[1],a[2]),this.drawElements(t,e,o,s),s=o;else this.drawReplaySkipping_(t,e,i)},e.prototype.drawHitDetectionReplayOneByOne=function(t,e,i,r,n){var s,a,h,l,u,p,c;for(c=this.startIndices.length-2,h=this.startIndices[c+1],s=this.styleIndices_.length-1;s>=0;--s)for(l=this.styles_[s],this.setFillStyle_(t,l[0]),this.setStrokeStyle_(t,l[1],l[2]),u=this.styleIndices_[s];c>=0&&this.startIndices[c]>=u;){if(a=this.startIndices[c],void 0===i[o(p=this.startIndicesFeature[c])]&&p.getGeometry()&&(void 0===n||Pt(n,p.getGeometry().getExtent()))){t.clear(t.COLOR_BUFFER_BIT|t.DEPTH_BUFFER_BIT),this.drawElements(t,e,a,h);var d=r(p);if(d)return d}c--,h=a}},e.prototype.drawReplaySkipping_=function(t,e,i){var r,n,s,a,h,l,u;for(l=this.startIndices.length-2,s=n=this.startIndices[l+1],r=this.styleIndices_.length-1;r>=0;--r){for(a=this.styles_[r],this.setFillStyle_(t,a[0]),this.setStrokeStyle_(t,a[1],a[2]),h=this.styleIndices_[r];l>=0&&this.startIndices[l]>=h;)u=this.startIndices[l],i[o(this.startIndicesFeature[l])]&&(n!==s&&this.drawElements(t,e,n,s),s=u),l--,n=u;n!==s&&this.drawElements(t,e,n,s),n=s=h}},e.prototype.setFillStyle_=function(t,e){t.uniform4fv(this.defaultLocations_.u_fillColor,e)},e.prototype.setStrokeStyle_=function(t,e,i){t.uniform4fv(this.defaultLocations_.u_strokeColor,e),t.uniform1f(this.defaultLocations_.u_lineWidth,i)},e.prototype.setFillStrokeStyle=function(t,e){var i,r;if(e){var n=e.getLineDash();this.state_.lineDash=n||yh;var o=e.getLineDashOffset();this.state_.lineDashOffset=o||0,i=(i=e.getColor())instanceof CanvasGradient||i instanceof CanvasPattern?vh:_r(i).map(function(t,e){return 3!=e?t/255:t})||vh,r=void 0!==(r=e.getWidth())?r:1}else i=[0,0,0,0],r=0;var s=t?t.getColor():[0,0,0,0];s=s instanceof CanvasGradient||s instanceof CanvasPattern?gh:_r(s).map(function(t,e){return 3!=e?t/255:t})||gh,this.state_.strokeColor&&Z(this.state_.strokeColor,i)&&this.state_.fillColor&&Z(this.state_.fillColor,s)&&this.state_.lineWidth===r||(this.state_.changed=!0,this.state_.fillColor=s,this.state_.strokeColor=i,this.state_.lineWidth=r,this.styles_.push([s,i,r]))},e}(_h),Rh=new lh("precision mediump float;\nvarying vec2 v_texCoord;\nvarying float v_opacity;\n\nuniform float u_opacity;\nuniform sampler2D u_image;\n\nvoid main(void) {\n vec4 texColor = texture2D(u_image, v_texCoord);\n gl_FragColor.rgb = texColor.rgb;\n float alpha = texColor.a * v_opacity * u_opacity;\n if (alpha == 0.0) {\n discard;\n }\n gl_FragColor.a = alpha;\n}\n"),wh=new uh("varying vec2 v_texCoord;\nvarying float v_opacity;\n\nattribute vec2 a_position;\nattribute vec2 a_texCoord;\nattribute vec2 a_offsets;\nattribute float a_opacity;\nattribute float a_rotateWithView;\n\nuniform mat4 u_projectionMatrix;\nuniform mat4 u_offsetScaleMatrix;\nuniform mat4 u_offsetRotateMatrix;\n\nvoid main(void) {\n mat4 offsetMatrix = u_offsetScaleMatrix;\n if (a_rotateWithView == 1.0) {\n offsetMatrix = u_offsetScaleMatrix * u_offsetRotateMatrix;\n }\n vec4 offsets = offsetMatrix * vec4(a_offsets, 0.0, 0.0);\n gl_Position = u_projectionMatrix * vec4(a_position, 0.0, 1.0) + offsets;\n v_texCoord = a_texCoord;\n v_opacity = a_opacity;\n}\n\n\n"),Ih=function(t,e){this.u_projectionMatrix=t.getUniformLocation(e,"u_projectionMatrix"),this.u_offsetScaleMatrix=t.getUniformLocation(e,"u_offsetScaleMatrix"),this.u_offsetRotateMatrix=t.getUniformLocation(e,"u_offsetRotateMatrix"),this.u_opacity=t.getUniformLocation(e,"u_opacity"),this.u_image=t.getUniformLocation(e,"u_image"),this.a_position=t.getAttribLocation(e,"a_position"),this.a_texCoord=t.getAttribLocation(e,"a_texCoord"),this.a_offsets=t.getAttribLocation(e,"a_offsets"),this.a_opacity=t.getAttribLocation(e,"a_opacity"),this.a_rotateWithView=t.getAttribLocation(e,"a_rotateWithView")},Lh={LOST:"webglcontextlost",RESTORED:"webglcontextrestored"};function Oh(t,e,i){var r=t.createTexture();return t.bindTexture(t.TEXTURE_2D,r),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MAG_FILTER,t.LINEAR),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MIN_FILTER,t.LINEAR),void 0!==e&&t.texParameteri(eh,$a,e),void 0!==i&&t.texParameteri(eh,th,i),r}function Ph(t,e,i,r,n){var o=Oh(t,r,n);return t.texImage2D(t.TEXTURE_2D,0,t.RGBA,e,i,0,t.RGBA,t.UNSIGNED_BYTE,null),o}function bh(t,e,i,r){var n=Oh(t,i,r);return t.texImage2D(t.TEXTURE_2D,0,t.RGBA,t.RGBA,t.UNSIGNED_BYTE,e),n}var Mh=function(t){function e(e,i){t.call(this),this.canvas_=e,this.gl_=i,this.bufferCache_={},this.shaderCache_={},this.programCache_={},this.currentProgram_=null,this.hitDetectionFramebuffer_=null,this.hitDetectionTexture_=null,this.hitDetectionRenderbuffer_=null,this.hasOESElementIndexUint=X(oh,"OES_element_index_uint"),this.hasOESElementIndexUint&&i.getExtension("OES_element_index_uint"),v(this.canvas_,Lh.LOST,this.handleWebGLContextLost,this),v(this.canvas_,Lh.RESTORED,this.handleWebGLContextRestored,this)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.bindBuffer=function(t,e){var i=this.getGL(),r=e.getArray(),n=o(e);if(n in this.bufferCache_){var s=this.bufferCache_[n];i.bindBuffer(t,s.buffer)}else{var a,h=i.createBuffer();i.bindBuffer(t,h),34962==t?a=new Float32Array(r):34963==t&&(a=this.hasOESElementIndexUint?new Uint32Array(r):new Uint16Array(r)),i.bufferData(t,a,e.getUsage()),this.bufferCache_[n]={buf:e,buffer:h}}},e.prototype.deleteBuffer=function(t){var e=this.getGL(),i=o(t),r=this.bufferCache_[i];e.isContextLost()||e.deleteBuffer(r.buffer),delete this.bufferCache_[i]},e.prototype.disposeInternal=function(){S(this.canvas_);var t=this.getGL();if(!t.isContextLost()){for(var e in this.bufferCache_)t.deleteBuffer(this.bufferCache_[e].buffer);for(var i in this.programCache_)t.deleteProgram(this.programCache_[i]);for(var r in this.shaderCache_)t.deleteShader(this.shaderCache_[r]);t.deleteFramebuffer(this.hitDetectionFramebuffer_),t.deleteRenderbuffer(this.hitDetectionRenderbuffer_),t.deleteTexture(this.hitDetectionTexture_)}},e.prototype.getCanvas=function(){return this.canvas_},e.prototype.getGL=function(){return this.gl_},e.prototype.getHitDetectionFramebuffer=function(){return this.hitDetectionFramebuffer_||this.initHitDetectionFramebuffer_(),this.hitDetectionFramebuffer_},e.prototype.getShader=function(t){var e=o(t);if(e in this.shaderCache_)return this.shaderCache_[e];var i=this.getGL(),r=i.createShader(t.getType());return i.shaderSource(r,t.getSource()),i.compileShader(r),this.shaderCache_[e]=r,r},e.prototype.getProgram=function(t,e){var i=o(t)+"/"+o(e);if(i in this.programCache_)return this.programCache_[i];var r=this.getGL(),n=r.createProgram();return r.attachShader(n,this.getShader(t)),r.attachShader(n,this.getShader(e)),r.linkProgram(n),this.programCache_[i]=n,n},e.prototype.handleWebGLContextLost=function(){p(this.bufferCache_),p(this.shaderCache_),p(this.programCache_),this.currentProgram_=null,this.hitDetectionFramebuffer_=null,this.hitDetectionTexture_=null,this.hitDetectionRenderbuffer_=null},e.prototype.handleWebGLContextRestored=function(){},e.prototype.initHitDetectionFramebuffer_=function(){var t=this.gl_,e=t.createFramebuffer();t.bindFramebuffer(t.FRAMEBUFFER,e);var i=Ph(t,1,1),r=t.createRenderbuffer();t.bindRenderbuffer(t.RENDERBUFFER,r),t.renderbufferStorage(t.RENDERBUFFER,t.DEPTH_COMPONENT16,1,1),t.framebufferTexture2D(t.FRAMEBUFFER,t.COLOR_ATTACHMENT0,t.TEXTURE_2D,i,0),t.framebufferRenderbuffer(t.FRAMEBUFFER,t.DEPTH_ATTACHMENT,t.RENDERBUFFER,r),t.bindTexture(t.TEXTURE_2D,null),t.bindRenderbuffer(t.RENDERBUFFER,null),t.bindFramebuffer(t.FRAMEBUFFER,null),this.hitDetectionFramebuffer_=e,this.hitDetectionTexture_=i,this.hitDetectionRenderbuffer_=r},e.prototype.useProgram=function(t){return t!=this.currentProgram_&&(this.getGL().useProgram(t),this.currentProgram_=t,!0)},e}(C),Fh=function(t){function e(e,i){t.call(this,e,i),this.anchorX=void 0,this.anchorY=void 0,this.groupIndices=[],this.hitDetectionGroupIndices=[],this.height=void 0,this.imageHeight=void 0,this.imageWidth=void 0,this.defaultLocations=null,this.opacity=void 0,this.originX=void 0,this.originY=void 0,this.rotateWithView=void 0,this.rotation=void 0,this.scale=void 0,this.width=void 0}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.getDeleteResourcesFunction=function(t){var e=this.verticesBuffer,i=this.indicesBuffer,r=this.getTextures(!0),n=t.getGL();return function(){var o,s;if(!n.isContextLost())for(o=0,s=r.length;o0?n[s-1]:0,u=n[s],p=l,c=l;h=0;--s)for(t.bindTexture(eh,c[s]),a=s>0?this.hitDetectionGroupIndices[s-1]:0,l=this.hitDetectionGroupIndices[s];p>=0&&this.startIndices[p]>=a;){if(h=this.startIndices[p],void 0===i[o(u=this.startIndicesFeature[p])]&&u.getGeometry()&&(void 0===n||Pt(n,u.getGeometry().getExtent()))){t.clear(t.COLOR_BUFFER_BIT|t.DEPTH_BUFFER_BIT),this.drawElements(t,e,h,l);var d=r(u);if(d)return d}l=h,p--}},e.prototype.finish=function(t){this.anchorX=void 0,this.anchorY=void 0,this.height=void 0,this.imageHeight=void 0,this.imageWidth=void 0,this.indices=null,this.opacity=void 0,this.originX=void 0,this.originY=void 0,this.rotateWithView=void 0,this.rotation=void 0,this.scale=void 0,this.vertices=null,this.width=void 0},e.prototype.getTextures=function(t){return r()},e.prototype.getHitDetectionTextures=function(){return r()},e}(_h),Ah=function(t){function e(e,i){t.call(this,e,i),this.images_=[],this.hitDetectionImages_=[],this.textures_=[],this.hitDetectionTextures_=[]}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.drawMultiPoint=function(t,e){this.startIndices.push(this.indices.length),this.startIndicesFeature.push(e);var i=t.getFlatCoordinates(),r=t.getStride();this.drawCoordinates(i,0,i.length,r)},e.prototype.drawPoint=function(t,e){this.startIndices.push(this.indices.length),this.startIndicesFeature.push(e);var i=t.getFlatCoordinates(),r=t.getStride();this.drawCoordinates(i,0,i.length,r)},e.prototype.finish=function(e){var i=e.getGL();this.groupIndices.push(this.indices.length),this.hitDetectionGroupIndices.push(this.indices.length),this.verticesBuffer=new Th(this.vertices);var r=this.indices;this.indicesBuffer=new Th(r);var n={};this.createTextures(this.textures_,this.images_,n,i),this.createTextures(this.hitDetectionTextures_,this.hitDetectionImages_,n,i),this.images_=null,this.hitDetectionImages_=null,t.prototype.finish.call(this,e)},e.prototype.setImageStyle=function(t){var e=t.getAnchor(),i=t.getImage(1),r=t.getImageSize(),n=t.getHitDetectionImage(1),s=t.getOpacity(),a=t.getOrigin(),h=t.getRotateWithView(),l=t.getRotation(),u=t.getSize(),p=t.getScale();0===this.images_.length?this.images_.push(i):o(this.images_[this.images_.length-1])!=o(i)&&(this.groupIndices.push(this.indices.length),this.images_.push(i)),0===this.hitDetectionImages_.length?this.hitDetectionImages_.push(n):o(this.hitDetectionImages_[this.hitDetectionImages_.length-1])!=o(n)&&(this.hitDetectionGroupIndices.push(this.indices.length),this.hitDetectionImages_.push(n)),this.anchorX=e[0],this.anchorY=e[1],this.height=u[1],this.imageHeight=r[1],this.imageWidth=r[0],this.opacity=s,this.originX=a[0],this.originY=a[1],this.rotation=l,this.rotateWithView=h,this.scale=p,this.width=u[0]},e.prototype.getTextures=function(t){return t?this.textures_.concat(this.hitDetectionTextures_):this.textures_},e.prototype.getHitDetectionTextures=function(){return this.hitDetectionTextures_},e}(Fh);function Nh(t,e,i,r){var n=i-r;return t[e]===t[n]&&t[e+1]===t[n+1]&&(i-e)/r>3&&!!Ke(t,e,i,r)}var Gh=new lh("precision mediump float;\nvarying float v_round;\nvarying vec2 v_roundVertex;\nvarying float v_halfWidth;\n\n\n\nuniform float u_opacity;\nuniform vec4 u_color;\nuniform vec2 u_size;\nuniform float u_pixelRatio;\n\nvoid main(void) {\n if (v_round > 0.0) {\n vec2 windowCoords = vec2((v_roundVertex.x + 1.0) / 2.0 * u_size.x * u_pixelRatio,\n (v_roundVertex.y + 1.0) / 2.0 * u_size.y * u_pixelRatio);\n if (length(windowCoords - gl_FragCoord.xy) > v_halfWidth * u_pixelRatio) {\n discard;\n }\n }\n gl_FragColor = u_color;\n float alpha = u_color.a * u_opacity;\n if (alpha == 0.0) {\n discard;\n }\n gl_FragColor.a = alpha;\n}\n"),Dh=new uh("varying float v_round;\nvarying vec2 v_roundVertex;\nvarying float v_halfWidth;\n\n\nattribute vec2 a_lastPos;\nattribute vec2 a_position;\nattribute vec2 a_nextPos;\nattribute float a_direction;\n\nuniform mat4 u_projectionMatrix;\nuniform mat4 u_offsetScaleMatrix;\nuniform mat4 u_offsetRotateMatrix;\nuniform float u_lineWidth;\nuniform float u_miterLimit;\n\nbool nearlyEquals(in float value, in float ref) {\n float epsilon = 0.000000000001;\n return value >= ref - epsilon && value <= ref + epsilon;\n}\n\nvoid alongNormal(out vec2 offset, in vec2 nextP, in float turnDir, in float direction) {\n vec2 dirVect = nextP - a_position;\n vec2 normal = normalize(vec2(-turnDir * dirVect.y, turnDir * dirVect.x));\n offset = u_lineWidth / 2.0 * normal * direction;\n}\n\nvoid miterUp(out vec2 offset, out float round, in bool isRound, in float direction) {\n float halfWidth = u_lineWidth / 2.0;\n vec2 tangent = normalize(normalize(a_nextPos - a_position) + normalize(a_position - a_lastPos));\n vec2 normal = vec2(-tangent.y, tangent.x);\n vec2 dirVect = a_nextPos - a_position;\n vec2 tmpNormal = normalize(vec2(-dirVect.y, dirVect.x));\n float miterLength = abs(halfWidth / dot(normal, tmpNormal));\n offset = normal * direction * miterLength;\n round = 0.0;\n if (isRound) {\n round = 1.0;\n } else if (miterLength > u_miterLimit + u_lineWidth) {\n offset = halfWidth * tmpNormal * direction;\n }\n}\n\nbool miterDown(out vec2 offset, in vec4 projPos, in mat4 offsetMatrix, in float direction) {\n bool degenerate = false;\n vec2 tangent = normalize(normalize(a_nextPos - a_position) + normalize(a_position - a_lastPos));\n vec2 normal = vec2(-tangent.y, tangent.x);\n vec2 dirVect = a_lastPos - a_position;\n vec2 tmpNormal = normalize(vec2(-dirVect.y, dirVect.x));\n vec2 longOffset, shortOffset, longVertex;\n vec4 shortProjVertex;\n float halfWidth = u_lineWidth / 2.0;\n if (length(a_nextPos - a_position) > length(a_lastPos - a_position)) {\n longOffset = tmpNormal * direction * halfWidth;\n shortOffset = normalize(vec2(dirVect.y, -dirVect.x)) * direction * halfWidth;\n longVertex = a_nextPos;\n shortProjVertex = u_projectionMatrix * vec4(a_lastPos, 0.0, 1.0);\n } else {\n shortOffset = tmpNormal * direction * halfWidth;\n longOffset = normalize(vec2(dirVect.y, -dirVect.x)) * direction * halfWidth;\n longVertex = a_lastPos;\n shortProjVertex = u_projectionMatrix * vec4(a_nextPos, 0.0, 1.0);\n }\n //Intersection algorithm based on theory by Paul Bourke (http://paulbourke.net/geometry/pointlineplane/).\n vec4 p1 = u_projectionMatrix * vec4(longVertex, 0.0, 1.0) + offsetMatrix * vec4(longOffset, 0.0, 0.0);\n vec4 p2 = projPos + offsetMatrix * vec4(longOffset, 0.0, 0.0);\n vec4 p3 = shortProjVertex + offsetMatrix * vec4(-shortOffset, 0.0, 0.0);\n vec4 p4 = shortProjVertex + offsetMatrix * vec4(shortOffset, 0.0, 0.0);\n float denom = (p4.y - p3.y) * (p2.x - p1.x) - (p4.x - p3.x) * (p2.y - p1.y);\n float firstU = ((p4.x - p3.x) * (p1.y - p3.y) - (p4.y - p3.y) * (p1.x - p3.x)) / denom;\n float secondU = ((p2.x - p1.x) * (p1.y - p3.y) - (p2.y - p1.y) * (p1.x - p3.x)) / denom;\n float epsilon = 0.000000000001;\n if (firstU > epsilon && firstU < 1.0 - epsilon && secondU > epsilon && secondU < 1.0 - epsilon) {\n shortProjVertex.x = p1.x + firstU * (p2.x - p1.x);\n shortProjVertex.y = p1.y + firstU * (p2.y - p1.y);\n offset = shortProjVertex.xy;\n degenerate = true;\n } else {\n float miterLength = abs(halfWidth / dot(normal, tmpNormal));\n offset = normal * direction * miterLength;\n }\n return degenerate;\n}\n\nvoid squareCap(out vec2 offset, out float round, in bool isRound, in vec2 nextP,\n in float turnDir, in float direction) {\n round = 0.0;\n vec2 dirVect = a_position - nextP;\n vec2 firstNormal = normalize(dirVect);\n vec2 secondNormal = vec2(turnDir * firstNormal.y * direction, -turnDir * firstNormal.x * direction);\n vec2 hypotenuse = normalize(firstNormal - secondNormal);\n vec2 normal = vec2(turnDir * hypotenuse.y * direction, -turnDir * hypotenuse.x * direction);\n float length = sqrt(v_halfWidth * v_halfWidth * 2.0);\n offset = normal * length;\n if (isRound) {\n round = 1.0;\n }\n}\n\nvoid main(void) {\n bool degenerate = false;\n float direction = float(sign(a_direction));\n mat4 offsetMatrix = u_offsetScaleMatrix * u_offsetRotateMatrix;\n vec2 offset;\n vec4 projPos = u_projectionMatrix * vec4(a_position, 0.0, 1.0);\n bool round = nearlyEquals(mod(a_direction, 2.0), 0.0);\n\n v_round = 0.0;\n v_halfWidth = u_lineWidth / 2.0;\n v_roundVertex = projPos.xy;\n\n if (nearlyEquals(mod(a_direction, 3.0), 0.0) || nearlyEquals(mod(a_direction, 17.0), 0.0)) {\n alongNormal(offset, a_nextPos, 1.0, direction);\n } else if (nearlyEquals(mod(a_direction, 5.0), 0.0) || nearlyEquals(mod(a_direction, 13.0), 0.0)) {\n alongNormal(offset, a_lastPos, -1.0, direction);\n } else if (nearlyEquals(mod(a_direction, 23.0), 0.0)) {\n miterUp(offset, v_round, round, direction);\n } else if (nearlyEquals(mod(a_direction, 19.0), 0.0)) {\n degenerate = miterDown(offset, projPos, offsetMatrix, direction);\n } else if (nearlyEquals(mod(a_direction, 7.0), 0.0)) {\n squareCap(offset, v_round, round, a_nextPos, 1.0, direction);\n } else if (nearlyEquals(mod(a_direction, 11.0), 0.0)) {\n squareCap(offset, v_round, round, a_lastPos, -1.0, direction);\n }\n if (!degenerate) {\n vec4 offsets = offsetMatrix * vec4(offset, 0.0, 0.0);\n gl_Position = projPos + offsets;\n } else {\n gl_Position = vec4(offset, 0.0, 1.0);\n }\n}\n\n\n"),kh=function(t,e){this.u_projectionMatrix=t.getUniformLocation(e,"u_projectionMatrix"),this.u_offsetScaleMatrix=t.getUniformLocation(e,"u_offsetScaleMatrix"),this.u_offsetRotateMatrix=t.getUniformLocation(e,"u_offsetRotateMatrix"),this.u_lineWidth=t.getUniformLocation(e,"u_lineWidth"),this.u_miterLimit=t.getUniformLocation(e,"u_miterLimit"),this.u_opacity=t.getUniformLocation(e,"u_opacity"),this.u_color=t.getUniformLocation(e,"u_color"),this.u_size=t.getUniformLocation(e,"u_size"),this.u_pixelRatio=t.getUniformLocation(e,"u_pixelRatio"),this.a_lastPos=t.getAttribLocation(e,"a_lastPos"),this.a_position=t.getAttribLocation(e,"a_position"),this.a_nextPos=t.getAttribLocation(e,"a_nextPos"),this.a_direction=t.getAttribLocation(e,"a_direction")},jh=3,Uh=5,Yh=7,Bh=11,Vh=13,Xh=17,zh=19,Wh=23,Kh=function(t){function e(e,i){t.call(this,e,i),this.defaultLocations_=null,this.styles_=[],this.styleIndices_=[],this.state_={strokeColor:null,lineCap:void 0,lineDash:null,lineDashOffset:void 0,lineJoin:void 0,lineWidth:void 0,miterLimit:void 0,changed:!1}}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.drawCoordinates_=function(t,e,i,r){var n,o,s,a,h,l,u,p,c=this.vertices.length,d=this.indices.length,f="bevel"===this.state_.lineJoin?0:"miter"===this.state_.lineJoin?1:2,_="butt"===this.state_.lineCap?0:"square"===this.state_.lineCap?1:2,g=Nh(t,e,i,r),y=d,v=1;for(n=e,o=i;ne&&(this.indices[d++]=h,this.indices[d++]=y-1,this.indices[d++]=y,this.indices[d++]=h+2,this.indices[d++]=h,this.indices[d++]=v*a>0?y:y-1),this.indices[d++]=h,this.indices[d++]=h+2,this.indices[d++]=h+1,y=h+2,v=a,f&&(c=this.addVertices_(l,u,p,a*Wh*f,c),this.indices[d++]=h+1,this.indices[d++]=h+3,this.indices[d++]=h)}g&&(h=h||c/7,a=Si([l[0],l[1],u[0],u[1],p[0],p[1]],0,6,2)?1:-1,c=this.addVertices_(l,u,p,a*Vh*(f||1),c),c=this.addVertices_(l,u,p,-a*zh*(f||1),c),this.indices[d++]=h,this.indices[d++]=y-1,this.indices[d++]=y,this.indices[d++]=h+1,this.indices[d++]=h,this.indices[d++]=v*a>0?y:y-1)},e.prototype.addVertices_=function(t,e,i,r,n){return this.vertices[n++]=t[0],this.vertices[n++]=t[1],this.vertices[n++]=e[0],this.vertices[n++]=e[1],this.vertices[n++]=i[0],this.vertices[n++]=i[1],this.vertices[n++]=r,n},e.prototype.isValid_=function(t,e,i,r){var n=i-e;return!(n<2*r)&&(n!==2*r||!Z([t[e],t[e+1]],[t[e+r],t[e+r+1]]))},e.prototype.drawLineString=function(t,e){var i=t.getFlatCoordinates(),r=t.getStride();this.isValid_(i,0,i.length,r)&&(i=Dt(i,0,i.length,r,-this.origin[0],-this.origin[1]),this.state_.changed&&(this.styleIndices_.push(this.indices.length),this.state_.changed=!1),this.startIndices.push(this.indices.length),this.startIndicesFeature.push(e),this.drawCoordinates_(i,0,i.length,r))},e.prototype.drawMultiLineString=function(t,e){var i=this.indices.length,r=t.getEnds();r.unshift(0);var n,o,s=t.getFlatCoordinates(),a=t.getStride();if(r.length>1)for(n=1,o=r.length;ni&&(this.startIndices.push(i),this.startIndicesFeature.push(e),this.state_.changed&&(this.styleIndices_.push(i),this.state_.changed=!1))},e.prototype.drawPolygonCoordinates=function(t,e,i){var r,n;if(Nh(t,0,t.length,i)||(t.push(t[0]),t.push(t[1])),this.drawCoordinates_(t,0,t.length,i),e.length)for(r=0,n=e.length;r0&&(this.styles_=[]),this.vertices=null,this.indices=null},e.prototype.getDeleteResourcesFunction=function(t){var e=this.verticesBuffer,i=this.indicesBuffer;return function(){t.deleteBuffer(e),t.deleteBuffer(i)}},e.prototype.setUpProgram=function(t,e,i,r){var n,o=e.getProgram(Gh,Dh);return this.defaultLocations_?n=this.defaultLocations_:(n=new kh(t,o),this.defaultLocations_=n),e.useProgram(o),t.enableVertexAttribArray(n.a_lastPos),t.vertexAttribPointer(n.a_lastPos,2,5126,!1,28,0),t.enableVertexAttribArray(n.a_position),t.vertexAttribPointer(n.a_position,2,5126,!1,28,8),t.enableVertexAttribArray(n.a_nextPos),t.vertexAttribPointer(n.a_nextPos,2,5126,!1,28,16),t.enableVertexAttribArray(n.a_direction),t.vertexAttribPointer(n.a_direction,1,5126,!1,28,24),t.uniform2fv(n.u_size,i),t.uniform1f(n.u_pixelRatio,r),n},e.prototype.shutDownProgram=function(t,e){t.disableVertexAttribArray(e.a_lastPos),t.disableVertexAttribArray(e.a_position),t.disableVertexAttribArray(e.a_nextPos),t.disableVertexAttribArray(e.a_direction)},e.prototype.drawReplay=function(t,e,i,r){var n,o,s,a,h=t.getParameter(t.DEPTH_FUNC),l=t.getParameter(t.DEPTH_WRITEMASK);if(r||(t.enable(t.DEPTH_TEST),t.depthMask(!0),t.depthFunc(t.NOTEQUAL)),d(i))for(s=this.startIndices[this.startIndices.length-1],n=this.styleIndices_.length-1;n>=0;--n)o=this.styleIndices_[n],a=this.styles_[n],this.setStrokeStyle_(t,a[0],a[1],a[2]),this.drawElements(t,e,o,s),t.clear(t.DEPTH_BUFFER_BIT),s=o;else this.drawReplaySkipping_(t,e,i);r||(t.disable(t.DEPTH_TEST),t.clear(t.DEPTH_BUFFER_BIT),t.depthMask(l),t.depthFunc(h))},e.prototype.drawReplaySkipping_=function(t,e,i){var r,n,s,a,h,l,u;for(l=this.startIndices.length-2,s=n=this.startIndices[l+1],r=this.styleIndices_.length-1;r>=0;--r){for(a=this.styles_[r],this.setStrokeStyle_(t,a[0],a[1],a[2]),h=this.styleIndices_[r];l>=0&&this.startIndices[l]>=h;)u=this.startIndices[l],i[o(this.startIndicesFeature[l])]&&(n!==s&&(this.drawElements(t,e,n,s),t.clear(t.DEPTH_BUFFER_BIT)),s=u),l--,n=u;n!==s&&(this.drawElements(t,e,n,s),t.clear(t.DEPTH_BUFFER_BIT)),n=s=h}},e.prototype.drawHitDetectionReplayOneByOne=function(t,e,i,r,n){var s,a,h,l,u,p,c;for(c=this.startIndices.length-2,h=this.startIndices[c+1],s=this.styleIndices_.length-1;s>=0;--s)for(l=this.styles_[s],this.setStrokeStyle_(t,l[0],l[1],l[2]),u=this.styleIndices_[s];c>=0&&this.startIndices[c]>=u;){if(a=this.startIndices[c],void 0===i[o(p=this.startIndicesFeature[c])]&&p.getGeometry()&&(void 0===n||Pt(n,p.getGeometry().getExtent()))){t.clear(t.COLOR_BUFFER_BIT|t.DEPTH_BUFFER_BIT),this.drawElements(t,e,a,h);var d=r(p);if(d)return d}c--,h=a}},e.prototype.setStrokeStyle_=function(t,e,i,r){t.uniform4fv(this.defaultLocations_.u_color,e),t.uniform1f(this.defaultLocations_.u_lineWidth,i),t.uniform1f(this.defaultLocations_.u_miterLimit,r)},e.prototype.setFillStrokeStyle=function(t,e){var i=e.getLineCap();this.state_.lineCap=void 0!==i?i:"round";var r=e.getLineDash();this.state_.lineDash=r||yh;var n=e.getLineDashOffset();this.state_.lineDashOffset=n||0;var o=e.getLineJoin();this.state_.lineJoin=void 0!==o?o:"round";var s=e.getColor();s=s instanceof CanvasGradient||s instanceof CanvasPattern?vh:_r(s).map(function(t,e){return 3!=e?t/255:t})||vh;var a=e.getWidth();a=void 0!==a?a:1;var h=e.getMiterLimit();h=void 0!==h?h:10,this.state_.strokeColor&&Z(this.state_.strokeColor,s)&&this.state_.lineWidth===a&&this.state_.miterLimit===h||(this.state_.changed=!0,this.state_.strokeColor=s,this.state_.lineWidth=a,this.state_.miterLimit=h,this.styles_.push([s,a,h]))},e}(_h),Hh=new lh("precision mediump float;\n\n\n\nuniform vec4 u_color;\nuniform float u_opacity;\n\nvoid main(void) {\n gl_FragColor = u_color;\n float alpha = u_color.a * u_opacity;\n if (alpha == 0.0) {\n discard;\n }\n gl_FragColor.a = alpha;\n}\n"),Zh=new uh("\n\nattribute vec2 a_position;\n\nuniform mat4 u_projectionMatrix;\nuniform mat4 u_offsetScaleMatrix;\nuniform mat4 u_offsetRotateMatrix;\n\nvoid main(void) {\n gl_Position = u_projectionMatrix * vec4(a_position, 0.0, 1.0);\n}\n\n\n"),qh=function(t,e){this.u_projectionMatrix=t.getUniformLocation(e,"u_projectionMatrix"),this.u_offsetScaleMatrix=t.getUniformLocation(e,"u_offsetScaleMatrix"),this.u_offsetRotateMatrix=t.getUniformLocation(e,"u_offsetRotateMatrix"),this.u_color=t.getUniformLocation(e,"u_color"),this.u_opacity=t.getUniformLocation(e,"u_opacity"),this.a_position=t.getAttribLocation(e,"a_position")},Jh=function(t){this.first_,this.last_,this.head_,this.circular_=void 0===t||t,this.length_=0};Jh.prototype.insertItem=function(t){var e={prev:void 0,next:void 0,data:t},i=this.head_;if(i){var r=i.next;e.prev=i,e.next=r,i.next=e,r&&(r.prev=e),i===this.last_&&(this.last_=e)}else this.first_=e,this.last_=e,this.circular_&&(e.next=e,e.prev=e);this.head_=e,this.length_++},Jh.prototype.removeItem=function(){var t=this.head_;if(t){var e=t.next,i=t.prev;e&&(e.prev=i),i&&(i.next=e),this.head_=e||i,this.first_===this.last_?(this.head_=void 0,this.first_=void 0,this.last_=void 0):this.first_===t?this.first_=this.head_:this.last_===t&&(this.last_=i?this.head_.prev:this.head_),this.length_--}},Jh.prototype.firstItem=function(){if(this.head_=this.first_,this.head_)return this.head_.data},Jh.prototype.lastItem=function(){if(this.head_=this.last_,this.head_)return this.head_.data},Jh.prototype.nextItem=function(){if(this.head_&&this.head_.next)return this.head_=this.head_.next,this.head_.data},Jh.prototype.getNextItem=function(){if(this.head_&&this.head_.next)return this.head_.next.data},Jh.prototype.prevItem=function(){if(this.head_&&this.head_.prev)return this.head_=this.head_.prev,this.head_.data},Jh.prototype.getPrevItem=function(){if(this.head_&&this.head_.prev)return this.head_.prev.data},Jh.prototype.getCurrItem=function(){if(this.head_)return this.head_.data},Jh.prototype.setFirstItem=function(){this.circular_&&this.head_&&(this.first_=this.head_,this.last_=this.head_.prev)},Jh.prototype.concat=function(t){if(t.head_){if(this.head_){var e=this.head_.next;this.head_.next=t.first_,t.first_.prev=this.head_,e.prev=t.last_,t.last_.next=e,this.length_+=t.length_}else this.head_=t.head_,this.first_=t.first_,this.last_=t.last_,this.length_=t.length_;t.head_=void 0,t.first_=void 0,t.last_=void 0,t.length_=0}},Jh.prototype.getLength=function(){return this.length_};var Qh=Jh,$h=function(t){this.rbush_=ua()(t,void 0),this.items_={}};$h.prototype.insert=function(t,e){var i={minX:t[0],minY:t[1],maxX:t[2],maxY:t[3],value:e};this.rbush_.insert(i),this.items_[o(e)]=i},$h.prototype.load=function(t,e){for(var i=new Array(e.length),r=0,n=e.length;r=s;o-=e)l=this.createPoint_(t[o],t[o+1],p++),d.push(this.insertItem_(h,l,i)),c.push([Math.min(h.x,l.x),Math.min(h.y,l.y),Math.max(h.x,l.x),Math.max(h.y,l.y)]),h=l;d.push(this.insertItem_(l,a,i)),c.push([Math.min(h.x,l.x),Math.min(h.y,l.y),Math.max(h.x,l.x),Math.max(h.y,l.y)])}r.load(c,d)},e.prototype.getMaxCoords_=function(t){var e=t.firstItem(),i=e,r=[i.p0.x,i.p0.y];do{(i=t.nextItem()).p0.x>r[0]&&(r=[i.p0.x,i.p0.y])}while(i!==e);return r},e.prototype.classifyPoints_=function(t,e,i){var r=t.firstItem(),n=r,o=t.nextItem(),s=!1;do{var a=i?xh(o.p1.x,o.p1.y,n.p1.x,n.p1.y,n.p0.x,n.p0.y):xh(n.p0.x,n.p0.y,n.p1.x,n.p1.y,o.p1.x,o.p1.y);void 0===a?(this.removeItem_(n,o,t,e),s=!0,o===r&&(r=t.getNextItem()),o=n,t.prevItem()):n.p1.reflex!==a&&(n.p1.reflex=a,s=!0),n=o,o=t.nextItem()}while(n!==r);return s},e.prototype.bridgeHole_=function(t,e,i,r,n){for(var o=t.firstItem();o.p1.x!==e;)o=t.nextItem();var s,a,h,l,u=o.p1,p={x:r,y:u.y,i:-1},c=1/0,d=this.getIntersections_({p0:u,p1:p},n,!0);for(s=0,a=d.length;s0){var y=this.getPointsInTriangle_(u,l,o.p1,n);if(y.length){var v=1/0;for(s=0,a=y.length;s3;)if(r){if(!this.clipEars_(t,e,r,i)&&!this.classifyPoints_(t,e,i)&&!this.resolveSelfIntersections_(t,e,!0))break}else if(!this.clipEars_(t,e,r,i)&&!this.classifyPoints_(t,e,i)&&!this.resolveSelfIntersections_(t,e)){if(!(r=this.isSimple_(t,e))){this.splitPolygon_(t,e);break}i=!this.isClockwise_(t),this.classifyPoints_(t,e,i)}if(3===t.getLength()){var n=this.indices.length;this.indices[n++]=t.getPrevItem().p0.i,this.indices[n++]=t.getCurrItem().p0.i,this.indices[n++]=t.getNextItem().p0.i}},e.prototype.clipEars_=function(t,e,i,r){var n,o,s,a=this.indices.length,h=t.firstItem(),l=t.getPrevItem(),u=h,p=t.nextItem(),c=t.getNextItem(),d=!1;do{if(n=u.p0,o=u.p1,s=p.p1,!1===o.reflex){var f=void 0;f=i?0===this.getPointsInTriangle_(n,o,s,e,!0).length:r?this.diagonalIsInside_(c.p1,s,o,n,l.p0):this.diagonalIsInside_(l.p0,n,o,s,c.p1),(i||0===this.getIntersections_({p0:n,p1:s},e).length)&&f&&(i||!1===n.reflex||!1===s.reflex||Si([l.p0.x,l.p0.y,n.x,n.y,o.x,o.y,s.x,s.y,c.p1.x,c.p1.y],0,10,2)===!r)&&(this.indices[a++]=n.i,this.indices[a++]=o.i,this.indices[a++]=s.i,this.removeItem_(u,p,t,e),p===h&&(h=c),d=!0)}l=t.getPrevItem(),u=t.getCurrItem(),p=t.nextItem(),c=t.getNextItem()}while(u!==h&&t.getLength()>3);return d},e.prototype.resolveSelfIntersections_=function(t,e,i){var r=t.firstItem();t.nextItem();var n=r,o=t.nextItem(),s=!1;do{var a=this.calculateIntersection_(n.p0,n.p1,o.p0,o.p1,i);if(a){var h=!1,l=this.vertices.length,u=this.indices.length,p=l/2,c=t.prevItem();t.removeItem(),e.remove(c),h=c===r;var d=void 0;if(i?(a[0]===n.p0.x&&a[1]===n.p0.y?(t.prevItem(),d=n.p0,o.p0=d,e.remove(n),h=h||n===r):(d=o.p1,n.p1=d,e.remove(o),h=h||o===r),t.removeItem()):(d=this.createPoint_(a[0],a[1],p),n.p1=d,o.p0=d,e.update([Math.min(n.p0.x,n.p1.x),Math.min(n.p0.y,n.p1.y),Math.max(n.p0.x,n.p1.x),Math.max(n.p0.y,n.p1.y)],n),e.update([Math.min(o.p0.x,o.p1.x),Math.min(o.p0.y,o.p1.y),Math.max(o.p0.x,o.p1.x),Math.max(o.p0.y,o.p1.y)],o)),this.indices[u++]=c.p0.i,this.indices[u++]=c.p1.i,this.indices[u++]=d.i,s=!0,h)break}n=t.getPrevItem(),o=t.nextItem()}while(n!==r);return s},e.prototype.isSimple_=function(t,e){var i=t.firstItem(),r=i;do{if(this.getIntersections_(r,e).length)return!1;r=t.nextItem()}while(r!==i);return!0},e.prototype.isClockwise_=function(t){var e=2*t.getLength(),i=new Array(e),r=t.firstItem(),n=r,o=0;do{i[o++]=n.p0.x,i[o++]=n.p0.y,n=t.nextItem()}while(n!==r);return Si(i,0,e,2)},e.prototype.splitPolygon_=function(t,e){var i=t.firstItem(),r=i;do{var n=this.getIntersections_(r,e);if(n.length){var o=n[0],s=this.vertices.length/2,a=this.calculateIntersection_(r.p0,r.p1,o.p0,o.p1),h=this.createPoint_(a[0],a[1],s),l=new Qh,u=new tl;this.insertItem_(h,r.p1,l,u),r.p1=h,e.update([Math.min(r.p0.x,h.x),Math.min(r.p0.y,h.y),Math.max(r.p0.x,h.x),Math.max(r.p0.y,h.y)],r);for(var p=t.nextItem();p!==o;)this.insertItem_(p.p0,p.p1,l,u),e.remove(p),t.removeItem(),p=t.getCurrItem();this.insertItem_(o.p0,h,l,u),o.p0=h,e.update([Math.min(o.p1.x,h.x),Math.min(o.p1.y,h.y),Math.max(o.p1.x,h.x),Math.max(o.p1.y,h.y)],o),this.classifyPoints_(t,e,!1),this.triangulate_(t,e),this.classifyPoints_(l,u,!1),this.triangulate_(l,u);break}r=t.nextItem()}while(r!==i)},e.prototype.createPoint_=function(t,e,i){var r=this.vertices.length;return this.vertices[r++]=t,this.vertices[r++]=e,{x:t,y:e,i:i,reflex:void 0}},e.prototype.insertItem_=function(t,e,i,r){var n={p0:t,p1:e};return i.insertItem(n),r&&r.insert([Math.min(t.x,e.x),Math.min(t.y,e.y),Math.max(t.x,e.x),Math.max(t.y,e.y)],n),n},e.prototype.removeItem_=function(t,e,i,r){i.getCurrItem()===e&&(i.removeItem(),t.p1=e.p1,r.remove(e),r.update([Math.min(t.p0.x,t.p1.x),Math.min(t.p0.y,t.p1.y),Math.max(t.p0.x,t.p1.x),Math.max(t.p0.y,t.p1.y)],t))},e.prototype.getPointsInTriangle_=function(t,e,i,r,n){for(var o=[],s=r.getInExtent([Math.min(t.x,e.x,i.x),Math.min(t.y,e.y,i.y),Math.max(t.x,e.x,i.x),Math.max(t.y,e.y,i.y)]),a=0,h=s.length;amh&&s<1-mh&&a>mh&&a<1-mh||n&&s>=0&&s<=1&&a>=0&&a<=1)return[t.x+s*(e.x-t.x),t.y+s*(e.y-t.y)]}},e.prototype.diagonalIsInside_=function(t,e,i,r,n){if(void 0===e.reflex||void 0===r.reflex)return!1;var o=(i.x-r.x)*(e.y-r.y)>(i.y-r.y)*(e.x-r.x),s=(n.x-r.x)*(e.y-r.y)<(n.y-r.y)*(e.x-r.x),a=(t.x-e.x)*(r.y-e.y)>(t.y-e.y)*(r.x-e.x),h=(i.x-e.x)*(r.y-e.y)<(i.y-e.y)*(r.x-e.x),l=r.reflex?s||o:s&&o,u=e.reflex?h||a:h&&a;return l&&u},e.prototype.drawMultiPolygon=function(t,e){var i,r,n,o,s=t.getEndss(),a=t.getStride(),h=this.indices.length,l=this.lineStringReplay.getCurrentIndex(),u=t.getFlatCoordinates(),p=0;for(i=0,r=s.length;i0){var d=Dt(u,p,c[0],a,-this.origin[0],-this.origin[1]);if(d.length){var f=[],_=void 0;for(n=1,o=c.length;nh&&(this.startIndices.push(h),this.startIndicesFeature.push(e),this.state_.changed&&(this.styleIndices_.push(h),this.state_.changed=!1)),this.lineStringReplay.getCurrentIndex()>l&&this.lineStringReplay.setPolygonStyle(e,l)},e.prototype.drawPolygon=function(t,e){var i=t.getEnds(),r=t.getStride();if(i.length>0){var n=t.getFlatCoordinates().map(Number),o=Dt(n,0,i[0],r,-this.origin[0],-this.origin[1]);if(o.length){var s,a,h,l=[];for(s=1,a=i.length;s0&&(this.styles_=[]),this.vertices=null,this.indices=null},e.prototype.getDeleteResourcesFunction=function(t){var e=this.verticesBuffer,i=this.indicesBuffer,r=this.lineStringReplay.getDeleteResourcesFunction(t);return function(){t.deleteBuffer(e),t.deleteBuffer(i),r()}},e.prototype.setUpProgram=function(t,e,i,r){var n,o=e.getProgram(Hh,Zh);return this.defaultLocations_?n=this.defaultLocations_:(n=new qh(t,o),this.defaultLocations_=n),e.useProgram(o),t.enableVertexAttribArray(n.a_position),t.vertexAttribPointer(n.a_position,2,5126,!1,8,0),n},e.prototype.shutDownProgram=function(t,e){t.disableVertexAttribArray(e.a_position)},e.prototype.drawReplay=function(t,e,i,r){var n,o,s,a,h=t.getParameter(t.DEPTH_FUNC),l=t.getParameter(t.DEPTH_WRITEMASK);if(r||(t.enable(t.DEPTH_TEST),t.depthMask(!0),t.depthFunc(t.NOTEQUAL)),d(i))for(s=this.startIndices[this.startIndices.length-1],n=this.styleIndices_.length-1;n>=0;--n)o=this.styleIndices_[n],a=this.styles_[n],this.setFillStyle_(t,a),this.drawElements(t,e,o,s),s=o;else this.drawReplaySkipping_(t,e,i);r||(t.disable(t.DEPTH_TEST),t.clear(t.DEPTH_BUFFER_BIT),t.depthMask(l),t.depthFunc(h))},e.prototype.drawHitDetectionReplayOneByOne=function(t,e,i,r,n){var s,a,h,l,u,p,c;for(c=this.startIndices.length-2,h=this.startIndices[c+1],s=this.styleIndices_.length-1;s>=0;--s)for(l=this.styles_[s],this.setFillStyle_(t,l),u=this.styleIndices_[s];c>=0&&this.startIndices[c]>=u;){if(a=this.startIndices[c],void 0===i[o(p=this.startIndicesFeature[c])]&&p.getGeometry()&&(void 0===n||Pt(n,p.getGeometry().getExtent()))){t.clear(t.COLOR_BUFFER_BIT|t.DEPTH_BUFFER_BIT),this.drawElements(t,e,a,h);var d=r(p);if(d)return d}c--,h=a}},e.prototype.drawReplaySkipping_=function(t,e,i){var r,n,s,a,h,l,u;for(l=this.startIndices.length-2,s=n=this.startIndices[l+1],r=this.styleIndices_.length-1;r>=0;--r){for(a=this.styles_[r],this.setFillStyle_(t,a),h=this.styleIndices_[r];l>=0&&this.startIndices[l]>=h;)u=this.startIndices[l],i[o(this.startIndicesFeature[l])]&&(n!==s&&(this.drawElements(t,e,n,s),t.clear(t.DEPTH_BUFFER_BIT)),s=u),l--,n=u;n!==s&&(this.drawElements(t,e,n,s),t.clear(t.DEPTH_BUFFER_BIT)),n=s=h}},e.prototype.setFillStyle_=function(t,e){t.uniform4fv(this.defaultLocations_.u_color,e)},e.prototype.setFillStrokeStyle=function(t,e){var i=t?t.getColor():[0,0,0,0];if(i=i instanceof CanvasGradient||i instanceof CanvasPattern?gh:_r(i).map(function(t,e){return 3!=e?t/255:t})||gh,this.state_.fillColor&&Z(i,this.state_.fillColor)||(this.state_.fillColor=i,this.state_.changed=!0,this.styles_.push(i)),e)this.lineStringReplay.setFillStrokeStyle(null,e);else{var r=new Er({color:[0,0,0,0],width:0});this.lineStringReplay.setFillStrokeStyle(null,r)}},e}(_h),il=function(t,e){this.space_=e,this.emptyBlocks_=[{x:0,y:0,width:t,height:t}],this.entries_={},this.context_=Jn(t,t),this.canvas_=this.context_.canvas};il.prototype.get=function(t){return this.entries_[t]||null},il.prototype.add=function(t,e,i,r,n){for(var o=0,s=this.emptyBlocks_.length;o=e+this.space_&&a.height>=i+this.space_){var h={offsetX:a.x+this.space_,offsetY:a.y+this.space_,image:this.canvas_};return this.entries_[t]=h,r.call(n,this.context_,a.x+this.space_,a.y+this.space_),this.split_(o,a,e+this.space_,i+this.space_),h}}return null},il.prototype.split_=function(t,e,i,r){var n,o;e.width-i>e.height-r?(n={x:e.x+i,y:e.y,width:e.width-i,height:e.height},o={x:e.x,y:e.y+r,width:i,height:e.height-r},this.updateBlocks_(t,n,o)):(n={x:e.x+i,y:e.y,width:e.width-i,height:r},o={x:e.x,y:e.y+r,width:e.width,height:e.height-r},this.updateBlocks_(t,n,o))},il.prototype.updateBlocks_=function(t,e,i){var r=[t,1];e.width>0&&e.height>0&&r.push(e),i.width>0&&i.height>0&&r.push(i),this.emptyBlocks_.splice.apply(this.emptyBlocks_,r)};var rl=il,nl=function(t){var e=t||{};this.currentSize_=void 0!==e.initialSize?e.initialSize:256,this.maxSize_=void 0!==e.maxSize?e.maxSize:void 0!==nh?nh:2048,this.space_=void 0!==e.space?e.space:1,this.atlases_=[new rl(this.currentSize_,this.space_)],this.currentHitSize_=this.currentSize_,this.hitAtlases_=[new rl(this.currentHitSize_,this.space_)]};nl.prototype.getInfo=function(t){var e=this.getInfo_(this.atlases_,t);if(!e)return null;var i=this.getInfo_(this.hitAtlases_,t);return this.mergeInfos_(e,i)},nl.prototype.getInfo_=function(t,e){for(var i=0,r=t.length;ithis.maxSize_||i+this.space_>this.maxSize_)return null;var s=this.add_(!1,t,e,i,r,o);if(!s)return null;var a=void 0!==n?n:I,h=this.add_(!0,t,e,i,a,o);return this.mergeInfos_(s,h)},nl.prototype.add_=function(t,e,i,r,n,o){var s,a,h,l,u=t?this.hitAtlases_:this.atlases_;for(h=0,l=u.length;h=0;--d)if(void 0!==(_=f[Ea[d]])&&(g=_.replay(t,e,i,r,n,o,s,a,h,l,u)))return g},e.prototype.forEachFeatureAtCoordinate=function(t,e,i,r,n,o,s,a,h,l){var u,p=e.getGL();return p.bindFramebuffer(p.FRAMEBUFFER,e.getHitDetectionFramebuffer()),void 0!==this.renderBuffer_&&(u=et(pt(t),r*this.renderBuffer_)),this.replayHitDetection_(e,t,r,n,al,s,a,h,function(t){var e=new Uint8Array(4);if(p.readPixels(0,0,1,1,p.RGBA,p.UNSIGNED_BYTE,e),e[3]>0){var i=l(t);if(i)return i}},!0,u)},e.prototype.hasFeatureAtCoordinate=function(t,e,i,r,n,o,s,a,h){var l=e.getGL();return l.bindFramebuffer(l.FRAMEBUFFER,e.getHitDetectionFramebuffer()),void 0!==this.replayHitDetection_(e,t,r,n,al,s,a,h,function(t){var e=new Uint8Array(4);return l.readPixels(0,0,1,1,l.RGBA,l.UNSIGNED_BYTE,e),e[3]>0},!1)},e}(ca),ul=function(t){function e(e,i,r,n,o,s,a){t.call(this),this.context_=e,this.center_=i,this.extent_=s,this.pixelRatio_=a,this.size_=o,this.rotation_=n,this.resolution_=r,this.imageStyle_=null,this.fillStyle_=null,this.strokeStyle_=null,this.textStyle_=null}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.drawText_=function(t,e){var i=this.context_,r=t.getReplay(0,da.TEXT);r.setTextStyle(this.textStyle_),r.drawText(e,null),r.finish(i);r.replay(this.context_,this.center_,this.resolution_,this.rotation_,this.size_,this.pixelRatio_,1,{},void 0,!1),r.getDeleteResourcesFunction(i)()},e.prototype.setStyle=function(t){this.setFillStrokeStyle(t.getFill(),t.getStroke()),this.setImageStyle(t.getImage()),this.setTextStyle(t.getText())},e.prototype.drawGeometry=function(t){switch(t.getType()){case Nt.POINT:this.drawPoint(t,null);break;case Nt.LINE_STRING:this.drawLineString(t,null);break;case Nt.POLYGON:this.drawPolygon(t,null);break;case Nt.MULTI_POINT:this.drawMultiPoint(t,null);break;case Nt.MULTI_LINE_STRING:this.drawMultiLineString(t,null);break;case Nt.MULTI_POLYGON:this.drawMultiPolygon(t,null);break;case Nt.GEOMETRY_COLLECTION:this.drawGeometryCollection(t,null);break;case Nt.CIRCLE:this.drawCircle(t,null)}},e.prototype.drawFeature=function(t,e){var i=e.getGeometryFunction()(t);i&&Pt(this.extent_,i.getExtent())&&(this.setStyle(e),this.drawGeometry(i))},e.prototype.drawGeometryCollection=function(t,e){var i,r,n=t.getGeometriesArray();for(i=0,r=n.length;in[0]||o[1]<0||o[1]>n[1])){this.hitCanvasContext_||(this.hitCanvasContext_=Jn(1,1)),this.hitCanvasContext_.clearRect(0,0,1,1),this.hitCanvasContext_.drawImage(this.image_.getImage(),o[0],o[1],1,1,0,0,1,1);var s=this.hitCanvasContext_.getImageData(0,0,1,1).data;return s[3]>0?i.call(r,this.getLayer(),s):void 0}}},e.prototype.getHitTransformationMatrix_=function(t,e){var i=[1,0,0,1,0,0];Ue(i,-1,-1),je(i,2/t[0],2/t[1]),Ue(i,0,t[1]),je(i,1,-1);var r=Be(this.projectionMatrix.slice()),n=[1,0,0,1,0,0];return Ue(n,0,e[1]),je(n,1,-1),je(n,e[0]/2,e[1]/2),Ue(n,1,1),Ae(n,r),Ae(n,i),n},e}(fl);_l.handles=function(t){return t.getType()===Ss.IMAGE},_l.create=function(t,e){return new _l(t,e)};var gl=_l,yl=function(t){function e(e){t.call(this,e);var i=e.getViewport();this.canvas_=document.createElement("canvas"),this.canvas_.style.width="100%",this.canvas_.style.height="100%",this.canvas_.style.display="block",this.canvas_.className=fo,i.insertBefore(this.canvas_,i.childNodes[0]||null),this.clipTileCanvasWidth_=0,this.clipTileCanvasHeight_=0,this.clipTileContext_=Jn(),this.renderedVisible_=!0,this.gl_=rh(this.canvas_,{antialias:!0,depth:!0,failIfMajorPerformanceCaveat:!0,preserveDrawingBuffer:!1,stencil:!0}),this.context_=new Mh(this.canvas_,this.gl_),v(this.canvas_,Lh.LOST,this.handleWebGLContextLost,this),v(this.canvas_,Lh.RESTORED,this.handleWebGLContextRestored,this),this.textureCache_=new Rs,this.focus_=null,this.tileTextureQueue_=new bn(function(t){var e=t[1],i=t[2],r=e[0]-this.focus_[0],n=e[1]-this.focus_[1];return 65536*Math.log(i)+Math.sqrt(r*r+n*n)/i}.bind(this),function(t){return t[0].getKey()}),this.loadNextTileTexture_=function(t,e){if(!this.tileTextureQueue_.isEmpty()){this.tileTextureQueue_.reprioritize();var i=this.tileTextureQueue_.dequeue(),r=i[0],n=i[3],o=i[4];this.bindTileTexture(r,n,o,Qa,Qa)}return!1}.bind(this),this.textureCacheFrameMarkerCount_=0,this.initializeGL_()}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.bindTileTexture=function(t,e,i,r,n){var o=this.getGL(),s=t.getKey();if(this.textureCache_.containsKey(s)){var a=this.textureCache_.get(s);o.bindTexture(eh,a.texture),a.magFilter!=r&&(o.texParameteri(eh,10240,r),a.magFilter=r),a.minFilter!=n&&(o.texParameteri(eh,10241,n),a.minFilter=n)}else{var h=o.createTexture(),l=t;if(o.bindTexture(eh,h),i>0){var u=this.clipTileContext_.canvas,p=this.clipTileContext_;this.clipTileCanvasWidth_!==e[0]||this.clipTileCanvasHeight_!==e[1]?(u.width=e[0],u.height=e[1],this.clipTileCanvasWidth_=e[0],this.clipTileCanvasHeight_=e[1]):p.clearRect(0,0,e[0],e[1]),p.drawImage(l.getImage(),i,i,e[0],e[1],0,0,e[0],e[1]),o.texImage2D(eh,0,6408,6408,5121,u)}else o.texImage2D(eh,0,6408,6408,5121,l.getImage());o.texParameteri(eh,10240,r),o.texParameteri(eh,10241,n),o.texParameteri(eh,$a,33071),o.texParameteri(eh,th,33071),this.textureCache_.set(s,{texture:h,magFilter:r,minFilter:n})}},e.prototype.dispatchRenderEvent=function(t,e){var i=this.getMap();if(i.hasListener(t)){var r=this.context_,n=e.extent,o=e.size,s=e.viewState,a=e.pixelRatio,h=s.resolution,l=s.center,u=s.rotation,p=new ul(r,l,h,u,o,n,a),c=new Cs(t,p,e,null,r);i.dispatchEvent(c)}},e.prototype.disposeInternal=function(){var e=this.getGL();e.isContextLost()||this.textureCache_.forEach(function(t){t&&e.deleteTexture(t.texture)}),this.context_.dispose(),t.prototype.disposeInternal.call(this)},e.prototype.expireCache_=function(t,e){for(var i,r=this.getGL();this.textureCache_.getCount()-this.textureCacheFrameMarkerCount_>1024;){if(i=this.textureCache_.peekLast())r.deleteTexture(i.texture);else{if(+this.textureCache_.peekLastKey()==e.index)break;--this.textureCacheFrameMarkerCount_}this.textureCache_.pop()}},e.prototype.getContext=function(){return this.context_},e.prototype.getGL=function(){return this.gl_},e.prototype.getTileTextureQueue=function(){return this.tileTextureQueue_},e.prototype.handleWebGLContextLost=function(t){t.preventDefault(),this.textureCache_.clear(),this.textureCacheFrameMarkerCount_=0;var e=this.getLayerRenderers();for(var i in e){e[i].handleWebGLContextLost()}},e.prototype.handleWebGLContextRestored=function(){this.initializeGL_(),this.getMap().render()},e.prototype.initializeGL_=function(){var t=this.gl_;t.activeTexture(33984),t.blendFuncSeparate(770,771,1,771),t.disable(2884),t.disable(2929),t.disable(3089),t.disable(2960)},e.prototype.isTileTextureLoaded=function(t){return this.textureCache_.containsKey(t.getKey())},e.prototype.renderFrame=function(t){var e=this.getContext(),i=this.getGL();if(i.isContextLost())return!1;if(!t)return this.renderedVisible_&&(this.canvas_.style.display="none",this.renderedVisible_=!1),!1;this.focus_=t.focus,this.textureCache_.set((-t.index).toString(),null),++this.textureCacheFrameMarkerCount_,this.dispatchRenderEvent(ur.PRECOMPOSE,t);var r=[],n=t.layerStatesArray;q(n,Zs);var o,s,a=t.viewState.resolution;for(o=0,s=n.length;o1024&&t.postRenderFunctions.push(this.expireCache_.bind(this)),this.tileTextureQueue_.isEmpty()||(t.postRenderFunctions.push(this.loadNextTileTexture_),t.animate=!0),this.dispatchRenderEvent(ur.POSTCOMPOSE,t),this.scheduleRemoveUnusedLayerRenderers(t),this.scheduleExpireIconCache(t)},e.prototype.forEachFeatureAtCoordinate=function(t,e,i,r,n,o,s){var a;if(this.getGL().isContextLost())return!1;var h,l=e.viewState,u=e.layerStatesArray;for(h=u.length-1;h>=0;--h){var p=u[h],c=p.layer;if(mo(p,l.resolution)&&o.call(s,c))if(a=this.getLayerRenderer(c).forEachFeatureAtCoordinate(t,e,i,r))return a}},e.prototype.hasFeatureAtCoordinate=function(t,e,i,r,n){var o=!1;if(this.getGL().isContextLost())return!1;var s,a=e.viewState,h=e.layerStatesArray;for(s=h.length-1;s>=0;--s){var l=h[s],u=l.layer;if(mo(l,a.resolution)&&r.call(n,u))if(o=this.getLayerRenderer(u).hasFeatureAtCoordinate(t,e))return!0}return o},e.prototype.forEachLayerAtPixel=function(t,e,i,r,n,o,s){if(this.getGL().isContextLost())return!1;var a,h,l=e.viewState,u=e.layerStatesArray;for(h=u.length-1;h>=0;--h){var p=u[h],c=p.layer;if(mo(p,l.resolution)&&o.call(n,c))if(a=this.getLayerRenderer(c).forEachLayerAtPixel(t,e,r,n))return a}},e}(qs),vl=function(t){function e(e,i,r){t.call(this);var n=r||{};this.tileCoord=e,this.state=i,this.interimTile=null,this.key="",this.transition_=void 0===n.transition?250:n.transition,this.transitionStarts_={}}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.changed=function(){this.dispatchEvent(M.CHANGE)},e.prototype.getKey=function(){return this.key+"/"+this.tileCoord},e.prototype.getInterimTile=function(){if(!this.interimTile)return this;var t=this.interimTile;do{if(t.getState()==On.LOADED)return t;t=t.interimTile}while(t);return this},e.prototype.refreshInterimChain=function(){if(this.interimTile){var t=this.interimTile,e=this;do{if(t.getState()==On.LOADED){t.interimTile=null;break}t.getState()==On.LOADING?e=t:t.getState()==On.IDLE?e.interimTile=t.interimTile:e=t,t=e.interimTile}while(t)}},e.prototype.getTileCoord=function(){return this.tileCoord},e.prototype.getState=function(){return this.state},e.prototype.setState=function(t){this.state=t,this.changed()},e.prototype.load=function(){},e.prototype.getAlpha=function(t,e){if(!this.transition_)return 1;var i=this.transitionStarts_[t];if(i){if(-1===i)return 1}else i=e,this.transitionStarts_[t]=i;var r=e-i+1e3/60;return r>=this.transition_?1:Vn(r/this.transition_)},e.prototype.inTransition=function(t){return!!this.transition_&&-1!==this.transitionStarts_[t]},e.prototype.endTransition=function(t){this.transition_&&(this.transitionStarts_[t]=-1)},e}(b);function ml(){var t=Jn(1,1);return t.fillStyle="rgba(0,0,0,0)",t.fillRect(0,0,1,1),t.canvas}var xl=function(t){function e(e,i,r,n,o,s){t.call(this,e,i,s),this.crossOrigin_=n,this.src_=r,this.image_=new Image,null!==n&&(this.image_.crossOrigin=n),this.imageListenerKeys_=null,this.tileLoadFunction_=o}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.disposeInternal=function(){this.state==On.LOADING&&(this.unlistenImage_(),this.image_=ml()),this.interimTile&&this.interimTile.dispose(),this.state=On.ABORT,this.changed(),t.prototype.disposeInternal.call(this)},e.prototype.getImage=function(){return this.image_},e.prototype.getKey=function(){return this.src_},e.prototype.handleImageError_=function(){this.state=On.ERROR,this.unlistenImage_(),this.image_=ml(),this.changed()},e.prototype.handleImageLoad_=function(){var t=this.image_;t.naturalWidth&&t.naturalHeight?this.state=On.LOADED:this.state=On.EMPTY,this.unlistenImage_(),this.changed()},e.prototype.load=function(){this.state==On.ERROR&&(this.state=On.IDLE,this.image_=new Image,null!==this.crossOrigin_&&(this.image_.crossOrigin=this.crossOrigin_)),this.state==On.IDLE&&(this.state=On.LOADING,this.changed(),this.imageListenerKeys_=[m(this.image_,M.ERROR,this.handleImageError_,this),m(this.image_,M.LOAD,this.handleImageLoad_,this)],this.tileLoadFunction_(this,this.src_))},e.prototype.unlistenImage_=function(){this.imageListenerKeys_.forEach(E),this.imageListenerKeys_=null},e}(vl);function El(t,e,i,r){return void 0!==r?(r[0]=t,r[1]=e,r[2]=i,r):[t,e,i]}function Sl(t,e,i){return t+"/"+e+"/"+i}function Tl(t){return Sl(t[0],t[1],t[2])}function Cl(t){return(t[1]<0||i&&0===o)})}(this.resolutions_,function(t,e){return e-t},!0),17),!t.origins)for(var i=0,r=this.resolutions_.length-1;i=this.minZoom;){if(o=2===this.zoomFactor_?oa(s=Math.floor(s/2),s,a=Math.floor(a/2),a,r):this.getTileRangeForExtentAndZ(h,l,r),e.call(i,l,o))return!0;--l}return!1},Ol.prototype.getExtent=function(){return this.extent_},Ol.prototype.getMaxZoom=function(){return this.maxZoom},Ol.prototype.getMinZoom=function(){return this.minZoom},Ol.prototype.getOrigin=function(t){return this.origin_?this.origin_:this.origins_[t]},Ol.prototype.getResolution=function(t){return this.resolutions_[t]},Ol.prototype.getResolutions=function(){return this.resolutions_},Ol.prototype.getTileCoordChildTileRange=function(t,e,i){if(t[0]i||i>e.getMaxZoom())return!1;var o,s=e.getExtent();return!(o=s?e.getTileRangeForExtentAndZ(s,i):e.getFullTileRange(i))||o.containsXY(r,n)}(t,r)?t:null},e.prototype.refresh=function(){this.tileCache.clear(),this.changed()},e.prototype.useTile=function(t,e,i,r){},e}(Il),kl=function(t){function e(e,i){t.call(this,e),this.tile=i}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e}(P),jl=Dl,Ul=new lh("precision mediump float;\nvarying vec2 v_texCoord;\n\n\nuniform sampler2D u_texture;\n\nvoid main(void) {\n gl_FragColor = texture2D(u_texture, v_texCoord);\n}\n"),Yl=new uh("varying vec2 v_texCoord;\n\n\nattribute vec2 a_position;\nattribute vec2 a_texCoord;\nuniform vec4 u_tileOffset;\n\nvoid main(void) {\n gl_Position = vec4(a_position * u_tileOffset.xy + u_tileOffset.zw, 0., 1.);\n v_texCoord = a_texCoord;\n}\n\n\n"),Bl=function(t,e){this.u_tileOffset=t.getUniformLocation(e,"u_tileOffset"),this.u_texture=t.getUniformLocation(e,"u_texture"),this.a_position=t.getAttribLocation(e,"a_position"),this.a_texCoord=t.getAttribLocation(e,"a_texCoord")},Vl=function(t){function e(e,i){t.call(this,e,i),this.fragmentShader_=Ul,this.vertexShader_=Yl,this.locations_=null,this.renderArrayBuffer_=new Th([0,0,0,1,1,0,1,1,0,1,0,0,1,1,1,0]),this.renderedTileRange_=null,this.renderedFramebufferExtent_=null,this.renderedRevision_=-1,this.tmpSize_=[0,0]}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.disposeInternal=function(){this.mapRenderer.getContext().deleteBuffer(this.renderArrayBuffer_),t.prototype.disposeInternal.call(this)},e.prototype.createLoadedTileFinder=function(t,e,i){var r=this.mapRenderer;return function(n,o){return t.forEachLoadedTile(e,n,o,function(t){var e=r.isTileTextureLoaded(t);return e&&(i[n]||(i[n]={}),i[n][t.tileCoord.toString()]=t),e})}},e.prototype.handleWebGLContextLost=function(){t.prototype.handleWebGLContextLost.call(this),this.locations_=null},e.prototype.prepareFrame=function(t,e,i){var r=this.mapRenderer,n=i.getGL(),o=t.viewState,s=o.projection,a=this.getLayer(),h=a.getSource();if(!(h instanceof jl))return!0;var l,u=h.getTileGridForProjection(s),p=u.getZForResolution(o.resolution),c=u.getResolution(p),d=h.getTilePixelSize(p,t.pixelRatio,s),f=d[0]/ho(u.getTileSize(p),this.tmpSize_)[0],_=c/f,g=h.getTilePixelRatio(f)*h.getGutterForProjection(s),y=o.center,v=t.extent,m=u.getTileRangeForExtentAndZ(v,p);if(this.renderedTileRange_&&this.renderedTileRange_.equals(m)&&this.renderedRevision_==h.getRevision())l=this.renderedFramebufferExtent_;else{var x=m.getSize(),E=function(t){return Y(00?i.call(r,this.getLayer(),h):void 0}},e}(fl);Vl.handles=function(t){return t.getType()===Ss.TILE},Vl.create=function(t,e){return new Vl(t,e)};var Xl=Vl,zl=function(t){function e(e,i){t.call(this,e,i),this.dirty_=!1,this.renderedRevision_=-1,this.renderedResolution_=NaN,this.renderedExtent_=[1/0,1/0,-1/0,-1/0],this.renderedRenderOrder_=null,this.replayGroup_=null,this.layerState_=null}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.composeFrame=function(t,e,i){this.layerState_=e;var r=t.viewState,n=this.replayGroup_,o=t.size,s=t.pixelRatio,a=this.mapRenderer.getGL();n&&!n.isEmpty()&&(a.enable(a.SCISSOR_TEST),a.scissor(0,0,o[0]*s,o[1]*s),n.replay(i,r.center,r.resolution,r.rotation,o,s,e.opacity,e.managed?t.skippedFeatureUids:{}),a.disable(a.SCISSOR_TEST))},e.prototype.disposeInternal=function(){var e=this.replayGroup_;if(e){var i=this.mapRenderer.getContext();e.getDeleteResourcesFunction(i)(),this.replayGroup_=null}t.prototype.disposeInternal.call(this)},e.prototype.forEachFeatureAtCoordinate=function(t,e,i,r,n){if(this.replayGroup_&&this.layerState_){var s=this.mapRenderer.getContext(),a=e.viewState,h=this.getLayer(),l=this.layerState_,u={};return this.replayGroup_.forEachFeatureAtCoordinate(t,s,a.center,a.resolution,a.rotation,e.size,e.pixelRatio,l.opacity,{},function(t){var e=o(t);if(!(e in u))return u[e]=!0,r.call(n,t,h)})}},e.prototype.hasFeatureAtCoordinate=function(t,e){if(this.replayGroup_&&this.layerState_){var i=this.mapRenderer.getContext(),r=e.viewState,n=this.layerState_;return this.replayGroup_.hasFeatureAtCoordinate(t,i,r.center,r.resolution,r.rotation,e.size,e.pixelRatio,n.opacity,e.skippedFeatureUids)}return!1},e.prototype.forEachLayerAtPixel=function(t,e,i,r){var n=De(e.pixelToCoordinateTransform,t.slice());return this.hasFeatureAtCoordinate(n,e)?i.call(r,this.getLayer(),null):void 0},e.prototype.handleStyleImageChange_=function(t){this.renderIfReadyAndVisible()},e.prototype.prepareFrame=function(t,e,i){var r=this.getLayer(),n=r.getSource(),o=t.viewHints[kn],s=t.viewHints[jn],a=r.getUpdateWhileAnimating(),h=r.getUpdateWhileInteracting();if(!this.dirty_&&!a&&o||!h&&s)return!0;var l=t.extent,u=t.viewState,p=u.projection,c=u.resolution,d=t.pixelRatio,f=r.getRevision(),_=r.getRenderBuffer(),g=r.getRenderOrder();void 0===g&&(g=Da);var y=et(l,_*c);if(!this.dirty_&&this.renderedResolution_==c&&this.renderedRevision_==f&&this.renderedRenderOrder_==g&&ot(this.renderedExtent_,y))return!0;this.replayGroup_&&t.postRenderFunctions.push(this.replayGroup_.getDeleteResourcesFunction(i)),this.dirty_=!1;var v=new ll(ja(c,d),y,r.getRenderBuffer());n.loadFeatures(y,c,p);var m=function(t){var e,i=t.getStyleFunction()||r.getStyleFunction();if(i&&(e=i(t,c)),e){var n=this.renderFeature(t,c,d,e,v);this.dirty_=this.dirty_||n}}.bind(this);if(g){var x=[];n.forEachFeatureInExtent(y,function(t){x.push(t)}),x.sort(g),x.forEach(m.bind(this))}else n.forEachFeatureInExtent(y,m);return v.finish(i),this.renderedResolution_=c,this.renderedRevision_=f,this.renderedRenderOrder_=g,this.renderedExtent_=y,this.replayGroup_=v,!0},e.prototype.renderFeature=function(t,e,i,r,n){if(!r)return!1;var o=!1;if(Array.isArray(r))for(var s=r.length-1;s>=0;--s)o=Ua(n,t,r[s],ka(e,i),this.handleStyleImageChange_,this)||o;else o=Ua(n,t,r,ka(e,i),this.handleStyleImageChange_,this)||o;return o},e}(fl);zl.handles=function(t){return t.getType()===Ss.VECTOR},zl.create=function(t,e){return new zl(t,e)};var Wl=zl,Kl=function(t){function e(e){(e=u({},e)).controls||(e.controls=wo()),e.interactions||(e.interactions=ys()),t.call(this,e)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.createRenderer=function(){var t=new yl(this);return t.registerLayerRenderers([gl,Xl,Wl]),t},e}(lo),Hl={ARRAY_BUFFER:"arraybuffer",JSON:"json",TEXT:"text",XML:"xml"};function Zl(t,e,i,r){return function(n,o,s){var a=new XMLHttpRequest;a.open("GET","function"==typeof t?t(n,o,s):t,!0),e.getType()==Hl.ARRAY_BUFFER&&(a.responseType="arraybuffer"),a.onload=function(t){if(!a.status||a.status>=200&&a.status<300){var n,o=e.getType();o==Hl.JSON||o==Hl.TEXT?n=a.responseText:o==Hl.XML?(n=a.responseXML)||(n=(new DOMParser).parseFromString(a.responseText,"application/xml")):o==Hl.ARRAY_BUFFER&&(n=a.response),n?i.call(this,e.readFeatures(n,{featureProjection:s}),e.readProjection(n),e.getLastExtent()):r.call(this)}else r.call(this)}.bind(this),a.onerror=function(){r.call(this)}.bind(this),a.send()}}function ql(t,e){return Zl(t,e,function(t,e){"function"==typeof this.addFeatures&&this.addFeatures(t)},I)}function Jl(t,e){return[[-1/0,-1/0,1/0,1/0]]}var Ql=document.implementation.createDocument("","",null),$l="http://www.w3.org/2001/XMLSchema-instance";function tu(t,e){return Ql.createElementNS(t,e)}function eu(t,e){return function t(e,i,r){if(e.nodeType==Node.CDATA_SECTION_NODE||e.nodeType==Node.TEXT_NODE)i?r.push(String(e.nodeValue).replace(/(\r\n|\r|\n)/g,"")):r.push(e.nodeValue);else{var n;for(n=e.firstChild;n;n=n.nextSibling)t(n,i,r)}return r}(t,e,[]).join("")}function iu(t){return"documentElement"in t}function ru(t){return(new DOMParser).parseFromString(t,"application/xml")}function nu(t,e){return function(i,r){var n=t.call(void 0!==e?e:this,i,r);void 0!==n&&K(r[r.length-1],n)}}function ou(t,e){return function(i,r){var n=t.call(void 0!==e?e:this,i,r);void 0!==n&&r[r.length-1].push(n)}}function su(t,e){return function(i,r){var n=t.call(void 0!==e?e:this,i,r);void 0!==n&&(r[r.length-1]=n)}}function au(t,e,i){return function(r,n){var o=t.call(void 0!==i?i:this,r,n);if(void 0!==o){var s=n[n.length-1],a=void 0!==e?e:r.localName;(a in s?s[a]:s[a]=[]).push(o)}}}function hu(t,e,i){return function(r,n){var o=t.call(void 0!==i?i:this,r,n);void 0!==o&&(n[n.length-1][void 0!==e?e:r.localName]=o)}}function lu(t,e){return function(i,r,n){t.call(void 0!==e?e:this,i,r,n),n[n.length-1].node.appendChild(i)}}function uu(t,e){var i,r;return function(e,n,o){if(void 0===i){i={};var s={};s[e.localName]=t,i[e.namespaceURI]=s,r=pu(e.localName)}yu(i,r,n,o)}}function pu(t,e){var i=t;return function(t,r,n){var o=r[r.length-1].node,s=i;return void 0===s&&(s=n),tu(void 0!==e?e:o.namespaceURI,s)}}var cu=pu();function du(t,e){for(var i=e.length,r=new Array(i),n=0;n0)||H(h,function(i){return e.Identifier==i.TileMatrix||-1===e.Identifier.indexOf(":")&&t.Identifier+":"+e.Identifier===i.TileMatrix})){n.push(e.Identifier);var i=28e-5*e.ScaleDenominator/p,l=e.TileWidth,u=e.TileHeight;c?o.push([e.TopLeftCorner[1],e.TopLeftCorner[0]]):o.push(e.TopLeftCorner),r.push(i),s.push(l==u?l:[l,u]),a.push([e.MatrixWidth,-e.MatrixHeight])}}),new mu({extent:e,origins:o,resolutions:r,matrixIds:n,tileSizes:s,sizes:a})}var Su=function(t){this.opacity_=t.opacity,this.rotateWithView_=t.rotateWithView,this.rotation_=t.rotation,this.scale_=t.scale};Su.prototype.clone=function(){return new Su({opacity:this.getOpacity(),scale:this.getScale(),rotation:this.getRotation(),rotateWithView:this.getRotateWithView()})},Su.prototype.getOpacity=function(){return this.opacity_},Su.prototype.getRotateWithView=function(){return this.rotateWithView_},Su.prototype.getRotation=function(){return this.rotation_},Su.prototype.getScale=function(){return this.scale_},Su.prototype.getSnapToPixel=function(){return!1},Su.prototype.getAnchor=function(){return r()},Su.prototype.getImage=function(t){return r()},Su.prototype.getHitDetectionImage=function(t){return r()},Su.prototype.getImageState=function(){return r()},Su.prototype.getImageSize=function(){return r()},Su.prototype.getHitDetectionImageSize=function(){return r()},Su.prototype.getOrigin=function(){return r()},Su.prototype.getSize=function(){return r()},Su.prototype.setOpacity=function(t){this.opacity_=t},Su.prototype.setRotateWithView=function(t){this.rotateWithView_=t},Su.prototype.setRotation=function(t){this.rotation_=t},Su.prototype.setScale=function(t){this.scale_=t},Su.prototype.setSnapToPixel=function(t){},Su.prototype.listenImageChange=function(t,e){return r()},Su.prototype.load=function(){r()},Su.prototype.unlistenImageChange=function(t,e){r()};var Tu=Su,Cu=function(t){function e(e){var i=void 0!==e.rotateWithView&&e.rotateWithView;t.call(this,{opacity:1,rotateWithView:i,rotation:void 0!==e.rotation?e.rotation:0,scale:1}),this.checksums_=null,this.canvas_=null,this.hitDetectionCanvas_=null,this.fill_=void 0!==e.fill?e.fill:null,this.origin_=[0,0],this.points_=e.points,this.radius_=void 0!==e.radius?e.radius:e.radius1,this.radius2_=e.radius2,this.angle_=void 0!==e.angle?e.angle:0,this.stroke_=void 0!==e.stroke?e.stroke:null,this.anchor_=null,this.size_=null,this.imageSize_=null,this.hitDetectionImageSize_=null,this.atlasManager_=e.atlasManager,this.render_(this.atlasManager_)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.clone=function(){var t=new e({fill:this.getFill()?this.getFill().clone():void 0,points:this.getPoints(),radius:this.getRadius(),radius2:this.getRadius2(),angle:this.getAngle(),stroke:this.getStroke()?this.getStroke().clone():void 0,rotation:this.getRotation(),rotateWithView:this.getRotateWithView(),atlasManager:this.atlasManager_});return t.setOpacity(this.getOpacity()),t.setScale(this.getScale()),t},e.prototype.getAnchor=function(){return this.anchor_},e.prototype.getAngle=function(){return this.angle_},e.prototype.getFill=function(){return this.fill_},e.prototype.getHitDetectionImage=function(t){return this.hitDetectionCanvas_},e.prototype.getImage=function(t){return this.canvas_},e.prototype.getImageSize=function(){return this.imageSize_},e.prototype.getHitDetectionImageSize=function(){return this.hitDetectionImageSize_},e.prototype.getImageState=function(){return xs.LOADED},e.prototype.getOrigin=function(){return this.origin_},e.prototype.getPoints=function(){return this.points_},e.prototype.getRadius=function(){return this.radius_},e.prototype.getRadius2=function(){return this.radius2_},e.prototype.getSize=function(){return this.size_},e.prototype.getStroke=function(){return this.stroke_},e.prototype.listenImageChange=function(t,e){},e.prototype.load=function(){},e.prototype.unlistenImageChange=function(t,e){},e.prototype.render_=function(t){var e,i,r="",n="",o=0,s=null,a=0,h=0;this.stroke_&&(null===(i=this.stroke_.getColor())&&(i=Ls),i=Ys(i),void 0===(h=this.stroke_.getWidth())&&(h=1),s=this.stroke_.getLineDash(),a=this.stroke_.getLineDashOffset(),ki||(s=null,a=0),void 0===(n=this.stroke_.getLineJoin())&&(n="round"),void 0===(r=this.stroke_.getLineCap())&&(r="round"),void 0===(o=this.stroke_.getMiterLimit())&&(o=10));var l=2*(this.radius_+h)+1,u={strokeStyle:i,strokeWidth:h,size:l,lineCap:r,lineDash:s,lineDashOffset:a,lineJoin:n,miterLimit:o};if(void 0===t){var p=Jn(l,l);this.canvas_=p.canvas,e=l=this.canvas_.width,this.draw_(u,p,0,0),this.createHitDetectionCanvas_(u)}else{l=Math.round(l);var c,d=!this.fill_;d&&(c=this.drawHitDetectionCanvas_.bind(this,u));var f=this.getChecksum(),_=t.add(f,l,l,this.draw_.bind(this,u),c);this.canvas_=_.image,this.origin_=[_.offsetX,_.offsetY],e=_.image.width,d?(this.hitDetectionCanvas_=_.hitImage,this.hitDetectionImageSize_=[_.hitImage.width,_.hitImage.height]):(this.hitDetectionCanvas_=this.canvas_,this.hitDetectionImageSize_=[e,e])}this.anchor_=[l/2,l/2],this.size_=[l,l],this.imageSize_=[e,e]},e.prototype.draw_=function(t,e,i,r){var n,o,s;e.setTransform(1,0,0,1,0,0),e.translate(i,r),e.beginPath();var a=this.points_;if(a===1/0)e.arc(t.size/2,t.size/2,this.radius_,0,2*Math.PI,!0);else{var h=void 0!==this.radius2_?this.radius2_:this.radius_;for(h!==this.radius_&&(a*=2),n=0;n<=a;n++)o=2*n*Math.PI/a-Math.PI/2+this.angle_,s=n%2==0?this.radius_:h,e.lineTo(t.size/2+s*Math.cos(o),t.size/2+s*Math.sin(o))}if(this.fill_){var l=this.fill_.getColor();null===l&&(l=ws),e.fillStyle=Ys(l),e.fill()}this.stroke_&&(e.strokeStyle=t.strokeStyle,e.lineWidth=t.strokeWidth,t.lineDash&&(e.setLineDash(t.lineDash),e.lineDashOffset=t.lineDashOffset),e.lineCap=t.lineCap,e.lineJoin=t.lineJoin,e.miterLimit=t.miterLimit,e.stroke()),e.closePath()},e.prototype.createHitDetectionCanvas_=function(t){if(this.hitDetectionImageSize_=[t.size,t.size],this.fill_)this.hitDetectionCanvas_=this.canvas_;else{var e=Jn(t.size,t.size);this.hitDetectionCanvas_=e.canvas,this.drawHitDetectionCanvas_(t,e,0,0)}},e.prototype.drawHitDetectionCanvas_=function(t,e,i,r){e.setTransform(1,0,0,1,0,0),e.translate(i,r),e.beginPath();var n=this.points_;if(n===1/0)e.arc(t.size/2,t.size/2,this.radius_,0,2*Math.PI,!0);else{var o,s,a,h=void 0!==this.radius2_?this.radius2_:this.radius_;for(h!==this.radius_&&(n*=2),o=0;o<=n;o++)a=2*o*Math.PI/n-Math.PI/2+this.angle_,s=o%2==0?this.radius_:h,e.lineTo(t.size/2+s*Math.cos(a),t.size/2+s*Math.sin(a))}e.fillStyle=dr(ws),e.fill(),this.stroke_&&(e.strokeStyle=t.strokeStyle,e.lineWidth=t.strokeWidth,t.lineDash&&(e.setLineDash(t.lineDash),e.lineDashOffset=t.lineDashOffset),e.stroke()),e.closePath()},e.prototype.getChecksum=function(){var t=this.stroke_?this.stroke_.getChecksum():"-",e=this.fill_?this.fill_.getChecksum():"-";if(!this.checksums_||t!=this.checksums_[1]||e!=this.checksums_[2]||this.radius_!=this.checksums_[3]||this.radius2_!=this.checksums_[4]||this.angle_!=this.checksums_[5]||this.points_!=this.checksums_[6]){var i="r"+t+e+(void 0!==this.radius_?this.radius_.toString():"-")+(void 0!==this.radius2_?this.radius2_.toString():"-")+(void 0!==this.angle_?this.angle_.toString():"-")+(void 0!==this.points_?this.points_.toString():"-");this.checksums_=[i,t,e,this.radius_,this.radius2_,this.angle_,this.points_]}return this.checksums_[0]},e}(Tu),Ru=function(t){function e(e){var i=e||{};t.call(this,{points:1/0,fill:i.fill,radius:i.radius,stroke:i.stroke,atlasManager:i.atlasManager})}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.clone=function(){var t=new e({fill:this.getFill()?this.getFill().clone():void 0,stroke:this.getStroke()?this.getStroke().clone():void 0,radius:this.getRadius(),atlasManager:this.atlasManager_});return t.setOpacity(this.getOpacity()),t.setScale(this.getScale()),t},e.prototype.setRadius=function(t){this.radius_=t,this.render_(this.atlasManager_)},e}(Cu),wu={FRACTION:"fraction",PIXELS:"pixels"},Iu=function(t){function e(e,i,r,n,o,s){t.call(this),this.hitDetectionImage_=null,this.image_=e||new Image,null!==n&&(this.image_.crossOrigin=n),this.canvas_=s?document.createElement("canvas"):null,this.color_=s,this.imageListenerKeys_=null,this.imageState_=o,this.size_=r,this.src_=i,this.tainted_}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.isTainted_=function(){if(void 0===this.tainted_&&this.imageState_===xs.LOADED){this.tainted_=!1;var t=Jn(1,1);try{t.drawImage(this.image_,0,0),t.getImageData(0,0,1,1)}catch(t){this.tainted_=!0}}return!0===this.tainted_},e.prototype.dispatchChangeEvent_=function(){this.dispatchEvent(M.CHANGE)},e.prototype.handleImageError_=function(){this.imageState_=xs.ERROR,this.unlistenImage_(),this.dispatchChangeEvent_()},e.prototype.handleImageLoad_=function(){this.imageState_=xs.LOADED,this.size_&&(this.image_.width=this.size_[0],this.image_.height=this.size_[1]),this.size_=[this.image_.width,this.image_.height],this.unlistenImage_(),this.replaceColor_(),this.dispatchChangeEvent_()},e.prototype.getImage=function(t){return this.canvas_?this.canvas_:this.image_},e.prototype.getImageState=function(){return this.imageState_},e.prototype.getHitDetectionImage=function(t){if(!this.hitDetectionImage_)if(this.isTainted_()){var e=this.size_[0],i=this.size_[1],r=Jn(e,i);r.fillRect(0,0,e,i),this.hitDetectionImage_=r.canvas}else this.hitDetectionImage_=this.image_;return this.hitDetectionImage_},e.prototype.getSize=function(){return this.size_},e.prototype.getSrc=function(){return this.src_},e.prototype.load=function(){if(this.imageState_==xs.IDLE){this.imageState_=xs.LOADING,this.imageListenerKeys_=[m(this.image_,M.ERROR,this.handleImageError_,this),m(this.image_,M.LOAD,this.handleImageLoad_,this)];try{this.image_.src=this.src_}catch(t){this.handleImageError_()}}},e.prototype.replaceColor_=function(){if(this.color_&&!this.isTainted_()){this.canvas_.width=this.image_.width,this.canvas_.height=this.image_.height;var t=this.canvas_.getContext("2d");t.drawImage(this.image_,0,0);for(var e=t.getImageData(0,0,this.image_.width,this.image_.height),i=e.data,r=this.color_[0]/255,n=this.color_[1]/255,o=this.color_[2]/255,s=0,a=i.length;s0,6);var p=void 0!==i.src?xs.IDLE:xs.LOADED;this.color_=void 0!==i.color?_r(i.color):null,this.iconImage_=function(t,e,i,r,n,o){var s=Ks.get(e,r,o);return s||(s=new Iu(t,e,i,r,n,o),Ks.set(e,r,o,s)),s}(h,u,l,this.crossOrigin_,p,this.color_),this.offset_=void 0!==i.offset?i.offset:[0,0],this.offsetOrigin_=void 0!==i.offsetOrigin?i.offsetOrigin:Lu.TOP_LEFT,this.origin_=null,this.size_=void 0!==i.size?i.size:null}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.clone=function(){return new e({anchor:this.anchor_.slice(),anchorOrigin:this.anchorOrigin_,anchorXUnits:this.anchorXUnits_,anchorYUnits:this.anchorYUnits_,crossOrigin:this.crossOrigin_,color:this.color_&&this.color_.slice?this.color_.slice():this.color_||void 0,src:this.getSrc(),offset:this.offset_.slice(),offsetOrigin:this.offsetOrigin_,size:null!==this.size_?this.size_.slice():void 0,opacity:this.getOpacity(),scale:this.getScale(),rotation:this.getRotation(),rotateWithView:this.getRotateWithView()})},e.prototype.getAnchor=function(){if(this.normalizedAnchor_)return this.normalizedAnchor_;var t=this.anchor_,e=this.getSize();if(this.anchorXUnits_==wu.FRACTION||this.anchorYUnits_==wu.FRACTION){if(!e)return null;t=this.anchor_.slice(),this.anchorXUnits_==wu.FRACTION&&(t[0]*=e[0]),this.anchorYUnits_==wu.FRACTION&&(t[1]*=e[1])}if(this.anchorOrigin_!=Lu.TOP_LEFT){if(!e)return null;t===this.anchor_&&(t=this.anchor_.slice()),this.anchorOrigin_!=Lu.TOP_RIGHT&&this.anchorOrigin_!=Lu.BOTTOM_RIGHT||(t[0]=-t[0]+e[0]),this.anchorOrigin_!=Lu.BOTTOM_LEFT&&this.anchorOrigin_!=Lu.BOTTOM_RIGHT||(t[1]=-t[1]+e[1])}return this.normalizedAnchor_=t,this.normalizedAnchor_},e.prototype.setAnchor=function(t){this.anchor_=t,this.normalizedAnchor_=null},e.prototype.getColor=function(){return this.color_},e.prototype.getImage=function(t){return this.iconImage_.getImage(t)},e.prototype.getImageSize=function(){return this.iconImage_.getSize()},e.prototype.getHitDetectionImageSize=function(){return this.getImageSize()},e.prototype.getImageState=function(){return this.iconImage_.getImageState()},e.prototype.getHitDetectionImage=function(t){return this.iconImage_.getHitDetectionImage(t)},e.prototype.getOrigin=function(){if(this.origin_)return this.origin_;var t=this.offset_;if(this.offsetOrigin_!=Lu.TOP_LEFT){var e=this.getSize(),i=this.iconImage_.getSize();if(!e||!i)return null;t=t.slice(),this.offsetOrigin_!=Lu.TOP_RIGHT&&this.offsetOrigin_!=Lu.BOTTOM_RIGHT||(t[0]=i[0]-e[0]-t[0]),this.offsetOrigin_!=Lu.BOTTOM_LEFT&&this.offsetOrigin_!=Lu.BOTTOM_RIGHT||(t[1]=i[1]-e[1]-t[1])}return this.origin_=t,this.origin_},e.prototype.getSrc=function(){return this.iconImage_.getSrc()},e.prototype.getSize=function(){return this.size_?this.size_:this.iconImage_.getSize()},e.prototype.listenImageChange=function(t,e){return v(this.iconImage_,M.CHANGE,t,e)},e.prototype.load=function(){this.iconImage_.load()},e.prototype.unlistenImageChange=function(t,e){x(this.iconImage_,M.CHANGE,t,e)},e}(Tu),Pu=function(t){var e=t||{};this.geometry_=null,this.geometryFunction_=Au,void 0!==e.geometry&&this.setGeometry(e.geometry),this.fill_=void 0!==e.fill?e.fill:null,this.image_=void 0!==e.image?e.image:null,this.renderer_=void 0!==e.renderer?e.renderer:null,this.stroke_=void 0!==e.stroke?e.stroke:null,this.text_=void 0!==e.text?e.text:null,this.zIndex_=e.zIndex};Pu.prototype.clone=function(){var t=this.getGeometry();return t&&"object"==typeof t&&(t=t.clone()),new Pu({geometry:t,fill:this.getFill()?this.getFill().clone():void 0,image:this.getImage()?this.getImage().clone():void 0,stroke:this.getStroke()?this.getStroke().clone():void 0,text:this.getText()?this.getText().clone():void 0,zIndex:this.getZIndex()})},Pu.prototype.getRenderer=function(){return this.renderer_},Pu.prototype.setRenderer=function(t){this.renderer_=t},Pu.prototype.getGeometry=function(){return this.geometry_},Pu.prototype.getGeometryFunction=function(){return this.geometryFunction_},Pu.prototype.getFill=function(){return this.fill_},Pu.prototype.setFill=function(t){this.fill_=t},Pu.prototype.getImage=function(){return this.image_},Pu.prototype.setImage=function(t){this.image_=t},Pu.prototype.getStroke=function(){return this.stroke_},Pu.prototype.setStroke=function(t){this.stroke_=t},Pu.prototype.getText=function(){return this.text_},Pu.prototype.setText=function(t){this.text_=t},Pu.prototype.getZIndex=function(){return this.zIndex_},Pu.prototype.setGeometry=function(t){"function"==typeof t?this.geometryFunction_=t:"string"==typeof t?this.geometryFunction_=function(e){return e.get(t)}:t?void 0!==t&&(this.geometryFunction_=function(){return t}):this.geometryFunction_=Au,this.geometry_=t},Pu.prototype.setZIndex=function(t){this.zIndex_=t};var bu=null;function Mu(t,e){if(!bu){var i=new mr({color:"rgba(255,255,255,0.4)"}),r=new Er({color:"#3399CC",width:1.25});bu=[new Pu({image:new Ru({fill:i,stroke:r,radius:5}),fill:i,stroke:r})]}return bu}function Fu(){var t={},e=[255,255,255,1],i=[0,153,255,1];return t[Nt.POLYGON]=[new Pu({fill:new mr({color:[255,255,255,.5]})})],t[Nt.MULTI_POLYGON]=t[Nt.POLYGON],t[Nt.LINE_STRING]=[new Pu({stroke:new Er({color:e,width:5})}),new Pu({stroke:new Er({color:i,width:3})})],t[Nt.MULTI_LINE_STRING]=t[Nt.LINE_STRING],t[Nt.CIRCLE]=t[Nt.POLYGON].concat(t[Nt.LINE_STRING]),t[Nt.POINT]=[new Pu({image:new Ru({radius:6,fill:new mr({color:i}),stroke:new Er({color:e,width:1.5})}),zIndex:1/0})],t[Nt.MULTI_POINT]=t[Nt.POINT],t[Nt.GEOMETRY_COLLECTION]=t[Nt.POLYGON].concat(t[Nt.LINE_STRING],t[Nt.POINT]),t}function Au(t){return t.getGeometry()}var Nu=Pu;function Gu(t,e){var i=/\{z\}/g,r=/\{x\}/g,n=/\{y\}/g,o=/\{-y\}/g;return function(s,a,h){return s?t.replace(i,s[0].toString()).replace(r,s[1].toString()).replace(n,function(){return(-s[2]-1).toString()}).replace(o,function(){var t=s[0],i=e.getFullTileRange(t);return Y(i,55),(i.getHeight()+s[2]).toString()}):void 0}}function Du(t,e){for(var i=t.length,r=new Array(i),n=0;n0&&(o/=l)}return o}function Vu(t,e,i,r){var n=i-t,o=r-e,s=Math.sqrt(n*n+o*o);return[Math.round(i+n/s),Math.round(r+o/s)]}function Xu(t,e,i,r,n,o,s,a,h,l,u){var p=Jn(Math.round(i*t),Math.round(i*e));if(0===h.length)return p.canvas;p.scale(i,i);var c=[1/0,1/0,-1/0,-1/0];h.forEach(function(t,e,i){ft(c,t.extent)});var d=Ot(c),f=Rt(c),_=Jn(Math.round(i*d/r),Math.round(i*f/r)),g=i/r;h.forEach(function(t,e,i){var r=t.extent[0]-c[0],n=-(t.extent[3]-c[3]),o=Ot(t.extent),s=Rt(t.extent);_.drawImage(t.image,l,l,t.image.width-2*l,t.image.height-2*l,r*g,n*g,o*g,s*g)});var y=It(s);return a.getTriangles().forEach(function(t,e,n){var s=t.source,a=t.target,h=s[0][0],l=s[0][1],u=s[1][0],d=s[1][1],f=s[2][0],g=s[2][1],v=(a[0][0]-y[0])/o,m=-(a[0][1]-y[1])/o,x=(a[1][0]-y[0])/o,E=-(a[1][1]-y[1])/o,S=(a[2][0]-y[0])/o,T=-(a[2][1]-y[1])/o,C=h,R=l;h=0,l=0;var w=function(t){for(var e=t.length,i=0;in&&(n=s,r=o)}if(0===n)return null;var a=t[r];t[r]=t[i],t[i]=a;for(var h=i+1;h=0;c--){p[c]=t[c][e]/t[c][c];for(var d=c-1;d>=0;d--)t[d][e]-=t[d][c]*p[c]}return p}([[u-=C,d-=R,0,0,x-v],[f-=C,g-=R,0,0,S-v],[0,0,u,d,E-m],[0,0,f,g,T-m]]);if(w){p.save(),p.beginPath();var I=(v+x+S)/3,L=(m+E+T)/3,O=Vu(I,L,v,m),P=Vu(I,L,x,E),b=Vu(I,L,S,T);p.moveTo(P[0],P[1]),p.lineTo(O[0],O[1]),p.lineTo(b[0],b[1]),p.clip(),p.transform(w[0],w[2],w[1],w[3],v,m),p.translate(c[0]-C,c[3]-R),p.scale(r/i,-r/i),p.drawImage(_.canvas,0,0),p.restore()}}),u&&(p.save(),p.strokeStyle="black",p.lineWidth=1,a.getTriangles().forEach(function(t,e,i){var r=t.target,n=(r[0][0]-y[0])/o,s=-(r[0][1]-y[1])/o,a=(r[1][0]-y[0])/o,h=-(r[1][1]-y[1])/o,l=(r[2][0]-y[0])/o,u=-(r[2][1]-y[1])/o;p.beginPath(),p.moveTo(a,h),p.lineTo(n,s),p.lineTo(l,u),p.closePath(),p.stroke()}),p.restore()),p.canvas}var zu=function(t,e,i,r,n){this.sourceProj_=t,this.targetProj_=e;var o={},s=Oe(this.targetProj_,this.sourceProj_);this.transformInv_=function(t){var e=t[0]+"/"+t[1];return o[e]||(o[e]=s(t)),o[e]},this.maxSourceExtent_=r,this.errorThresholdSquared_=n*n,this.triangles_=[],this.wrapsXInSource_=!1,this.canWrapXInSource_=this.sourceProj_.canWrapX()&&!!r&&!!this.sourceProj_.getExtent()&&Ot(r)==Ot(this.sourceProj_.getExtent()),this.sourceWorldWidth_=this.sourceProj_.getExtent()?Ot(this.sourceProj_.getExtent()):null,this.targetWorldWidth_=this.targetProj_.getExtent()?Ot(this.targetProj_.getExtent()):null;var a=It(i),h=Lt(i),l=St(i),u=Et(i),p=this.transformInv_(a),c=this.transformInv_(h),d=this.transformInv_(l),f=this.transformInv_(u);if(this.addQuad_(a,h,l,u,p,c,d,f,10),this.wrapsXInSource_){var _=1/0;this.triangles_.forEach(function(t,e,i){_=Math.min(_,t.source[0][0],t.source[1][0],t.source[2][0])}),this.triangles_.forEach(function(t){if(Math.max(t.source[0][0],t.source[1][0],t.source[2][0])-_>this.sourceWorldWidth_/2){var e=[[t.source[0][0],t.source[0][1]],[t.source[1][0],t.source[1][1]],[t.source[2][0],t.source[2][1]]];e[0][0]-_>this.sourceWorldWidth_/2&&(e[0][0]-=this.sourceWorldWidth_),e[1][0]-_>this.sourceWorldWidth_/2&&(e[1][0]-=this.sourceWorldWidth_),e[2][0]-_>this.sourceWorldWidth_/2&&(e[2][0]-=this.sourceWorldWidth_);var i=Math.min(e[0][0],e[1][0],e[2][0]);Math.max(e[0][0],e[1][0],e[2][0])-i.5&&u<1,d=!1;if(h>0){if(this.targetProj_.isGlobal()&&this.targetWorldWidth_)d=Ot(tt([t,e,i,r]))/this.targetWorldWidth_>.25||d;!c&&this.sourceProj_.isGlobal()&&u&&(d=u>.25||d)}if(d||!this.maxSourceExtent_||Pt(l,this.maxSourceExtent_)){if(!(d||isFinite(n[0])&&isFinite(n[1])&&isFinite(o[0])&&isFinite(o[1])&&isFinite(s[0])&&isFinite(s[1])&&isFinite(a[0])&&isFinite(a[1]))){if(!(h>0))return;d=!0}if(h>0){if(!d){var f,_=[(t[0]+i[0])/2,(t[1]+i[1])/2],g=this.transformInv_(_);if(c)f=(Xt(n[0],p)+Xt(s[0],p))/2-Xt(g[0],p);else f=(n[0]+s[0])/2-g[0];var y=(n[1]+s[1])/2-g[1];d=f*f+y*y>this.errorThresholdSquared_}if(d){if(Math.abs(t[0]-i[0])<=Math.abs(t[1]-i[1])){var v=[(e[0]+i[0])/2,(e[1]+i[1])/2],m=this.transformInv_(v),x=[(r[0]+t[0])/2,(r[1]+t[1])/2],E=this.transformInv_(x);this.addQuad_(t,e,v,x,n,o,m,E,h-1),this.addQuad_(x,v,i,r,E,m,s,a,h-1)}else{var S=[(t[0]+e[0])/2,(t[1]+e[1])/2],T=this.transformInv_(S),C=[(i[0]+r[0])/2,(i[1]+r[1])/2],R=this.transformInv_(C);this.addQuad_(t,S,C,r,n,T,R,a,h-1),this.addQuad_(S,e,i,C,T,o,s,R,h-1)}return}}if(c){if(!this.canWrapXInSource_)return;this.wrapsXInSource_=!0}this.addTriangle_(t,i,r,n,s,a),this.addTriangle_(t,e,i,n,o,s)}},zu.prototype.calculateSourceExtent=function(){var t=[1/0,1/0,-1/0,-1/0];return this.triangles_.forEach(function(e,i,r){var n=e.source;_t(t,n[0]),_t(t,n[1]),_t(t,n[2])}),t},zu.prototype.getTriangles=function(){return this.triangles_};var Wu=zu,Ku=function(t){function e(e,i,r,n,o,s,a,h,l,u,p){t.call(this,o,On.IDLE),this.renderEdges_=void 0!==p&&p,this.pixelRatio_=a,this.gutter_=h,this.canvas_=null,this.sourceTileGrid_=i,this.targetTileGrid_=n,this.wrappedTileCoord_=s||o,this.sourceTiles_=[],this.sourcesListenerKeys_=null,this.sourceZ_=0;var c=n.getTileCoordExtent(this.wrappedTileCoord_),d=this.targetTileGrid_.getExtent(),f=this.sourceTileGrid_.getExtent(),_=d?wt(c,d):c;if(0!==xt(_)){var g=e.getExtent();g&&(f=f?wt(f,g):g);var y=n.getResolution(this.wrappedTileCoord_[0]),v=Bu(e,r,Tt(_),y);if(!isFinite(v)||v<=0)this.state=On.EMPTY;else{var m=void 0!==u?u:vs;if(this.triangulation_=new Wu(e,r,_,f,v*m),0!==this.triangulation_.getTriangles().length){this.sourceZ_=i.getZForResolution(v);var x=this.triangulation_.calculateSourceExtent();if(f&&(e.canWrapX()?(x[1]=kt(x[1],f[1],f[3]),x[3]=kt(x[3],f[1],f[3])):x=wt(x,f)),xt(x)){for(var E=i.getTileRangeForExtentAndZ(x,this.sourceZ_),S=E.minX;S<=E.maxX;S++)for(var T=E.minY;T<=E.maxY;T++){var C=l(this.sourceZ_,S,T,a);C&&this.sourceTiles_.push(C)}0===this.sourceTiles_.length&&(this.state=On.EMPTY)}else this.state=On.EMPTY}else this.state=On.EMPTY}}else this.state=On.EMPTY}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.disposeInternal=function(){this.state==On.LOADING&&this.unlistenSources_(),t.prototype.disposeInternal.call(this)},e.prototype.getImage=function(){return this.canvas_},e.prototype.reproject_=function(){var t=[];if(this.sourceTiles_.forEach(function(e,i,r){e&&e.getState()==On.LOADED&&t.push({extent:this.sourceTileGrid_.getTileCoordExtent(e.tileCoord),image:e.getImage()})}.bind(this)),this.sourceTiles_.length=0,0===t.length)this.state=On.ERROR;else{var e=this.wrappedTileCoord_[0],i=this.targetTileGrid_.getTileSize(e),r="number"==typeof i?i:i[0],n="number"==typeof i?i:i[1],o=this.targetTileGrid_.getResolution(e),s=this.sourceTileGrid_.getResolution(this.sourceZ_),a=this.targetTileGrid_.getTileCoordExtent(this.wrappedTileCoord_);this.canvas_=Xu(r,n,this.pixelRatio_,s,this.sourceTileGrid_.getExtent(),o,a,this.triangulation_,t,this.gutter_,this.renderEdges_),this.state=On.LOADED}this.changed()},e.prototype.load=function(){if(this.state==On.IDLE){this.state=On.LOADING,this.changed();var t=0;this.sourcesListenerKeys_=[],this.sourceTiles_.forEach(function(e,i,r){var n=e.getState();if(n==On.IDLE||n==On.LOADING){t++;var o=v(e,M.CHANGE,function(i){var r=e.getState();r!=On.LOADED&&r!=On.ERROR&&r!=On.EMPTY||(E(o),0===--t&&(this.unlistenSources_(),this.reproject_()))},this);this.sourcesListenerKeys_.push(o)}}.bind(this)),this.sourceTiles_.forEach(function(t,e,i){t.getState()==On.IDLE&&t.load()}),0===t&&setTimeout(this.reproject_.bind(this),0)}},e.prototype.unlistenSources_=function(){this.sourcesListenerKeys_.forEach(E),this.sourcesListenerKeys_=null},e}(vl),Hu="tileloadstart",Zu="tileloadend",qu="tileloaderror",Ju=function(t){function e(e){t.call(this,{attributions:e.attributions,cacheSize:e.cacheSize,opaque:e.opaque,projection:e.projection,state:e.state,tileGrid:e.tileGrid,tilePixelRatio:e.tilePixelRatio,wrapX:e.wrapX,transition:e.transition,key:e.key,attributionsCollapsible:e.attributionsCollapsible}),this.generateTileUrlFunction_=!e.tileUrlFunction,this.tileLoadFunction=e.tileLoadFunction,this.tileUrlFunction=e.tileUrlFunction?e.tileUrlFunction.bind(this):ju,this.urls=null,e.urls?this.setUrls(e.urls):e.url&&this.setUrl(e.url),e.tileUrlFunction&&this.setTileUrlFunction(e.tileUrlFunction,this.key_),this.tileLoadingKeys_={}}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.getTileLoadFunction=function(){return this.tileLoadFunction},e.prototype.getTileUrlFunction=function(){return this.tileUrlFunction},e.prototype.getUrls=function(){return this.urls},e.prototype.handleTileChange=function(t){var e,i=t.target,r=o(i),n=i.getState();n==On.LOADING?(this.tileLoadingKeys_[r]=!0,e=Hu):r in this.tileLoadingKeys_&&(delete this.tileLoadingKeys_[r],e=n==On.ERROR?qu:n==On.LOADED||n==On.ABORT?Zu:void 0),void 0!=e&&this.dispatchEvent(new kl(e,i))},e.prototype.setTileLoadFunction=function(t){this.tileCache.clear(),this.tileLoadFunction=t,this.changed()},e.prototype.setTileUrlFunction=function(t,e){this.tileUrlFunction=t,this.tileCache.pruneExceptNewestZ(),void 0!==e?this.setKey(e):this.changed()},e.prototype.setUrl=function(t){var e=this.urls=Uu(t);this.setUrls(e)},e.prototype.setUrls=function(t){this.urls=t;var e=t.join("\n");this.generateTileUrlFunction_?this.setTileUrlFunction(Du(t,this.tileGrid),e):this.setKey(e)},e.prototype.useTile=function(t,e,i){var r=Sl(t,e,i);this.tileCache.containsKey(r)&&this.tileCache.get(r)},e}(jl);function Qu(t,e){t.getImage().src=e}var $u=function(t){function e(e){t.call(this,{attributions:e.attributions,cacheSize:e.cacheSize,opaque:e.opaque,projection:e.projection,state:e.state,tileGrid:e.tileGrid,tileLoadFunction:e.tileLoadFunction?e.tileLoadFunction:Qu,tilePixelRatio:e.tilePixelRatio,tileUrlFunction:e.tileUrlFunction,url:e.url,urls:e.urls,wrapX:e.wrapX,transition:e.transition,key:e.key,attributionsCollapsible:e.attributionsCollapsible}),this.crossOrigin=void 0!==e.crossOrigin?e.crossOrigin:null,this.tileClass=void 0!==e.tileClass?e.tileClass:xl,this.tileCacheForProjection={},this.tileGridForProjection={},this.reprojectionErrorThreshold_=e.reprojectionErrorThreshold,this.renderReprojectionEdges_=!1}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.canExpireCache=function(){if(this.tileCache.canExpireCache())return!0;for(var t in this.tileCacheForProjection)if(this.tileCacheForProjection[t].canExpireCache())return!0;return!1},e.prototype.expireCache=function(t,e){var i=this.getTileCacheForProjection(t);for(var r in this.tileCache.expireCache(this.tileCache==i?e:{}),this.tileCacheForProjection){var n=this.tileCacheForProjection[r];n.expireCache(n==i?e:{})}},e.prototype.getGutterForProjection=function(t){return this.getProjection()&&t&&!Ie(this.getProjection(),t)?0:this.getGutter()},e.prototype.getGutter=function(){return 0},e.prototype.getOpaque=function(e){return!(this.getProjection()&&e&&!Ie(this.getProjection(),e))&&t.prototype.getOpaque.call(this,e)},e.prototype.getTileGridForProjection=function(t){var e=this.getProjection();if(!this.tileGrid||e&&!Ie(e,t)){var i=o(t);return i in this.tileGridForProjection||(this.tileGridForProjection[i]=bl(t)),this.tileGridForProjection[i]}return this.tileGrid},e.prototype.getTileCacheForProjection=function(t){var e=this.getProjection();if(!e||Ie(e,t))return this.tileCache;var i=o(t);return i in this.tileCacheForProjection||(this.tileCacheForProjection[i]=new Rl(this.tileCache.highWaterMark)),this.tileCacheForProjection[i]},e.prototype.createTile_=function(t,e,i,r,n,o){var s=[t,e,i],a=this.getTileCoordForTileUrlFunction(s,n),h=a?this.tileUrlFunction(a,r,n):void 0,l=new this.tileClass(s,void 0!==h?On.IDLE:On.EMPTY,void 0!==h?h:"",this.crossOrigin,this.tileLoadFunction,this.tileOptions);return l.key=o,v(l,M.CHANGE,this.handleTileChange,this),l},e.prototype.getTile=function(t,e,i,r,n){var o=this.getProjection();if(o&&n&&!Ie(o,n)){var s,a=this.getTileCacheForProjection(n),h=[t,e,i],l=Tl(h);a.containsKey(l)&&(s=a.get(l));var u=this.getKey();if(s&&s.key==u)return s;var p=this.getTileGridForProjection(o),c=this.getTileGridForProjection(n),d=this.getTileCoordForTileUrlFunction(h,n),f=new Ku(o,p,n,c,h,d,this.getTilePixelRatio(r),this.getGutter(),function(t,e,i,r){return this.getTileInternal(t,e,i,r,o)}.bind(this),this.reprojectionErrorThreshold_,this.renderReprojectionEdges_);return f.key=u,s?(f.interimTile=s,f.refreshInterimChain(),a.replace(l,f)):a.set(l,f),f}return this.getTileInternal(t,e,i,r,o||n)},e.prototype.getTileInternal=function(t,e,i,r,n){var o=null,s=Sl(t,e,i),a=this.getKey();if(this.tileCache.containsKey(s)){if((o=this.tileCache.get(s)).key!=a){var h=o;o=this.createTile_(t,e,i,r,n,a),h.getState()==On.IDLE?o.interimTile=h.interimTile:o.interimTile=h,o.refreshInterimChain(),this.tileCache.replace(s,o)}}else o=this.createTile_(t,e,i,r,n,a),this.tileCache.set(s,o);return o},e.prototype.setRenderReprojectionEdges=function(t){if(this.renderReprojectionEdges_!=t){for(var e in this.renderReprojectionEdges_=t,this.tileCacheForProjection)this.tileCacheForProjection[e].clear();this.changed()}},e.prototype.setTileGridForProjection=function(t,e){var i=Ee(t);if(i){var r=o(i);r in this.tileGridForProjection||(this.tileGridForProjection[r]=e)}},e}(Ju),tp=function(t){function e(e){var i=void 0!==e.hidpi&&e.hidpi;t.call(this,{cacheSize:e.cacheSize,crossOrigin:"anonymous",opaque:!0,projection:Ee("EPSG:3857"),reprojectionErrorThreshold:e.reprojectionErrorThreshold,state:ro.LOADING,tileLoadFunction:e.tileLoadFunction,tilePixelRatio:i?2:1,wrapX:void 0===e.wrapX||e.wrapX,transition:e.transition}),this.hidpi_=i,this.culture_=void 0!==e.culture?e.culture:"en-us",this.maxZoom_=void 0!==e.maxZoom?e.maxZoom:-1,this.apiKey_=e.key,this.imagerySet_=e.imagerySet,Yu("https://dev.virtualearth.net/REST/v1/Imagery/Metadata/"+this.imagerySet_+"?uriScheme=https&include=ImageryProviders&key="+this.apiKey_+"&c="+this.culture_,this.handleImageryMetadataResponse.bind(this),void 0,"jsonp")}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.getApiKey=function(){return this.apiKey_},e.prototype.getImagerySet=function(){return this.imagerySet_},e.prototype.handleImageryMetadataResponse=function(t){if(200==t.statusCode&&"OK"==t.statusDescription&&"ValidCredentials"==t.authenticationResultCode&&1==t.resourceSets.length&&1==t.resourceSets[0].resources.length){var e=t.resourceSets[0].resources[0],i=-1==this.maxZoom_?e.zoomMax:this.maxZoom_,r=Gl(this.getProjection()),n=this.hidpi_?2:1,o=e.imageWidth==e.imageHeight?e.imageWidth/n:[e.imageWidth/n,e.imageHeight/n],s=Fl({extent:r,minZoom:e.zoomMin,maxZoom:i,tileSize:o});this.tileGrid=s;var a=this.culture_,h=this.hidpi_;if(this.tileUrlFunction=ku(e.imageUrlSubdomains.map(function(t){var i=[0,0,0],r=e.imageUrl.replace("{subdomain}",t).replace("{culture}",a);return function(t,e,n){if(t){El(t[0],t[1],-t[2]-1,i);var o=r;return h&&(o+="&dpi=d1&device=mobile"),o.replace("{quadkey}",function(t){var e,i,r=t[0],n=new Array(r),o=1<>=1;return n.join("")}(i))}}})),e.imageryProviders){var l=Le(Ee("EPSG:4326"),this.getProjection());this.setAttributions(function(t){var i=[],r=t.viewState,n=this.getTileGrid().getTileCoordForCoordAndResolution(r.center,r.resolution)[0];return e.imageryProviders.map(function(e){for(var r=!1,o=e.coverageAreas,s=0,a=o.length;s=h.zoomMin&&n<=h.zoomMax){var u=h.bbox;if(Pt(Ft([u[1],u[0],u[3],u[2]],l),t.extent)){r=!0;break}}}r&&i.push(e.attribution)}),i.push('Terms of Use'),i}.bind(this))}this.setState(ro.READY)}else this.setState(ro.ERROR)},e}($u),ep=function(t){function e(e){var i=e||{},r=void 0!==i.projection?i.projection:"EPSG:3857",n=void 0!==i.tileGrid?i.tileGrid:Fl({extent:Gl(r),maxZoom:i.maxZoom,minZoom:i.minZoom,tileSize:i.tileSize});t.call(this,{attributions:i.attributions,cacheSize:i.cacheSize,crossOrigin:i.crossOrigin,opaque:i.opaque,projection:r,reprojectionErrorThreshold:i.reprojectionErrorThreshold,tileGrid:n,tileLoadFunction:i.tileLoadFunction,tilePixelRatio:i.tilePixelRatio,tileUrlFunction:i.tileUrlFunction,url:i.url,urls:i.urls,wrapX:void 0===i.wrapX||i.wrapX,transition:i.transition,attributionsCollapsible:i.attributionsCollapsible})}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e}($u),ip=function(t){function e(e){t.call(this,{attributions:e.attributions,cacheSize:e.cacheSize,crossOrigin:e.crossOrigin,maxZoom:void 0!==e.maxZoom?e.maxZoom:18,minZoom:e.minZoom,projection:e.projection,wrapX:e.wrapX}),this.account_=e.account,this.mapId_=e.map||"",this.config_=e.config||{},this.templateCache_={},this.initializeMap_()}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.getConfig=function(){return this.config_},e.prototype.updateConfig=function(t){u(this.config_,t),this.initializeMap_()},e.prototype.setConfig=function(t){this.config_=t||{},this.initializeMap_()},e.prototype.initializeMap_=function(){var t=JSON.stringify(this.config_);if(this.templateCache_[t])this.applyTemplate_(this.templateCache_[t]);else{var e="https://"+this.account_+".carto.com/api/v1/map";this.mapId_&&(e+="/named/"+this.mapId_);var i=new XMLHttpRequest;i.addEventListener("load",this.handleInitResponse_.bind(this,t)),i.addEventListener("error",this.handleInitError_.bind(this)),i.open("POST",e),i.setRequestHeader("Content-type","application/json"),i.send(JSON.stringify(this.config_))}},e.prototype.handleInitResponse_=function(t,e){var i=e.target;if(!i.status||i.status>=200&&i.status<300){var r;try{r=JSON.parse(i.responseText)}catch(t){return void this.setState(ro.ERROR)}this.applyTemplate_(r),this.templateCache_[t]=r,this.setState(ro.READY)}else this.setState(ro.ERROR)},e.prototype.handleInitError_=function(t){this.setState(ro.ERROR)},e.prototype.applyTemplate_=function(t){var e="https://"+t.cdn_url.https+"/"+this.account_+"/api/v1/map/"+t.layergroupid+"/{z}/{x}/{y}.png";this.setUrl(e)},e}(ep),rp={ADDFEATURE:"addfeature",CHANGEFEATURE:"changefeature",CLEAR:"clear",REMOVEFEATURE:"removefeature"},np=function(t){function e(e,i){t.call(this,e),this.feature=i}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e}(P),op=function(t){function e(e){var i=e||{};t.call(this,{attributions:i.attributions,projection:void 0,state:ro.READY,wrapX:void 0===i.wrapX||i.wrapX}),this.loader_=I,this.format_=i.format,this.overlaps_=void 0==i.overlaps||i.overlaps,this.url_=i.url,void 0!==i.loader?this.loader_=i.loader:void 0!==this.url_&&(Y(this.format_,7),this.loader_=ql(this.url_,this.format_)),this.strategy_=void 0!==i.strategy?i.strategy:Jl;var r,n,o=void 0===i.useSpatialIndex||i.useSpatialIndex;this.featuresRtree_=o?new tl:null,this.loadedExtentsRtree_=new tl,this.nullGeometryFeatures_={},this.idIndex_={},this.undefIdIndex_={},this.featureChangeKeys_={},this.featuresCollection_=null,Array.isArray(i.features)?n=i.features:i.features&&(n=(r=i.features).getArray()),o||void 0!==r||(r=new U(n)),void 0!==n&&this.addFeaturesInternal(n),void 0!==r&&this.bindFeaturesCollection_(r)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.addFeature=function(t){this.addFeatureInternal(t),this.changed()},e.prototype.addFeatureInternal=function(t){var e=o(t);if(this.addToIndex_(e,t)){this.setupChangeEvents_(e,t);var i=t.getGeometry();if(i){var r=i.getExtent();this.featuresRtree_&&this.featuresRtree_.insert(r,t)}else this.nullGeometryFeatures_[e]=t;this.dispatchEvent(new np(rp.ADDFEATURE,t))}},e.prototype.setupChangeEvents_=function(t,e){this.featureChangeKeys_[t]=[v(e,M.CHANGE,this.handleFeatureChange_,this),v(e,l,this.handleFeatureChange_,this)]},e.prototype.addToIndex_=function(t,e){var i=!0,r=e.getId();return void 0!==r?r.toString()in this.idIndex_?i=!1:this.idIndex_[r.toString()]=e:(Y(!(t in this.undefIdIndex_),30),this.undefIdIndex_[t]=e),i},e.prototype.addFeatures=function(t){this.addFeaturesInternal(t),this.changed()},e.prototype.addFeaturesInternal=function(t){for(var e=[],i=[],r=[],n=0,s=t.length;n=0;--i){var r=this.geometryFunction(t[i]);r?Hi(e,r.getCoordinates()):t.splice(i,1)}tr(e,1/t.length);var n=new B(new ci(e));return n.set("features",t),n},e}(op),ap=function(t){function e(e,i,r,n,o,s){var a=e.getExtent(),h=i.getExtent(),l=h?wt(r,h):r,u=Bu(e,i,Tt(l),n),p=new Wu(e,i,l,a,u*vs),c=s(p.calculateSourceExtent(),u,o),d=xs.LOADED;c&&(d=xs.IDLE);var f=c?c.getPixelRatio():1;t.call(this,r,n,f,d),this.targetProj_=i,this.maxSourceExtent_=a,this.triangulation_=p,this.targetResolution_=n,this.targetExtent_=r,this.sourceImage_=c,this.sourcePixelRatio_=f,this.canvas_=null,this.sourceListenerKey_=null}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.disposeInternal=function(){this.state==xs.LOADING&&this.unlistenSource_(),t.prototype.disposeInternal.call(this)},e.prototype.getImage=function(){return this.canvas_},e.prototype.getProjection=function(){return this.targetProj_},e.prototype.reproject_=function(){var t=this.sourceImage_.getState();if(t==xs.LOADED){var e=Ot(this.targetExtent_)/this.targetResolution_,i=Rt(this.targetExtent_)/this.targetResolution_;this.canvas_=Xu(e,i,this.sourcePixelRatio_,this.sourceImage_.getResolution(),this.maxSourceExtent_,this.targetResolution_,this.targetExtent_,this.triangulation_,[{extent:this.sourceImage_.getExtent(),image:this.sourceImage_.getImage()}],0)}this.state=t,this.changed()},e.prototype.load=function(){if(this.state==xs.IDLE){this.state=xs.LOADING,this.changed();var t=this.sourceImage_.getState();t==xs.LOADED||t==xs.ERROR?this.reproject_():(this.sourceListenerKey_=v(this.sourceImage_,M.CHANGE,function(t){var e=this.sourceImage_.getState();e!=xs.LOADED&&e!=xs.ERROR||(this.unlistenSource_(),this.reproject_())},this),this.sourceImage_.load())}},e.prototype.unlistenSource_=function(){E(this.sourceListenerKey_),this.sourceListenerKey_=null},e}(ms),hp="imageloadstart",lp="imageloadend",up="imageloaderror",pp=function(t){function e(e,i){t.call(this,e),this.image=i}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e}(P);function cp(t,e){t.getImage().src=e}var dp=function(t){function e(e){t.call(this,{attributions:e.attributions,projection:e.projection,state:e.state}),this.resolutions_=void 0!==e.resolutions?e.resolutions:null,this.reprojectedImage_=null,this.reprojectedRevision_=0}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.getResolutions=function(){return this.resolutions_},e.prototype.findNearestResolution=function(t){if(this.resolutions_){var e=z(this.resolutions_,t,0);t=this.resolutions_[e]}return t},e.prototype.getImage=function(t,e,i,r){var n=this.getProjection();if(n&&r&&!Ie(n,r)){if(this.reprojectedImage_){if(this.reprojectedRevision_==this.getRevision()&&Ie(this.reprojectedImage_.getProjection(),r)&&this.reprojectedImage_.getResolution()==e&&dt(this.reprojectedImage_.getExtent(),t))return this.reprojectedImage_;this.reprojectedImage_.dispose(),this.reprojectedImage_=null}return this.reprojectedImage_=new ap(n,r,t,e,i,function(t,e,i){return this.getImageInternal(t,e,i,n)}.bind(this)),this.reprojectedRevision_=this.getRevision(),this.reprojectedImage_}return n&&(r=n),this.getImageInternal(t,e,i,r)},e.prototype.getImageInternal=function(t,e,i,n){return r()},e.prototype.handleImageChange=function(t){var e=t.target;switch(e.getState()){case xs.LOADING:this.loading=!0,this.dispatchEvent(new pp(hp,e));break;case xs.LOADED:this.loading=!1,this.dispatchEvent(new pp(lp,e));break;case xs.ERROR:this.loading=!1,this.dispatchEvent(new pp(up,e))}},e}(Il),fp=function(t){function e(e,i,r,n,o,s){t.call(this,e,i,r,xs.IDLE),this.src_=n,this.image_=new Image,null!==o&&(this.image_.crossOrigin=o),this.imageListenerKeys_=null,this.state=xs.IDLE,this.imageLoadFunction_=s}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.getImage=function(){return this.image_},e.prototype.handleImageError_=function(){this.state=xs.ERROR,this.unlistenImage_(),this.changed()},e.prototype.handleImageLoad_=function(){void 0===this.resolution&&(this.resolution=Rt(this.extent)/this.image_.height),this.state=xs.LOADED,this.unlistenImage_(),this.changed()},e.prototype.load=function(){this.state!=xs.IDLE&&this.state!=xs.ERROR||(this.state=xs.LOADING,this.changed(),this.imageListenerKeys_=[m(this.image_,M.ERROR,this.handleImageError_,this),m(this.image_,M.LOAD,this.handleImageLoad_,this)],this.imageLoadFunction_(this,this.src_))},e.prototype.setImage=function(t){this.image_=t},e.prototype.unlistenImage_=function(){this.imageListenerKeys_.forEach(E),this.imageListenerKeys_=null},e}(ms);function _p(t,e){var i=[];Object.keys(e).forEach(function(t){null!==e[t]&&void 0!==e[t]&&i.push(t+"="+encodeURIComponent(e[t]))});var r=i.join("&");return(t=-1===(t=t.replace(/[?&]$/,"")).indexOf("?")?t+"?":t+"&")+r}var gp=function(t){function e(e){var i=e||{};t.call(this,{attributions:i.attributions,projection:i.projection,resolutions:i.resolutions}),this.crossOrigin_=void 0!==i.crossOrigin?i.crossOrigin:null,this.hidpi_=void 0===i.hidpi||i.hidpi,this.url_=i.url,this.imageLoadFunction_=void 0!==i.imageLoadFunction?i.imageLoadFunction:cp,this.params_=i.params||{},this.image_=null,this.imageSize_=[0,0],this.renderedRevision_=0,this.ratio_=void 0!==i.ratio?i.ratio:1.5}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.getParams=function(){return this.params_},e.prototype.getImageInternal=function(t,e,i,r){if(void 0===this.url_)return null;e=this.findNearestResolution(e),i=this.hidpi_?i:1;var n=this.image_;if(n&&this.renderedRevision_==this.getRevision()&&n.getResolution()==e&&n.getPixelRatio()==i&&ot(n.getExtent(),t))return n;var o={F:"image",FORMAT:"PNG32",TRANSPARENT:!0};u(o,this.params_);var s=((t=t.slice())[0]+t[2])/2,a=(t[1]+t[3])/2;if(1!=this.ratio_){var h=this.ratio_*Ot(t)/2,l=this.ratio_*Rt(t)/2;t[0]=s-h,t[1]=a-l,t[2]=s+h,t[3]=a+l}var p=e/i,c=Math.ceil(Ot(t)/p),d=Math.ceil(Rt(t)/p);t[0]=s-p*c/2,t[2]=s+p*c/2,t[1]=a-p*d/2,t[3]=a+p*d/2,this.imageSize_[0]=c,this.imageSize_[1]=d;var f=this.getRequestUrl_(t,this.imageSize_,i,r,o);return this.image_=new fp(t,e,i,f,this.crossOrigin_,this.imageLoadFunction_),this.renderedRevision_=this.getRevision(),v(this.image_,M.CHANGE,this.handleImageChange,this),this.image_},e.prototype.getImageLoadFunction=function(){return this.imageLoadFunction_},e.prototype.getRequestUrl_=function(t,e,i,r,n){var o=r.getCode().split(":").pop();n.SIZE=e[0]+","+e[1],n.BBOX=t.join(","),n.BBOXSR=o,n.IMAGESR=o,n.DPI=Math.round(90*i);var s=this.url_,a=s.replace(/MapServer\/?$/,"MapServer/export").replace(/ImageServer\/?$/,"ImageServer/exportImage");return a==s&&Y(!1,50),_p(a,n)},e.prototype.getUrl=function(){return this.url_},e.prototype.setImageLoadFunction=function(t){this.image_=null,this.imageLoadFunction_=t,this.changed()},e.prototype.setUrl=function(t){t!=this.url_&&(this.url_=t,this.image_=null,this.changed())},e.prototype.updateParams=function(t){u(this.params_,t),this.image_=null,this.changed()},e}(dp),yp=function(t){function e(e){var i=e||{};t.call(this,{attributions:i.attributions,projection:i.projection,resolutions:i.resolutions,state:i.state}),this.canvasFunction_=i.canvasFunction,this.canvas_=null,this.renderedRevision_=0,this.ratio_=void 0!==i.ratio?i.ratio:1.5}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.getImageInternal=function(t,e,i,r){e=this.findNearestResolution(e);var n=this.canvas_;if(n&&this.renderedRevision_==this.getRevision()&&n.getResolution()==e&&n.getPixelRatio()==i&&ot(n.getExtent(),t))return n;Mt(t=t.slice(),this.ratio_);var o=[Ot(t)/e*i,Rt(t)/e*i],s=this.canvasFunction_.call(this,t,e,i,o,r);return s&&(n=new Es(t,e,i,s)),this.canvas_=n,this.renderedRevision_=this.getRevision(),n},e}(dp);var vp=function(t){function e(e){t.call(this,{projection:e.projection,resolutions:e.resolutions}),this.crossOrigin_=void 0!==e.crossOrigin?e.crossOrigin:null,this.displayDpi_=void 0!==e.displayDpi?e.displayDpi:96,this.params_=e.params||{},this.url_=e.url,this.imageLoadFunction_=void 0!==e.imageLoadFunction?e.imageLoadFunction:cp,this.hidpi_=void 0===e.hidpi||e.hidpi,this.metersPerUnit_=void 0!==e.metersPerUnit?e.metersPerUnit:1,this.ratio_=void 0!==e.ratio?e.ratio:1,this.useOverlay_=void 0!==e.useOverlay&&e.useOverlay,this.image_=null,this.renderedRevision_=0}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.getParams=function(){return this.params_},e.prototype.getImageInternal=function(t,e,i,r){e=this.findNearestResolution(e),i=this.hidpi_?i:1;var n=this.image_;if(n&&this.renderedRevision_==this.getRevision()&&n.getResolution()==e&&n.getPixelRatio()==i&&ot(n.getExtent(),t))return n;1!=this.ratio_&&Mt(t=t.slice(),this.ratio_);var o=[Ot(t)/e*i,Rt(t)/e*i];if(void 0!==this.url_){var s=this.getUrl(this.url_,this.params_,t,o,r);v(n=new fp(t,e,i,s,this.crossOrigin_,this.imageLoadFunction_),M.CHANGE,this.handleImageChange,this)}else n=null;return this.image_=n,this.renderedRevision_=this.getRevision(),n},e.prototype.getImageLoadFunction=function(){return this.imageLoadFunction_},e.prototype.updateParams=function(t){u(this.params_,t),this.changed()},e.prototype.getUrl=function(t,e,i,r,n){var o=function(t,e,i,r){var n=Ot(t),o=Rt(t),s=e[0],a=e[1],h=.0254/r;return a*n>s*o?n*i/(s*h):o*i/(a*h)}(i,r,this.metersPerUnit_,this.displayDpi_),s=Tt(i),a={OPERATION:this.useOverlay_?"GETDYNAMICMAPOVERLAYIMAGE":"GETMAPIMAGE",VERSION:"2.0.0",LOCALE:"en",CLIENTAGENT:"ol/source/ImageMapGuide source",CLIP:"1",SETDISPLAYDPI:this.displayDpi_,SETDISPLAYWIDTH:Math.round(r[0]),SETDISPLAYHEIGHT:Math.round(r[1]),SETVIEWSCALE:o,SETVIEWCENTERX:s[0],SETVIEWCENTERY:s[1]};return u(a,e),_p(t,a)},e.prototype.setImageLoadFunction=function(t){this.image_=null,this.imageLoadFunction_=t,this.changed()},e}(dp),mp=function(t){function e(e){var i=void 0!==e.crossOrigin?e.crossOrigin:null,r=void 0!==e.imageLoadFunction?e.imageLoadFunction:cp;t.call(this,{attributions:e.attributions,projection:Ee(e.projection)}),this.url_=e.url,this.imageExtent_=e.imageExtent,this.image_=new fp(this.imageExtent_,void 0,1,this.url_,i,r),this.imageSize_=e.imageSize?e.imageSize:null,v(this.image_,M.CHANGE,this.handleImageChange,this)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.getImageExtent=function(){return this.imageExtent_},e.prototype.getImageInternal=function(t,e,i,r){return Pt(t,this.image_.getExtent())?this.image_:null},e.prototype.getUrl=function(){return this.url_},e.prototype.handleImageChange=function(e){if(this.image_.getState()==xs.LOADED){var i,r,n=this.image_.getExtent(),o=this.image_.getImage();this.imageSize_?(i=this.imageSize_[0],r=this.imageSize_[1]):(i=o.width,r=o.height);var s=Rt(n)/r,a=Math.ceil(Ot(n)/s);if(a!=i){var h=Jn(a,r),l=h.canvas;h.drawImage(o,0,0,i,r,0,0,l.width,l.height),this.image_.setImage(l)}}t.prototype.handleImageChange.call(this,e)},e}(dp),xp="1.3.0",Ep="carmentaserver",Sp="geoserver",Tp="mapserver",Cp="qgis",Rp=[101,101],wp=function(t){function e(e){var i=e||{};t.call(this,{attributions:i.attributions,projection:i.projection,resolutions:i.resolutions}),this.crossOrigin_=void 0!==i.crossOrigin?i.crossOrigin:null,this.url_=i.url,this.imageLoadFunction_=void 0!==i.imageLoadFunction?i.imageLoadFunction:cp,this.params_=i.params||{},this.v13_=!0,this.updateV13_(),this.serverType_=i.serverType,this.hidpi_=void 0===i.hidpi||i.hidpi,this.image_=null,this.imageSize_=[0,0],this.renderedRevision_=0,this.ratio_=void 0!==i.ratio?i.ratio:1.5}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.getGetFeatureInfoUrl=function(t,e,i,r){if(void 0!==this.url_){var n=Ee(i),o=this.getProjection();o&&o!==n&&(e=Bu(o,n,t,e),t=Pe(t,n,o));var s=Ct(t,e,0,Rp),a={SERVICE:"WMS",VERSION:xp,REQUEST:"GetFeatureInfo",FORMAT:"image/png",TRANSPARENT:!0,QUERY_LAYERS:this.params_.LAYERS};u(a,this.params_,r);var h=Math.floor((t[0]-s[0])/e),l=Math.floor((s[3]-t[1])/e);return a[this.v13_?"I":"X"]=h,a[this.v13_?"J":"Y"]=l,this.getRequestUrl_(s,Rp,1,o||n,a)}},e.prototype.getParams=function(){return this.params_},e.prototype.getImageInternal=function(t,e,i,r){if(void 0===this.url_)return null;e=this.findNearestResolution(e),1==i||this.hidpi_&&void 0!==this.serverType_||(i=1);var n=e/i,o=Tt(t),s=Ct(o,n,0,[Math.ceil(Ot(t)/n),Math.ceil(Rt(t)/n)]),a=Ct(o,n,0,[Math.ceil(this.ratio_*Ot(t)/n),Math.ceil(this.ratio_*Rt(t)/n)]),h=this.image_;if(h&&this.renderedRevision_==this.getRevision()&&h.getResolution()==e&&h.getPixelRatio()==i&&ot(h.getExtent(),s))return h;var l={SERVICE:"WMS",VERSION:xp,REQUEST:"GetMap",FORMAT:"image/png",TRANSPARENT:!0};u(l,this.params_),this.imageSize_[0]=Math.round(Ot(a)/n),this.imageSize_[1]=Math.round(Rt(a)/n);var p=this.getRequestUrl_(a,this.imageSize_,i,r,l);return this.image_=new fp(a,e,i,p,this.crossOrigin_,this.imageLoadFunction_),this.renderedRevision_=this.getRevision(),v(this.image_,M.CHANGE,this.handleImageChange,this),this.image_},e.prototype.getImageLoadFunction=function(){return this.imageLoadFunction_},e.prototype.getRequestUrl_=function(t,e,i,r,n){if(Y(void 0!==this.url_,9),n[this.v13_?"CRS":"SRS"]=r.getCode(),"STYLES"in this.params_||(n.STYLES=""),1!=i)switch(this.serverType_){case Sp:var o=90*i+.5|0;"FORMAT_OPTIONS"in n?n.FORMAT_OPTIONS+=";dpi:"+o:n.FORMAT_OPTIONS="dpi:"+o;break;case Tp:n.MAP_RESOLUTION=90*i;break;case Ep:case Cp:n.DPI=90*i;break;default:Y(!1,8)}n.WIDTH=e[0],n.HEIGHT=e[1];var s,a=r.getAxisOrientation();return s=this.v13_&&"ne"==a.substr(0,2)?[t[1],t[0],t[3],t[2]]:t,n.BBOX=s.join(","),_p(this.url_,n)},e.prototype.getUrl=function(){return this.url_},e.prototype.setImageLoadFunction=function(t){this.image_=null,this.imageLoadFunction_=t,this.changed()},e.prototype.setUrl=function(t){t!=this.url_&&(this.url_=t,this.image_=null,this.changed())},e.prototype.updateParams=function(t){u(this.params_,t),this.updateV13_(),this.image_=null,this.changed()},e.prototype.updateV13_=function(){var t=this.params_.VERSION||xp;this.v13_=Ki(t,"1.3")>=0},e}(dp),Ip='© OpenStreetMap contributors.',Lp=function(t){function e(e){var i,r=e||{};i=void 0!==r.attributions?r.attributions:[Ip];var n=void 0!==r.crossOrigin?r.crossOrigin:"anonymous",o=void 0!==r.url?r.url:"https://{a-c}.tile.openstreetmap.org/{z}/{x}/{y}.png";t.call(this,{attributions:i,cacheSize:r.cacheSize,crossOrigin:n,opaque:void 0===r.opaque||r.opaque,maxZoom:void 0!==r.maxZoom?r.maxZoom:19,reprojectionErrorThreshold:r.reprojectionErrorThreshold,tileLoadFunction:r.tileLoadFunction,url:o,wrapX:r.wrapX,attributionsCollapsible:!1})}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e}(ep),Op=i(2),Pp=function(t){function e(e){var i=e||{};t.call(this,i),this.type=Ss.IMAGE}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e}(xo);Pp.prototype.getSource;var bp=Pp,Mp="preload",Fp="useInterimTilesOnError",Ap=function(t){function e(e){var i=e||{},r=u({},i);delete r.preload,delete r.useInterimTilesOnError,t.call(this,r),this.setPreload(void 0!==i.preload?i.preload:0),this.setUseInterimTilesOnError(void 0===i.useInterimTilesOnError||i.useInterimTilesOnError),this.type=Ss.TILE}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.getPreload=function(){return this.get(Mp)},e.prototype.setPreload=function(t){this.set(Mp,t)},e.prototype.getUseInterimTilesOnError=function(){return this.get(Fp)},e.prototype.setUseInterimTilesOnError=function(t){this.set(Fp,t)},e}(xo);Ap.prototype.getSource;var Np=Ap,Gp="beforeoperations",Dp="afteroperations",kp={PIXEL:"pixel",IMAGE:"image"},jp=function(t){function e(e,i,r){t.call(this,e),this.extent=i.extent,this.resolution=i.viewState.resolution/i.pixelRatio,this.data=r}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e}(P),Up=null;function Yp(t,e,i){if(!t.prepareFrame(e,i))return null;var r=e.size[0],n=e.size[1];if(Up){var o=Up.canvas;o.width!==r||o.height!==n?Up=Jn(r,n):Up.clearRect(0,0,r,n)}else Up=Jn(r,n);return t.composeFrame(e,i,Up),Up.getImageData(0,0,r,n)}function Bp(t){var e=t,i=t,r=t,n=null;return"function"==typeof e.getTile?n=function(t){var e=new Np({source:t});return new ha(e)}(e):"function"==typeof i.getImage?n=function(t){var e=new bp({source:t});return new ra(e)}(i):r.getType()===Ss.TILE?n=new ha(r):r.getType()!=Ss.IMAGE&&r.getType()!=Ss.VECTOR||(n=new ra(r)),n}var Vp=function(t){function e(e){t.call(this,{projection:null}),this.worker_=null,this.operationType_=void 0!==e.operationType?e.operationType:kp.PIXEL,this.threads_=void 0!==e.threads?e.threads:1,this.renderers_=function(t){for(var e=t.length,i=new Array(e),r=0;rStamen Design, under CC BY 3.0.',Ip],zp={terrain:{extension:"jpg",opaque:!0},"terrain-background":{extension:"jpg",opaque:!0},"terrain-labels":{extension:"png",opaque:!1},"terrain-lines":{extension:"png",opaque:!1},"toner-background":{extension:"png",opaque:!0},toner:{extension:"png",opaque:!0},"toner-hybrid":{extension:"png",opaque:!1},"toner-labels":{extension:"png",opaque:!1},"toner-lines":{extension:"png",opaque:!1},"toner-lite":{extension:"png",opaque:!0},watercolor:{extension:"jpg",opaque:!0}},Wp={terrain:{minZoom:4,maxZoom:18},toner:{minZoom:0,maxZoom:20},watercolor:{minZoom:1,maxZoom:16}},Kp=function(t){function e(e){var i=e.layer.indexOf("-"),r=-1==i?e.layer:e.layer.slice(0,i),n=Wp[r],o=zp[e.layer],s=void 0!==e.url?e.url:"https://stamen-tiles-{a-d}.a.ssl.fastly.net/"+e.layer+"/{z}/{x}/{y}."+o.extension;t.call(this,{attributions:Xp,cacheSize:e.cacheSize,crossOrigin:"anonymous",maxZoom:void 0!=e.maxZoom?e.maxZoom:n.maxZoom,minZoom:void 0!=e.minZoom?e.minZoom:n.minZoom,opaque:o.opaque,reprojectionErrorThreshold:e.reprojectionErrorThreshold,tileLoadFunction:e.tileLoadFunction,url:s,wrapX:e.wrapX})}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e}(ep);function Hp(t,e,i){var r=this.getTileGrid();if(r||(r=this.getTileGridForProjection(i)),!(r.getResolutions().length<=t[0])){var n=r.getTileCoordExtent(t,this.tmpExtent_),o=ho(r.getTileSize(t[0]),this.tmpSize);1!=e&&(o=ao(o,e,this.tmpSize));var s={F:"image",FORMAT:"PNG32",TRANSPARENT:!0};return u(s,this.params_),this.getRequestUrl_(t,o,n,e,i,s)}}var Zp=function(t){function e(e){var i=e||{};t.call(this,{attributions:i.attributions,cacheSize:i.cacheSize,crossOrigin:i.crossOrigin,projection:i.projection,reprojectionErrorThreshold:i.reprojectionErrorThreshold,tileGrid:i.tileGrid,tileLoadFunction:i.tileLoadFunction,tileUrlFunction:Hp,url:i.url,urls:i.urls,wrapX:void 0===i.wrapX||i.wrapX,transition:i.transition}),this.params_=i.params||{},this.tmpExtent_=[1/0,1/0,-1/0,-1/0],this.setKey(this.getKeyForParams_())}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.getKeyForParams_=function(){var t=0,e=[];for(var i in this.params_)e[t++]=i+"-"+this.params_[i];return e.join("/")},e.prototype.getParams=function(){return this.params_},e.prototype.getRequestUrl_=function(t,e,i,r,n,o){var s=this.urls;if(s){var a,h=n.getCode().split(":").pop();if(o.SIZE=e[0]+","+e[1],o.BBOX=i.join(","),o.BBOXSR=h,o.IMAGESR=h,o.DPI=Math.round(o.DPI?o.DPI*r:90*r),1==s.length)a=s[0];else a=s[Xt(Cl(t),s.length)];return _p(a.replace(/MapServer\/?$/,"MapServer/export").replace(/ImageServer\/?$/,"ImageServer/exportImage"),o)}},e.prototype.getTilePixelRatio=function(t){return t},e.prototype.updateParams=function(t){u(this.params_,t),this.setKey(this.getKeyForParams_())},e}($u),qp=function(t){function e(e,i,r){t.call(this,e,On.LOADED),this.tileSize_=i,this.text_=r,this.canvas_=null}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.getImage=function(){if(this.canvas_)return this.canvas_;var t=this.tileSize_,e=Jn(t[0],t[1]);return e.strokeStyle="black",e.strokeRect(.5,.5,t[0]+.5,t[1]+.5),e.fillStyle="black",e.textAlign="center",e.textBaseline="middle",e.font="24px sans-serif",e.fillText(this.text_,t[0]/2,t[1]/2),this.canvas_=e.canvas,e.canvas},e.prototype.load=function(){},e}(vl),Jp=function(t){function e(e){t.call(this,{opaque:!1,projection:e.projection,tileGrid:e.tileGrid,wrapX:void 0===e.wrapX||e.wrapX})}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.getTile=function(t,e,i){var r=Sl(t,e,i);if(this.tileCache.containsKey(r))return this.tileCache.get(r);var n=ho(this.tileGrid.getTileSize(t)),o=[t,e,i],s=this.getTileCoordForTileUrlFunction(o),a=s?this.getTileCoordForTileUrlFunction(s).toString():"",h=new qp(o,n,a);return this.tileCache.set(r,h),h},e}(jl),Qp=function(t){function e(e){if(t.call(this,{attributions:e.attributions,cacheSize:e.cacheSize,crossOrigin:e.crossOrigin,projection:Ee("EPSG:3857"),reprojectionErrorThreshold:e.reprojectionErrorThreshold,state:ro.LOADING,tileLoadFunction:e.tileLoadFunction,wrapX:void 0===e.wrapX||e.wrapX,transition:e.transition}),this.tileJSON_=null,e.url)if(e.jsonp)Yu(e.url,this.handleTileJSONResponse.bind(this),this.handleTileJSONError.bind(this));else{var i=new XMLHttpRequest;i.addEventListener("load",this.onXHRLoad_.bind(this)),i.addEventListener("error",this.onXHRError_.bind(this)),i.open("GET",e.url),i.send()}else e.tileJSON?this.handleTileJSONResponse(e.tileJSON):Y(!1,51)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.onXHRLoad_=function(t){var e=t.target;if(!e.status||e.status>=200&&e.status<300){var i;try{i=JSON.parse(e.responseText)}catch(t){return void this.handleTileJSONError()}this.handleTileJSONResponse(i)}else this.handleTileJSONError()},e.prototype.onXHRError_=function(t){this.handleTileJSONError()},e.prototype.getTileJSON=function(){return this.tileJSON_},e.prototype.handleTileJSONResponse=function(t){var e,i=Ee("EPSG:4326"),r=this.getProjection();if(void 0!==t.bounds){var n=Le(i,r);e=Ft(t.bounds,n)}var o=t.minzoom||0,s=t.maxzoom||22,a=Fl({extent:Gl(r),maxZoom:s,minZoom:o});if(this.tileGrid=a,this.tileUrlFunction=Du(t.tiles,a),void 0!==t.attribution&&!this.getAttributions()){var h=void 0!==e?e:i.getExtent();this.setAttributions(function(e){return Pt(h,e.extent)?[t.attribution]:null})}this.tileJSON_=t,this.setState(ro.READY)},e.prototype.handleTileJSONError=function(){this.setState(ro.ERROR)},e}($u);function $p(t,e,i){var r=this.getTileGrid();if(r||(r=this.getTileGridForProjection(i)),!(r.getResolutions().length<=t[0])){1==e||this.hidpi_&&void 0!==this.serverType_||(e=1);var n=r.getResolution(t[0]),o=r.getTileCoordExtent(t,this.tmpExtent_),s=ho(r.getTileSize(t[0]),this.tmpSize),a=this.gutter_;0!==a&&(s=so(s,a,this.tmpSize),o=et(o,n*a,o)),1!=e&&(s=ao(s,e,this.tmpSize));var h={SERVICE:"WMS",VERSION:xp,REQUEST:"GetMap",FORMAT:"image/png",TRANSPARENT:!0};return u(h,this.params_),this.getRequestUrl_(t,s,o,e,i,h)}}var tc=function(t){function e(e){var i=e||{},r=i.params||{},n=!("TRANSPARENT"in r)||r.TRANSPARENT;t.call(this,{attributions:i.attributions,cacheSize:i.cacheSize,crossOrigin:i.crossOrigin,opaque:!n,projection:i.projection,reprojectionErrorThreshold:i.reprojectionErrorThreshold,tileClass:i.tileClass,tileGrid:i.tileGrid,tileLoadFunction:i.tileLoadFunction,tileUrlFunction:$p,url:i.url,urls:i.urls,wrapX:void 0===i.wrapX||i.wrapX,transition:i.transition}),this.gutter_=void 0!==i.gutter?i.gutter:0,this.params_=r,this.v13_=!0,this.serverType_=i.serverType,this.hidpi_=void 0===i.hidpi||i.hidpi,this.tmpExtent_=[1/0,1/0,-1/0,-1/0],this.updateV13_(),this.setKey(this.getKeyForParams_())}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.getGetFeatureInfoUrl=function(t,e,i,r){var n=Ee(i),o=this.getProjection(),s=this.getTileGrid();s||(s=this.getTileGridForProjection(n));var a=s.getTileCoordForCoordAndResolution(t,e);if(!(s.getResolutions().length<=a[0])){var h=s.getResolution(a[0]),l=s.getTileCoordExtent(a,this.tmpExtent_),p=ho(s.getTileSize(a[0]),this.tmpSize),c=this.gutter_;0!==c&&(p=so(p,c,this.tmpSize),l=et(l,h*c,l)),o&&o!==n&&(h=Bu(o,n,t,h),l=be(l,n,o),t=Pe(t,n,o));var d={SERVICE:"WMS",VERSION:xp,REQUEST:"GetFeatureInfo",FORMAT:"image/png",TRANSPARENT:!0,QUERY_LAYERS:this.params_.LAYERS};u(d,this.params_,r);var f=Math.floor((t[0]-l[0])/h),_=Math.floor((l[3]-t[1])/h);return d[this.v13_?"I":"X"]=f,d[this.v13_?"J":"Y"]=_,this.getRequestUrl_(a,p,l,1,o||n,d)}},e.prototype.getGutter=function(){return this.gutter_},e.prototype.getParams=function(){return this.params_},e.prototype.getRequestUrl_=function(t,e,i,r,n,o){var s=this.urls;if(s){if(o.WIDTH=e[0],o.HEIGHT=e[1],o[this.v13_?"CRS":"SRS"]=n.getCode(),"STYLES"in this.params_||(o.STYLES=""),1!=r)switch(this.serverType_){case Sp:var a=90*r+.5|0;"FORMAT_OPTIONS"in o?o.FORMAT_OPTIONS+=";dpi:"+a:o.FORMAT_OPTIONS="dpi:"+a;break;case Tp:o.MAP_RESOLUTION=90*r;break;case Ep:case Cp:o.DPI=90*r;break;default:Y(!1,52)}var h,l,u=n.getAxisOrientation(),p=i;if(this.v13_&&"ne"==u.substr(0,2))h=i[0],p[0]=i[1],p[1]=h,h=i[2],p[2]=i[3],p[3]=h;if(o.BBOX=p.join(","),1==s.length)l=s[0];else l=s[Xt(Cl(t),s.length)];return _p(l,o)}},e.prototype.getTilePixelRatio=function(t){return this.hidpi_&&void 0!==this.serverType_?t:1},e.prototype.getKeyForParams_=function(){var t=0,e=[];for(var i in this.params_)e[t++]=i+"-"+this.params_[i];return e.join("/")},e.prototype.updateParams=function(t){u(this.params_,t),this.updateV13_(),this.setKey(this.getKeyForParams_())},e.prototype.updateV13_=function(){var t=this.params_.VERSION||xp;this.v13_=Ki(t,"1.3")>=0},e}($u),ec=function(t){function e(e,i,r,n,o,s){t.call(this,e,i),this.src_=r,this.extent_=n,this.preemptive_=o,this.grid_=null,this.keys_=null,this.data_=null,this.jsonp_=s}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.getImage=function(){return null},e.prototype.getData=function(t){if(!this.grid_||!this.keys_)return null;var e=(t[0]-this.extent_[0])/(this.extent_[2]-this.extent_[0]),i=(t[1]-this.extent_[1])/(this.extent_[3]-this.extent_[1]),r=this.grid_[Math.floor((1-i)*this.grid_.length)];if("string"!=typeof r)return null;var n=r.charCodeAt(Math.floor(e*r.length));n>=93&&n--,n>=35&&n--;var o=null;if((n-=32)in this.keys_){var s=this.keys_[n];o=this.data_&&s in this.data_?this.data_[s]:s}return o},e.prototype.forDataAtCoordinate=function(t,e,i,r){this.state==On.IDLE&&!0===r?(m(this,M.CHANGE,function(r){e.call(i,this.getData(t))},this),this.loadInternal_()):!0===r?setTimeout(function(){e.call(i,this.getData(t))}.bind(this),0):e.call(i,this.getData(t))},e.prototype.getKey=function(){return this.src_},e.prototype.handleError_=function(){this.state=On.ERROR,this.changed()},e.prototype.handleLoad_=function(t){this.grid_=t.grid,this.keys_=t.keys,this.data_=t.data,this.state=On.EMPTY,this.changed()},e.prototype.loadInternal_=function(){if(this.state==On.IDLE)if(this.state=On.LOADING,this.jsonp_)Yu(this.src_,this.handleLoad_.bind(this),this.handleError_.bind(this));else{var t=new XMLHttpRequest;t.addEventListener("load",this.onXHRLoad_.bind(this)),t.addEventListener("error",this.onXHRError_.bind(this)),t.open("GET",this.src_),t.send()}},e.prototype.onXHRLoad_=function(t){var e=t.target;if(!e.status||e.status>=200&&e.status<300){var i;try{i=JSON.parse(e.responseText)}catch(t){return void this.handleError_()}this.handleLoad_(i)}else this.handleError_()},e.prototype.onXHRError_=function(t){this.handleError_()},e.prototype.load=function(){this.preemptive_&&this.loadInternal_()},e}(vl),ic=function(t){function e(e){if(t.call(this,{projection:Ee("EPSG:3857"),state:ro.LOADING}),this.preemptive_=void 0===e.preemptive||e.preemptive,this.tileUrlFunction_=ju,this.template_=void 0,this.jsonp_=e.jsonp||!1,e.url)if(this.jsonp_)Yu(e.url,this.handleTileJSONResponse.bind(this),this.handleTileJSONError.bind(this));else{var i=new XMLHttpRequest;i.addEventListener("load",this.onXHRLoad_.bind(this)),i.addEventListener("error",this.onXHRError_.bind(this)),i.open("GET",e.url),i.send()}else e.tileJSON?this.handleTileJSONResponse(e.tileJSON):Y(!1,51)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.onXHRLoad_=function(t){var e=t.target;if(!e.status||e.status>=200&&e.status<300){var i;try{i=JSON.parse(e.responseText)}catch(t){return void this.handleTileJSONError()}this.handleTileJSONResponse(i)}else this.handleTileJSONError()},e.prototype.onXHRError_=function(t){this.handleTileJSONError()},e.prototype.getTemplate=function(){return this.template_},e.prototype.forDataAtCoordinateAndResolution=function(t,e,i,r){if(this.tileGrid){var n=this.tileGrid.getTileCoordForCoordAndResolution(t,e);this.getTile(n[0],n[1],n[2],1,this.getProjection()).forDataAtCoordinate(t,i,null,r)}else!0===r?setTimeout(function(){i(null)},0):i(null)},e.prototype.handleTileJSONError=function(){this.setState(ro.ERROR)},e.prototype.handleTileJSONResponse=function(t){var e,i=Ee("EPSG:4326"),r=this.getProjection();if(void 0!==t.bounds){var n=Le(i,r);e=Ft(t.bounds,n)}var o=t.minzoom||0,s=t.maxzoom||22,a=Fl({extent:Gl(r),maxZoom:s,minZoom:o});this.tileGrid=a,this.template_=t.template;var h=t.grids;if(h){if(this.tileUrlFunction_=Du(h,a),void 0!==t.attribution){var l=void 0!==e?e:i.getExtent();this.setAttributions(function(e){return Pt(l,e.extent)?[t.attribution]:null})}this.setState(ro.READY)}else this.setState(ro.ERROR)},e.prototype.getTile=function(t,e,i,r,n){var o=Sl(t,e,i);if(this.tileCache.containsKey(o))return this.tileCache.get(o);var s=[t,e,i],a=this.getTileCoordForTileUrlFunction(s,n),h=this.tileUrlFunction_(a,r,n),l=new ec(s,void 0!==h?On.IDLE:On.EMPTY,void 0!==h?h:"",this.tileGrid.getTileCoordExtent(s),this.preemptive_,this.jsonp_);return this.tileCache.set(o,l),l},e.prototype.useTile=function(t,e,i){var r=Sl(t,e,i);this.tileCache.containsKey(r)&&this.tileCache.get(r)},e}(jl),rc=function(t){function e(i,r,n,o,s,a,h,l,u,p,c,d,f,_,g){if(t.call(this,i,r,{transition:0}),this.context_={},this.loader_,this.replayState_={},this.sourceTiles_=p,this.tileKeys=[],this.extent=null,this.sourceRevision_=n,this.wrappedTileCoord=a,this.loadListenerKeys_=[],this.sourceTileListenerKeys_=[],a){var y=this.extent=u.getTileCoordExtent(a),m=u.getResolution(g),x=l.getZForResolution(m),E=g!=i[0],S=0;if(l.forEachTileCoord(y,x,function(t){var e=wt(y,l.getTileCoordExtent(t)),i=l.getExtent();if(i&&(e=wt(e,i,e)),Ot(e)/m>=.5&&Rt(e)/m>=.5){++S;var r=t.toString(),n=p[r];if(!n&&!E){var a=h(t,c,d);n=p[r]=new f(t,void 0==a?On.EMPTY:On.IDLE,void 0==a?"":a,o,s),this.sourceTileListenerKeys_.push(v(n,M.CHANGE,_))}!n||E&&n.getState()!=On.LOADED||(n.consumers++,this.tileKeys.push(r))}}.bind(this)),E&&S==this.tileKeys.length&&this.finishLoading_(),g<=i[0]&&this.state!=On.LOADED)for(;g>u.getMinZoom();){var T=new e(i,r,n,o,s,a,h,l,u,p,c,d,f,I,--g);if(T.state==On.LOADED){this.interimTile=T;break}}}}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.disposeInternal=function(){this.state=On.ABORT,this.changed(),this.interimTile&&this.interimTile.dispose();for(var e=0,i=this.tileKeys.length;e=0;--i){var r=this.getTile(this.tileKeys[i]).getState();r!=On.LOADED&&--t,r==On.EMPTY&&++e}t==this.tileKeys.length?(this.loadListenerKeys_.forEach(E),this.loadListenerKeys_.length=0,this.setState(On.LOADED)):this.setState(e==this.tileKeys.length?On.EMPTY:On.ERROR)},e}(vl);function nc(t,e){var i=Zl(e,t.getFormat(),t.onLoad.bind(t),t.onError.bind(t));t.setLoader(i)}var oc=[0,0,4096,4096],sc=function(t){function e(e,i,r,n,o,s){t.call(this,e,i,s),this.consumers=0,this.extent_=null,this.format_=n,this.features_=null,this.loader_,this.projection_=null,this.replayGroups_={},this.tileLoadFunction_=o,this.url_=r}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.disposeInternal=function(){this.features_=null,this.replayGroups_={},this.state=On.ABORT,this.changed(),t.prototype.disposeInternal.call(this)},e.prototype.getExtent=function(){return this.extent_||oc},e.prototype.getFormat=function(){return this.format_},e.prototype.getFeatures=function(){return this.features_},e.prototype.getKey=function(){return this.url_},e.prototype.getProjection=function(){return this.projection_},e.prototype.getReplayGroup=function(t,e){return this.replayGroups_[o(t)+","+e]},e.prototype.load=function(){this.state==On.IDLE&&(this.setState(On.LOADING),this.tileLoadFunction_(this,this.url_),this.loader_(null,NaN,null))},e.prototype.onLoad=function(t,e,i){this.setProjection(e),this.setFeatures(t),this.setExtent(i)},e.prototype.onError=function(){this.setState(On.ERROR)},e.prototype.setExtent=function(t){this.extent_=t},e.prototype.setFeatures=function(t){this.features_=t,this.setState(On.LOADED)},e.prototype.setProjection=function(t){this.projection_=t},e.prototype.setReplayGroup=function(t,e,i){this.replayGroups_[o(t)+","+e]=i},e.prototype.setLoader=function(t){this.loader_=t},e}(vl),ac=function(t){function e(e){var i=e.projection||"EPSG:3857",r=e.extent||Gl(i),n=e.tileGrid||Fl({extent:r,maxZoom:e.maxZoom||22,minZoom:e.minZoom,tileSize:e.tileSize||512});t.call(this,{attributions:e.attributions,cacheSize:void 0!==e.cacheSize?e.cacheSize:128,opaque:!1,projection:i,state:e.state,tileGrid:n,tileLoadFunction:e.tileLoadFunction?e.tileLoadFunction:nc,tileUrlFunction:e.tileUrlFunction,url:e.url,urls:e.urls,wrapX:void 0===e.wrapX||e.wrapX,transition:e.transition}),this.format_=e.format?e.format:null,this.sourceTiles_={},this.overlaps_=void 0==e.overlaps||e.overlaps,this.tileClass=e.tileClass?e.tileClass:sc,this.tileGrids_={}}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.getOverlaps=function(){return this.overlaps_},e.prototype.clear=function(){this.tileCache.clear(),this.sourceTiles_={}},e.prototype.getTile=function(t,e,i,r,n){var o=Sl(t,e,i);if(this.tileCache.containsKey(o))return this.tileCache.get(o);var s=[t,e,i],a=this.getTileCoordForTileUrlFunction(s,n),h=new rc(s,null!==a?On.IDLE:On.EMPTY,this.getRevision(),this.format_,this.tileLoadFunction,a,this.tileUrlFunction,this.tileGrid,this.getTileGridForProjection(n),this.sourceTiles_,r,n,this.tileClass,this.handleTileChange.bind(this),s[0]);return this.tileCache.set(o,h),h},e.prototype.getTileGridForProjection=function(t){var e=t.getCode(),i=this.tileGrids_[e];if(!i){var r=this.tileGrid;i=this.tileGrids_[e]=Nl(t,void 0,r?r.getTileSize(r.getMinZoom()):void 0)}return i},e.prototype.getTilePixelRatio=function(t){return t},e.prototype.getTilePixelSize=function(t,e,i){var r=ho(this.getTileGridForProjection(i).getTileSize(t),this.tmpSize);return[Math.round(r[0]*e),Math.round(r[1]*e)]},e}(Ju),hc={KVP:"KVP",REST:"REST"},lc=function(t){function e(e){var i=void 0!==e.requestEncoding?e.requestEncoding:hc.KVP,r=e.tileGrid,n=e.urls;void 0===n&&void 0!==e.url&&(n=Uu(e.url)),t.call(this,{attributions:e.attributions,cacheSize:e.cacheSize,crossOrigin:e.crossOrigin,projection:e.projection,reprojectionErrorThreshold:e.reprojectionErrorThreshold,tileClass:e.tileClass,tileGrid:r,tileLoadFunction:e.tileLoadFunction,tilePixelRatio:e.tilePixelRatio,tileUrlFunction:ju,urls:n,wrapX:void 0!==e.wrapX&&e.wrapX,transition:e.transition}),this.version_=void 0!==e.version?e.version:"1.0.0",this.format_=void 0!==e.format?e.format:"image/jpeg",this.dimensions_=void 0!==e.dimensions?e.dimensions:{},this.layer_=e.layer,this.matrixSet_=e.matrixSet,this.style_=e.style,this.requestEncoding_=i,this.setKey(this.getKeyForDimensions_()),n&&n.length>0&&(this.tileUrlFunction=ku(n.map(uc.bind(this))))}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.setUrls=function(t){this.urls=t;var e=t.join("\n");this.setTileUrlFunction(ku(t.map(uc.bind(this))),e)},e.prototype.getDimensions=function(){return this.dimensions_},e.prototype.getFormat=function(){return this.format_},e.prototype.getLayer=function(){return this.layer_},e.prototype.getMatrixSet=function(){return this.matrixSet_},e.prototype.getRequestEncoding=function(){return this.requestEncoding_},e.prototype.getStyle=function(){return this.style_},e.prototype.getVersion=function(){return this.version_},e.prototype.getKeyForDimensions_=function(){var t=0,e=[];for(var i in this.dimensions_)e[t++]=i+"-"+this.dimensions_[i];return e.join("/")},e.prototype.updateDimensions=function(t){u(this.dimensions_,t),this.setKey(this.getKeyForDimensions_())},e}($u);function uc(t){var e=this.requestEncoding_,i={layer:this.layer_,style:this.style_,tilematrixset:this.matrixSet_};e==hc.KVP&&u(i,{Service:"WMTS",Request:"GetTile",Version:this.version_,Format:this.format_}),t=e==hc.KVP?_p(t,i):t.replace(/\{(\w+?)\}/g,function(t,e){return e.toLowerCase()in i?i[e.toLowerCase()]:t});var r=this.tileGrid,n=this.dimensions_;return function(i,o,s){if(i){var a={TileMatrix:r.getMatrixId(i[0]),TileCol:i[1],TileRow:-i[2]-1};u(a,n);var h=t;return h=e==hc.KVP?_p(h,a):h.replace(/\{(\w+?)\}/g,function(t,e){return a[e]})}}}var pc={DEFAULT:"default",TRUNCATED:"truncated"},cc=function(t){function e(e,i,r,n,o,s,a){t.call(this,i,r,n,o,s,a),this.zoomifyImage_=null,this.tileSize_=ho(e.getTileSize(i[0]))}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.getImage=function(){if(this.zoomifyImage_)return this.zoomifyImage_;var e=t.prototype.getImage.call(this);if(this.state==On.LOADED){var i=this.tileSize_;if(e.width==i[0]&&e.height==i[1])return this.zoomifyImage_=e,e;var r=Jn(i[0],i[1]);return r.drawImage(e,0,0),this.zoomifyImage_=r.canvas,r.canvas}return e},e}(xl),dc=function(t){function e(e){var i=e||{},r=i.size,n=void 0!==i.tierSizeCalculation?i.tierSizeCalculation:pc.DEFAULT,o=r[0],s=r[1],a=i.extent||[0,-r[1],r[0],0],h=[],l=i.tileSize||An,u=l;switch(n){case pc.DEFAULT:for(;o>u||s>u;)h.push([Math.ceil(o/u),Math.ceil(s/u)]),u+=u;break;case pc.TRUNCATED:for(var p=o,c=s;p>u||c>u;)h.push([Math.ceil(p/u),Math.ceil(c/u)]),p>>=1,c>>=1;break;default:Y(!1,53)}h.push([1,1]),h.reverse();for(var d=[1],f=[0],_=1,g=h.length;_0)break}this.source_&&(this.source_.clear(),this.source_.addFeatures(s)),this.dispatchEvent(new Tc(Sc,t,s,n))},e.prototype.registerListeners_=function(){var t=this.getMap();if(t){var e=this.target?this.target:t.getViewport();this.dropListenKeys_=[v(e,M.DROP,Cc,this),v(e,M.DRAGENTER,Rc,this),v(e,M.DRAGOVER,Rc,this),v(e,M.DROP,Rc,this)]}},e.prototype.setActive=function(e){t.prototype.setActive.call(this,e),e?this.registerListeners_():this.unregisterListeners_()},e.prototype.setMap=function(e){this.unregisterListeners_(),t.prototype.setMap.call(this,e),this.getActive()&&this.registerListeners_()},e.prototype.tryReadFeatures_=function(t,e,i){try{return t.readFeatures(e,i)}catch(t){return null}},e.prototype.unregisterListeners_=function(){this.dropListenKeys_&&(this.dropListenKeys_.forEach(E),this.dropListenKeys_=null)},e}(Fo),Ic=function(t){function e(e){var i=e||{};t.call(this,i),this.condition_=i.condition?i.condition:zo,this.lastAngle_=void 0,this.lastMagnitude_=void 0,this.lastScaleDelta_=0,this.duration_=void 0!==i.duration?i.duration:400}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.handleDragEvent=function(t){if(Ko(t)){var e=t.map,i=e.getSize(),r=t.pixel,n=r[0]-i[0]/2,o=i[1]/2-r[1],s=Math.atan2(o,n),a=Math.sqrt(n*n+o*o),h=e.getView();if(h.getConstraints().rotation!==Gn&&void 0!==this.lastAngle_){var l=s-this.lastAngle_;Oo(h,h.getRotation()-l)}if(this.lastAngle_=s,void 0!==this.lastMagnitude_)Mo(h,this.lastMagnitude_*(h.getResolution()/a));void 0!==this.lastMagnitude_&&(this.lastScaleDelta_=this.lastMagnitude_/a),this.lastMagnitude_=a}},e.prototype.handleUpEvent=function(t){if(!Ko(t))return!0;var e=t.map.getView();e.setHint(jn,-1);var i=this.lastScaleDelta_-1;return Lo(e,e.getRotation()),Po(e,e.getResolution(),void 0,this.duration_,i),this.lastScaleDelta_=0,!1},e.prototype.handleDownEvent=function(t){return!!Ko(t)&&(!!this.condition_(t)&&(t.map.getView().setHint(jn,1),this.lastAngle_=void 0,this.lastMagnitude_=void 0,!0))},e}(qo),Lc=function(t){function e(e,i,r){if(t.call(this),void 0!==r&&void 0===i)this.setFlatCoordinates(r,e);else{var n=i||0;this.setCenterAndRadius(e,n,r)}}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.clone=function(){return new e(this.flatCoordinates.slice(),void 0,this.layout)},e.prototype.closestPointXY=function(t,e,i,r){var n=this.flatCoordinates,o=t-n[0],s=e-n[1],a=o*o+s*s;if(a=e[0]||(t[1]<=e[1]&&t[3]>=e[1]||mt(t,this.intersectsCoordinate,this))}return!1},e.prototype.setCenter=function(t){var e=this.stride,i=this.flatCoordinates[e]-this.flatCoordinates[0],r=t.slice();r[e]=r[0]+i;for(var n=1;n=this.dragVertexDelay_?(this.downPx_=e.pixel,this.shouldHandle_=!this.freehand_,i=!0):this.lastDragTime_=void 0,this.shouldHandle_&&void 0!==this.downTimeout_&&(clearTimeout(this.downTimeout_),this.downTimeout_=void 0));return this.freehand_&&e.type===Ar.POINTERDRAG&&null!==this.sketchFeature_?(this.addToDrawing_(e),r=!1):this.freehand_&&e.type===Ar.POINTERDOWN?r=!1:i?(r=e.type===Ar.POINTERMOVE)&&this.freehand_?r=this.handlePointerMove_(e):(e.pointerEvent.pointerType==Ur||e.type===Ar.POINTERDRAG&&void 0===this.downTimeout_)&&this.handlePointerMove_(e):e.type===Ar.DBLCLICK&&(r=!1),t.prototype.handleEvent.call(this,e)&&r},e.prototype.handleDownEvent=function(t){return this.shouldHandle_=!this.freehand_,this.freehand_?(this.downPx_=t.pixel,this.finishCoordinate_||this.startDrawing_(t),!0):!!this.condition_(t)&&(this.lastDragTime_=Date.now(),this.downTimeout_=setTimeout(function(){this.handlePointerMove_(new Nr(Ar.POINTERMOVE,t.map,t.pointerEvent,!1,t.frameState))}.bind(this),this.dragVertexDelay_),this.downPx_=t.pixel,!0)},e.prototype.handleUpEvent=function(t){var e=!0;this.downTimeout_&&(clearTimeout(this.downTimeout_),this.downTimeout_=void 0),this.handlePointerMove_(t);var i=this.mode_===Ac.CIRCLE;return this.shouldHandle_?(this.finishCoordinate_?this.freehand_||i?this.finishDrawing():this.atFinish_(t)?this.finishCondition_(t)&&this.finishDrawing():this.addToDrawing_(t):(this.startDrawing_(t),this.mode_===Ac.POINT&&this.finishDrawing()),e=!1):this.freehand_&&(this.finishCoordinate_=null,this.abortDrawing_()),!e&&this.stopClick_&&t.stopPropagation(),e},e.prototype.handlePointerMove_=function(t){if(this.downPx_&&(!this.freehand_&&this.shouldHandle_||this.freehand_&&!this.shouldHandle_)){var e=this.downPx_,i=t.pixel,r=e[0]-i[0],n=e[1]-i[1],o=r*r+n*n;if(this.shouldHandle_=this.freehand_?o>this.squaredClickTolerance_:o<=this.squaredClickTolerance_,!this.shouldHandle_)return!0}return this.finishCoordinate_?this.modifyDrawing_(t):this.createOrUpdateSketchPoint_(t),!0},e.prototype.atFinish_=function(t){var e=!1;if(this.sketchFeature_){var i=!1,r=[this.finishCoordinate_];if(this.mode_===Ac.LINE_STRING)i=this.sketchCoords_.length>this.minPoints_;else if(this.mode_===Ac.POLYGON){var n=this.sketchCoords_;i=n[0].length>this.minPoints_,r=[n[0][0],n[0][n[0].length-2]]}if(i)for(var o=t.map,s=0,a=r.length;s=this.maxPoints_&&(this.freehand_?i.pop():e=!0),i.push(r.slice()),this.geometryFunction_(i,n)):this.mode_===Ac.POLYGON&&((i=this.sketchCoords_[0]).length>=this.maxPoints_&&(this.freehand_?i.pop():e=!0),i.push(r.slice()),e&&(this.finishCoordinate_=i[0]),this.geometryFunction_(this.sketchCoords_,n)),this.updateSketchFeatures_(),e&&this.finishDrawing()},e.prototype.removeLastPoint=function(){if(this.sketchFeature_){var t,e=this.sketchFeature_.getGeometry();this.mode_===Ac.LINE_STRING?((t=this.sketchCoords_).splice(-2,1),this.geometryFunction_(t,e),t.length>=2&&(this.finishCoordinate_=t[t.length-2].slice())):this.mode_===Ac.POLYGON&&((t=this.sketchCoords_[0]).splice(-2,1),this.sketchLine_.getGeometry().setCoordinates(t),this.geometryFunction_(this.sketchCoords_,e)),0===t.length&&(this.finishCoordinate_=null),this.updateSketchFeatures_()}},e.prototype.finishDrawing=function(){var t=this.abortDrawing_();if(t){var e=this.sketchCoords_,i=t.getGeometry();this.mode_===Ac.LINE_STRING?(e.pop(),this.geometryFunction_(e,i)):this.mode_===Ac.POLYGON&&(e[0].pop(),this.geometryFunction_(e,i),e=i.getCoordinates()),this.type_===Nt.MULTI_POINT?t.setGeometry(new bc([e])):this.type_===Nt.MULTI_LINE_STRING?t.setGeometry(new Pc([e])):this.type_===Nt.MULTI_POLYGON&&t.setGeometry(new Fc([e])),this.dispatchEvent(new Dc(Gc,t)),this.features_&&this.features_.push(t),this.source_&&this.source_.addFeature(t)}},e.prototype.abortDrawing_=function(){this.finishCoordinate_=null;var t=this.sketchFeature_;return t&&(this.sketchFeature_=null,this.sketchPoint_=null,this.sketchLine_=null,this.overlay_.getSource().clear(!0)),t},e.prototype.extend=function(t){var e=t.getGeometry();this.sketchFeature_=t,this.sketchCoords_=e.getCoordinates();var i=this.sketchCoords_[this.sketchCoords_.length-1];this.finishCoordinate_=i.slice(),this.sketchCoords_.push(i.slice()),this.updateSketchFeatures_(),this.dispatchEvent(new Dc(Nc,this.sketchFeature_))},e.prototype.updateSketchFeatures_=function(){var t=[];this.sketchFeature_&&t.push(this.sketchFeature_),this.sketchLine_&&t.push(this.sketchLine_),this.sketchPoint_&&t.push(this.sketchPoint_);var e=this.overlay_.getSource();e.clear(!0),e.addFeatures(t)},e.prototype.updateState_=function(){var t=this.getMap(),e=this.getActive();t&&e||this.abortDrawing_(),this.overlay_.setMap(e?t:null)},e}(qo),jc={EXTENTCHANGED:"extentchanged"},Uc=function(t){function e(e){t.call(this,jc.EXTENTCHANGED),this.extent=e}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e}(P);function Yc(t){return function(e){return tt([t,e])}}function Bc(t,e){return t[0]==e[0]?function(i){return tt([t,[i[0],e[1]]])}:t[1]==e[1]?function(i){return tt([t,[e[0],i[1]]])}:null}var Vc=function(t){function e(e){var i=e||{};t.call(this,i),this.extent_=null,this.pointerHandler_=null,this.pixelTolerance_=void 0!==i.pixelTolerance?i.pixelTolerance:10,this.snappedToVertex_=!1,this.extentFeature_=null,this.vertexFeature_=null,e||(e={}),this.extentOverlay_=new gc({source:new op({useSpatialIndex:!1,wrapX:!!e.wrapX}),style:e.boxStyle?e.boxStyle:function(){var t=Fu();return function(e,i){return t[Nt.POLYGON]}}(),updateWhileAnimating:!0,updateWhileInteracting:!0}),this.vertexOverlay_=new gc({source:new op({useSpatialIndex:!1,wrapX:!!e.wrapX}),style:e.pointerStyle?e.pointerStyle:function(){var t=Fu();return function(e,i){return t[Nt.POINT]}}(),updateWhileAnimating:!0,updateWhileInteracting:!0}),e.extent&&this.setExtent(e.extent)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.snapToVertex_=function(t,e){var i=e.getCoordinateFromPixel(t),r=this.getExtent();if(r){var n=function(t){return[[[t[0],t[1]],[t[0],t[3]]],[[t[0],t[3]],[t[2],t[3]]],[[t[2],t[3]],[t[2],t[1]]],[[t[2],t[1]],[t[0],t[1]]]]}(r);n.sort(function(t,e){return rr(i,t)-rr(i,e)});var o=n[0],s=Zi(i,o),a=e.getPixelFromCoordinate(s);if(ir(t,a)<=this.pixelTolerance_){var h=e.getPixelFromCoordinate(o[0]),l=e.getPixelFromCoordinate(o[1]),u=er(a,h),p=er(a,l),c=Math.sqrt(Math.min(u,p));return this.snappedToVertex_=c<=this.pixelTolerance_,this.snappedToVertex_&&(s=u>p?o[1]:o[0]),s}}return null},e.prototype.handlePointerMove_=function(t){var e=t.pixel,i=t.map,r=this.snapToVertex_(e,i);r||(r=i.getCoordinateFromPixel(e)),this.createOrUpdatePointerFeature_(r)},e.prototype.createOrUpdateExtentFeature_=function(t){var e=this.extentFeature_;return e?t?e.setGeometry(Oi(t)):e.setGeometry(void 0):(e=new B(t?Oi(t):{}),this.extentFeature_=e,this.extentOverlay_.getSource().addFeature(e)),e},e.prototype.createOrUpdatePointerFeature_=function(t){var e=this.vertexFeature_;e?e.getGeometry().setCoordinates(t):(e=new B(new ci(t)),this.vertexFeature_=e,this.vertexOverlay_.getSource().addFeature(e));return e},e.prototype.handleEvent=function(e){return!e.pointerEvent||(e.type!=Ar.POINTERMOVE||this.handlingDownUpSequence||this.handlePointerMove_(e),t.prototype.handleEvent.call(this,e),!1)},e.prototype.handleDownEvent=function(t){var e=t.pixel,i=t.map,r=this.getExtent(),n=this.snapToVertex_(e,i),o=function(t){var e=null,i=null;return t[0]==r[0]?e=r[2]:t[0]==r[2]&&(e=r[0]),t[1]==r[1]?i=r[3]:t[1]==r[3]&&(i=r[1]),null!==e&&null!==i?[e,i]:null};if(n&&r){var s=n[0]==r[0]||n[0]==r[2]?n[0]:null,a=n[1]==r[1]||n[1]==r[3]?n[1]:null;null!==s&&null!==a?this.pointerHandler_=Yc(o(n)):null!==s?this.pointerHandler_=Bc(o([s,r[1]]),o([s,r[3]])):null!==a&&(this.pointerHandler_=Bc(o([r[0],a]),o([r[2],a])))}else n=i.getCoordinateFromPixel(e),this.setExtent([n[0],n[1],n[0],n[1]]),this.pointerHandler_=Yc(n);return!0},e.prototype.handleDragEvent=function(t){if(this.pointerHandler_){var e=t.coordinate;this.setExtent(this.pointerHandler_(e)),this.createOrUpdatePointerFeature_(e)}return!0},e.prototype.handleUpEvent=function(t){this.pointerHandler_=null;var e=this.getExtent();return e&&0!==xt(e)||this.setExtent(null),!1},e.prototype.setMap=function(e){this.extentOverlay_.setMap(e),this.vertexOverlay_.setMap(e),t.prototype.setMap.call(this,e)},e.prototype.getExtent=function(){return this.extent_},e.prototype.setExtent=function(t){this.extent_=t||null,this.createOrUpdateExtentFeature_(t),this.dispatchEvent(new Uc(this.extent_))},e}(qo),Xc=1,zc="modifystart",Wc="modifyend",Kc=function(t){function e(e,i,r){t.call(this,e),this.features=i,this.mapBrowserEvent=r}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e}(P);function Hc(t,e){return t.index-e.index}function Zc(t,e){var i=e.geometry;if(i.getType()===Nt.CIRCLE){var r=i;if(e.index===Xc){var n=er(r.getCenter(),t),o=Math.sqrt(n)-r.getRadius();return o*o}}return rr(t,e.segment)}function qc(t,e){var i=e.geometry;return i.getType()===Nt.CIRCLE&&e.index===Xc?i.getClosestPoint(t):Zi(t,e.segment)}var Jc=function(t){function e(e){var i;if(t.call(this,e),this.condition_=e.condition?e.condition:Ho,this.defaultDeleteCondition_=function(t){return Go(t)&&Vo(t)},this.deleteCondition_=e.deleteCondition?e.deleteCondition:this.defaultDeleteCondition_,this.insertVertexCondition_=e.insertVertexCondition?e.insertVertexCondition:jo,this.vertexFeature_=null,this.vertexSegments_=null,this.lastPixel_=[0,0],this.ignoreNextSingleClick_=!1,this.modified_=!1,this.rBush_=new tl,this.pixelTolerance_=void 0!==e.pixelTolerance?e.pixelTolerance:10,this.snappedToVertex_=!1,this.changingFeature_=!1,this.dragSegments_=[],this.overlay_=new gc({source:new op({useSpatialIndex:!1,wrapX:!!e.wrapX}),style:e.style?e.style:function(){var t=Fu();return function(e,i){return t[Nt.POINT]}}(),updateWhileAnimating:!0,updateWhileInteracting:!0}),this.SEGMENT_WRITERS_={Point:this.writePointGeometry_,LineString:this.writeLineStringGeometry_,LinearRing:this.writeLineStringGeometry_,Polygon:this.writePolygonGeometry_,MultiPoint:this.writeMultiPointGeometry_,MultiLineString:this.writeMultiLineStringGeometry_,MultiPolygon:this.writeMultiPolygonGeometry_,Circle:this.writeCircleGeometry_,GeometryCollection:this.writeGeometryCollectionGeometry_},this.source_=null,e.source?(this.source_=e.source,i=new U(this.source_.getFeatures()),v(this.source_,rp.ADDFEATURE,this.handleSourceAdd_,this),v(this.source_,rp.REMOVEFEATURE,this.handleSourceRemove_,this)):i=e.features,!i)throw new Error("The modify interaction requires features or a source");this.features_=i,this.features_.forEach(this.addFeature_.bind(this)),v(this.features_,h.ADD,this.handleFeatureAdd_,this),v(this.features_,h.REMOVE,this.handleFeatureRemove_,this),this.lastPointerEvent_=null}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.addFeature_=function(t){var e=t.getGeometry();e&&e.getType()in this.SEGMENT_WRITERS_&&this.SEGMENT_WRITERS_[e.getType()].call(this,t,e);var i=this.getMap();i&&i.isRendered()&&this.getActive()&&this.handlePointerAtPixel_(this.lastPixel_,i),v(t,M.CHANGE,this.handleFeatureChange_,this)},e.prototype.willModifyFeatures_=function(t){this.modified_||(this.modified_=!0,this.dispatchEvent(new Kc(zc,this.features_,t)))},e.prototype.removeFeature_=function(t){this.removeFeatureSegmentData_(t),this.vertexFeature_&&0===this.features_.getLength()&&(this.overlay_.getSource().removeFeature(this.vertexFeature_),this.vertexFeature_=null),x(t,M.CHANGE,this.handleFeatureChange_,this)},e.prototype.removeFeatureSegmentData_=function(t){var e=this.rBush_,i=[];e.forEach(function(e){t===e.feature&&i.push(e)});for(var r=i.length-1;r>=0;--r)e.remove(i[r])},e.prototype.setActive=function(e){this.vertexFeature_&&!e&&(this.overlay_.getSource().removeFeature(this.vertexFeature_),this.vertexFeature_=null),t.prototype.setActive.call(this,e)},e.prototype.setMap=function(e){this.overlay_.setMap(e),t.prototype.setMap.call(this,e)},e.prototype.getOverlay=function(){return this.overlay_},e.prototype.handleSourceAdd_=function(t){t.feature&&this.features_.push(t.feature)},e.prototype.handleSourceRemove_=function(t){t.feature&&this.features_.remove(t.feature)},e.prototype.handleFeatureAdd_=function(t){this.addFeature_(t.element)},e.prototype.handleFeatureChange_=function(t){if(!this.changingFeature_){var e=t.target;this.removeFeature_(e),this.addFeature_(e)}},e.prototype.handleFeatureRemove_=function(t){var e=t.element;this.removeFeature_(e)},e.prototype.writePointGeometry_=function(t,e){var i=e.getCoordinates(),r={feature:t,geometry:e,segment:[i,i]};this.rBush_.insert(e.getExtent(),r)},e.prototype.writeMultiPointGeometry_=function(t,e){for(var i=e.getCoordinates(),r=0,n=i.length;r=0;--_)this.insertVertex_.apply(this,r[_])}return!!this.vertexFeature_},e.prototype.handleUpEvent=function(t){for(var e=this.dragSegments_.length-1;e>=0;--e){var i=this.dragSegments_[e][0],r=i.geometry;if(r.getType()===Nt.CIRCLE){var n=r.getCenter(),o=i.featureSegments[0],s=i.featureSegments[1];o.segment[0]=o.segment[1]=n,s.segment[0]=s.segment[1]=n,this.rBush_.update(pt(n),o),this.rBush_.update(r.getExtent(),s)}else this.rBush_.update(tt(i.segment),i)}return this.modified_&&(this.dispatchEvent(new Kc(Wc,this.features_,t)),this.modified_=!1),!1},e.prototype.handlePointerMove_=function(t){this.lastPixel_=t.pixel,this.handlePointerAtPixel_(t.pixel,t.map)},e.prototype.handlePointerAtPixel_=function(t,e){var i=e.getCoordinateFromPixel(t),r=et(pt(i),e.getView().getResolution()*this.pixelTolerance_),n=this.rBush_.getInExtent(r);if(n.length>0){n.sort(function(t,e){return Zc(i,t)-Zc(i,e)});var s=n[0],a=s.segment,h=qc(i,s),l=e.getPixelFromCoordinate(h),u=ir(t,l);if(u<=this.pixelTolerance_){var p={};if(s.geometry.getType()===Nt.CIRCLE&&s.index===Xc)this.snappedToVertex_=!0,this.createOrUpdateVertexFeature_(h);else{var c=e.getPixelFromCoordinate(a[0]),d=e.getPixelFromCoordinate(a[1]),f=er(l,c),_=er(l,d);u=Math.sqrt(Math.min(f,_)),this.snappedToVertex_=u<=this.pixelTolerance_,this.snappedToVertex_&&(h=f>_?a[1]:a[0]),this.createOrUpdateVertexFeature_(h);for(var g=1,y=n.length;g=0;--n)p=o((u=(i=c[n])[0]).feature),u.depth&&(p+="-"+u.depth.join("-")),p in d||(d[p]={}),0===i[1]?(d[p].right=u,d[p].index=u.index):1==i[1]&&(d[p].left=u,d[p].index=u.index+1);for(p in d){switch(l=d[p].right,a=d[p].left,h=(s=d[p].index)-1,u=void 0!==a?a:l,h<0&&(h=0),t=e=(r=u.geometry).getCoordinates(),f=!1,r.getType()){case Nt.MULTI_LINE_STRING:e[u.depth[0]].length>2&&(e[u.depth[0]].splice(s,1),f=!0);break;case Nt.LINE_STRING:e.length>2&&(e.splice(s,1),f=!0);break;case Nt.MULTI_POLYGON:t=t[u.depth[1]];case Nt.POLYGON:(t=t[u.depth[0]]).length>4&&(s==t.length-1&&(s=0),t.splice(s,1),f=!0,0===s&&(t.pop(),t.push(t[0]),h=t.length-1))}if(f){this.setGeometryCoordinates_(r,e);var _=[];if(void 0!==a&&(this.rBush_.remove(a),_.push(a.segment[0])),void 0!==l&&(this.rBush_.remove(l),_.push(l.segment[1])),void 0!==a&&void 0!==l){var g={depth:u.depth,feature:u.feature,geometry:u.geometry,index:h,segment:_};this.rBush_.insert(tt(g.segment),g)}this.updateSegmentIndices_(r,s,u.depth,-1),this.vertexFeature_&&(this.overlay_.getSource().removeFeature(this.vertexFeature_),this.vertexFeature_=null),c.length=0}}return f},e.prototype.setGeometryCoordinates_=function(t,e){this.changingFeature_=!0,t.setCoordinates(e),this.changingFeature_=!1},e.prototype.updateSegmentIndices_=function(t,e,i,r){this.rBush_.forEachInExtent(t.getExtent(),function(n){n.geometry===t&&(void 0===i||void 0===n.depth||Z(n.depth,i))&&n.index>e&&(n.index+=r)})},e}(qo),Qc={SELECT:"select"},$c=function(t){function e(e,i,r,n){t.call(this,e),this.selected=i,this.deselected=r,this.mapBrowserEvent=n}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e}(P);function td(t){if(!this.condition_(t))return!0;var e=this.addCondition_(t),i=this.removeCondition_(t),r=this.toggleCondition_(t),n=!e&&!i&&!r,o=t.map,s=this.getFeatures(),a=[],h=[];if(n){p(this.featureLayerAssociation_),o.forEachFeatureAtPixel(t.pixel,function(t,e){if(this.filter_(t,e))return h.push(t),this.addFeatureLayerAssociation_(t,e),!this.multi_}.bind(this),{layerFilter:this.layerFilter_,hitTolerance:this.hitTolerance_});for(var l=s.getLength()-1;l>=0;--l){var u=s.item(l),c=h.indexOf(u);c>-1?h.splice(c,1):(s.remove(u),a.push(u))}0!==h.length&&s.extend(h)}else{o.forEachFeatureAtPixel(t.pixel,function(t,n){if(this.filter_(t,n))return!e&&!r||X(s.getArray(),t)?(i||r)&&X(s.getArray(),t)&&(a.push(t),this.removeFeatureLayerAssociation_(t)):(h.push(t),this.addFeatureLayerAssociation_(t,n)),!this.multi_}.bind(this),{layerFilter:this.layerFilter_,hitTolerance:this.hitTolerance_});for(var d=a.length-1;d>=0;--d)s.remove(a[d]);s.extend(h)}return(h.length>0||a.length>0)&&this.dispatchEvent(new $c(Qc.SELECT,h,a,t)),Bo(t)}var ed=function(t){function e(e){t.call(this,{handleEvent:td});var i=e||{};this.condition_=i.condition?i.condition:Vo,this.addCondition_=i.addCondition?i.addCondition:Yo,this.removeCondition_=i.removeCondition?i.removeCondition:Yo,this.toggleCondition_=i.toggleCondition?i.toggleCondition:zo,this.multi_=!!i.multi&&i.multi,this.filter_=i.filter?i.filter:R,this.hitTolerance_=i.hitTolerance?i.hitTolerance:0;var r,n=new gc({source:new op({useSpatialIndex:!1,features:i.features,wrapX:i.wrapX}),style:i.style?i.style:function(){var t=Fu();return K(t[Nt.POLYGON],t[Nt.LINE_STRING]),K(t[Nt.GEOMETRY_COLLECTION],t[Nt.LINE_STRING]),function(e,i){return e.getGeometry()?t[e.getGeometry().getType()]:null}}(),updateWhileAnimating:!0,updateWhileInteracting:!0});if(this.featureOverlay_=n,i.layers)if("function"==typeof i.layers)r=i.layers;else{var o=i.layers;r=function(t){return X(o,t)}}else r=R;this.layerFilter_=r,this.featureLayerAssociation_={};var s=this.getFeatures();v(s,h.ADD,this.addFeature_,this),v(s,h.REMOVE,this.removeFeature_,this)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.addFeatureLayerAssociation_=function(t,e){this.featureLayerAssociation_[o(t)]=e},e.prototype.getFeatures=function(){return this.featureOverlay_.getSource().getFeaturesCollection()},e.prototype.getHitTolerance=function(){return this.hitTolerance_},e.prototype.getLayer=function(t){return this.featureLayerAssociation_[o(t)]},e.prototype.getOverlay=function(){return this.featureOverlay_},e.prototype.setHitTolerance=function(t){this.hitTolerance_=t},e.prototype.setMap=function(e){var i=this.getMap(),r=this.getFeatures();i&&r.forEach(i.unskipFeature.bind(i)),t.prototype.setMap.call(this,e),this.featureOverlay_.setMap(e),e&&r.forEach(e.skipFeature.bind(e))},e.prototype.addFeature_=function(t){var e=this.getMap();e&&e.skipFeature(t.element)},e.prototype.removeFeature_=function(t){var e=this.getMap();e&&e.unskipFeature(t.element)},e.prototype.removeFeatureLayerAssociation_=function(t){delete this.featureLayerAssociation_[o(t)]},e}(Fo);function id(t){return t.feature?t.feature:t.element?t.element:void 0}var rd=function(t){function e(e){var i=e||{},r=i;r.handleDownEvent||(r.handleDownEvent=R),r.stopDown||(r.stopDown=w),t.call(this,r),this.source_=i.source?i.source:null,this.vertex_=void 0===i.vertex||i.vertex,this.edge_=void 0===i.edge||i.edge,this.features_=i.features?i.features:null,this.featuresListenerKeys_=[],this.featureChangeListenerKeys_={},this.indexedFeaturesExtents_={},this.pendingFeatures_={},this.pixelCoordinate_=null,this.pixelTolerance_=void 0!==i.pixelTolerance?i.pixelTolerance:10,this.sortByDistance_=function(t,e){var i=rr(this.pixelCoordinate_,t.segment),r=rr(this.pixelCoordinate_,e.segment);return i-r}.bind(this),this.rBush_=new tl,this.SEGMENT_WRITERS_={Point:this.writePointGeometry_,LineString:this.writeLineStringGeometry_,LinearRing:this.writeLineStringGeometry_,Polygon:this.writePolygonGeometry_,MultiPoint:this.writeMultiPointGeometry_,MultiLineString:this.writeMultiLineStringGeometry_,MultiPolygon:this.writeMultiPolygonGeometry_,GeometryCollection:this.writeGeometryCollectionGeometry_,Circle:this.writeCircleGeometry_}}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.addFeature=function(t,e){var i=void 0===e||e,r=o(t),n=t.getGeometry();if(n){var s=this.SEGMENT_WRITERS_[n.getType()];s&&(this.indexedFeaturesExtents_[r]=n.getExtent([1/0,1/0,-1/0,-1/0]),s.call(this,t,n))}i&&(this.featureChangeListenerKeys_[r]=v(t,M.CHANGE,this.handleFeatureChange_,this))},e.prototype.forEachFeatureAdd_=function(t){this.addFeature(t)},e.prototype.forEachFeatureRemove_=function(t){this.removeFeature(t)},e.prototype.getFeatures_=function(){var t;return this.features_?t=this.features_:this.source_&&(t=this.source_.getFeatures()),t},e.prototype.handleEvent=function(e){var i=this.snapTo(e.pixel,e.coordinate,e.map);return i.snapped&&(e.coordinate=i.vertex.slice(0,2),e.pixel=i.vertexPixel),t.prototype.handleEvent.call(this,e)},e.prototype.handleFeatureAdd_=function(t){var e=id(t);this.addFeature(e)},e.prototype.handleFeatureRemove_=function(t){var e=id(t);this.removeFeature(e)},e.prototype.handleFeatureChange_=function(t){var e=t.target;if(this.handlingDownUpSequence){var i=o(e);i in this.pendingFeatures_||(this.pendingFeatures_[i]=e)}else this.updateFeature_(e)},e.prototype.handleUpEvent=function(t){var e=c(this.pendingFeatures_);return e.length&&(e.forEach(this.updateFeature_.bind(this)),this.pendingFeatures_={}),!1},e.prototype.removeFeature=function(t,e){var i=void 0===e||e,r=o(t),n=this.indexedFeaturesExtents_[r];if(n){var s=this.rBush_,a=[];s.forEachInExtent(n,function(e){t===e.feature&&a.push(e)});for(var h=a.length-1;h>=0;--h)s.remove(a[h])}i&&(E(this.featureChangeListenerKeys_[r]),delete this.featureChangeListenerKeys_[r])},e.prototype.setMap=function(e){var i=this.getMap(),r=this.featuresListenerKeys_,n=this.getFeatures_();i&&(r.forEach(E),r.length=0,n.forEach(this.forEachFeatureRemove_.bind(this))),t.prototype.setMap.call(this,e),e&&(this.features_?r.push(v(this.features_,h.ADD,this.handleFeatureAdd_,this),v(this.features_,h.REMOVE,this.handleFeatureRemove_,this)):this.source_&&r.push(v(this.source_,rp.ADDFEATURE,this.handleFeatureAdd_,this),v(this.source_,rp.REMOVEFEATURE,this.handleFeatureRemove_,this)),n.forEach(this.forEachFeatureAdd_.bind(this)))},e.prototype.snapTo=function(t,e,i){var r=tt([i.getCoordinateFromPixel([t[0]-this.pixelTolerance_,t[1]+this.pixelTolerance_]),i.getCoordinateFromPixel([t[0]+this.pixelTolerance_,t[1]-this.pixelTolerance_])]),n=this.rBush_.getInExtent(r);this.vertex_&&!this.edge_&&(n=n.filter(function(t){return t.feature.getGeometry().getType()!==Nt.CIRCLE}));var o,s,a,h,l=!1,u=null,p=null;if(n.length>0){this.pixelCoordinate_=e,n.sort(this.sortByDistance_);var c=n[0].segment,d=n[0].feature.getGeometry().getType()===Nt.CIRCLE;this.vertex_&&!this.edge_?(o=i.getPixelFromCoordinate(c[0]),s=i.getPixelFromCoordinate(c[1]),a=er(t,o),h=er(t,s),Math.sqrt(Math.min(a,h))<=this.pixelTolerance_&&(l=!0,u=a>h?c[1]:c[0],p=i.getPixelFromCoordinate(u))):this.edge_&&(u=d?function(t,e){var i=e.getRadius(),r=e.getCenter(),n=r[0],o=r[1],s=t[0]-n,a=t[1]-o;0===s&&0===a&&(s=1);var h=Math.sqrt(s*s+a*a);return[n+i*s/h,o+i*a/h]}(e,n[0].feature.getGeometry()):Zi(e,c),ir(t,p=i.getPixelFromCoordinate(u))<=this.pixelTolerance_&&(l=!0,this.vertex_&&!d&&(o=i.getPixelFromCoordinate(c[0]),s=i.getPixelFromCoordinate(c[1]),a=er(p,o),h=er(p,s),Math.sqrt(Math.min(a,h))<=this.pixelTolerance_&&(u=a>h?c[1]:c[0],p=i.getPixelFromCoordinate(u))))),l&&(p=[Math.round(p[0]),Math.round(p[1])])}return{snapped:l,vertex:u,vertexPixel:p}},e.prototype.updateFeature_=function(t){this.removeFeature(t,!1),this.addFeature(t,!1)},e.prototype.writeCircleGeometry_=function(t,e){for(var i=Pi(e).getCoordinates()[0],r=0,n=i.length-1;r=0;i--){var u=o[i][0],p=ot(new pi(u).getExtent(),new pi(h).getExtent());if(p){o[i].push(h),l=!0;break}}l||o.push([h.reverse()])}return o}(r.rings,n);1===o.length?(i=Nt.POLYGON,t.rings=o[0]):(i=Nt.MULTI_POLYGON,t.rings=o)}return dd((0,gd[i])(t),!1,e)}function md(t){var e=At.XY;return!0===t.hasZ&&!0===t.hasM?e=At.XYZM:!0===t.hasZ?e=At.XYZ:!0===t.hasM&&(e=At.XYM),e}function xd(t){var e=t.getLayout();return{hasZ:e===At.XYZ||e===At.XYZM,hasM:e===At.XYM||e===At.XYZM}}function Ed(t,e){return(0,yd[t.getType()])(dd(t,!0,e),e)}yd[Nt.POINT]=function(t,e){var i,r=t.getCoordinates(),n=t.getLayout();n===At.XYZ?i={x:r[0],y:r[1],z:r[2]}:n===At.XYM?i={x:r[0],y:r[1],m:r[2]}:n===At.XYZM?i={x:r[0],y:r[1],z:r[2],m:r[3]}:n===At.XY?i={x:r[0],y:r[1]}:Y(!1,34);return i},yd[Nt.LINE_STRING]=function(t,e){var i=t,r=xd(i);return{hasZ:r.hasZ,hasM:r.hasM,paths:[i.getCoordinates()]}},yd[Nt.POLYGON]=function(t,e){var i=t,r=xd(i);return{hasZ:r.hasZ,hasM:r.hasM,rings:i.getCoordinates(!1)}},yd[Nt.MULTI_POINT]=function(t,e){var i=t,r=xd(i);return{hasZ:r.hasZ,hasM:r.hasM,points:i.getCoordinates()}},yd[Nt.MULTI_LINE_STRING]=function(t,e){var i=t,r=xd(i);return{hasZ:r.hasZ,hasM:r.hasM,paths:i.getCoordinates()}},yd[Nt.MULTI_POLYGON]=function(t,e){for(var i=xd(t),r=t.getCoordinates(!1),n=[],o=0;o=0;s--)n.push(r[o][s]);return{hasZ:i.hasZ,hasM:i.hasM,rings:n}};var Sd=function(t){function e(e){var i=e||{};t.call(this),this.geometryName_=i.geometryName}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.readFeatureFromObject=function(t,e){var i=t,r=vd(i.geometry,e),n=new B;return this.geometryName_&&n.setGeometryName(this.geometryName_),n.setGeometry(r),e&&e.idField&&i.attributes[e.idField]&&n.setId(i.attributes[e.idField]),i.attributes&&n.setProperties(i.attributes),n},e.prototype.readFeaturesFromObject=function(t,e){var i=e||{};if(t.features){var r=[],n=t.features;i.idField=t.objectIdFieldName;for(var o=0,s=n.length;o0?i[0]:null},e.prototype.readFeatureFromNode=function(t,e){return null},e.prototype.readFeatures=function(t,e){if(t){if("string"==typeof t){var i=ru(t);return this.readFeaturesFromDocument(i,e)}return iu(t)?this.readFeaturesFromDocument(t,e):this.readFeaturesFromNode(t,e)}return[]},e.prototype.readFeaturesFromDocument=function(t,e){for(var i=[],r=t.firstChild;r;r=r.nextSibling)r.nodeType==Node.ELEMENT_NODE&&K(i,this.readFeaturesFromNode(r,e));return i},e.prototype.readFeaturesFromNode=function(t,e){return r()},e.prototype.readGeometry=function(t,e){if(t){if("string"==typeof t){var i=ru(t);return this.readGeometryFromDocument(i,e)}return iu(t)?this.readGeometryFromDocument(t,e):this.readGeometryFromNode(t,e)}return null},e.prototype.readGeometryFromDocument=function(t,e){return null},e.prototype.readGeometryFromNode=function(t,e){return null},e.prototype.readProjection=function(t){if(t){if("string"==typeof t){var e=ru(t);return this.readProjectionFromDocument(e)}return iu(t)?this.readProjectionFromDocument(t):this.readProjectionFromNode(t)}return null},e.prototype.readProjectionFromDocument=function(t){return this.dataProjection},e.prototype.readProjectionFromNode=function(t){return this.dataProjection},e.prototype.writeFeature=function(t,e){var i=this.writeFeatureNode(t,e);return this.xmlSerializer_.serializeToString(i)},e.prototype.writeFeatureNode=function(t,e){return null},e.prototype.writeFeatures=function(t,e){var i=this.writeFeaturesNode(t,e);return this.xmlSerializer_.serializeToString(i)},e.prototype.writeFeaturesNode=function(t,e){return null},e.prototype.writeGeometry=function(t,e){var i=this.writeGeometryNode(t,e);return this.xmlSerializer_.serializeToString(i)},e.prototype.writeGeometryNode=function(t,e){return null},e}(cd),Cd="http://www.opengis.net/gml",Rd=/^[\s\xa0]*$/,wd=function(t){function e(e){t.call(this);var i=e||{};this.featureType=i.featureType,this.featureNS=i.featureNS,this.srsName=i.srsName,this.schemaLocation="",this.FEATURE_COLLECTION_PARSERS={},this.FEATURE_COLLECTION_PARSERS[this.namespace]={featureMember:ou(this.readFeaturesInternal),featureMembers:su(this.readFeaturesInternal)}}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.readFeaturesInternal=function(t,e){var i=t.localName,r=null;if("FeatureCollection"==i)r=gu([],this.FEATURE_COLLECTION_PARSERS,t,e,this);else if("featureMembers"==i||"featureMember"==i){var n=e[0],o=n.featureType,s=n.featureNS;if(!o&&t.childNodes){o=[],s={};for(var a=0,h=t.childNodes.length;a0){n[a]={_content_:n[a]};for(var l=0;l1?o.Document=t:1==t.length&&(o.Placemark=t[0]);var s=o_[i.namespaceURI],a=du(o,s);return vu(n,s_,cu,a,[e],s,this),i},e}(Td);function g_(t,e){var i=null,r=[0,0],n="start";if(t.getImage()){var o=t.getImage().getImageSize();if(null===o&&(o=Bf),2==o.length){var s=t.getImage().getScale();r[0]=s*o[0]/2,r[1]=-s*o[1]/2,n="left"}}if(null!==t.getText()){var a=t.getText();(i=a.clone()).setFont(a.getFont()||c_.getFont()),i.setScale(a.getScale()||c_.getScale()),i.setFill(a.getFill()||c_.getFill()),i.setStroke(a.getStroke()||u_)}else i=c_.clone();return i.setText(e),i.setOffsetX(r[0]),i.setOffsetY(r[1]),i.setTextAlign(n),new Nu({text:i})}function y_(t){var e=eu(t,!1),i=/^\s*#?\s*([0-9A-Fa-f]{8})\s*$/.exec(e);if(i){var r=i[1];return[parseInt(r.substr(6,2),16),parseInt(r.substr(4,2),16),parseInt(r.substr(2,2),16),parseInt(r.substr(0,2),16)/255]}}function v_(t){for(var e,i=eu(t,!1),r=[],n=/^\s*([+\-]?\d*\.?\d+(?:e[+\-]?\d+)?)\s*,\s*([+\-]?\d*\.?\d+(?:e[+\-]?\d+)?)(?:\s*,\s*([+\-]?\d*\.?\d+(?:e[+\-]?\d+)?))?\s*/i;e=n.exec(i);){var o=parseFloat(e[1]),s=parseFloat(e[2]),a=e[3]?parseFloat(e[3]):0;r.push(o,s,a),i=i.substr(e[0].length)}if(""===i)return r}function m_(t){var e=eu(t,!1).trim(),i=t.baseURI;return i&&"about:blank"!=i||(i=window.location.href),i?new URL(e,i).href:e}function x_(t){return bd(t)}var E_=fu($f,{Pair:function(t,e){var i=gu({},q_,t,e);if(!i)return;var r=i.key;if(r&&"normal"==r){var n=i.styleUrl;n&&(e[e.length-1]=n);var o=i.Style;o&&(e[e.length-1]=o)}}});function S_(t,e){return gu(void 0,E_,t,e)}var T_=fu($f,{Icon:hu(function(t,e){var i=gu({},M_,t,e);return i||null}),heading:hu(bd),hotSpot:hu(function(t){var e,i=t.getAttribute("xunits"),r=t.getAttribute("yunits");return e="insetPixels"!==i?"insetPixels"!==r?Lu.BOTTOM_LEFT:Lu.TOP_LEFT:"insetPixels"!==r?Lu.BOTTOM_RIGHT:Lu.TOP_RIGHT,{x:parseFloat(t.getAttribute("x")),xunits:t_[i],y:parseFloat(t.getAttribute("y")),yunits:t_[r],origin:e}}),scale:hu(x_)});var C_=fu($f,{color:hu(y_),scale:hu(x_)});var R_=fu($f,{color:hu(y_),width:hu(bd)});var w_=fu($f,{color:hu(y_),fill:hu(Ld),outline:hu(Ld)});var I_=fu($f,{coordinates:su(v_)});function L_(t,e){return gu(null,I_,t,e)}var O_=fu(Qf,{Track:ou(b_)});var P_=fu($f,{when:function(t,e){var i=e[e.length-1].whens,r=eu(t,!1),n=Date.parse(r);i.push(isNaN(n)?0:n)}},fu(Qf,{coord:function(t,e){var i=e[e.length-1].flatCoordinates,r=eu(t,!1),n=/^\s*([+\-]?\d+(?:\.\d*)?(?:e[+\-]?\d*)?)\s+([+\-]?\d+(?:\.\d*)?(?:e[+\-]?\d*)?)\s+([+\-]?\d+(?:\.\d*)?(?:e[+\-]?\d*)?)\s*$/i.exec(r);if(n){var o=parseFloat(n[1]),s=parseFloat(n[2]),a=parseFloat(n[3]);i.push(o,s,a,0)}else i.push(0,0,0,0)}}));function b_(t,e){var i=gu({flatCoordinates:[],whens:[]},P_,t,e);if(i){for(var r=i.flatCoordinates,n=i.whens,o=0,s=Math.min(r.length,n.length);o0,u=h.href;u?r=u:l&&(r=Vf);var p,c=Lu.BOTTOM_LEFT,d=i.hotSpot;d?(n=[d.x,d.y],o=d.xunits,s=d.yunits,c=d.origin):r===Vf?(n=jf,o=Uf,s=Yf):/^http:\/\/maps\.(?:google|gstatic)\.com\//.test(r)&&(n=[.5,0],o=wu.FRACTION,s=wu.FRACTION);var f,_=h.x,g=h.y;void 0!==_&&void 0!==g&&(p=[_,g]);var y,v=h.w,m=h.h;void 0!==v&&void 0!==m&&(f=[v,m]);var x=i.heading;void 0!==x&&(y=Vt(x));var E=i.scale;if(l){r==Vf&&(f=Bf,void 0===E&&(E=Xf));var S=new Ou({anchor:n,anchorOrigin:c,anchorXUnits:o,anchorYUnits:s,crossOrigin:"anonymous",offset:p,offsetOrigin:Lu.BOTTOM_LEFT,rotation:y,scale:E,size:f,src:r});a.imageStyle=S}else a.imageStyle=h_}},LabelStyle:function(t,e){var i=gu({},C_,t,e);if(i){var r=e[e.length-1],n=new Rr({fill:new mr({color:"color"in i?i.color:kf}),scale:i.scale});r.textStyle=n}},LineStyle:function(t,e){var i=gu({},R_,t,e);if(i){var r=e[e.length-1],n=new Er({color:"color"in i?i.color:kf,width:"width"in i?i.width:1});r.strokeStyle=n}},PolyStyle:function(t,e){var i=gu({},w_,t,e);if(i){var r=e[e.length-1],n=new mr({color:"color"in i?i.color:kf});r.fillStyle=n;var o=i.fill;void 0!==o&&(r.fill=o);var s=i.outline;void 0!==s&&(r.outline=s)}}});function X_(t,e){var i=gu({},V_,t,e);if(!i)return null;var r,n="fillStyle"in i?i.fillStyle:a_,o=i.fill;void 0===o||o||(n=null),"imageStyle"in i?i.imageStyle!=h_&&(r=i.imageStyle):r=l_;var s="textStyle"in i?i.textStyle:c_,a="strokeStyle"in i?i.strokeStyle:p_,h=i.outline;return void 0===h||h||(a=null),[new Nu({fill:n,image:r,stroke:a,text:s,zIndex:void 0})]}function z_(t,e){var i,r,n,o=e.length,s=new Array(e.length),a=new Array(e.length),h=new Array(e.length);i=r=n=!1;for(var l=0;l0){var a=du(n,s);vu(r,wg,Lg,[{names:s,values:a}],i)}var h=e.getStyleFunction();if(h){var l=h(e,0);if(l){var u=Array.isArray(l)?l[0]:l;this.writeStyles_&&(n.Style=u);var p=u.getText();p&&(n.name=p.getText())}}var c=i[i.length-1].node,d=Ig[c.namespaceURI],f=du(n,d);vu(r,wg,cu,f,i,d);var _=i[0],g=e.getGeometry();g&&(g=dd(g,!0,_)),vu(r,wg,yg,[g],i)}var Pg=fu($f,["extrude","tessellate","altitudeMode","coordinates"]),bg=fu($f,{extrude:lu(Gd),tessellate:lu(Gd),altitudeMode:lu(jd),coordinates:lu(function(t,e,i){var r,n=i[i.length-1],o=n.layout,s=n.stride;o==At.XY||o==At.XYM?r=2:o==At.XYZ||o==At.XYZM?r=3:Y(!1,34);var a=e.length,h="";if(a>0){h+=e[0];for(var l=1;l>3)?i.readString():2===t?i.readFloat():3===t?i.readDouble():4===t?i.readVarint64():5===t?i.readVarint():6===t?i.readSVarint():7===t?i.readBoolean():null;e.values.push(r)}}function qg(t,e,i){if(1==t)e.id=i.readVarint();else if(2==t)for(var r=i.readVarint()+i.pos;i.pos>3}s--,1===o||2===o?(a+=t.readSVarint(),h+=t.readSVarint(),1===o&&l>u&&(r.push(l),u=l),i.push(a,h),l+=2):7===o?l>u&&(i.push(i[u],i[u+1]),l+=2):Y(!1,59)}l>u&&(r.push(l),u=l)},e.prototype.createFeature_=function(t,e,i){var r,n=e.type;if(0===n)return null;var o=e.id,s=e.properties;s[this.layerName_]=e.layer.name;var a=[],h=[];this.readRawGeometry_(t,e,a,h);var l=function(t,e){var i;1===t?i=1===e?Nt.POINT:Nt.MULTI_POINT:2===t?i=1===e?Nt.LINE_STRING:Nt.MULTI_LINE_STRING:3===t&&(i=Nt.POLYGON);return i}(n,h.length);if(this.featureClass_===Kg)r=new this.featureClass_(l,a,h,s,o);else{var u;if(l==Nt.POLYGON){for(var p=[],c=0,d=0,f=0,_=h.length;f<_;++f){var g=h[f];Si(a,c,g,2)||(p.push(h.slice(d,f)),d=f),c=g}u=p.length>1?new Fc(a,At.XY,p):new Ii(a,At.XY,h)}else u=l===Nt.POINT?new ci(a,At.XY):l===Nt.LINE_STRING?new hr(a,At.XY):l===Nt.POLYGON?new Ii(a,At.XY,h):l===Nt.MULTI_POINT?new bc(a,At.XY):l===Nt.MULTI_LINE_STRING?new Pc(a,At.XY,h):null;r=new(0,this.featureClass_),this.geometryName_&&r.setGeometryName(this.geometryName_);var y=dd(u,!1,this.adaptOptions(i));r.setGeometry(y),r.setId(o),r.setProperties(s)}return r},e.prototype.getLastExtent=function(){return this.extent_},e.prototype.getType=function(){return Hl.ARRAY_BUFFER},e.prototype.readFeatures=function(t,e){var i=this.layers_,r=new Xg.a(t),n=r.readFields(Hg,{}),o=[];for(var s in n)if(!i||-1!=i.indexOf(s)){for(var a=n[s],h=0,l=a.length;h>1):n>>1}return e}(t),n=0,o=r.length;n=32;)e=63+(32|31&t),i+=String.fromCharCode(e),t>>=5;return e=t+63,i+=String.fromCharCode(e)}var cy=function(t){function e(e){t.call(this);var i=e||{};this.dataProjection=Ee("EPSG:4326"),this.factor_=i.factor?i.factor:1e5,this.geometryLayout_=i.geometryLayout?i.geometryLayout:At.XY}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.readFeatureFromText=function(t,e){var i=this.readGeometryFromText(t,e);return new B(i)},e.prototype.readFeaturesFromText=function(t,e){return[this.readFeatureFromText(t,e)]},e.prototype.readGeometryFromText=function(t,e){var i=ze(this.geometryLayout_),r=hy(t,i,this.factor_);sy(r,0,r.length,i,r);var n=ri(r,0,r.length,i);return dd(new hr(n,this.geometryLayout_),!1,this.adaptOptions(e))},e.prototype.writeFeatureText=function(t,e){var i=t.getGeometry();return i?this.writeGeometryText(i,e):(Y(!1,40),"")},e.prototype.writeFeaturesText=function(t,e){return this.writeFeatureText(t[0],e)},e.prototype.writeGeometryText=function(t,e){var i=(t=dd(t,!0,this.adaptOptions(e))).getFlatCoordinates(),r=t.getStride();return sy(i,0,i.length,r,i),ay(i,r,this.factor_)},e}(zf),dy={Point:function(t,e,i){var r=t.coordinates;e&&i&&vy(r,e,i);return new ci(r)},LineString:function(t,e){var i=fy(t.arcs,e);return new hr(i)},Polygon:function(t,e){for(var i=[],r=0,n=t.arcs.length;r0&&n.pop(),r=i>=0?e[i]:e[~i].slice().reverse(),n.push.apply(n,r);for(var a=0,h=n.length;a=2,57)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e}(Ey),Ty=function(t){function e(e){t.call(this,"And",Array.prototype.slice.call(arguments))}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e}(Sy),Cy=function(t){function e(e,i,r){t.call(this,"BBOX"),this.geometryName=e,this.extent=i,this.srsName=r}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e}(Ey),Ry=function(t){function e(e,i,r,n){t.call(this,e),this.geometryName=i||"the_geom",this.geometry=r,this.srsName=n}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e}(Ey),wy=function(t){function e(e,i,r){t.call(this,"Contains",e,i,r)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e}(Ry),Iy=function(t){function e(e,i){t.call(this,e),this.propertyName=i}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e}(Ey),Ly=function(t){function e(e,i,r){t.call(this,"During",e),this.begin=i,this.end=r}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e}(Iy),Oy=function(t){function e(e,i,r,n){t.call(this,e,i),this.expression=r,this.matchCase=n}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e}(Iy),Py=function(t){function e(e,i,r){t.call(this,"PropertyIsEqualTo",e,i,r)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e}(Oy),by=function(t){function e(e,i){t.call(this,"PropertyIsGreaterThan",e,i)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e}(Oy),My=function(t){function e(e,i){t.call(this,"PropertyIsGreaterThanOrEqualTo",e,i)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e}(Oy),Fy=function(t){function e(e,i,r){t.call(this,"Intersects",e,i,r)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e}(Ry),Ay=function(t){function e(e,i,r){t.call(this,"PropertyIsBetween",e),this.lowerBoundary=i,this.upperBoundary=r}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e}(Iy),Ny=function(t){function e(e,i,r,n,o,s){t.call(this,"PropertyIsLike",e),this.pattern=i,this.wildCard=void 0!==r?r:"*",this.singleChar=void 0!==n?n:".",this.escapeChar=void 0!==o?o:"!",this.matchCase=s}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e}(Iy),Gy=function(t){function e(e){t.call(this,"PropertyIsNull",e)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e}(Iy),Dy=function(t){function e(e,i){t.call(this,"PropertyIsLessThan",e,i)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e}(Oy),ky=function(t){function e(e,i){t.call(this,"PropertyIsLessThanOrEqualTo",e,i)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e}(Oy),jy=function(t){function e(e){t.call(this,"Not"),this.condition=e}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e}(Ey),Uy=function(t){function e(e,i,r){t.call(this,"PropertyIsNotEqualTo",e,i,r)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e}(Oy),Yy=function(t){function e(e){t.call(this,"Or",Array.prototype.slice.call(arguments))}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e}(Sy),By=function(t){function e(e,i,r){t.call(this,"Within",e,i,r)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e}(Ry);function Vy(t){var e=[null].concat(Array.prototype.slice.call(arguments));return new(Function.prototype.bind.apply(Ty,e))}function Xy(t,e,i){return new Cy(t,e,i)}var zy={"http://www.opengis.net/gml":{boundedBy:hu(Id.prototype.readGeometryElement,"bounds")}},Wy={"http://www.opengis.net/wfs":{totalInserted:hu(Fd),totalUpdated:hu(Fd),totalDeleted:hu(Fd)}},Ky={"http://www.opengis.net/wfs":{TransactionSummary:hu(function(t,e){return gu({},Wy,t,e)},"transactionSummary"),InsertResults:hu(function(t,e){return gu([],ov,t,e)},"insertIds")}},Hy={"http://www.opengis.net/wfs":{PropertyName:lu(jd)}},Zy={"http://www.opengis.net/wfs":{Insert:lu(function(t,e,i){var r=i[i.length-1],n=r.featureType,o=r.featureNS,s=r.gmlVersion,a=tu(o,n);t.appendChild(a),2===s?Zd.prototype.writeFeatureElement(a,e,i):Vd.prototype.writeFeatureElement(a,e,i)}),Update:lu(function(t,e,i){var r=i[i.length-1];Y(void 0!==e.getId(),27);var n=r.featureType,o=r.featurePrefix,s=r.featureNS,a=av(o,n),h=e.getGeometryName();t.setAttribute("typeName",a),t.setAttributeNS(Jy,"xmlns:"+o,s);var l=e.getId();if(void 0!==l){for(var u=e.getKeys(),p=[],c=0,d=u.length;c="a"&&t<="z"||t>="A"&&t<="Z"},Ov.prototype.isNumeric_=function(t,e){return t>="0"&&t<="9"||"."==t&&!(void 0!==e&&e)},Ov.prototype.isWhiteSpace_=function(t){return" "==t||"\t"==t||"\r"==t||"\n"==t},Ov.prototype.nextChar_=function(){return this.wkt.charAt(++this.index_)},Ov.prototype.nextToken=function(){var t,e=this.nextChar_(),i=this.index_,r=e;if("("==e)t=Sv;else if(","==e)t=Rv;else if(")"==e)t=Tv;else if(this.isNumeric_(e)||"-"==e)t=Cv,r=this.readNumber_();else if(this.isAlpha_(e))t=Ev,r=this.readText_();else{if(this.isWhiteSpace_(e))return this.nextToken();if(""!==e)throw new Error("Unexpected character: "+e);t=wv}return{position:i,value:r,type:t}},Ov.prototype.readNumber_=function(){var t,e=this.index_,i=!1,r=!1;do{"."==t?i=!0:"e"!=t&&"E"!=t||(r=!0),t=this.nextChar_()}while(this.isNumeric_(t,i)||!r&&("e"==t||"E"==t)||r&&("-"==t||"+"==t));return parseFloat(this.wkt.substring(e,this.index_--))},Ov.prototype.readText_=function(){var t,e=this.index_;do{t=this.nextChar_()}while(this.isAlpha_(t));return this.wkt.substring(e,this.index_--).toUpperCase()};var Pv=function(t){this.lexer_=t,this.token_,this.layout_=At.XY};function bv(t){var e=t.getCoordinates();return 0===e.length?"":e.join(" ")}function Mv(t){for(var e=t.getCoordinates(),i=[],r=0,n=e.length;r0&&(e+=" "+r)}return 0===i.length?e+" "+vv:e+"("+i+")"}var Gv=function(t){function e(e){t.call(this);var i=e||{};this.splitCollection_=void 0!==i.splitCollection&&i.splitCollection}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.parse_=function(t){var e=new Ov(t);return new Pv(e).parse()},e.prototype.readFeatureFromText=function(t,e){var i=this.readGeometryFromText(t,e);if(i){var r=new B;return r.setGeometry(i),r}return null},e.prototype.readFeaturesFromText=function(t,e){for(var i=[],r=this.readGeometryFromText(t,e),n=[],o=0,s=(i=this.splitCollection_&&r.getType()==Nt.GEOMETRY_COLLECTION?r.getGeometriesArray():[r]).length;o.75*u||l>.75*p?this.resetExtent_():ot(o,r)||this.recenter_()}},e.prototype.resetExtent_=function(){var t=this.getMap(),e=this.ovmap_,i=t.getSize(),r=t.getView().calculateExtent(i),n=e.getView(),o=Math.log(7.5)/Math.LN2;Mt(r,1/(.1*Math.pow(2,o/2))),n.fit(r)},e.prototype.recenter_=function(){var t=this.getMap(),e=this.ovmap_,i=t.getView();e.getView().setCenter(i.getCenter())},e.prototype.updateBox_=function(){var t=this.getMap(),e=this.ovmap_;if(t.isRendered()&&e.isRendered()){var i=t.getSize(),r=t.getView(),n=e.getView(),o=r.getRotation(),s=this.boxOverlay_,a=this.boxOverlay_.getElement(),h=r.calculateExtent(i),l=n.getResolution(),u=Et(h),p=Lt(h),c=this.calculateCoordinateRotate_(o,u);s.setPosition(c),a&&(a.style.width=Math.abs((u[0]-p[0])/l)+"px",a.style.height=Math.abs((p[1]-u[1])/l)+"px")}},e.prototype.calculateCoordinateRotate_=function(t,e){var i,r=this.getMap().getView().getCenter();return r&&($i(i=[e[0]-r[0],e[1]-r[1]],t),Hi(i,r)),i},e.prototype.handleClick_=function(t){t.preventDefault(),this.handleToggle_()},e.prototype.handleToggle_=function(){this.element.classList.toggle(yo),this.collapsed_?Qn(this.collapseLabel_,this.label_):Qn(this.label_,this.collapseLabel_),this.collapsed_=!this.collapsed_;var t=this.ovmap_;this.collapsed_||t.isRendered()||(t.updateSize(),this.resetExtent_(),m(t,Rn,function(t){this.updateBox_()},this))},e.prototype.getCollapsible=function(){return this.collapsible_},e.prototype.setCollapsible=function(t){this.collapsible_!==t&&(this.collapsible_=t,this.element.classList.toggle("ol-uncollapsible"),!t&&this.collapsed_&&this.handleToggle_())},e.prototype.setCollapsed=function(t){this.collapsible_&&this.collapsed_!==t&&this.handleToggle_()},e.prototype.getCollapsed=function(){return this.collapsed_},e.prototype.getOverviewMap=function(){return this.ovmap_},e}(uo),ex="units",ix={DEGREES:"degrees",IMPERIAL:"imperial",NAUTICAL:"nautical",METRIC:"metric",US:"us"},rx=[1,2,5];function nx(t){var e=t.frameState;this.viewState_=e?e.viewState:null,this.updateElement_()}var ox=function(t){function e(e){var i=e||{},r=void 0!==i.className?i.className:"ol-scale-line";t.call(this,{element:document.createElement("div"),render:i.render||nx,target:i.target}),this.innerElement_=document.createElement("div"),this.innerElement_.className=r+"-inner",this.element.className=r+" "+fo,this.element.appendChild(this.innerElement_),this.viewState_=null,this.minWidth_=void 0!==i.minWidth?i.minWidth:64,this.renderedVisible_=!1,this.renderedWidth_=void 0,this.renderedHTML_="",v(this,G(ex),this.handleUnitsChanged_,this),this.setUnits(i.units||ix.METRIC)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.getUnits=function(){return this.get(ex)},e.prototype.handleUnitsChanged_=function(){this.updateElement_()},e.prototype.setUnits=function(t){this.set(ex,t)},e.prototype.updateElement_=function(){var t=this.viewState_;if(t){var e=t.center,i=t.projection,r=this.getUnits(),n=r==ix.DEGREES?$t.DEGREES:$t.METERS,o=Se(i,t.resolution,e,n);i.getUnits()!=$t.DEGREES&&i.getMetersPerUnit()&&n==$t.METERS&&(o*=i.getMetersPerUnit());var s=this.minWidth_*o,a="";if(r==ix.DEGREES){var h=Qt[$t.DEGREES];i.getUnits()==$t.DEGREES?s*=h:o/=h,s=this.minWidth_)break;++p}var c=l+" "+a;this.renderedHTML_!=c&&(this.innerElement_.innerHTML=c,this.renderedHTML_=c),this.renderedWidth_!=u&&(this.innerElement_.style.width=u+"px",this.renderedWidth_=u),this.renderedVisible_||(this.element.style.display="",this.renderedVisible_=!0)}else this.renderedVisible_&&(this.element.style.display="none",this.renderedVisible_=!1)},e}(uo),sx={VERTICAL:0,HORIZONTAL:1};function ax(t){if(t.frameState){this.sliderInitialized_||this.initSlider_();var e=t.frameState.viewState.resolution;e!==this.currentResolution_&&(this.currentResolution_=e,this.setThumbPosition_(e))}}var hx=function(t){function e(e){var i=e||{};t.call(this,{element:document.createElement("div"),render:i.render||ax}),this.dragListenerKeys_=[],this.currentResolution_=void 0,this.direction_=sx.VERTICAL,this.dragging_,this.heightLimit_=0,this.widthLimit_=0,this.previousX_,this.previousY_,this.thumbSize_=null,this.sliderInitialized_=!1,this.duration_=void 0!==i.duration?i.duration:200;var r=void 0!==i.className?i.className:"ol-zoomslider",n=document.createElement("button");n.setAttribute("type","button"),n.className=r+"-thumb "+fo;var o=this.element;o.className=r+" "+fo+" "+go,o.appendChild(n),this.dragger_=new Tn(o),v(this.dragger_,Gr.POINTERDOWN,this.handleDraggerStart_,this),v(this.dragger_,Gr.POINTERMOVE,this.handleDraggerDrag_,this),v(this.dragger_,Gr.POINTERUP,this.handleDraggerEnd_,this),v(o,M.CLICK,this.handleContainerClick_,this),v(n,M.CLICK,O)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.disposeInternal=function(){this.dragger_.dispose(),t.prototype.disposeInternal.call(this)},e.prototype.setMap=function(e){t.prototype.setMap.call(this,e),e&&e.render()},e.prototype.initSlider_=function(){var t=this.element,e=t.offsetWidth,i=t.offsetHeight,r=t.firstElementChild,n=getComputedStyle(r),o=r.offsetWidth+parseFloat(n.marginRight)+parseFloat(n.marginLeft),s=r.offsetHeight+parseFloat(n.marginTop)+parseFloat(n.marginBottom);this.thumbSize_=[o,s],e>i?(this.direction_=sx.HORIZONTAL,this.widthLimit_=e-o):(this.direction_=sx.VERTICAL,this.heightLimit_=i-s),this.sliderInitialized_=!0},e.prototype.handleContainerClick_=function(t){var e=this.getMap().getView(),i=this.getRelativePosition_(t.offsetX-this.thumbSize_[0]/2,t.offsetY-this.thumbSize_[1]/2),r=this.getResolutionForPosition_(i);e.animate({resolution:e.constrainResolution(r),duration:this.duration_,easing:Xn})},e.prototype.handleDraggerStart_=function(t){if(!this.dragging_&&t.originalEvent.target===this.element.firstElementChild&&(this.getMap().getView().setHint(jn,1),this.previousX_=t.clientX,this.previousY_=t.clientY,this.dragging_=!0,0===this.dragListenerKeys_.length)){var e=this.handleDraggerDrag_,i=this.handleDraggerEnd_;this.dragListenerKeys_.push(v(document,M.MOUSEMOVE,e,this),v(document,Gr.POINTERMOVE,e,this),v(document,M.MOUSEUP,i,this),v(document,Gr.POINTERUP,i,this))}},e.prototype.handleDraggerDrag_=function(t){if(this.dragging_){var e=this.element.firstElementChild,i=t.clientX-this.previousX_+parseFloat(e.style.left),r=t.clientY-this.previousY_+parseFloat(e.style.top),n=this.getRelativePosition_(i,r);this.currentResolution_=this.getResolutionForPosition_(n),this.getMap().getView().setResolution(this.currentResolution_),this.setThumbPosition_(this.currentResolution_),this.previousX_=t.clientX,this.previousY_=t.clientY}},e.prototype.handleDraggerEnd_=function(t){if(this.dragging_){var e=this.getMap().getView();e.setHint(jn,-1),e.animate({resolution:e.constrainResolution(this.currentResolution_),duration:this.duration_,easing:Xn}),this.dragging_=!1,this.previousX_=void 0,this.previousY_=void 0,this.dragListenerKeys_.forEach(E),this.dragListenerKeys_.length=0}},e.prototype.setThumbPosition_=function(t){var e=this.getPositionForResolution_(t),i=this.element.firstElementChild;this.direction_==sx.HORIZONTAL?i.style.left=this.widthLimit_*e+"px":i.style.top=this.heightLimit_*e+"px"},e.prototype.getRelativePosition_=function(t,e){return kt(this.direction_===sx.HORIZONTAL?t/this.widthLimit_:e/this.heightLimit_,0,1)},e.prototype.getResolutionForPosition_=function(t){return this.getMap().getView().getResolutionForValueFunction()(1-t)},e.prototype.getPositionForResolution_=function(t){return 1-this.getMap().getView().getValueForResolutionFunction()(t)},e}(uo),lx=function(t){function e(e){var i=e||{};t.call(this,{element:document.createElement("div"),target:i.target}),this.extent=i.extent?i.extent:null;var r=void 0!==i.className?i.className:"ol-zoom-extent",n=void 0!==i.label?i.label:"E",o=void 0!==i.tipLabel?i.tipLabel:"Fit to extent",s=document.createElement("button");s.setAttribute("type","button"),s.title=o,s.appendChild("string"==typeof n?document.createTextNode(n):n),v(s,M.CLICK,this.handleClick_,this);var a=r+" "+fo+" "+go,h=this.element;h.className=a,h.appendChild(s)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.handleClick_=function(t){t.preventDefault(),this.handleZoomToExtent()},e.prototype.handleZoomToExtent=function(){var t=this.getMap().getView(),e=this.extent?this.extent:t.getProjection().getExtent();t.fit(e)},e}(uo),ux={array:{},color:{},colorlike:{},control:{},coordinate:{},easing:{},events:{}};ux.events.condition={},ux.extent={},ux.featureloader={},ux.format={},ux.format.filter={},ux.geom={},ux.has={},ux.interaction={},ux.layer={},ux.loadingstrategy={},ux.proj={},ux.proj.Units={},ux.proj.proj4={},ux.render={},ux.render.canvas={},ux.renderer={},ux.renderer.canvas={},ux.renderer.webgl={},ux.size={},ux.source={},ux.sphere={},ux.style={},ux.style.IconImageCache={},ux.tilegrid={},ux.xml={},ux.Collection=U,ux.Feature=B,ux.Geolocation=zi,ux.Graticule=Or,ux.Kinetic=br,ux.Map=Ha,ux.Object=D,ux.Observable=F,ux.Observable.unByKey=function(t){if(Array.isArray(t))for(var e=0,i=t.length;e180)&&(i[0]=Xt(r+180,360)-180),i},ux.proj.transform=Pe,ux.proj.transformExtent=be,ux.render.VectorContext=Vs,ux.render.canvas.labelCache=Ps,ux.render.toContext=function(t,e){var i=t.canvas,r=e||{},n=r.pixelRatio||Di,o=r.size;o&&(i.width=o[0]*n,i.height=o[1]*n,i.style.width=o[0]+"px",i.style.height=o[1]+"px");var s=[0,0,i.width,i.height],a=je([1,0,0,1,0,0],n,n);return new Xs(t,n,s,a,0)},ux.renderer.canvas.ImageLayer=ra,ux.renderer.canvas.Map=Qs,ux.renderer.canvas.TileLayer=ha,ux.renderer.canvas.VectorLayer=Ba,ux.renderer.canvas.VectorTileLayer=Ka,ux.renderer.webgl.ImageLayer=gl,ux.renderer.webgl.Map=yl,ux.renderer.webgl.TileLayer=Xl,ux.renderer.webgl.VectorLayer=Wl,ux.size.toSize=ho,ux.source.BingMaps=tp,ux.source.CartoDB=ip,ux.source.Cluster=sp,ux.source.Image=dp,ux.source.ImageArcGISRest=gp,ux.source.ImageCanvas=yp,ux.source.ImageMapGuide=vp,ux.source.ImageStatic=mp,ux.source.ImageWMS=wp,ux.source.OSM=Lp,ux.source.OSM.ATTRIBUTION=Ip,ux.source.Raster=Vp,ux.source.Source=Il,ux.source.Stamen=Kp,ux.source.Tile=jl,ux.source.TileArcGISRest=Zp,ux.source.TileDebug=Jp,ux.source.TileImage=$u,ux.source.TileJSON=Qp,ux.source.TileWMS=tc,ux.source.UTFGrid=ic,ux.source.Vector=op,ux.source.VectorTile=ac,ux.source.WMTS=lc,ux.source.WMTS.optionsFromCapabilities=function(t,e){var i=H(t.Contents.Layer,function(t,i,r){return t.Identifier==e.layer});if(null===i)return null;var r,n=t.Contents.TileMatrixSet;(r=i.TileMatrixSetLink.length>1?J(i.TileMatrixSetLink,"projection"in e?function(t,i,r){var o=H(n,function(e){return e.Identifier==t.TileMatrixSet}).SupportedCRS,s=Ee(o.replace(/urn:ogc:def:crs:(\w+):(.*:)?(\w+)$/,"$1:$3"))||Ee(o),a=Ee(e.projection);return s&&a?Ie(s,a):o==e.projection}:function(t,i,r){return t.TileMatrixSet==e.matrixSet}):0)<0&&(r=0);var o=i.TileMatrixSetLink[r].TileMatrixSet,s=i.TileMatrixSetLink[r].TileMatrixSetLimits,a=i.Format[0];"format"in e&&(a=e.format),(r=J(i.Style,function(t,i,r){return"style"in e?t.Title==e.style:t.isDefault}))<0&&(r=0);var h=i.Style[r].Identifier,l={};"Dimension"in i&&i.Dimension.forEach(function(t,e,i){var r=t.Identifier,n=t.Default;void 0===n&&(n=t.Value[0]),l[r]=n});var u,p=H(t.Contents.TileMatrixSet,function(t,e,i){return t.Identifier==o}),c=p.SupportedCRS;if(c&&(u=Ee(c.replace(/urn:ogc:def:crs:(\w+):(.*:)?(\w+)$/,"$1:$3"))||Ee(c)),"projection"in e){var d=Ee(e.projection);d&&(u&&!Ie(d,u)||(u=d))}var f,_,g=i.WGS84BoundingBox;if(void 0!==g){var y=Ee("EPSG:4326").getExtent();_=g[0]==y[0]&&g[2]==y[2],f=be(g,"EPSG:4326",u);var v=u.getExtent();v&&(ot(v,f)||(f=void 0))}var m=Eu(p,f,s),x=[],E=e.requestEncoding;if(E=void 0!==E?E:"","OperationsMetadata"in t&&"GetTile"in t.OperationsMetadata)for(var S=t.OperationsMetadata.GetTile.DCP.HTTP.Get,T=0,C=S.length;T has to be removed, as well as the just before the W3 validation box. Unfortunately this then forces 600px width even when the window is small — thus eliminating the margin altogether.... + +I use it for now only in Diary/edited/1097/13A, 13B, 13C.html; and /0404/19.html +*/ + background-color: #e6fffb ! important; + width: 600px; + margin-left: auto; + margin-right: auto; + margin-top: 3em; +} + +BODY.gazetteer { +/* + background-color: #bdffde ! important; + */ + background-color: #c0ffe0 ! important; + margin-top: 30px; +} + +BODY.gazetteer_links { + background-color: #c5ffe2 ! important; + margin-top: 30px; +} + +BODY.home { + background-color: #ffff66 ! important; + margin-top: 30px; +/* +background as long as the Russian attack on Ukraine continues: + */ + background-image: url("https://penelope.uchicago.edu/Thayer/Images/Utility/Backgrounds/Ukraine.gif") ! important; + background-repeat: repeat-y; +} + +BODY.Roman_archaic { + background-color: #ffddcc ! important; + margin-top: 30px; +} + +BODY.Roman_imperial { + background-color: #ffccff ! important; + margin-top: 30px; +} + +BODY.Roman_Republican { + background-color: #ccddff ! important; + margin-top: 30px; +} + +BODY.Late_Antique { + background-color: #ecdaff ! important; + margin-top: 30px; +} + +BODY.fixed { + background-attachment: fixed; + background-repeat: repeat; +} + +BODY.help { + background-color: #ffcccc ! important; + margin-top: 30px; +} + +BODY.resources { + background-color: #f5ffff ! important; + color: #006600 ! important; + margin-top: 30px; +} + +BODY.WP { + background-color: #000000 ! important; + color: #ffffff ! important; + margin-top: 30px; +} + +/*Greek TEST*/ + BODY.WP DIV.default1 { + margin-left: 5em; + margin-right: 5em; + color: #ffffff ! important; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + } + BODY.WP .source { + color: #99ff99 ! important; + } + BODY.WP A { + color: #ccccff ! important; + } + BODY.WP TD.upcell A { + color: #0000ff ! important; + } + BODY.WP TD.alsocell A { + color: #0000ff ! important; + } + BODY.WP TD.diarycell A { + color: #0000ff ! important; + } + BODY.WP TD.offcell A { + color: #0000ff ! important; + } + +DIV.spacious { + width: 65vw; + margin-left: auto; + margin-right: auto; + color: #000066 ! important; /*color must match the background*/ + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; +} + +/* + +▸ Use names of countries only to define country-related styles. +▸ Use names of languages only to define language-related styles. + +*/ + +/*languages/scripts: +source, archaic, aboriginal; +Latin, Greek, Hebrew (Aramaic, Syriac), Runic, Gothic/Vandalic [same color: plain/italic]; +Russian/Slavic [identical]; +Coptic, Arabic (Punic, Turkish, Persian), Indian/Sanskrit [same color: plain/italic], Chinese/Japanese [same color: plain/italic]; +Catalan, Dutch, French, German, Italian, Portuguese, Provencal, Spanish +*/ + +/* +UNUSABLE FONTS: + +BECAUSE OF GREEK [search: ▸Greek TEST◂] : + Georgia: old tonos (wedge) + Verdana: old tonos (stroke) + Atavyros: ῥ rendered as ῤ + Minion Pro: no spaces before Greek capitals with rough breathings + +FOR OTHER REASONS: + Aroania: nulls the command-hyphen +*/ + +/* +COLORS + are in + https://penelope.uchicago.edu/Thayer/Utility/Styles/colors.css +*/ + +.black_letter { + text-transform: none; + font-family: Canterbury, "Cloister Black", Cimbrian, Raubtier, Lancaster, Augusta, Rochester, PaladinFLF, "Kleukens-Fraktur", "Palatino Linotype", Palatino, "Arial Unicode Ms", "Titus Cyberbit Basic", "Lucida Sans Unicode", serif, sans-serif ! important; +} + +.invisible { + visibility: hidden ! important; +} + +.error .Greek { + color: #ff0000 ! important; + font-weight: bold; + font-size: 120%; +} + +/* for modern geographical names, etc.: */ +.modern { + color: #5ebf20 ! important; +} + +.aboriginal { + color: #ff8f33 ! important; + font-family: Verdana, sans-serif; + font-size: 90%; +} + +/* same as Persian: */ +.Arabic { + color: #336644 ! important; +} + .Arabic .emend { + color: #444400 ! important; + } + + A SPAN.Arabic { + color: #669966 ! important; + } + +.Aramaic { + color: #555500 ! important; +} + .Aramaic .emend { + color: #664400 ! important; + } + + A SPAN.Aramaic { + color: #669966 ! important; + } + +.archaic { + color: #666600 ! important; +} + .archaic .emend { + color: #cccc00 ! important; + } + + A SPAN.archaic { + color: #669966 ! important; + } + +.Armenian { + color: #660099 ! important; +} + +SPAN LANG.be /* Belarusian */ { + font-size: 108%; +} + +.Belarusian { + color: #990000 ! important; + font-size: 108%; +} + +.book_Belarusian { + color: #990000 ! important; + font-size: 108%; + font-variant: small-caps; +} + +.translit_Belarusian { + color: #990000 ! important; +} + +.bland_Belarusian { + color: inherit ! important; + font-size: 108%; + line-height: 1.00; /* Belarusian fonts have more line-height built‑in, force smaller */ +} + +.Catalan { + color: #cc2200 ! important; +} + + .Catalan .emend { + color: #ee6633 ! important; + } + +.Dutch { + color: #006600 ! important; +} + + .Dutch .Dutch { + color: #002200 ! important; + } + + .Dutch .source { + color: #002200 ! important; + } + +BODY.gazetteer .Dutch { + color: #003300 ! important; +} + +.Egyptian { + color: #ff6600 ! important; +} + +.English/* use only in pages in other languages */ { + color: #009933 ! important; +} + + .English .emend { + color: #80cc4c ! important; + } + + .English .English { + color: #002200 ! important; + } + + .English .source { + color: #002200 ! important; + } + +French { + color: #009933 ! important; +} + + .French .emend { + color: #119955 ! important; + } + + .French .French { + color: #002200 ! important; + } + + .French .source { + color: #002200 ! important; + } + + .mynote .French { + color: #666633 ! important; + } + + .mynoteWide .French { + color: #666633 ! important; + } + +.Georgian { + color: #cc0099 ! important; +} + +.German { + color: #339999 ! important; +} + + .German .German { + color: #002200 ! important; + } + + .German .source { + color: #002200 ! important; + } + +.Gothic { + color: #660099 ! important; +} + +/*Greek TEST (settled)*/ +/*what I want here is a nice flowing slightly Byzantine look:*/ +/*Avdira: nice if somewhat mannered*/ +/*Alfios: nice but too small*/ +/*Quivira: ok but mannered: accents and breathings shifted*/ +/*Times New Roman: ok but circumflexes and diereses smooshed*/ +.Greek { + font-family: "Avdira", "Titus Cyberbit Basic", serif ! important; + color: #996600 ! important; +} + .Greek I { + font-style: italic; + letter-spacing: .2em; + /* a compromise: the traditional wide spacing, but also true italics */ + } + + .Greek .emend { + color: #dd8833 ! important; + } + + .Greek .emphasis { + color: #cc6600 ! important; + } + + .Greek .italic { + font-style: italic; + letter-spacing: .2em; + /* a compromise: the traditional wide spacing, but also true italics */ + } + + .Greek .outquote { + color: #dd8833 ! important; /* same as .Greek .emend */ + } + + .mynote .Greek { + color: #996600 ! important; + } + + .mynoteWide .Greek { + color: #996600 ! important; + } + +/* for use in Eboxes: */ + .EboxGreek { + font-weight: bold; + color: #996600 ! important; + } + +.translit_Greek { + color: #996600 ! important; +} + .translit_Greek .emend { + color: #dd8833 ! important; + } + + .translit_Greek .emphasis { + color: #cc6600 ! important; + } + + .mynote .translit_Greek { + color: #996600 ! important; + } + + .mynoteWide .translit_Greek { + color: #996600 ! important; + } + +.Greek2 { + font-family: "Palatino Linotype", "Lucida Grande", "Arial Unicode Ms", "Titus Cyberbit Basic", "Lucida Sans Unicode", sans-serif ! important; + color: #663300 ! important; + font-size: 95%; +} + .Greek2 .emend { + color: #dd8833 ! important; + } + + .Greek2 .emphasis { + color: #cc6600 ! important; + } + +.Greek_title { +/* OLD, KEEP FOR NOW: + font-family: "Lucida Grande", "Palatino Linotype", "Arial Unicode Ms", "Titus Cyberbit Basic", "Lucida Sans Unicode", sans-serif ! important; + */ + font-style: italic; + letter-spacing: .08em; +/* OLD, KEEP FOR NOW: + font-size: 95%; + */ +} + +.Hebrew { + direction: rtl ! important; + color: #666600 ! important; +} + .Hebrew .emend { + color: #774400 ! important; + } + + A SPAN.Hebrew { + color: #669966 ! important; + } + +.translit_Hebrew { + color: #666600 ! important; +} + .translit_Hebrew .emend { + color: #774400 ! important; + } + + A SPAN.translit_Hebrew { + color: #669966 ! important; + } + +.Indian { + color: #ff8f33 ! important; + font-family: Verdana, sans-serif; + font-size: 90%; +} + +.Italian { + color: #006600 ! important; +} + + .Italian .Italian { + color: #002200 ! important; + } + + .Italian .source { + color: #002200 ! important; + } + + .mynote .Italian { + color: #00b300 ! important; + } + +BODY.gazetteer .Italian { + color: #009922 ! important; +} + +.Chinese { +/* + color: #dcbd75 ! important; /* OLD + */ + color: #b88e2e ! important; + font-family: Verdana, sans-serif; + font-size: 90%; +} + +.Japanese { + color: #da5300 ! important; + font-family: Verdana, sans-serif; + font-size: 90%; + font-style: italic; +} + +.Latin { + color: #990000 ! important; +} + + .Latin .emend { + color: #ee6633 ! important; + } + + .mynote .Latin { + color: #990000 ! important; + } + +/* for use in Eboxes: */ + .EboxLatin { + font-weight: bold; + color: #990000 ! important; + } + +.Latin_addendum { + color: #993399 ! important; +} + +.Latin_emend { + color: #ee6633 ! important; +} + +.Latin_pale { + color: #ff6666 ! important; +} + +/* same as Arabic: */ +.Persian { + color: #336644 ! important; +} + .Persian .emend { + color: #444400 ! important; + } + + A SPAN.Persian { + color: #669966 ! important; + } + +.Portuguese { + color: #006600 ! important; +} + + .Portuguese .Portuguese { + color: #002200 ! important; + } + + .Portuguese .source { + color: #002200 ! important; + } + +BODY.gazetteer .Portuguese { + color: #003300 ! important; +} + + +.Provencal { + color: #e65c00 ! important; +} + + .Provencal .emend { + color: #ee6633 ! important; + } + +.Punic { + color: #336644 ! important; +} + .Punic .emend { + color: #444400 ! important; + } + + A SPAN.Punic { + color: #669966 ! important; + } + +.Runic { + font-family: "Quivira", "Apple Symbols", "Geneva", serif ! important; + color: #339999 ! important; +} + +.RunicQuivira { + font-family: "Quivira" ! important; + color: #339999 ! important; +} + +.RunicGeneva { + font-family: "Geneva" ! important; + color: #339999 ! important; +} + +.RunicApple { + font-family: "Apple Symbols" ! important; + color: #339999 ! important; +} + +.Russian { +/* WAS: + color: #ff7e24 ! important; + */ + color: #ffa114 ! important; + font-size: 108%; +} + +.translit_Russian { + color: #ffa114 ! important; +} + +.Sanskrit { + color: #ff8f33 ! important; + font-family: Verdana, sans-serif; + font-size: 90%; + font-style: italic; +} + +.translit_Sanskrit { + color: #ff8f33 ! important; + font-family: Verdana, sans-serif; + font-size: 90%; + font-style: italic; +} + +.Scandinavian { + color: #660099 ! important; +} + +.Slavic { + color: #e73659 ! important; +} + +.Syriac { + color: #666600 ! important; +} + .Syriac .emend { + color: #774400 ! important; + } + + A SPAN.Syriac { + color: #669966 ! important; + } + +.Turkish { + color: #336644 ! important; +} + .Turkish .emend { + color: #444400 ! important; + } + + A SPAN.Turkish { + color: #669966 ! important; + } + +SPAN LANG.uk /* Ukrainian */ { + font-size: 108%; +} + +.Ukrainian { + color: #f7c708 ! important; + font-size: 108%; +} + +.book_Ukrainian { + color: #f7c708 ! important; + font-size: 108%; + font-variant: small-caps; +} + +.translit_Ukrainian { + color: #f7c708 ! important; +} + +.bland_Ukrainian { + color: inherit ! important; + font-size: 108%; + line-height: 1.00; /* Ukrainian fonts have more line-height built‑in, force smaller */ +} + +.Vandalic { + font-family: Atavyros, "Lucida Grande", "Palatino Linotype", "Arial Unicode Ms", "Titus Cyberbit Basic", "Lucida Sans Unicode", sans-serif ! important; + color: #660099 ! important; + font-size: 95%; + font-style: italic; +} + + TABLE TR.odd { + background-color: #ccffff ! important; + } + + TABLE TR TD.odd { + background-color: #ccffff ! important; + } + + TABLE TR.even { + background-color: #99ffff ! important; + } + + TABLE TR TD.even { + background-color: #99ffff ! important; + } + +.odd .emend { + color: #33ccff ! important; + } + +.even .emend { + color: #00ccff ! important; + } + +/* THIS DOESN'T SEEM TO WORK: */ +/* +COLGROUP COL.grisaille { + background-color: #ff0000 ! important; + } + + */ + + +TABLE.prompt { +/* DO NOT DELETE: */ +/* used in Ebox.js */ + margin-bottom: 0em; +} + +TABLE.Ptolemy { + width: 600px; + border: 1px solid; + background-color: #eeffff ! important; + padding-left: 4px; + padding-right: 4px; + vertical-align: bottom; +} +TABLE.Ptolemy TD { + padding-left: 2px; + padding-right: 2px; + vertical-align: bottom; +} +TABLE.Ptolemy TD.text { + width: 420px; +} +TABLE.Ptolemy TD.text P { + margin-left: 1em; + text-indent: -1em; +} +TABLE.Ptolemy TR.alternate { + background-color: #ccffff ! important; +} +TABLE.Ptolemy TD.numbers { + width: 90px; +} + +TABLE.flexible { + table-layout: auto; + width: 100%; +} + +/*TABLE.padded: for making the table readable, cells not jammed together*/ +TABLE.padded TD { + padding-left: 12px; + padding-right: 12px; +} + +/*TABLE.rowspadded: separates the rows as well*/ +TABLE.rowspadded TD { + padding-top: 12px; + padding-left: 12px; + padding-right: 12px; +} + +TD.padded { + padding-left: 12px; + padding-right: 12px; +} + +TABLE.preface { + width: 600px; +/* WAS : + width: 576px; + ▸ If there's a reason for it, revert. . . + */ + background-color: #e9e9e9 ! important; + margin-left: auto; + margin-right: auto; + margin-top: 5em; + border-collapse: separate; + border-spacing: 1px; + border: 4px ridge #f6f6f6; + line-height: 1.5; +} + +TABLE.imageTEST { + border: 1px solid; + margin-left: auto; + margin-right: auto; + margin-top: 1em; + text-align: center; +} + + .imageTEST TR { + text-align: justify; + } + +TABLE.justify TD { + text-align: justify; +} + +TABLE.rubric { + width: 600px; + font-size: 85%; + margin-top: 2em; + margin-left: auto; + margin-right: auto; +} + + TABLE.rubric P.summary { + font-size: 85%; + margin-top: 3em; + margin-left: 0; + margin-right: 0; + text-indent: 0; + text-align: right; + } + + TABLE.rubric P.postsummary { + font-size: 85%; + margin-top: -.5em; + margin-left: 0; + margin-right: 0; + text-indent: 0; + text-align: right; + } + +.artist_catalog { + text-align: center; + background-color: #ffff66 ! important; + color: #00aaff ! important; + font-size: 80%; +} + + .artist_catalog A:link { + font-weight: bold; + color: #9922ff ! important; + } + + .artist_catalog H1 { + margin-top: .5em; + margin-bottom: .5em; + font-size: 120%; + font-weight: normal; + font-style: italic; + } + + .artist_catalog P { + margin-top: 0em; + margin-bottom: .7em; + } + + .artist_catalog .town { + color: #0040ff ! important; + } + + .artist_catalog .separator { + color: #ff3366 ! important; + } + +/* the "spaced" styles can be used for SPAN, and they will be uncentered*/ +/* if inside a justified class, they will also be uncentered */ +.slightly_condensed { + text-align: center; + letter-spacing: .05em; +} + +.condensed1 { + text-align: center; + letter-spacing: -.25em; +} + +.condensed2 { + text-align: center; + letter-spacing: -.5em; +} + +.slightly_spaced { + text-align: center; + letter-spacing: .25em; +} + +.spaced1 { + text-align: center; + letter-spacing: .5em; +} + +.spaced2 { + text-align: center; + letter-spacing: 1.0em; +} + +.spaced3 { + text-align: center; + letter-spacing: 1.5em; +} + +.spaced4 { + text-align: center; + letter-spacing: 2.0em; +} + +/* +The following style ("skipped") is used when I've temporarily skipped part of what ought to be a full webpage: + */ +.skipped { + margin-top: 5em; + text-align: center; + letter-spacing: 1.0em; + font-weight: bold; +} + +/* +The following style ("interlinear") is used to format running text with an interlinear translation. + +For explanation, see: +http://www.crosswire.org/~dmsmith/interlinear/ + +For use, see: +E/Gazetteer/Places/Europe/Italy/_Texts/HODIHI/2d_edition/1/NoteC*.html +and +E/Journals/ArtBulletin/41/1/Theodosius_or_Justinian*.html +*/ + +SPAN.interlinear SPAN { + float: left; + padding: 0 0.5em 0.5em 0; + text-align: center; +} +SPAN.interlinear SPAN SPAN { + float: none; + padding: 0; + display: block; +} +SPAN.interlinear SPAN SPAN SPAN { + display: inline; +} + +.Coptic { +/* Unicode range from 2C80 */ + font-family: Analecta, Aegyptus ! important; + color: #ff6600 ! important; /* matches .hieroglyphic */ + font-size: 100%; +} + .Coptic .emend { + color: #dd8833 ! important; + } + + .Coptic .emphasis { + color: #cc6600 ! important; + } + +.translit_Coptic { + color: #ff6600 ! important; /* matches .hieroglyphic */ +} + .translit_Coptic .emend { + color: #dd8833 ! important; + } + + .translit_Coptic .emphasis { + color: #cc6600 ! important; + } + +/* +The following style ("hieroglyphic") is STILL IN TEST based on "interlinear". +The sandbox is in + Thayer/hieroglyphic_sandbox.htm +altho also (imperfect and commented out) on + E/Gazetteer/Places/Africa/Egypt/_Topics/history/home.html + */ +SPAN.hieroglyphic { + color: #ff6600 ! important; /* matches .Coptic */ +} +SPAN.hieroglyphic SPAN { + float: left; + padding: 0; + text-align: center; +} +SPAN.hieroglyphic SPAN SPAN { + float: none; + padding: 0; + display: block; + line-height: 70%; +} +SPAN.hieroglyphic SPAN SPAN SPAN { + display: inline-block; +} + +SPAN.hieroglyphic SPAN SPAN.half1 { + line-height: 50%; +} +SPAN.hieroglyphic SPAN SPAN.half1 SPAN { + display: inline-block; +} + +SPAN.hieroglyphic SPAN SPAN.half1 SPAN .up1 { + vertical-align: 10%; +} +SPAN.hieroglyphic SPAN SPAN.half1 SPAN .up2 { + vertical-align: 20%; +} +SPAN.hieroglyphic SPAN SPAN.half1 SPAN .up3 { + vertical-align: 30%; +} +SPAN.hieroglyphic SPAN SPAN.half1 SPAN .up4 { + vertical-align: 40%; +} + +SPAN.hieroglyphic SPAN SPAN.half2 { + line-height: 50%; +} +SPAN.hieroglyphic SPAN SPAN.half2 SPAN { + display: inline-block; +} + +SPAN.hieroglyphic SPAN SPAN.third { + line-height: 33%; +} +SPAN.hieroglyphic SPAN SPAN.third SPAN { + display: inline-block; + padding-bottom: 50px; +} + + +/* +inline_hieroglyphic is used only one page, + E/Roman/Texts/Manetho/History_of_Egypt/1*.html +but successfully + (5 times: notes 2, 6, 49, 67, 72) +It has the advantage of returning correct search results in Google and on the displayed page: + */ + +SPAN.inline_hieroglyphic { + color: #ff6600 ! important; /* matches .Coptic */ + font-weight: bolder ! important; /* VERY important, else unreadable! */ + line-height: 1px; /* forces line height */ +} +SPAN.inline_hieroglyphic .up1 { + vertical-align: 3px; +} +SPAN.inline_hieroglyphic .up2 { + vertical-align: 6px; +} +SPAN.inline_hieroglyphic .up3 { + vertical-align: 9px; +} +SPAN.inline_hieroglyphic .up4 { + vertical-align: 12px; +} +SPAN.inline_hieroglyphic .up5 { + vertical-align: 15px; +} +SPAN.inline_hieroglyphic .up6 { + vertical-align: 18px; +} + +SPAN.inline_hieroglyphic .right1 { + position: relative; + right: -.4em; +} +SPAN.inline_hieroglyphic .right2 { + position: relative; + right: -.6em; +} +SPAN.inline_hieroglyphic .right3 { + position: relative; + right: -.8em; +} +SPAN.inline_hieroglyphic .right4 { + position: relative; + right: -1.0em; +} +SPAN.inline_hieroglyphic .right5 { + position: relative; + right: -1.2em; +} +SPAN.inline_hieroglyphic .right6 { + position: relative; + right: -1.4em; +} +SPAN.inline_hieroglyphic .right7 { + position: relative; + right: -1.6em; +} +SPAN.inline_hieroglyphic .left1 { + position: relative; + left: -.4em; +} +SPAN.inline_hieroglyphic .left2 { + position: relative; + left: -.6em; +} +SPAN.inline_hieroglyphic .left3 { + position: relative; + left: -.8em; +} +SPAN.inline_hieroglyphic .left4 { + position: relative; + left: -1.0em; +} +SPAN.inline_hieroglyphic .left5 { + position: relative; + left: -1.2em; +} +SPAN.inline_hieroglyphic .left6 { + position: relative; + left: -1.4em; +} +SPAN.inline_hieroglyphic .left7 { + position: relative; + left: -1.6em; +} +SPAN.inline_hieroglyphic .left8 { + position: relative; + left: -1.8em; +} +SPAN.inline_hieroglyphic .left9 { + position: relative; + left: -2.0em; +} +SPAN.inline_hieroglyphic .left10 { + position: relative; + left: -2.2em; +} + +/* +The following "quadrat" forms have not yet been used anywhere: + */ +SPAN.inline_hieroglyphic .quadrat { + display: inline-block; + text-align: center; +} + +SPAN.inline_hieroglyphic .quadrat .top { + line-height: 0.5; + vertical-align: text-top; +} + +SPAN.inline_hieroglyphic .quadrat .bottom { + line-height: 0.5; + vertical-align: baseline; +} + + + +/* +Semi-workaround for hieroglyphic used for now only in +E/Gazetteer/Places/Africa/Egypt/_Topics/history/home.html + */ +.hiero2 { + color: #ff6600 ! important; /* matches .Coptic */ +} +.hiero2 .all { + vertical-align: 0em; +} +.hiero2 .mid { + vertical-align: +.2em; +} +.hiero2 .half1 { + line-height: 0.5; + vertical-align: +.65em; +} +.hiero2 .half2 { + line-height: 0.5; + vertical-align: 0em; + position: relative; +/* + left: -0.55em; + */ +} +.skitter1 { + left: -0.55em; +} +.skitter2 { + left: -1.1em; +} + +.skitter3 { + left: -5em; +} + +.asterisks { + color: #0066cc ! important; + text-align: center; + letter-spacing: .5em; +} + +TR.gazetteer { + background-color: #99ffcc ! important; +} + +SPAN.map_callout { + font-family: Verdana, sans-serif; + text-transform: none; + background-color: #3300ff ! important; + color: #ffffff ! important; +} + +SPAN.map_callout_red { + font-family: Verdana, sans-serif; + text-transform: none; + background-color: #ff0000 ! important; + color: #ffffff ! important; +} + +SPAN.small_map_callout { + font-size: 60%; + font-family: Verdana, sans-serif; + text-transform: none; + vertical-align: +.2em; + background-color: #3300ff ! important; + color: #ffffff ! important; +} + +SPAN.small_map_callout_red { + font-size: 60%; + font-family: Verdana, sans-serif; + text-transform: none; + vertical-align: +.2em; + background-color: #ff0000 ! important; + color: #ffffff ! important; +} + +A { + text-decoration: none; + -webkit-hyphens: none; + -ms-hyphens: none; + hyphens: none; +} + +.verse_speaker { + position: absolute; + top: auto; + margin-left: -8.5em; + margin-bottom: .1em; + margin-top: .1em; + height: 0em; + font-size: .8rem; + font-style: italic; + font-family: Verdana, Ariel, Helvetica, sans-serif; + text-align: right; +} + +.speaker { + position: absolute; + top: auto; + margin-left: -4em; + margin-bottom: .1em; + margin-top: .1em; + height: 0em; + width: 3em; + font-size: .8rem; + font-style: italic; + font-family: Verdana, Ariel, Helvetica, sans-serif; + text-align: right; +} + .m1 .speaker { + position: absolute; + top: auto; + margin-left: -5em; + } + +.obelus { + position: absolute; + top: auto; + margin-left: -3.7em; + margin-bottom: 0em; + margin-top: .1em; + height: 0em; + width: 3em; + font-size: .7rem; + font-family: Verdana, Ariel, Helvetica, sans-serif; + text-align: right; +} + +.box { + width: 60%; + margin-left: auto; + margin-right: auto; + border: 1px solid; + padding: 2em; +} + +/* "multiline" styles are for creating multi-line brackets, parens, integrals, etc. */ +.multiline2 { + position: relative; +} + .multiline2 .sub { + position: absolute; + left: 0em; + bottom: -.4em; +} + .multiline2 .sup { + position: absolute; + left: 0em; + bottom: +.4em; +} + +.multiline3 { + position: relative; +} + + .multiline3 .sub { + position: absolute; + left: 0em; + bottom: -1em; +} + + .multiline3 .sup { + position: absolute; + left: 0em; + bottom: +1em; +} + +.multiline4 { + position: relative; +} + + .multiline4 .sup1 { + position: absolute; + left: 0em; + bottom: +1.5em; +} + + .multiline4 .sup2 { + position: absolute; + left: 0em; + bottom: +.6em; +} + + .multiline4 .sub3 { + position: absolute; + left: 0em; + bottom: -.6em; +} + + .multiline4 .sub4 { + position: absolute; + left: 0em; + bottom: -1.5em; +} + +.translation_flag { + position: absolute; + top: auto; + } + +.line1 { + margin-top: 0em; + margin-bottom: 0em; + margin-left: 2em; + margin-right: 1em; + text-indent: -1em; +} + + .line1 .translation_flag { + margin-left: -4em; + } + +.line2 { + margin-top: 0em; + margin-bottom: 0em; + margin-left: 3em; + margin-right: 2em; + text-indent: -1em; +} + + .line2 .translation_flag { + margin-left: -5em; + } + + .line2 .linenum { + margin-left: -6.4em; +} + + .line2 .obelus { + margin-left: -5.2em; +} + +.line3 { + margin-top: 0em; + margin-bottom: 0em; + margin-left: 4em; + margin-right: 3em; + text-indent: -1em; +} + + .line3 .translation_flag { + margin-left: -6em; + } + + .line3 .linenum { + margin-left: -7.8em; +} + + .line3 .obelus { + margin-left: -6.2em; +} + +.line4 { + margin-top: 0em; + margin-bottom: 0em; + margin-left: 5em; + margin-right: 4em; + text-indent: -1em; +} + + .line4 .translation_flag { + margin-left: -7em; + } + + .line4 .linenum { + margin-left: -8.5em; +} + + .line4 .obelus { + margin-left: -7.2em; +} + +.line5 { + margin-top: 0em; + margin-bottom: 0em; + margin-left: 6em; + margin-right: 5em; + text-indent: -1em; +} + + .line5 .translation_flag { + margin-left: -8em; + } + + .line5 .linenum { + margin-left: -9.5em; +} + + .line5 .obelus { + margin-left: -8.2em; +} + +.line6 { + margin-top: 0em; + margin-bottom: 0em; + margin-left: 7em; + margin-right: 6em; + text-indent: -1em; +} + + .line6 .translation_flag { + margin-left: -9em; + } + + .line6 .linenum { + margin-left: -10.5em; +} + + .line6 .obelus { + margin-left: -9.2em; +} + +.line7 { + margin-top: 0em; + margin-bottom: 0em; + margin-left: 8em; + margin-right: 7em; + text-indent: -1em; +} + + .line7 .translation_flag { + margin-left: -10em; + } + + .line7 .linenum { + margin-left: -11.5em; +} + + .line7 .obelus { + margin-left: -10.2em; +} + +.line8 { + margin-top: 0em; + margin-bottom: 0em; + margin-left: 9em; + margin-right: 8em; + text-indent: -1em; +} + + .line8 .translation_flag { + margin-left: -11em; + } + + .line8 .linenum { + margin-left: -12.5em; +} + + .line8 .obelus { + margin-left: -11.2em; +} + +.line9 { + margin-top: 0em; + margin-bottom: 0em; + margin-left: 10em; + margin-right: 9em; + text-indent: -1em; +} + + .line9 .translation_flag { + margin-left: -12em; + } + + .line9 .linenum { + margin-left: -13.5em; +} + + .line9 .obelus { + margin-left: -12.2em; +} + +.line10 { + margin-top: 0em; + margin-bottom: 0em; + margin-left: 11em; + margin-right: 10em; + text-indent: -1em; +} + + .line10 .translation_flag { + margin-left: -13em; + } + + .line10 .linenum { + margin-left: -14.5em; +} + + .line10 .obelus { + margin-left: -13.2em; +} + +.startline1 { + margin-top: 1.5em; + margin-bottom: 0em; + margin-left: 2em; + margin-right: 1em; + text-indent: -1em; +} + + .startline1 .translation_flag { + margin-left: -4em; + } + +.startline2 { + margin-top: 1.5em; + margin-bottom: 0em; + margin-left: 3em; + margin-right: 2em; + text-indent: -1em; +} + + .startline2 .translation_flag { + margin-left: -5em; + } + + .startline2 .linenum { + margin-left: -6.5em; +} + + .startline2 .obelus { + margin-left: -5.2em; +} + +.alert { + background-color: #ffff66 ! important; + color: #ff0000 ! important; + font-style: italic; +} + .alert A:link { + font-weight: bold; + color: #0000ff ! important; + } + .alert A:visited { + font-weight: bold; + color: #0000ff ! important; + } + .alert A:hover { + font-weight: bold; + color: #0000ff ! important; + } + .alert A:active { + font-weight: bold; + color: #0000ff ! important; + } + +.apparatus { + font-style: italic; +} + + .apparatus I { + font-style: normal; + font-size: 90%; + } + + .apparatus .Latin { + font-style: normal; + font-size: 95%; + } + + .apparatus .Greek { + font-style: normal; + } + + .apparatus .manuscript { + font-style: normal; + } + +.attention { + color: #ff0000 ! important; + font-style: italic; +} + +.center { + text-align: center; +} + +.crux { + background-color: #ffff66 ! important; + color: #ff0000 ! important; + vertical-align: top; + font-size: 80%; + font-style: normal; +} + .crux A:link { + font-weight: bold; + color: #0000ff ! important; + } + .crux A:visited { + font-weight: bold; + color: #0000ff ! important; + } + .crux A:hover { + font-weight: bold; + color: #0000ff ! important; + } + .crux A:active { + font-weight: bold; + color: #0000ff ! important; + } + + +.disordered_section { + text-align: center; + font-size: 85%; + font-style: italic; + background-color: #ccffff ! important; +} + +/* +syntax: 12 + */ +.stacked_fraction { + display: inline-block; + text-align: center; + font-size: 40%; + padding-left: 4px; +} + +.stacked_fraction .top { + padding-left: 4px; + text-decoration: underline; +} + +.stacked_fraction .bottom { + padding-left: 4px; + line-height: 0.6; + display: block; +} + +/* +syntax: 1/2 + */ +.fraction { + font-size: 60%; + vertical-align: middle; +} + +.fraction .top { + vertical-align: 25%; +} + +.fraction .bottom { + vertical-align: -10%; +} + +.inscription { + font-family: Verdana, sans-serif; + font-size: 80%; + line-height: 1.875; /* normal line height of 1.5 × (100%/80%) */ + -webkit-hyphens: none; + -ms-hyphens: none; + hyphens: none; +} + + .inscription .superscript { + font-size: 50%; + vertical-align: top; + } + +.kaput { + color: #666666 ! important; +} + +.lapis { + font-family: Verdana, sans-serif; + font-size: 80%; + color: #990000 ! important; + line-height: 1.5; +} + + .lapis .superscript { + font-size: 50%; + vertical-align: top; + } + + .lapis .emend { + color: #ee6633 ! important; + } + +.ligature { + color: #006666 ! important; +} + +.manuscript { + color: #000066 ! important; + font-family: Arial, sans-serif; + font-style: normal; + font-weight: bold; + font-size: 75%; +} + +.notice { + color: #003300 ! important; +} + +.offlinks { + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-size: 112%; + font-weight: bold; +} + +.Old_English { + text-transform: none; + font-family: Canterbury, "Cloister Black", Cimbrian, Raubtier, Lancaster, Augusta, Rochester, PaladinFLF, "Kleukens-Fraktur", "Palatino Linotype", Palatino, "Arial Unicode Ms", "Titus Cyberbit Basic", "Lucida Sans Unicode", serif, sans-serif ! important; +} + +.override_link { + color: #99ffff ! important; +} + +.overstrike { + text-decoration: line-through; +} + +.Palatino10 { + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-size: 69%; +} + +.bypass { +/* +same color as: poor_reading + */ + color: #999999 ! important; +} + + .Greek .bypass { + color: #ddc085 ! important; + } + + .Latin .bypass { + color: #999999 ! important; + } + +.poor_reading { +/* +same color as: bypass + */ + color: #999999 ! important; + text-decoration: line-through; +} + + .Greek .poor_reading { + color: #ddc085 ! important; + } + + .Latin .poor_reading { + color: #999999 ! important; + } + +.Roman { + color: #ff40c5 ! important; +} + +.site_summary { + font-family: sans-serif; + font-weight: normal; + font-size: 56%; +} + +.source { + color: #006600 ! important; +} + + .source .emend { + color: #119955 ! important; + } + + .source .Italian { + color: #002200 ! important; + } + + .source .source { + color: #002200 ! important; + } + +.Spanish { + color: #778800 ! important; +} + + .Spanish .emend { + color: #119955 ! important; + } + + .Spanish .source { + color: #002200 ! important; + } + +.superheading { + margin-top: 5em; + font-weight: bold; + text-transform: uppercase; + color: #009900 ! important; +} + +.two_links { +/* +for format, see +E/Gazetteer/Places/America/United_States/_Topics/history/_Texts/LESUSC/Bibliography*.html + */ + background-color: #f5d6e9 !important; + border-radius: 10% !important; + padding-top: 3px !important; + padding-bottom: 1px !important; + padding-left: 5px !important; + padding-right: 5px !important; + display: inline; + overflow: hidden; + white-space: nowrap; + + color: #00ff00 !important; + font-size: .6rem !important; + vertical-align: 1px; +} + .two_links A:link { + font-weight: bold; + color: #0000ff ! important; + } + .two_links A:visited { + font-weight: bold; + color: #ff0000 ! important; + } + .two_links A:hover { + font-weight: bold; + color: #ff00ff ! important; + } + +.whole { + -webkit-hyphens: none; + -ms-hyphens: none; + hyphens: none; +} + +.xURL { + font-family: Monaco, Consolas; +} + +.disclaimer_bar { + margin-top: 0em; + margin-bottom: 0em; + font-family: Verdana, Ariel, Helvetica, sans-serif; + font-size: 60%; + text-align: center; + background-color: #000000 ! important; + color: #ffff33 ! important; +} + + .disclaimer_bar P { + margin-top: 0em; + margin-bottom: 0em; + } + +.help_bar { + margin-top: 0em; + margin-bottom: 0em; + font-family: Verdana, Ariel, Helvetica, sans-serif; + font-size: 60%; + text-align: center; + background-color: #478acc ! important; + color: #ffffff ! important; +} + + .help_bar P { + margin-bottom: 1.5em; + } + + .help_bar A:link { + color: #ffff00 ! important; + font-style: italic; + font-weight: bold; + } + + .help_bar A:visited { + color: #ff6600 ! important; + font-style: italic; + font-weight: bold; + } + + .help_bar I { + line-height: .6; + font-size: 120%; + font-style: normal; + font-weight: bold; + color: #ff99cc ! important; + } + + .help_bar .asterisk { + line-height: .7; + font-size: 140%; + font-style: normal; + font-weight: bold; + color: #ff99cc ! important; + vertical-align: bottom; + } + +.high_alert { + background-color: #ffff33 ! important; + color: #ff0000 ! important; +} + +.left { + text-align: left; +} + +.right { + text-align: right; +} + +.a0 { + margin-bottom: 0em; +} + +.a1 { + margin-bottom: 1em; +} + +.a2 { + margin-bottom: 5em; +} + +.reduced_leading { + margin-top: -.7em; +} + +/* Jun 2017: used only in HALAHS */ +.strip { + margin-bottom: .3em; +} + +.b0 { + margin-top: 0em; +} + +.b1 { + margin-top: 1em; +} + +.nudge { + margin-top: 0.25em; +} + +.halfstart { + margin-top: 1.5em; +} + +.minirubric { + margin-top: 1.85em; +} + +.start { + margin-top: 3em; +} + +.start2 { + margin-top: 5em; +} + +.start3 { + margin-top: 7em; +} + +.halfafter { + margin-bottom: 1.5em; +} + +.after { + margin-bottom: 3em; +} + +.after2 { + margin-bottom: 5em; +} + +.after3 { + margin-bottom: 7em; +} + +.drop5 { + margin-top: 5px; +} + +.critical_note { + text-align: justify; + font-style: italic; +} + + .critical_note I { + font-style: normal; /*(don't italicize)*/ + } + + .critical_note .Latin { + font-style: normal; + color: #990000 ! important; + } + + .critical_note .Greek { + font-style: normal; + } + + .critical_note .manuscript { + font-style: normal; + } + +A.left_margin_ref { + position: absolute; + top: auto; + left: +6em; + text-align: right; + font-family: Verdana, sans-serif; + font-style: normal; + font-size: .58rem; + font-weight: bold; + text-transform: none; + color: #0000ff ! important; + vertical-align: super; +} +A.left_margin_ref:link { + text-decoration: none; + color: #0077cc ! important; +} +A.left_margin_ref:visited { + text-decoration: none; + color: #ff0000 ! important; +} +A.left_margin_ref:hover { + text-decoration: none; + color: #ff0000 ! important; + background-color: #ffff00 ! important; +} + +.running_title { + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + position: absolute; + top: auto; + width: 90px; + left: +65px; + text-align: center; + font-style: normal; + font-weight: normal; + text-transform: none; + font-variant: normal; + font-size: 15px; + line-height: 1.2; +} + +.my_running_title { + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + position: absolute; + top: auto; + width: 90px; + left: +65px; + text-align: center; + font-size: .60rem; + font-style: italic; + font-weight: normal; + text-transform: none; + font-variant: normal; + line-height: 1.4; + +/* + color matches .emend + */ + +/* +Inside the style, open with a command-space in style "larger", like this: +  +which drops the title down for appearance + */ +} + +.scribal_heading { + margin-top: 3.5em; + margin-left: 3em; + text-indent: -3em; + text-align: justify; + font-size: 90%; + font-style: italic; +} + +.i1 { + text-indent: 1em; +} + +.i1 .running_title { + text-indent: 0; +} + +.i2 { + text-indent: 2em; +} + +.i3 { + text-indent: 3em; +} + +.i4 { + text-indent: 4em; +} + +.i5 { + text-indent: 5em; +} + +.i6 { + text-indent: 6em; +} + +.i7 { + text-indent: 7em; +} + +.i8 { + text-indent: 8em; +} + +.i9 { + text-indent: 9em; +} + +.i10 { + text-indent: 10em; +} + +.i11 { + text-indent: 11em; +} + +.i12 { + text-indent: 12em; +} + +.i13 { + text-indent: 13em; +} + +.i14 { + text-indent: 14em; +} + +.i15 { + text-indent: 15em; +} + +.i16 { + text-indent: 16em; +} + +.i17 { + text-indent: 17em; +} + +.i18 { + text-indent: 18em; +} + +.justify { + text-align: justify; +} + +.justified { + text-align: justify; +} + +.L1 { + margin-left: 1em; +} + +.L2 { + margin-left: 2em; +} + +.L3 { + margin-left: 3em; +} + +.L4 { + margin-left: 4em; +} + +.L5 { + margin-left: 5em; +} + +.L6 { + margin-left: 6em; +} + +.L7 { + margin-left: 7em; +} + +.L8 { + margin-left: 8em; +} + +.L9 { + margin-left: 9em; +} + +.L10 { + margin-left: 10em; +} + +.L11 { + margin-left: 11em; +} + +.L12 { + margin-left: 12em; +} + +.L13 { + margin-left: 13em; +} + +.L14 { + margin-left: 14em; +} + +.L15 { + margin-left: 15em; +} + +.L16 { + margin-left: 16em; +} + +.L17 { + margin-left: 17em; +} + +.L18 { + margin-left: 18em; +} + +.L19 { + margin-left: 19em; +} + +.L20 { + margin-left: 20em; +} + +.r1 { + margin-right: 1em; + text-align: right; +} + +.r2 { + margin-right: 2em; + text-align: right; +} + +.r3 { + margin-right: 3em; + text-align: right; +} + +.r4 { + margin-right: 4em; + text-align: right; +} + +.r5 { + margin-right: 5em; + text-align: right; +} + +.r6 { + margin-right: 6em; + text-align: right; +} + +.r7 { + margin-right: 7em; + text-align: right; +} + +.r8 { + margin-right: 8em; + text-align: right; +} + +.r9 { + margin-right: 9em; + text-align: right; +} + +.r10 { + margin-right: 10em; + text-align: right; +} + +.r11 { + margin-right: 11em; + text-align: right; +} + +.r12 { + margin-right: 12em; + text-align: right; +} + +.r13 { + margin-right: 13em; + text-align: right; +} + +.r14 { + margin-right: 14em; + text-align: right; +} + +.r15 { + margin-right: 15em; + text-align: right; +} + +.r16 { + margin-right: 16em; + text-align: right; +} + +.r17 { + margin-right: 17em; + text-align: right; +} + +.r18 { + margin-right: 18em; + text-align: right; +} + +.r19 { + margin-right: 19em; + text-align: right; +} + +.r20 { + margin-right: 20em; + text-align: right; +} + +.pushright1j { + margin-left: 1em; + text-align: justify; +} + +.pushright2j { + margin-left: 2em; + text-align: justify; +} + +.pushright3j { + margin-left: 3em; + text-align: justify; +} + +.pushright4j { + margin-left: 4em; + text-align: justify; +} + +.pushright5j { + margin-left: 5em; + text-align: justify; +} + +.pushright6j { + margin-left: 6em; + text-align: justify; +} + +.pushright7j { + margin-left: 7em; + text-align: justify; +} + +.pushright8j { + margin-left: 8em; + text-align: justify; +} + +.m1 { + margin-left: 1em; + margin-right: 1em; +} + +.b0m1j { +/* used for "b0 m1 justify" inside overLib boxes where quotes can't be used, as in the signatures of Britannica articles. +The other workaround is to use quotes, calling them " */ + margin-top: 0em; + margin-left: 1em; + margin-right: 1em; + text-align: justify; +} + +.m2 { + margin-left: 2em; + margin-right: 2em; +} + +.m3 { + margin-left: 3em; + margin-right: 3em; +} + +.m4 { + margin-left: 4em; + margin-right: 4em; +} + +.m5 { + margin-left: 5em; + margin-right: 5em; +} + +.m6 { + margin-left: 6em; + margin-right: 6em; +} + +.m7 { + margin-left: 7em; + margin-right: 7em; +} + +.m8 { + margin-left: 8em; + margin-right: 8em; +} + +.m9 { + margin-left: 9em; + margin-right: 9em; +} + +.m10 { + margin-left: 10em; + margin-right: 10em; +} + +.m11 { + margin-left: 11em; + margin-right: 11em; +} + +.m12 { + margin-left: 12em; + margin-right: 12em; +} + +.m13 { + margin-left: 13em; + margin-right: 13em; +} + +.m14 { + margin-left: 14em; + margin-right: 14em; +} + +.m15 { + margin-left: 15em; + margin-right: 15em; +} + +.m16 { + margin-left: 16em; + margin-right: 16em; +} + +.m17 { + margin-left: 17em; + margin-right: 17em; +} + +.m18 { + margin-left: 18em; + margin-right: 18em; +} + +.m19 { + margin-left: 19em; + margin-right: 19em; +} + +.m20 { + margin-left: 20em; + margin-right: 20em; +} + +.x1 { + margin-left: 1em; + text-indent: -1em; +} + +.x2 { + margin-left: 2em; + text-indent: -2em; +} + +.x3 { + margin-left: 3em; + text-indent: -3em; +} + +.x4 { + margin-left: 4em; + text-indent: -4em; +} + +.x5 { + margin-left: 5em; + text-indent: -5em; +} + +.x6 { + margin-left: 6em; + text-indent: -6em; +} + +.x7 { + margin-left: 7em; + text-indent: -7em; +} + +.x8 { + margin-left: 8em; + text-indent: -8em; +} + +.x9 { + margin-left: 9em; + text-indent: -9em; +} + +.x10 { + margin-left: 10em; + text-indent: -10em; +} + +.m1x1 { + margin-left: 2em; + margin-right: 1em; + text-indent: -1em; +} + +.m1x2 { + margin-left: 3em; + margin-right: 1em; + text-indent: -2em; +} + +.m1x3 { + margin-left: 4em; + margin-right: 1em; + text-indent: -3em; +} + +.m1x4 { + margin-left: 5em; + margin-right: 1em; + text-indent: -4em; +} + +.m1x5 { + margin-left: 6em; + margin-right: 1em; + text-indent: -5em; +} + +.m1x6 { + margin-left: 7em; + margin-right: 1em; + text-indent: -6em; +} + +.m1x7 { + margin-left: 8em; + margin-right: 1em; + text-indent: -7em; +} + +.m1x8 { + margin-left: 8em; + margin-right: 1em; + text-indent: -9em; +} + +.m2x1 { + margin-left: 3em; + margin-right: 2em; + text-indent: -1em; +} + +.m2x2 { + margin-left: 4em; + margin-right: 2em; + text-indent: -2em; +} + +.m2x3 { + margin-left: 5em; + margin-right: 2em; + text-indent: -3em; +} + +.m2x4 { + margin-left: 6em; + margin-right: 2em; + text-indent: -4em; +} + +.m3x1 { + margin-left: 4em; + margin-right: 2em; + text-indent: -1em; +} + +.m3x2 { + margin-left: 5em; + margin-right: 2em; + text-indent: -2em; +} + +.m3x3 { + margin-left: 6em; + margin-right: 2em; + text-indent: -3em; +} + +.m3x4 { + margin-left: 7em; + margin-right: 2em; + text-indent: -4em; +} + +.m4x1 { + margin-left: 5em; + margin-right: 2em; + text-indent: -1em; +} + +.m4x2 { + margin-left: 6em; + margin-right: 2em; + text-indent: -2em; +} + +.m4x3 { + margin-left: 7em; + margin-right: 2em; + text-indent: -3em; +} + +.m4x4 { + margin-left: 8em; + margin-right: 2em; + text-indent: -4em; +} + +.m5x1 { + margin-left: 6em; + margin-right: 2em; + text-indent: -1em; +} + +.m5x2 { + margin-left: 7em; + margin-right: 2em; + text-indent: -2em; +} + +.m5x3 { + margin-left: 8em; + margin-right: 2em; + text-indent: -3em; +} + +.m6x1 { + margin-left: 7em; + margin-right: 2em; + text-indent: -1em; +} + +.m6x2 { + margin-left: 8em; + margin-right: 2em; + text-indent: -2em; +} + +.m6x3 { + margin-left: 9em; + margin-right: 2em; + text-indent: -3em; +} + +.m7x1 { + margin-left: 8em; + margin-right: 2em; + text-indent: -1em; +} + +.m7x2 { + margin-left: 9em; + margin-right: 2em; + text-indent: -2em; +} + +.m7x3 { + margin-left: 10em; + margin-right: 2em; + text-indent: -3em; +} + +.m8x1 { + margin-left: 9em; + margin-right: 2em; + text-indent: -1em; +} + +.m8x2 { + margin-left: 10em; + margin-right: 2em; + text-indent: -2em; +} + +.m8x3 { + margin-left: 11em; + margin-right: 2em; + text-indent: -3em; +} + +.m9x1 { + margin-left: 10em; + margin-right: 2em; + text-indent: -1em; +} + +.m9x2 { + margin-left: 11em; + margin-right: 2em; + text-indent: -2em; +} + +.m9x3 { + margin-left: 12em; + margin-right: 2em; + text-indent: -3em; +} + +.m10x1 { + margin-left: 11em; + margin-right: 2em; + text-indent: -1em; +} + +.m10x2 { + margin-left: 12em; + margin-right: 2em; + text-indent: -2em; +} + +.m10x3 { + margin-left: 13em; + margin-right: 2em; + text-indent: -3em; +} + +.m11x1 { + margin-left: 12em; + margin-right: 2em; + text-indent: -1em; +} + +.m11x2 { + margin-left: 13em; + margin-right: 2em; + text-indent: -2em; +} + +.m11x3 { + margin-left: 14em; + margin-right: 2em; + text-indent: -3em; +} + +.m12x1 { + margin-left: 13em; + margin-right: 2em; + text-indent: -1em; +} + +.m12x2 { + margin-left: 14em; + margin-right: 2em; + text-indent: -2em; +} + +.m12x3 { + margin-left: 15em; + margin-right: 2em; + text-indent: -3em; +} + +.m13x1 { + margin-left: 14em; + margin-right: 2em; + text-indent: -1em; +} + +.m13x2 { + margin-left: 15em; + margin-right: 2em; + text-indent: -2em; +} + +.m13x3 { + margin-left: 16em; + margin-right: 2em; + text-indent: -3em; +} + +.m14x1 { + margin-left: 15em; + margin-right: 2em; + text-indent: -1em; +} + +.m14x2 { + margin-left: 16em; + margin-right: 2em; + text-indent: -2em; +} + +.m14x3 { + margin-left: 17em; + margin-right: 2em; + text-indent: -3em; +} + +.m15x1 { + margin-left: 16em; + margin-right: 2em; + text-indent: -1em; +} + +.m15x2 { + margin-left: 17em; + margin-right: 2em; + text-indent: -2em; +} + +.m15x3 { + margin-left: 18em; + margin-right: 2em; + text-indent: -3em; +} + +.linenum0 { + font-size: 70%; + font-family: Verdana, Ariel, Helvetica, sans-serif; +} + +.linenum { + position: absolute; + top: auto; + margin-left: -5em; + margin-bottom: 0em; + margin-top: .1em; + height: 0em; + width: 3em; + font-size: .70rem; + font-family: Verdana, Ariel, Helvetica, sans-serif; + text-align: right; +} + +.verse1 { + margin-top: 0em; + margin-bottom: 0em; + margin-left: 2em; + text-indent: -2em; +} + +.verse2 { + margin-top: 0em; + margin-bottom: 0em; + margin-left: 4em; + text-indent: -2em; +} + +.verse3 { + margin-top: 0em; + margin-bottom: 0em; + margin-left: 6em; + text-indent: -2em; +} + +.verse4 { + margin-top: 0em; + margin-bottom: 0em; + margin-left: 8em; + text-indent: -2em; +} + +.verse5 { + margin-top: 0em; + margin-bottom: 0em; + margin-left: 10em; + text-indent: -2em; +} + +.verse6 { + margin-top: 0em; + margin-bottom: 0em; + margin-left: 12em; + text-indent: -2em; +} + +.verse7 { + margin-top: 0em; + margin-bottom: 0em; + margin-left: 14em; + text-indent: -2em; +} + +.verse8 { + margin-top: 0em; + margin-bottom: 0em; + margin-left: 16em; + text-indent: -2em; +} + +.verse9 { + margin-top: 0em; + margin-bottom: 0em; + margin-left: 18em; + text-indent: -2em; +} + +.verse10 { + margin-top: 0em; + margin-bottom: 0em; + margin-left: 20em; + text-indent: -2em; +} + +.verse11 { + margin-top: 0em; + margin-bottom: 0em; + margin-left: 22em; + text-indent: -2em; +} + +.verse12 { + margin-top: 0em; + margin-bottom: 0em; + margin-left: 24em; + text-indent: -2em; +} + +.bland { + color: #000066 ! important; +} + + .mynote .bland { + color: #000066 ! important; + } + +.bland I { + color: #000066 ! important; +} + +.bland A I { + color: #ff0000 ! important; +} + +.blank { + border-bottom: 1px solid; + white-space:pre; +} + +.blank1 { + width: 20px; + height: 15px; + border-bottom: 1px solid; + white-space:pre; +} + +.blank2 { + width: 50px; + height: 15px; + border-bottom: 1px solid; + white-space:pre; +} + +.empty { + white-space:pre; +} + +.caps { + text-transform: uppercase; +} + +.lowcaps { + font-size: 85%; + text-transform: uppercase; +} + .prose .lowcaps { + word-spacing: 5px; + } + +.lowercase { + text-transform: lowercase; +} + +.no_transform { + text-transform: none; +} + +.telegram { + font-family: Verdana, sans-serif; + font-size: 80%; + line-height: 1.875; /* normal line-height (1.5) divided by font-size 80%: this keeps the line spacing even */ + text-transform: uppercase; +} + .telegram .outquote { + text-transform: none; + } + +.constrained { + line-height: 100%; +} + +.constrained110 { + line-height: 110%; +} + +.constrained90 { + line-height: 90%; +} + +.constrained80 { + line-height: 80%; +} + +.bold { + font-weight: bold; +} + +.italic { + font-style: italic; +} + + .italic I { + font-style: normal; + font-size: 90%; + } + +.normal { + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-size: 100%; + font-style: normal; + font-weight: normal; + text-transform: none; + font-variant: normal; +} + +.thin { + font-weight: normal; +} + +.usual { + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; +} + +.exergue { + margin-top: 6em; + margin-bottom: 3em; + margin-left: 200px; + font-size: 85%; + text-align: justify; +} + +.exergue_left { + margin-top: 6em; + margin-bottom: 3em; + margin-right: 300px; + font-size: 85%; + text-align: justify; +} + +.synopsis { + margin-top: -1.5em; + margin-bottom: 3em; + font-size: 85%; + font-style: italic; + text-align: justify; +} + +/* After the signature block, insert

: See +E/Gazetteer/People/Holden_Evans/Fight_for_a_Better_Navy/2/8*.html#signature_block_example + */ +.signature_block { + float: right; +/* + margin-right: 0px; + */ +} + +.no_float { + clear: both; +} + +.signature_nonce { /* used on only 2 pages */ + position: absolute; + width: 20em; + right: +7em; +} + +/*the "pagenum" styles are linked to the style "poppy"*/ +.pagenum { + position: absolute; +/* +It is positioned relative to the ancestor block, so for style "verse/exquotemark" it requires "PAGENUM WORKAROUND", below. +*/ + top: auto; + right: +1.5em; + width: 70px; + text-align: right; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-style: normal; + font-weight: normal; + text-transform: none; + font-variant: normal; + letter-spacing: normal; + font-size: small; + color: #ff3300 ! important; +} + + .pagenum .Latin { + color: #990000 ! important; + } + + +/* +"pagenum_right" is identical with "pagenum"; Cullum's "pagenum" defaults to LEFT +*/ +.pagenum_right { + position: absolute; + top: auto; + right: +1.5em; + text-align: right; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-style: normal; + font-weight: normal; + text-transform: none; + font-variant: normal; + font-size: small; + color: #ff3300 ! important; +} + +.pagenum_left { + position: absolute; + top: auto; + left: +4.5em; + text-align: left; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-style: normal; + font-weight: normal; + text-transform: none; + font-variant: normal; + font-size: small; + color: #ff3300 ! important; +} + +.i1 .pagenum_left { + left: +3.5em; +} + +.pagenum1 { + position: absolute; + top: auto; + right: +1.5em; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-style: italic; + font-weight: normal; + text-transform: none; + font-variant: normal; + font-size: small; + color: #ff3300 ! important; +} + +.pagenumPassed { + position: absolute; + top: auto; + right: +1.5em; + width: 70px; + text-align: right; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-style: normal; + font-weight: normal; + text-transform: none; + font-variant: normal; + font-size: .75rem; + color: #ff3300 ! important; +} + +/*the color of "poppy" style should be the same as that of the main "pagenum" styles*/ +.poppy { + color: #ff3300 ! important; +} + +.pagenum_doc { + position: absolute; + top: auto; + left: +1.5em; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-style: italic; + font-weight: normal; + text-transform: none; + font-variant: normal; + font-size: .81rem; + color: #ff6666 ! important; +} + +.blankpage { + position: absolute; + top: auto; + right: +1.5em; + width: 120px; + text-align: right; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-size: 60%; + font-style: normal; + font-weight: normal; + text-transform: none; + font-variant: normal; + letter-spacing: normal; + font-size: small; + color: #ff3300 ! important; +} + +.versenum { + position: absolute; + top: auto; + right: 25%; + text-align: right; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-style: normal; + font-variant: normal; + font-size: .70rem; + text-transform: none; + font-weight: normal; + letter-spacing: normal; + color: #bf0000 ! important; +} + +.sourceverse { + line-height: 1.5; + margin-left: 2em; + margin-right: 2em; +} + +.sourceverse P { + margin-top: 0em; + margin-bottom: 0em; + margin-left: 3em; + margin-right: 3em; + text-indent: -3em; +} + +.sourceverse P.i1 { + margin-left: 4em; +} + +.question { + margin-top: 2em; + text-align: justify; + font-style: italic; +} + +.answer { + text-align: justify; + margin-left: 3em; +} + +.searchand { + color: #006600 ! important; + font-weight: bold; +} + +.searchandGreek { + font-family: "Lucida Grande", "Palatino Linotype", "Arial Unicode Ms", "Titus Cyberbit Basic", "Lucida Sans Unicode", sans-serif ! important; + color: #996600 ! important; + font-weight: bold; +} + +.searchandLatin { + color: #990000 ! important; + font-weight: bold; +} + +.citation { + font-family: Verdana, sans-serif; + font-size: 75%; + font-variant: normal; +} + +.editor { + color: #000066 ! important; + font-family: Arial, sans-serif; + font-style: normal; + font-weight: bold; + font-size: 75%; + font-variant: small-caps; +} + +.editor_comment { + color: #000066 ! important; + font-family: Arial, sans-serif; + font-style: italic; +} + +.error { + color: #ff0000 ! important; + font-weight: bold; +} + +.entry { + font-weight: bold; + font-variant: small-caps; +} + +P.excerptor { + margin-top:-1.3em; + margin-bottom:2em; + text-align: right; + font-size: 75%; +} + +/* keep LVHA order: */ +/* A:link, A:visited, A:hover, A:active */ +A.fort:link { + color: #5555cc !important; + border-bottom: dotted #ffff99; +} + +A.fort:visited { + color: #CC4400 !important; + border-bottom: dotted #edddcc; +} + .mynote A.fort:visited { + color: #990000 ! important; + border-bottom: dotted #990000; + } + .mynoteWide A.fort:visited { + color: #990000 ! important; + border-bottom: dotted #990000; + } + +A.fort:hover { + color: #edddcc !important; + border-bottom: dotted #edddcc; +} + .mynote A.fort:hover { + color: #edddcc ! important; + border-bottom: dotted #edddcc; + } + .mynoteWide A.fort:hover { + color: #edddcc ! important; + border-bottom: dotted #edddcc; + } + +A.fort:active { + color: #edddcc !important; + border-bottom: dotted #edddcc; +} + .mynote A.fort:active { + color: #edddcc ! important; + border-bottom: dotted #edddcc; + } + .mynoteWide A.fort:active { + color: #edddcc ! important; + border-bottom: dotted #edddcc; + } + +.Greek_entry { + font-family: "Avdira", "Titus Cyberbit Basic", serif ! important; + font-weight: bold; +} + +.entry0 { +/* used only in NEW */ + text-align: justify; + font-size: 120%; + font-weight: bold; +} + + .entry0 .start { +/* THIS DOESN'T WORK. "start" only works because the style is defined elsewhere, as I can see if I rename it. Renaming "entry0" to something without the terminal number doesn't help. The CSS checked out at W3C. + + THIS IS WHY I HAVE THE STYLE "entry00", which does work. +*/ + color: #339900 ! important; + margin-top: 3em; + } + +.entry00 { +/* used only in NEW */ + text-align: justify; + font-size: 120%; + font-weight: bold; + color: #339900 ! important; + margin-top: 3em; +} + .entry00 A { + color: #00FF00 ! important; /* THIS DOESN'T WORK. */ + } + +.entry1 { + color: #cc6633 ! important; + font-weight: bold; + font-family: Verdana, Ariel, Helvetica, sans-serif; +} + +.goof { + color: #ff0000 ! important; + font-weight: bold; +} + +.nocaps { + font-variant: normal; +} + +.railroad_symbol { + color: #990000 ! important; + font-family: Arial, sans-serif; + font-style: normal; + font-weight: bold; +} + +.smallcaps { + font-variant: small-caps; +} + +.larger .smallcaps { + font-variant: normal; + text-transform: uppercase; +} + +.prose .smallcaps { + font-family: Fontin_Sans_SC, sans-serif; + letter-spacing: .06em; +/* FOR DEBUG, TOGGLE THE NEXT LINE ON/OFF: */ + +/* color: #ff6600 ! important; */ +} + +/* used rather little so far: see for example +E/Gazetteer/Places/Europe/Italy/Umbria/Terni/Acquasparta/Acquasparta/home.html*/ +.gazetteer_link { + font-variant: small-caps; +} + +.WebRef { + font-family: Verdana, sans-serif; + font-size: 90%; + color: #ff6600 ! important; +} + +/* keep LVHA order: */ +/* A:link, A:visited, A:hover, A:active */ +A:link { + color: #0000ff ! important; +} +/* + A:link I { + color: #0000ff ! important; + } + */ + + A:link IMG { + border-width: 1px; + } + +A:visited { + color: #cc0000 ! important; +} + +A:hover { + color: #ff00ff ! important; +} + +A:active { + color: #ff00ff ! important; +} + +A:link IMG.alias0 { + border-width: 1px; + border-style: dotted; + width: 279px; + height: 186px; + margin: 5px; +} + +A:link IMG.alias1 { + border-width: 1px; + border-style: solid; + width: 279px; + height: 186px; + margin: 5px; +} + +A:link IMG.alias2 { + border-width: 2px; + border-style: solid; + width: 279px; + height: 186px; + margin: 4px; +} + +A:link IMG.alias4 { + border-width: 4px; + border-style: solid; + width: 279px; + height: 186px; + margin: 2px; +} + +A:link IMG.icon0 { + border-width: 1px; + border-style: dotted; + width: 132px; + height: 88px; + margin-top: 10px; + margin-bottom: 5px; + margin-left: 5px; + margin-right: 5px; +} + +A:link IMG.icon1 { + border-width: 1px; + border-style: solid; + width: 132px; + height: 88px; + margin-top: 10px; + margin-bottom: 5px; + margin-left: 5px; + margin-right: 5px; +} + +A:link IMG.icon2 { + border-width: 2px; + border-style: solid; + width: 132px; + height: 88px; + margin-top: 11px; + margin-bottom: 4px; + margin-left: 4px; + margin-right: 4px; +} + +A:link IMG.icon4 { + border-width: 4px; + border-style: solid; + width: 132px; + height: 88px; + margin-top: 13px; + margin-bottom: 2px; + margin-left: 2px; + margin-right: 2px; +} + +A:link IMG.rubric0 { + border-width: 1px; + border-style: dotted; + width: 132px; + height: 88px; + margin-left: 15px; + margin-right: 15px; +} + +A:link IMG.rubric1 { + border-width: 1px; + border-style: solid; + width: 132px; + height: 88px; + margin-left: 15px; + margin-right: 15px; +} + +A:link IMG.rubric2 { + border-width: 2px; + border-style: solid; + width: 132px; + height: 88px; + margin-left: 14px; + margin-right: 14px; +} + +A:link IMG.rubric4 { + border-width: 4px; + border-style: solid; + width: 132px; + height: 88px; + margin-left: 12px; + margin-right: 12px; +} + +A:link IMG.minirubric1 { + border-width: 1px; + border-style: solid; + width: 60px; + height: 40px; + margin-left: 87px; + margin-right: 15px; +} + +A:link IMG.minirubric2 { + border-width: 2px; + border-style: solid; + width: 60px; + height: 40px; + margin-left: 86px; + margin-right: 14px; +} + +A:link IMG.minirubric4 { + border-width: 4px; + border-style: solid; + width: 60px; + height: 40px; + margin-left: 84px; + margin-right: 12px; +} + +A:link IMG.thumb0 { + border-width: 1px; + border-style: dotted; + width: 60px; + height: 40px; + margin-top: 5px; + margin-bottom: 5px; +} + +A:link IMG.thumb1 { + border-width: 1px; + border-style: solid; + width: 60px; + height: 40px; + margin-top: 5px; + margin-bottom: 5px; +} + +A:link IMG.thumb2 { + border-width: 2px; + border-style: solid; + width: 60px; + height: 40px; + margin-top: 4px; + margin-bottom: 4px; +} + +A:link IMG.thumb4 { + border-width: 4px; + border-style: solid; + width: 60px; + height: 40px; + margin-top: 2px; + margin-bottom: 2px; +} + +A.help:hover { + text-decoration: none; + color: #0000ff ! important; + cursor: help; +} + +.added_link { + font-size: 80%; + font-weight: bold; + text-decoration: none; + font-style: italic; + color: #666666 ! important; +} + + .added_link A:link { + color: #5555ff ! important; + } + +A.added_link { + color: #ff6666 ! important; +} + +A.added_link:link { + color: #5555ff ! important; +} + + A .manuscript { + color: #0000ff ! important; +} + + A:hover .manuscript { + color: #ff00ff ! important; +} + +BODY.default A.Cullum { + color: #998500 ! important; + background-color: transparent ! important; /*must match BODY*/ +} + +A.Cullum { + color: #ffdd00 ! important; + background-color: transparent ! important; /*must match BODY*/ + -webkit-hyphens: none; + -ms-hyphens: none; + hyphens: none; /* their names are not to be hyphenated */ +} + + A.Cullum .normal { + color: #0000ff ! important; +} + A.Cullum .emend { + color: #fff199 ! important; +} + A.Cullum .keep { + display: inline; + white-space: nowrap; +} + +A.discreet { + color: #5555cc ! important; +} + + A.discreet:visited { + text-decoration: none; + color: #cc5555 ! important; + } + + A.discreet:hover { + text-decoration: none; + color: #cc55cc ! important; + } + +A:link SPAN.discreet { + color: #7777cc ! important; +} + +A:visited SPAN.discreet { + text-decoration: none; + color: #cc7777 ! important; +} + +A:hover SPAN.discreet { + text-decoration: none; + color: #cc77cc ! important; +} + +A.quiet { + color: inherit ! important; +} + +A.quiet:hover { + text-decoration: none; + color: #0077cc ! important; + background-color: #ffff00 ! important; +} + +.offsite_link { + text-decoration: none; + font-style: italic; + color: #0000ff ! important; +} + +A.offsite_link { + font-weight: bold; + text-decoration: none; + font-style: italic; + color: #0000ff ! important; +} + +A.offsite_link:link { + color: #0000ff ! important; +} + +A.sec { + font-family: "Palatino Linotype", Palatino, "Arial Unicode Ms", "Titus Cyberbit Basic", "Lucida Sans Unicode", serif ! important; + font-size: 70%; + text-transform: none; + font-weight: normal; + color: #bf0000 ! important; + vertical-align: 10%; +} + +A.sec_for_proofing { + font-family: "Palatino Linotype", Palatino, "Arial Unicode Ms", "Titus Cyberbit Basic", "Lucida Sans Unicode", serif ! important; + font-size: 200%; + text-transform: none; + font-weight: normal; + color: #00aa00 ! important; + vertical-align: 10%; +} + +A/* keep the space that follows*/ .Latin { + color: #0066cc ! important; +} + +A:hover/* keep the space that follows*/ .Latin { + color: #ff00ff ! important; +} + +A/* keep the space that follows*/ .Greek { + color: #0066cc ! important; +} + +A:hover/* keep the space that follows*/ .Greek { + color: #ff00ff ! important; +} + +A.chapter { + font-size: 1.3em; + color: #bf0000 ! important; + text-decoration: none; + font-style: normal; + line-height: .5; +} + +A.GridRef:link { + font-family: Verdana, sans-serif; + color: #ff6600 ! important; +} + +A.GridRef:visited { + font-family: Verdana, sans-serif; + color: #cc0000 ! important; +} + +A.GridRef:hover { + font-family: Verdana, sans-serif; + color: #ff00ff ! important; +} + +A.GridRef:active { + font-family: Verdana, sans-serif; + color: #ff00ff ! important; +} + +A.Britannica_signature { + cursor: crosshair; + font-weight: normal; + color: #0000ff ! important; + vertical-align: top; +} + + A.Britannica_signature:link { + text-decoration: none; + color: #0000ff ! important; + } + +A.comment { + cursor: crosshair; + font-family: Verdana, sans-serif; + font-size: 53%; + font-style: normal; + font-weight: normal; + color: #0000ff ! important; + vertical-align: top; +} + + A.comment:link { + text-decoration: none; + color: #0000ff ! important; + } + + A.comment .center { + margin-top: 0em; + margin-bottom: 0em; + } + + A.comment SPAN.source { + font-weight: bold; + color: #006600! important; + } + +SPAN.promptsource { + font-weight: bold; + color: #009900 ! important; +} + +.correction { + cursor: crosshair; + font-family: Verdana, sans-serif; + font-size: 53%; + font-style: normal; + font-weight: normal; + color: #ff0000 ! important; + vertical-align: top; +} + + A.correction:link { + text-decoration: none; + color: #ff0000 ! important; + } + +SPAN.conversion { + color: #0099ff ! important; +} + +.white A.conversion { + color: #00ccff ! important; + vertical-align: super; + line-height: .3; +} + +.white .outquote { + color: #8533ad ! important; +} + +A.conversion { + cursor: crosshair; + font-family: Verdana, sans-serif; + font-size: 100%; + font-weight: normal; + color: #0099ff ! important; + vertical-align: super; + line-height: .3; +} + + A.conversion:link { + text-decoration: none; + color: #0099ff ! important; + } + +A.glossary { + cursor: crosshair; + font-family: Verdana, sans-serif; + font-size: 100%; + font-weight: normal; + color: #ff3366 ! important; + vertical-align: super; + line-height: .3; +} + +A.glossary:link { + text-decoration: none; + color: #ff3366 ! important; +} + +A.offpage { + font-size: 100%; + font-weight: normal; + color: #009900 ! important; + vertical-align: super; + line-height: .3; +} + +A.offpage:link { + text-decoration: none; + color: #009900 ! important; +} + +A.note { + font-family: Verdana, sans-serif; + font-style: normal; + font-size: 58%; + font-weight: bold; + text-transform: none; + color: #0000ff ! important; + vertical-align: super; +} +A.note:link { + text-decoration: none; + color: #0077cc ! important; +} +A.note:visited { + text-decoration: none; + color: #ff0000 ! important; +} +A.note:hover { + font-size: 81%; + text-decoration: none; + color: #ff0000 ! important; + background-color: #ffff00 ! important; +} + + A.note .Greek { + font-family: "Avdira", "Titus Cyberbit Basic", serif ! important; + color: #ff0000 ! important; + } + +A.guest_note { + font-family: "Avdira", "Titus Cyberbit Basic", serif ! important; + font-style: normal; + font-size: 58%; + font-weight: bold; + text-transform: none; + color: #0000ff ! important; + vertical-align: super; +} +A.guest_note:link { + text-decoration: none; + color: #0077cc ! important; +} +A.guest_note:visited { + text-decoration: none; + color: #ff0000 ! important; +} +A.guest_note:hover { + font-size: 81%; + text-decoration: none; + color: #ff0000 ! important; + background-color: #ffff00 ! important; +} + +A.note_for_proofing { + font-family: Verdana, sans-serif; + font-style: normal; + font-size: 200%; + font-weight: bold; + text-transform: none; + color: #0000ff ! important; + vertical-align: super; +} + +A.note_for_proofing:hover { + font-family: Verdana, sans-serif; + font-style: normal; + font-size: 200%; + font-weight: bold; + text-transform: none; + color: #ff0000 ! important; + background-color: #ffff00 ! important; + vertical-align: super; +} + +A.note_for_proofing:visited { + text-decoration: none; + color: #ff0000 ! important; +} + +.paragraph_summary { + position: absolute; + top: auto; + text-align: right; + left: +10px; + width: 70px; + font-family: "Palatino Linotype", Palatino, "Arial Unicode Ms", "Titus Cyberbit Basic", "Lucida Sans Unicode", serif ! important; + font-size: .60rem; + text-transform: none; + font-weight: normal; + color: #660000 ! important; +} + +A.ref { + font-family: Verdana, sans-serif; + font-style: normal; + font-size: 58%; + font-weight: bold; + font-variant: normal; + padding: .2em; + text-transform: none; + color: #0000ff ! important; + vertical-align: super; +} +A.ref:link { + text-decoration: none; + color: #0077cc ! important; +} +A.ref:visited { + text-decoration: none; + color: #ff0000 ! important; +} +A.ref:hover { + text-decoration: none; + color: #ff0000 ! important; + background-color: #ffff00 ! important; +} + + A.ref .Greek { + font-family: "Avdira", "Titus Cyberbit Basic", serif ! important; + color: #ff0000 ! important; + } + +H1 H2 H3 A.ref { + font-size: 75%; +} + +H3.apparatus { + margin-top: 2em; + margin-bottom: 1em; + font-weight: normal; + font-style: italic; + /* font-size: 70%; DOESN'T SEEM TO WORK? */ +} + +A.ref_for_proofing { + font-family: Verdana, sans-serif; + font-style: normal; + font-size: 200%; + font-weight: bold; + text-transform: none; + color: #0000ff ! important; + vertical-align: super; +} + +A.ref_for_proofing:hover { + font-family: Verdana, sans-serif; + font-style: normal; + font-size: 200%; + font-weight: bold; + text-transform: none; + color: #ff0000 ! important; + background-color: #ffff00 ! important; + vertical-align: super; +} +A.ref_for_proofing:visited { + text-decoration: none; + color: #ff0000 ! important; +} + +A.ref1 { + font-family: Verdana, sans-serif; + font-style: normal; + font-size: 58%; + font-weight: bold; + text-transform: none; + color: #0099ff ! important; + vertical-align: super; +} + +A.ref_in_text { + font-family: Verdana, sans-serif; + font-style: italic; + font-size: 62%; + font-weight: bold; + text-transform: none; + color: #5555ff ! important; +} + +A.ref_in_text:link { + text-decoration: none; + color: #5555ff ! important; +} + +A.ref_in_text:visited { + text-decoration: none; + color: #ff0000 ! important; +} + +A.ref_in_text:hover { + text-decoration: none; + color: #0077cc ! important; + background-color: #ffff00 ! important; +} + +A.guest_ref { + font-family: "Avdira", "Titus Cyberbit Basic", serif ! important; + font-style: normal; + font-size: 58%; + font-weight: bold; + font-variant: normal; + padding: .2em; + text-transform: none; + color: #0000ff ! important; + vertical-align: super; +} +A.guest_ref:link { + text-decoration: none; + color: #0077cc ! important; +} +A.guest_ref:visited { + text-decoration: none; + color: #ff0000 ! important; +} +A.guest_ref:hover { + text-decoration: none; + color: #ff0000 ! important; + background-color: #ffff00 ! important; +} + +.inline_note { + font-style: italic; + color: #cc0000 ! important; + font-family: Verdana, sans-serif; + font-size: 90%; +} + +INS.slip { + cursor: crosshair; + text-decoration: none; + border-bottom: dotted green; + border-bottom-width: thin; +} +/* +INS.slip1 { + cursor: URL(https://penelope.uchicago.edu/Thayer/Images/Utility/Cursors/arrowleft3.png), auto; + text-decoration: none; + border-bottom: dotted green; + border-bottom-width: thin; +} + */ + +INS.divergence { + cursor: crosshair; + text-decoration: none; + border-bottom: dotted red; + border-bottom-width: medium; +} + +.TextHas { + color: #009900 ! important; + font-weight: bold; +} + +SPAN.ref { + font-family: Verdana, sans-serif; + text-transform: none; + color: #000066 ! important; + font-weight: bold; + font-size: 58%; + vertical-align: super; +} + +SPAN.ref_for_proofing { + font-family: Verdana, sans-serif; + text-transform: none; + font-weight: bold; + font-size: 200%; + vertical-align: super; +} + +/* +The purpose of the following styles (quotemark, exquotemark) is to put the initial quotation mark outside the centered quote (verse). The CSS standards explicitly state that the following box is calculated as though the preceding box were not offset + (https://www.w3.org/TR/REC-CSS2/visuren.html#propdef-position) +thus requiring the "exquotemark" workaround. + +PAGENUM WORKAROUND: +To get pagenums to insert correctly at a line in the middle of a poem, follow this format: +

 p585  +

+ +To get pagenums to insert correctly at the beginning of a poem that starts a page, follow the same format (but if "start" is needed, "start" goes in BOTH

declarations), as for example: +

 p383  +

+ +Sometimes this latter workaround doesn't seem to work, either, as in p156 and p158 of +▸ E/Gazetteer/Places/America/United_States/Navy/_Texts/MERLIF/30*.html#Lament +where I substitute another method, not altogether satisfactorily. + +*/ +.quotemark { + position: relative; + left: -.1em; + text-transform: none; + font-weight: normal; +} + +P.exquotemark { + position: relative; + left:.2em; + text-transform: none; + font-weight: normal; +} + +.verse .quoted P { + position: relative; + left: .2em; + text-transform: none; + font-weight: normal; +} + +.verse .quoted P.first { + position: relative; + left: 0em; + text-transform: none; + font-weight: normal; +} + + +/* +.verse A.sec { + position: absolute; + top: auto; + left: +12.5em; + text-align: left; +} + */ + +A.subsec { + font-size: 70%; + font-weight: normal; + font-style: normal; + text-transform: uppercase; + color: #bf0000 ! important; + vertical-align: 20%; +} + +/*The following 2 are completely synonymous, for convenience:*/ +.underscore { + text-decoration: underline; +} +.underline { + text-decoration: underline; +} + +A.Tsec { + position: absolute; + top: auto; + left: +2em; + text-align: right; + font-family: Courier, serif ! important; + font-size: .70rem; + text-transform: uppercase; + font-style: normal; + font-weight: normal; + font-variant: normal; + color: #006600 ! important; +} + +TABLE.verse A.Tsec { + position: absolute; + top: auto; + left: +3.8em; /* basic margin + 1.8 */ + text-align: right; + font-family: Courier, serif ! important; + font-size: .70rem; + text-transform: uppercase; + font-style: normal; + font-weight: normal; + font-variant: normal; + color: #006600 ! important; +} + +A.Tsubsec { + position: absolute; + top: auto; + left: +3.85em; + font-family: Courier, serif ! important; + font-size: .70rem; + text-transform: uppercase; + font-style: normal; + font-weight: normal; + font-variant: normal; + color: #006600 ! important; +} + +A.Tsubsec_correction { + position: absolute; + top: auto; + left: +5.8em; + font-family: Verdana, sans-serif; + font-size: .53rem; + font-weight: normal; + font-style: normal; + color: #ff0000 ! important; + vertical-align: top; +} + + A.correction:link { + text-decoration: none; + color: #ff0000 ! important; + } + +/* used at first only in E/Roman/Texts/secondary/journals/TAPA/43/The_Ferentinum_of_Horace*.html +It must be used OUTSIDE any */ +.citation_left { + position: absolute; + top: auto; + left: +7.5em; + font-size: .70rem; + font-weight: normal; + font-style: normal; + color: #000066 ! important; +} + +TABLE.verse A.Tsubsec { + left: +8.85em; /* basic margin +5.0 */ +} + +P.stars { + margin-top: 1.5em; + font-size: 140%; + letter-spacing: 1.0em; + text-align: center; +} + +P.topstars { + text-align: center; + margin-top: 1.5em; + margin-bottom: 0em; +} + +P.bottomstars { + text-align: center; + margin-top: -1em; +} + +P.verse A.Tsubsec { + left: +7.4em; /* basic margin +3.3 */ +} + +P.verse1 A.Tsubsec { + left: +3.85em; /* basic margin +3.3 -2+2+ adjustment 3.9 */ +} + +P.verse2 A.Tsubsec { + left: +1.65em; /* basic margin +3.3 -4+2 */ +} + +P.verse3 A.Tsubsec { + left: -0.7em; /* basic margin +3.3 -6+2 */ +} + +P.verse4 A.Tsubsec { + left: -2.95em; /* basic margin +3.3 -8+2 */ +} + +P.verse5 A.Tsubsec { + left: -5.2em; /* basic margin +3.3 -10+2 */ +} + +P.verse6 A.Tsubsec { + left: -7.5em; /* basic margin +3.3 -12+2 */ +} + +P.verse7 A.Tsubsec { + left: -9.75em; /* basic margin +3.3 -14+2 */ +} + +P.verse8 A.Tsubsec { + left: -12em; /* basic margin +3.3 -14+2 */ +} + +A.Latin { + color: #cc6633 ! important; +} + +A.entry1 { + color: #3366ff ! important; + font-variant: normal; + font-weight: bold; + font-size: 90%; + font-family: Verdana, Ariel, Helvetica, sans-serif; +} + +DIV.further { + position: absolute; + top: auto; + font-size: .50rem; /* necessary to produce correct right margin*/ + right: +4em; +} + +DIV.default { + color: #000066 ! important; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; +} + +DIV.default1 { /* has now been replaced thruout by DIV.spacious */ + margin-left: 5em; + margin-right: 5em; + color: #000066 ! important; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; +} + +DIV.alert { /* mynote with background-color and color changed */ + background-color: #ffff66 ! important; + text-align: justify; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-size: 85%; + color: #ff0000 ! important; + margin-top: 1.6em; + margin-left: 100px; + margin-right: 100px; + padding-top: 0.4em; + padding-bottom: 0.4em; + padding-left: 1.3em; + padding-right: 1.3em; + border-style: double +} + +DIV.alert400 { /* mynoteNarrow with background-color and color changed */ + background-color: #ffff66 ! important; + text-align: justify; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-size: 85%; + color: #ff0000 ! important; + margin-top: 1.6em; + margin-bottom: 1.6em; + width: 400px; + margin-left: auto; + margin-right: auto; + padding-top: 0.4em; + padding-bottom: 0.4em; + padding-left: 1.3em; + padding-right: 1.3em; + border-style: double +} + +DIV.alert600 { +/* +mynote with background-color and color changed, +WIDTH matches TABLE.headerbox +*/ + background-color: #ffff66 ! important; + text-align: justify; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-size: 85%; + color: #ff0000 ! important; + font-style: italic; + margin-top: 10em; + margin-bottom: 1.6em; + width: 600px; + margin-left: auto; + margin-right: auto; + padding-top: 0.4em; + padding-bottom: 0.4em; + padding-left: 1.3em; + padding-right: 1.3em; + border-style: double +} + +DIV.slimBox { + background-color: #ccffff ! important; + text-align: justify; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-size: 85%; + color: #000066 ! important; +/* + margin-top: 1.6em; + */ + margin-left: 100px; + margin-right: 100px; +/* + padding-top: 0.4em; + padding-bottom: 0.4em; + */ + padding-left: 1.3em; + padding-right: 1.3em; + border-style: double +} + + .slimBox A:link { + color: #0000ff ! important; + } + .slimBox A:visited { + color: #ff0000 ! important; + } + .slimBox A:hover { + color: #ff00ff ! important; + } + .slimBox A:active { + color: #ff00ff ! important; + } + .slimBox P { + margin-bottom: 0em; + margin-top: 0em; + } + +DIV.mynote { + background-color: #ccffff ! important; + text-align: justify; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-size: 85%; + color: #000066 ! important; + margin-top: 1.6em; + margin-left: 100px; + margin-right: 100px; + padding-top: 0.4em; + padding-bottom: 0.4em; + padding-left: 1.3em; + padding-right: 1.3em; + border-style: double +} + + .mynote A:link { + font-weight: bold; + color: #0000ff ! important; + } + .mynote A:visited { + font-weight: bold; + color: #ff0000 ! important; + } + .mynote A:hover { + font-weight: bold; + color: #ff00ff ! important; + } + .mynote A:active { + font-weight: bold; + color: #ff00ff ! important; + } + .mynoteWide A:link { + font-weight: bold; + color: #0000ff ! important; + } + .mynoteWide A:visited { + font-weight: bold; + color: #ff0000 ! important; + } + .mynoteWide A:hover { + font-weight: bold; + color: #ff00ff ! important; + } + .mynoteWide A:active { + font-weight: bold; + color: #ff00ff ! important; + } + .mynoteNarrow A:link { + font-weight: bold; + color: #0000ff ! important; + } + .mynoteNarrow A:visited { + font-weight: bold; + color: #ff0000 ! important; + } + .mynoteNarrow A:hover { + font-weight: bold; + color: #ff00ff ! important; + } + .mynoteNarrow A:active { + font-weight: bold; + color: #ff00ff ! important; + } + .mynoteNarrowest A:link { + font-weight: bold; + color: #0000ff ! important; + } + .mynoteNarrowest A:visited { + font-weight: bold; + color: #ff0000 ! important; + } + .mynoteNarrowest A:hover { + font-weight: bold; + color: #ff00ff ! important; + } + .mynoteNarrowest A:active { + font-weight: bold; + color: #ff00ff ! important; + } + + DIV.mynote .Latin { + color: #990000 ! important; + } + + .mynote .source { + color: #00AA00 ! important; + } + + .mynote .outquote { + color: #7700b3 ! important; + } + + +DIV.mynote0 { + background-color: #ccffff ! important; + text-align: justify; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-size: 85%; + color: #000066 ! important; + margin-top: 0em; + margin-left: 100px; + margin-right: 100px; + padding-top: 0.4em; + padding-bottom: 0.4em; + padding-left: 1.3em; + padding-right: 1.3em; + border-style: double +} + .mynote0 .outquote { + color: #7700b3 ! important; + } + + +.mynote A.Cullum { + color: #907d45 ! important; + background-color: #ccffff ! important; +} +.mynoteWide A.Cullum { + color: #907d45 ! important; + background-color: #ccffff ! important; +} + +DIV.mynoteNarrow { + background-color: #ccffff ! important; + text-align: justify; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-size: 85%; + color: #000066 ! important; + margin-top: 1.6em; + margin-bottom: 1.6em; + width: 50%; + margin-left: auto; + margin-right: auto; + padding-top: 0.4em; + padding-bottom: 0.4em; + padding-left: 1.3em; + padding-right: 1.3em; + border-style: double +} + .mynoteNarrow .outquote { + color: #7700b3 ! important; + } + +DIV.mynoteNarrowest { + background-color: #ccffff ! important; + text-align: justify; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-size: 85%; + color: #000066 ! important; + margin-top: 1.6em; + margin-bottom: 1.6em; + width: 30%; + margin-left: auto; + margin-right: auto; + padding-top: 0.4em; + padding-bottom: 0.4em; + padding-left: 1.3em; + padding-right: 1.3em; + border-style: double +} + .mynoteNarrowest .outquote { + color: #7700b3 ! important; + } + +DIV.mynoteWide { + background-color: #ccffff ! important; + text-align: justify; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-size: 85%; + color: #000066 ! important; + margin-top: 1.6em; + margin-bottom: 1.6em; + width: 85%; + margin-left: auto; + margin-right: auto; + padding-top: 0.4em; + padding-bottom: 0.4em; + padding-left: 1.3em; + padding-right: 1.3em; + border-style: double +} + DIV.mynoteWide .Latin { + color: #990000 ! important; + } + + +DIV.mynoteBasicH { + background-color: #ccffff ! important; + text-align: justify; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-size: 85%; + color: #000066 ! important; + margin-top: 1.6em; + margin-bottom: 1.6em; + width: 574px; + margin-left: auto; + margin-right: auto; + padding-top: 0.4em; + padding-bottom: 0.4em; + padding-left: 1.3em; + padding-right: 1.3em; + border-style: double +} + +DIV.mynoteBasicH1 { + background-color: #ccffff ! important; + text-align: justify; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-size: 85%; + color: #000066 ! important; + margin-top: 1.6em; + margin-bottom: 1.6em; + width: 574px; + margin-left: auto; + margin-right: auto; + padding-top: 0.4em; + padding-bottom: 0.4em; + border-style: double +} + +DIV.specialBox { +/* Omit + background-color: #ccffff ! important; + color: #000066 ! important; +so that the font+background combination can be further specified (colors stylesheet) +*/ + text-align: justify; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-size: 85%; + margin-top: 1.6em; + margin-left: 100px; + margin-right: 100px; + padding-top: 0.4em; + padding-bottom: 0.4em; + padding-left: 1.3em; + padding-right: 1.3em; + border-style: double +} + +DIV.caption-centered { + margin: .35em; + font-size: 85%; + text-align: center; +} + +DIV.margin2 { + margin-left: 65px; + margin-right: 65px; + font-size: 90%; +} + +DIV.padall { + margin: 10px; +} + +.padall { + margin: 10px; +} + +DIV.reference { + color: #660066 ! important; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-size: 75%; + font-weight: bold; + text-align: center; +} + +DIV.diary_summary { + margin-left: .6em; + margin-right: 1.2em; + text-align: justify; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-size: 85%; +} + +DIV.diary_summary_date { + margin-right: 0.4em; + text-align: right; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-size: 85%; +} + +DIV.no_diary { + margin-left: .6em; + margin-right: 1.2em; + text-align: justify; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-size: 85%; + color: #666666 ! important; +} + +DIV.no_diary_date { + margin-right: 0.4em; + text-align: right; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-size: 85%; + color: #666666 ! important; +} + +.noScript { + text-align: center; + font-family: Verdana, sans-serif; + font-size: 112%; + font-weight: bold; + color: #ff0000 ! important; +} + +.PlaceDescriptor { /* used in GoogleMaps.js*/ + margin-top: 1.5em; + text-align: justify; +} + +DIV.MapBubble { /* used in GoogleMaps.js*/ + width: 200px; /* I'd like it smaller, but Google doesn't allow it, setting a purported minimum width of 204, but in fact it's about 250. */ + margin-top: 0; + margin-left: 0; + margin-right: 0; + font-family: Verdana, sans-serif; + font-style: normal; + text-transform: none; + font-variant: normal; + text-align: justify; + font-size: 50%; + font-weight: normal; +} + +DIV.MapBubbleHeading { /* used in GoogleMaps.js*/ + width: 200px; /* I'd like it smaller, but Google doesn't allow it, setting a purported minimum width of 204, but in fact it's about 250. */ + margin-left: 0; + margin-right: 0; + font-family: Verdana, sans-serif; + font-style: normal; + text-transform: none; + font-variant: normal; + text-align: left; + font-size: 60%; + font-weight: bold; +} + +.map_blue { + color: #7eb3ff ! important; +} + +.map_green { + color: #8cff77 ! important; +} + +.map_orange { + color: #ffa82c ! important; +} + +.map_pink { + color: #ffb4b1 ! important; +} + +.map_purple { + color: #df87ff ! important; +} + +.map_red { + color: #ff7a78 ! important; +} + +.map_yellow { + color: #fdff78 ! important; +} + +.emphasis { + color: #003399 ! important; +} + +.emend { + color: #0066cc ! important; +} + + A:hover .emend { + color: #ff00ff ! important; + } + + .emend .Greek { + color: #dd8833 ! important; + } + + .emend .Latin { + color: #cc3399 ! important; + } + .emend:lang(la) { + color: #cc3399 ! important; + } + +.transcription .emend { + color: #ff6699 ! important; +} + +/* used to render digammas better: */ +.Geneva { + font-family: Geneva; +} + +.Courier { + font-family: Courier, monospace; +} + +I I { /* i.e., within */ + font-style: normal; + font-size: 90%; +} + +SPAN.star { + font-family: Verdana, Ariel, Helvetica, sans-serif; + font-size: 90%; + color: #8800cc ! important; + font-style: italic; +} + + A SPAN.star { + color: #3366ff ! important; + } + + A:hover SPAN.star { + color: #ff00ff ! important; + } + +.fondbleu { + border-top: 0px !important; + border-bottom: 0px !important; + border-left: 0px !important; + border-right: 0px !important; + background-color: #ccffff ! important; + color: #555555 ! important; + border-radius: 8px; + padding-top: 2px !important; + padding-left: 5px !important; + padding-right: 5px !important; + display: inline; + overflow: hidden; + white-space: nowrap; +} + +.fondrose { + border-top: 0px !important; + border-bottom: 0px !important; + border-left: 0px !important; + border-right: 0px !important; + background-color: #ffcccc ! important; + color: #555555 ! important; + border-radius: 8px; + padding-top: 2px !important; + padding-left: 5px !important; + padding-right: 5px !important; + display: inline; + overflow: hidden; + white-space: nowrap; +} + +.fondviolet { + border-top: 0px !important; + border-bottom: 0px !important; + border-left: 0px !important; + border-right: 0px !important; + background-color: #d9e6ff ! important; + color: #555555 ! important; + border-radius: 8px; + padding-top: 2px !important; + padding-left: 5px !important; + padding-right: 5px !important; + display: inline; + overflow: hidden; + white-space: nowrap; +} + +.fondjaune { + border-top: 0px !important; + border-bottom: 0px !important; + border-left: 0px !important; + border-right: 0px !important; + background-color: #ffffcc ! important; + color: #555555 ! important; + border-radius: 8px; + padding-top: 2px !important; + padding-left: 5px !important; + padding-right: 5px !important; + display: inline; + overflow: hidden; + white-space: nowrap; +} + +SPAN.proofread { + color: #28cccc ! important; +} + +SPAN.unproofread { + color: #ff6666 ! important; +} + +SPAN.proof { + color: #009933 ! important; + font-weight: bold; +} + +SPAN.GridRef { + font-family: Verdana, sans-serif; + color: #ff6600 ! important; +} + +.overline { + text-decoration: overline; +} + +.Fraktur { + font-family: TypographerFraktur, "Lucida Blackletter", serif; +} + +.sanserif { + font-family: Verdana, Ariel, Helvetica, sans-serif; +} + +.double { + font-size: 200%; +} + +.large { + font-size: 120%; +} + +.larger { + font-size: 140%; +} + +.largest { + font-size: 160%; +} + +.small { + font-size: 85%; +} + + .small .smaller { + font-size: 88%; + } + +.smaller { + font-size: 75%; +} + +.smallest { + font-size: 60%; +} + +.minuscule { + font-size: 50%; +} + +.sourcecode { + font-family: Courier, monospace; + color: #006600 ! important; + font-size: 85%; +} + +.primary_source { + color: #339900 ! important; +} + +.up215 { + margin-top: -2.15em; +} + +SPAN.subscript { + font-family: Verdana, Ariel, Helvetica, sans-serif; + font-size: 65%; + vertical-align: bottom; +} + +SPAN.superscript { + font-family: Verdana, Ariel, Helvetica, sans-serif; + font-size: 60%; + vertical-align: top; +} + +SPAN.ordinal { + font-family: Verdana, Ariel, Helvetica, sans-serif; + font-size: 60%; + vertical-align: top; + font-variant: none; +} + +SPAN.raised { + vertical-align: 10%; + line-height: 100%; +} + +SPAN.manuscript .superscript { + font-family: Verdana, Ariel, Helvetica, sans-serif; + font-size: 60%; + vertical-align: 70%; +} + +.midalign { + vertical-align: middle; +} + +.ten { + font-size: 62%; +} + +.eleven { + font-size: 69%; +} + +.twelve { + font-size: 75%; +} + +.teensy { + font-size: 37%; +} + +H1 { + font-size: 150%; + text-align: center; + hyphens: none; +} + +H2 { + font-size: 120%; + text-align: center; + hyphens: none; +} + +H3 { + margin-top: 3.5em; + margin-bottom: 2em; + font-size: 100%; + text-align: left; + hyphens: none; +} + +H4 { + font-size: 85%; + hyphens: none; +} + +H5 { + font-size: 60%; + hyphens: none; +} + +H6 { + hyphens: none; +} + +H1, H2, H4.default { + margin-top: 3.5em; + margin-bottom: 2em; +} + +H1.small { + font-size: 120%; + text-align: center; +} + +H1.small_default { + font-size: 120%; + text-align: center; + margin-top: 3.5em; + margin-bottom: 2em; +} + +H2.large_default { + font-size: 150%; + text-align: center; + margin-top: 3.5em; + margin-bottom: 2em; +} + +H2.left { + margin-left: -50px; + font-size: 120%; + text-align: left; +} + +H2.diary { + margin-left: -50px; + margin-top: 6em; + margin-bottom: 2em; + font-size: 120%; + text-align: left; +} + +H3.boxed { + margin-top: 1em; + margin-bottom: 1.5em; + text-align: center; +} + +H3.center { +/* + font-size: 100%; + */ + text-align: center; +} + +H3.start { + margin-top: 3.5em; + margin-bottom: 2em; +} + +H3.start2 { + margin-top: 7.5em; + margin-bottom: 2em; +} + +H3.center-start { + text-align: center; + margin-top: 3.5em; + margin-bottom: 2em; +} + +H4.lowcaps { + font-size: 72%; + text-transform: uppercase; +} + +H4.halfstart { + margin-top: 2.7em; + margin-bottom: 2em; +} + +H4.start { + margin-top: 3.5em; + margin-bottom: 2em; +} + +H5.start { + margin-top: 3.5em; + margin-bottom: 2em; +} + +H6.start { + margin-top: 3.5em; + margin-bottom: 2em; +} + +H4.center-start { + text-align: center; + margin-top: 3.5em; + margin-bottom: 2em; +} + +H3.document { + font-size: 90%; + text-align: center; + font-weight: 300; + font-style: italic; +} + +H4.center { + font-size: 85%; + text-align: center; +} + +H4.interTitle { + margin-top:0; + font-size: 85%; + text-align: center; +} + +H5.center { + font-size: 60%; + text-align: center; +} + +HR { + text-align: center; +} + +HR.endnotes { + text-align: center; + width: 60%; + margin-top:4em; + margin-bottom:2.5em; +} + +HR.default { + text-align: center; + width: 60%; + margin-top:2.5em; + margin-bottom:2.5em; +} + +HR.small { + text-align: center; + width: 15%; + margin-top:2.5em; + margin-bottom:2.5em; +} + +HR.blip { + text-align: center; + width: 50px; + margin-top:.5em; + margin-bottom:.5em; +} + +HR.left { + text-align: left; + margin-top: 0.5em; + margin-bottom: 0.5em; +} + +IMG { + border-width: 0; +/* The hyphenation and alignment specs are for the ALTs, to prevent hyphenation and justify them: */ + text-align: justify; + -webkit-hyphens: none; + -ms-hyphens: none; + hyphens: none; +} + +IMG.setPageWidth { + width: 608px; + height: 20px; +} + +IMG.hedera { + width: 15px; + height: 13px; + margin-top: 1.3em; + margin-bottom: 0.3em; +} + +IMG.rue { + width: 24px; + height: 24px; + margin-top: 1.3em; + margin-bottom: 0.3em; +} + +IMG.WP_grad { + width: 15px; + height: 13px; + border-width: 0; + vertical-align: top; +} + +/* the following is required to make "TR.topBorder" (etc.) work: */ +TABLE.noBorders { + border-collapse: collapse; + border-left: 0px; + border-right: 0px; +} + +TABLE TR.topBorder{ + border-collapse: collapse; + border-top: 1px solid; +} + +TABLE TR.bottomBorder{ + border-collapse: collapse; + border-bottom: 1px solid; +} + +TABLE TR.topandbottomBorder{ + border-collapse: collapse; + border-top: 1px solid; + border-bottom: 1px solid; +} + +TABLE TR.topBorderBold{ + border-collapse: collapse; + border-top: 2px solid; +} + +.leftBorder{ + border-collapse: collapse; + border-left: 1px solid; +} + +.rightBorder{ + border-collapse: collapse; + border-right: 1px solid; +} + +TABLE TR.discreetly_separated{ + border: 3px; + border-style: solid none none; +} + +TABLE.TOC TR.discreetly_separated{ + border-color: #ffffff; +} + +TABLE TR.bottomBorderBold{ + border-collapse: collapse; + border-bottom: 2px solid; +} + +TABLE.columnBorders { + border-collapse: collapse; + border-left: 1px solid; + border-right: 1px solid; +} + + TABLE.columnBorders TR TD { + border-left: 1px solid; + border-right: 1px solid; + } + +TABLE.basicH { + width: 567px; +} + +IMG.basicH { + width: 567px; + height: 378px; +} + +TABLE.iPhoneLargeH { + width: 800px; +} + +IMG.iPhoneLargeH { + width: 800px; + height: 600px; +} + +TABLE.iPhoneH { + width: 567px; +} + +IMG.iPhoneH { + width: 567px; + height: 425px; +} + +TABLE.basicV { + width: 252px; +} + +IMG.basicV { + width: 252px; + height: 378px; +} + +IMG.largeV { + width: 378px; + height: 567px; +} + +IMG.largeS { + width: 567px; + height: 567px; +} + +IMG.H320 { + width: 567px; + height: 320px; +} + +TABLE.V270 { + width: 270px; +} + +IMG.V270 { + width: 270px; + height: 378px; +} + +TABLE.V280 { + width: 280px; +} + +IMG.V280 { + width: 280px; + height: 378px; +} + +TABLE.V300 { + width: 300px; +} + +IMG.V300 { + width: 300px; + height: 378px; +} + +IMG.GoogleLogo { + width: 64px; + height: 26px; +} + +TABLE.leadoff { + border-style: outset; + border-color: #cccccc; + border-width: 12px; + margin-top: 5em; + margin-left: auto; + margin-right: auto; + font-size: 80%; +} + +TABLE.leadoff P{ + margin-left: 15px; + margin-right: 15px; +} + +P.photocredit { + text-align: right; + font-size: 69%; +} + +TABLE.photocreditX { +/* for odd widths; the table width should be set at the photo width + 23 */ + border: 0; + margin: auto; + text-align: right; + font-size: 69%; +} + +TABLE.photocreditH { + width: 590px; /* 567 + 23 */ + border: 0; + margin: auto; + text-align: right; + font-size: 69%; +} + +TABLE.photocreditV { + width: 275px; /* 252 + 23 */ + border: 0; + margin: auto; + text-align: right; + font-size: 69%; +} + +TABLE.photocreditS { + width: 401px; /* 378 + 23 */ + border: 0; + margin: auto; + text-align: right; + font-size: 69%; +} + +/* THIS IS JUST A TEMP PATCH TO PREVENT THE OPERATION OF "contents" INSIDE "leadoff" WHILE I REMOVE THE HUNDREDS OF INSTANCES: */ +TABLE.leadoff .contents{ + font-size: 100%; +} + +IMG.aliasS { + width: 279px; + height: 279px; +} + +TABLE.aliasS { + width: 279px; +} + +IMG.smallS { + width: 252px; + height: 252px; +} + +TABLE.smallS { + width: 252px; +} + +IMG.basicS { + width: 378px; + height: 378px; +} + +TABLE.basicS { + width: 378px; +} + +IMG.b1 { + margin-top: 0; + border-width: 1px; + border-style: solid; +} + +IMG.b2 { + border-width: 2px; + border-style: solid; +} + +IMG.b4 { + border-width: 4px; + border-style: solid; +} + +IMG.flag { + border-width: 1px; + border-style: solid; + width: 30px; + height: 20px; + margin-top: 2px; + margin-bottom: 2px; +} + +TABLE.verse A.flag { + float: left; + margin-left: -4em; +} + +.verse A.sec { + position: relative; + float: left; + left: -2.5em; + vertical-align: 10%; +} + +IMG.map_marker { + width: .6em; + height: .9em; +} + +IMG.miniflag { + border-width: 1px; + border-style: solid; + width: 12px; + height: 8px; +} + +IMG.small_flag { + border-width: 1px; + border-style: solid; + width: 18px; + height: 12px; +} + +IMG.small_flag_in_margin { + border-width: 0; + width: 18px; + height: 20px; +} + +IMG.inline { + margin-right: 2px; +} + +/* Jun 2017: not yet used */ +IMG.behind { + position: absolute; + z-index: -1; +} + +.caduceus { + text-align: center; + font-size: 187%; +} + +.ivy { + text-align: center; + font-size: 137%; + font-style: normal; + color: #008400 ! important; +} + +.ivy1 { + text-align: center; + font-size: 137%; + font-style: normal; + color: #008400 ! important; + margin-top: 2em; +} + +IMG.badge { + width: 16px; + height: 16px; + vertical-align: -2px; +} + +IMG.image0 { + border-width: 1px; + border-style: dotted; +} + +IMG.image1 { + border-width: 1px; + border-style: solid; +} + +IMG.image2 { + border-width: 2px; + border-style: solid; +} + +IMG.image4 { + border-width: 4px; + border-style: solid; +} + +IMG.alias0 { + border-width: 1px; + border-style: dotted; + width: 279px; + height: 186px; + margin: 5px; +} + +IMG.alias1 { + border-width: 1px; + border-style: solid; + width: 279px; + height: 186px; + margin: 5px; +} + +IMG.alias2 { + border-width: 2px; + border-style: solid; + width: 279px; + height: 186px; + margin: 4px; +} + +IMG.alias4 { + border-width: 4px; + border-style: solid; + width: 279px; + height: 186px; + margin: 2px; +} + +IMG.icon { + border-width: 0; + width: 132px; + height: 88px; +} + +IMG.icon0 { + border-width: 1px; + border-style: dotted; + width: 132px; + height: 88px; + margin-top: 10px; + margin-bottom: 5px; + margin-left: 5px; + margin-right: 5px; +} + +IMG.icon1 { + border-width: 1px; + border-style: solid; + width: 132px; + height: 88px; + margin-top: 10px; + margin-bottom: 5px; + margin-left: 5px; + margin-right: 5px; +} + +IMG.icon2 { + border-width: 2px; + border-style: solid; + width: 132px; + height: 88px; + margin-top: 11px; + margin-bottom: 4px; + margin-left: 4px; + margin-right: 4px; +} + +IMG.icon4 { + border-width: 4px; + border-style: solid; + width: 132px; + height: 88px; + margin-top: 13px; + margin-bottom: 2px; + margin-left: 2px; + margin-right: 2px; +} + +IMG.rubric0 { + border-width: 1px; + border-style: dotted; + width: 132px; + height: 88px; + margin-left: 15px; + margin-right: 15px; +} + +IMG.rubric1 { + border-width: 1px; + border-style: solid; + width: 132px; + height: 88px; + margin-left: 15px; + margin-right: 15px; +} + +IMG.rubric2 { + border-width: 2px; + border-style: solid; + width: 132px; + height: 88px; + margin-left: 14px; + margin-right: 14px; +} + +IMG.rubric4 { + border-width: 4px; + border-style: solid; + width: 132px; + height: 88px; + margin-left: 12px; + margin-right: 12px; +} + +IMG.minirubric1 { + border-width: 1px; + border-style: solid; + width: 60px; + height: 40px; + margin-left: 87px; + margin-right: 15px; +} + +IMG.minirubric2 { + border-width: 2px; + border-style: solid; + width: 60px; + height: 40px; + margin-left: 86px; + margin-right: 14px; +} + +IMG.minirubric4 { + border-width: 4px; + border-style: solid; + width: 60px; + height: 40px; + margin-left: 84px; + margin-right: 12px; +} + +IMG.start { + margin-top: 1.5em; +} + +IMG.thumb { + border-width:0; + width: 60px; + height: 40px; + margin-top: 6px; + margin-bottom: 6px; +} + +IMG.thumb0 { + border-width: 1px; + border-style: dotted; + width: 60px; + height: 40px; + margin-top: 5px; + margin-bottom: 5px; +} + +IMG.thumb1 { + border-width: 1px; + border-style: solid; + width: 60px; + height: 40px; + margin-top: 5px; + margin-bottom: 5px; +} + +IMG.thumb2 { + border-width: 2px; + border-style: solid; + width: 60px; + height: 40px; + margin-top: 4px; + margin-bottom: 4px; +} + +IMG.thumb4 { + border-width: 4px; + border-style: solid; + width: 60px; + height: 40px; + margin-top: 2px; + margin-bottom: 2px; +} + +IMG.W3C { + border-width: 0; + width: 88px; + height: 31px; +} + +P.W3C { + margin-top: 36em; + margin-right: 1em; + text-align: right; +} + +P.UCFooter { + margin-top: 3em; + margin-bottom: 0em; + background-color: #403f3f; + color: #d6d6cf; + font-family: Verdana, Arial, Helvetica, sans-serif; + font-size: 70%; + text-align: center; +} + .UCFooter A:link { + border-style: dotted; + border-top-width: 0px; + border-bottom-width: 1px; + border-left-width: 0px; + border-right-width: 0px; + color: #d6d6cf ! important; + } + .UCFooter A:visited { + color: #d6d6cf ! important; + } + .UCFooter A:hover { + color: #d6d6cf ! important; + } + .UCFooter A:active { + color: #d6d6cf ! important; + } + +LI.default { + margin-top: 1em; + margin-bottom: 1em; + text-align: justify; +} + +SPAN.default { + color: #000066 ! important; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; +} + +P.photo_credits { + text-align: right; + font-size: 75%; + margin-top: 0em; +} + +P.photo_credits_center { + text-align: center; + font-size: 75%; + margin-top: 0em; +} + +P.further { + text-align: center; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-style: normal; + font-weight: normal; + text-transform: none; + font-variant: normal; + font-size: 50%; + color: #cc00ff ! important; +} + +P.signature { + position: relative; + top: auto; + right: -6em; + text-align: right; + font-size: 85%; + color: #000066 ! important; +} + +P.default { + color: #000066 ! important; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; +} + +P.closing50 { + text-align: left; + margin-left: 50%; + margin-top: 0em; + margin-bottom: 0em; +} + +P.closing60 { + text-align: left; + margin-left: 60%; + margin-top: 0em; + margin-bottom: 0em; +} + +P.closing-b0-a0 { + text-align: right; + margin-right: 8em; + margin-top: 0em; + margin-bottom: 0em; +} + +P.closing-b1-a0 { + text-align: right; + margin-right: 8em; + margin-top: 3em; + margin-bottom: 0em; +} + +P.closing-b0-a1 { + text-align: right; + margin-right: 8em; + margin-top: 0em; + margin-bottom: 3em; +} + +P.closing-b1-a1 { + text-align: right; + margin-right: 8em; + margin-top: 3em; + margin-bottom: 3em; +} + +P.biblio1 { + margin-top: 0em; + margin-bottom: .5em; + text-align: right; + font-family: Verdana, sans-serif; + font-size: 69%; +} + +P.biblio { + margin-top: 0em; + margin-bottom: 3em; + text-align: right; + font-family: Verdana, sans-serif; + font-size: 69%; +} + +P.biblioA { + margin-top: 0em; + margin-bottom: 0em; + text-align: right; + font-family: Verdana, sans-serif; + font-size: 69%; +} + +P.biblio_intro { + margin-top: 0em; + margin-bottom: 0em; + text-align: right; + font-size: 69%; +} + +P.default { + color: #000066 ! important; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; +} + +P.summary { + font-size: 85%; + margin-top: 3em; + margin-left: 2em; + margin-right: 1em; + text-indent: -1em; + text-align: justify; +} + +P.postsummary { + font-size: 85%; + margin-top: .5em; + margin-left: 2em; + margin-right: 1em; + text-indent: -1em; + text-align: justify; +} + +P.summary_item { + font-size: 85%; + margin-top: 0em; + margin-bottom: 0em; + margin-left: 2em; + margin-right: 1em; + text-indent: -1em; + text-align: justify; +} + +.x1-b0-a0 { + text-align: justify; + margin-left: 30px; + text-indent: -30px; + margin-top: 0em; + margin-bottom: 0em; +} +.x2-b0-a0 { + text-align: justify; + margin-left: 60px; + text-indent: -60px; + margin-top: 0em; + margin-bottom: 0em; +} + +P.justify_indent { + text-align: justify; + margin-top: 0em; + margin-bottom: 0em; + text-indent: 1em; +} + +P.omitted_article { + text-align: justify; + font-weight: bold; + text-transform: uppercase; + color: #999999 ! important; +} + P.omitted_article .Greek { + text-align: justify; + font-weight: bold; + text-transform: none; + color: #999999 ! important; + } + +P.riassunto { + text-align: right; + font-family: Verdana, sans-serif; + font-size: 85%; + color: #ff9900 ! important; + margin-bottom: 40px; + font-weight: bold; +} + +P.riassunto0 { + text-align: right; + font-family: Verdana, sans-serif; + font-size: 85%; + color: #ff9900 ! important; + margin-bottom: 0em; +} + +P.temporarily_omitted { + margin-top: 3em; + text-align: center; + font-size: 160%; + font-weight: bold; + color: #009900 ! important; +} + +TABLE { + margin-bottom: 1em; +} + +TABLE.bodyheight { + line-height: 1.5; +} + +TABLE.GoogleMap { + color: #000099 ! important; + background-color: #ffffff ! important; + font-size: 80%; + margin-bottom: 2em; +} + + TABLE.GoogleMap P { + margin-top: 1em; + margin-bottom: 0em; + margin-left: 10px; + margin-right: 10px; + } + +TABLE.standard { + background-color: #ffffff ! important; + color: #000066 ! important; + font-size: 80%; +} + + TABLE.standard .outquote { + color: #8533ad ! important; + } + + TABLE.standard .bland { + color: #000066 ! important; + } + + TABLE.standard TR.neutral { + background-color: #b2ffff ! important; + } + + TABLE.standard TR TD.neutral { + background-color: #b2ffff ! important; + } + + TABLE.standard P { + margin-top: 0em; + margin-bottom: 0em; + margin-left: 20px; + margin-right: 10px; + text-indent: -10px; + } + + TABLE.standard P.nodent { + text-indent: 0px; + } + + TABLE.standard P.indent { + text-indent: 20px; + } + + TABLE.standard P.start { + margin-top: 1em; + } + + TABLE.standard P.halfstart { + margin-top: .5em; + } + + TABLE.standard A:link { + color: #0000ff ! important; + } + TABLE.standard A:visited { + color: #cc0000 ! important; + } + TABLE.standard A:hover { + color: #ff00ff ! important; + } + TABLE.standard A:active { + color: #ff00ff ! important; + } + + TABLE.standard .Latin { + color: #990000 ! important; + } + TABLE.standard .Latin .emend { + color: #ee6633 ! important; + } + + TABLE.standard .Greek { +/* + color: #994d00 ! important; + */ + color: #8d5c00 ! important; + } + +TR TD.grisaille { + background-color: #eeeeee ! important; + } +TR.odd TD.grisaille { + background-color: #c2f2f2 ! important; + } +TR.even TD.grisaille { + background-color: #92f2f2 ! important; + } + + +/*TABLE.rowspadded: separates the rows as well*/ +TABLE.rowspadded TD { + padding-top: 6px; + padding-bottom: 6px; + padding-left: 12px; + padding-right: 12px; +} + +TABLE.stats { + border-collapse: collapse; +} + + TABLE.stats TD.left { + border-left: 1px; + } + + TABLE.stats TD.right { + border-right: 1px; + } + +TD.b1 { + margin-top: 0; + border-width: 1px; + border-style: solid; +} + +TABLE.b1 { + border-width: 1px; + border-style: solid; +} + +TABLE.b2 { + border-collapse: separate; + border-spacing: 1px; + border: 4px ridge #f6f6f6; +} + + TABLE.b2 TD { + border: 1px solid gray; + } + + TABLE.b2 TD TD { + border: 0; + } + +TABLE.header { + margin: auto; + border-collapse: separate; + border-spacing: 2px; + width: 500px; + border: 0; +} + + TABLE.header TR { + vertical-align: bottom; + } + +/* If the width of headerbox is changed, change also the width of DIV.alert600: */ +TABLE.headerbox { + margin: auto; + border-collapse: separate; + border-spacing: 2px; + width: 600px; + border: 4px ridge #eeeeee; + background-color: #ffffff ! important; + line-height: 1.5; + -webkit-hyphens: none; + -ms-hyphens: none; + hyphens: none; +} + + TABLE.headerbox TD { + border: 1px solid gray; + } + + TABLE.headerbox TD TD { + border: 0; + } + + TABLE.headerbox A:link { + color: #0000ff ! important; + } + TABLE.headerbox A:visited { + color: #cc0000 ! important; + } + TABLE.headerbox A:hover { + color: #ff00ff ! important; + } + TABLE.headerbox A:active { + color: #ff00ff ! important; + } + +/*keep superchapter immediately after headerbox:*/ +H3.superchapter { + width: 588px; /*headerbox minus 12*/ + margin-top: 8em; + margin-left: auto; + margin-right: auto; + font-size: 85%; + text-transform: uppercase; + text-align: center; + font-weight: bold; + letter-spacing: .5em; + border-style: solid; + border-top-width: 1px; + border-bottom-width: 1px; + border-left-width: 0px; + border-right-width: 0px; +} + +TABLE.start { + margin-top: 2.5em; +} + +TABLE.footer { + margin: auto; + margin-top: 5em; + width: 576px; + table-layout: fixed ! important; + column-width: 78px ! important; + padding: 0; + border: 0em; + border-spacing: 0; + empty-cells: show; + background-color: #ffffcc ! important; + -webkit-hyphens: none; + -ms-hyphens: none; + hyphens: none; +} + +TABLE.transparent_image { + margin-left: auto; + margin-right: auto; + margin-top: 1em; + background-color: transparent ! important; +} + +TD.transparent { + background-color: transparent ! important; +} + + + +/* 4/14/11: Used only on homepages for MassaMartana, Monteleone di Spoleto, Trevi, Cannaiola */ +/* NOTE: Their own .js states that modification and hosting are allowed, in case I want to have a stab at my own better formatting */ +TABLE.TweetFeed { + margin: auto; + margin-top: 4em; + margin-bottom: -5em; + width: 576px; + padding: 0; + border: 0em; + border-spacing: 0; + background-color: transparent ! important; +} + +TABLE.twitter { + margin: auto; + margin-top: 5em; + margin-bottom: -5em; + width: 576px; + padding: 0; + border: 0em; + border-spacing: 0; + background-color: transparent ! important; +} + +TABLE.photo { + margin-top: 40px; +} + +TABLE.vertical_pair { + width: 567px; + margin-left: auto; + margin-right: auto; + border-collapse: separate; + border-spacing: 2px; +} + + TABLE.vertical_pair TR { + text-align: justify; + } + + TABLE.vertical_pair TD { + padding: 15px; + } + +TABLE.odd_vertical_pair { + margin-left: auto; + margin-right: auto; + border-collapse: separate; + border-spacing: 2px; +} + + TABLE.odd_vertical_pair TR { + text-align: justify; + } + + TABLE.odd_vertical_pair TD { + vertical-align: middle; + padding: 15px; + } + +TABLE.text_and_vertical { + margin: auto; + border-collapse: separate; + border-spacing: 2px; + width: 581px; +} + + TABLE.text_and_vertical TR { + text-align: justify; + } + + TABLE.text_and_vertical TD { + vertical-align: middle; + padding: 15px; + } + + TABLE.text_and_vertical TD.squeeze { + vertical-align: middle; + padding: 3px; + } + +TABLE.text_and_vertical0 { + margin: auto; + border-collapse: separate; + border-spacing: 0; + width: 573px; +} + + TABLE.text_and_vertical0 TR { + text-align: justify; + } + + TABLE.text_and_vertical0 TD { + vertical-align: middle; + } + + TABLE.text_and_vertical0 TD.squeeze { + vertical-align: middle; + padding: 3px; + } + +TABLE.center { + width: auto; + margin-left: auto; + margin-right: auto; +} + +TABLE.imageF { + border-collapse: separate; + border-spacing: 1px; + border: 4px ridge #f6f6f6; + margin-left: auto; + margin-right: auto; + margin-top: 1em; +} + + TABLE.imageF TD { + border: 1px solid gray; + margin-left: 10px; + margin-right: 10px; + text-align: justify; + font-size: 80%; + } + + TABLE.imageF TD TD { + border: 0; + } + +TABLE.image { + border: 1px solid; + margin-left: auto; + margin-right: auto; + margin-top: 1em; +} + +TABLE.image0 { + border: 1px solid; + margin-top: .30em; + margin-left: auto; + margin-right: auto; +} + +TABLE.startimage { + border: 1px solid; + margin-left: auto; + margin-right: auto; + margin-top: 3em; +} + +TABLE.logo { + border: 0; + margin-left: auto; + margin-right: auto; + width: 132px; +} + +TABLE.embed_left { + border: 1px solid; + float: left; + margin-top: 8px; + margin-right: 8px; +} + +.prose TABLE.embed_left { + border: 1px solid; + float: left; + margin-top: 8px; + margin-right: 16px; +} + +TABLE.embed_left_noborder { + border: 0; + float: left; + margin-top: 8px; + margin-right: 8px; +} + +.prose TABLE.embed_left_noborder { + border: 0; + float: left; + margin-top: 8px; + margin-right: 16px; +} + +TABLE.embed_right { + border: 1px solid; + float: right; + margin-top: 8px; + margin-left: 8px; +} + +.prose TABLE.embed_right { + border: 1px solid; + float: left; + margin-top: 8px; + margin-left: 16px; +} + +TABLE.embed_right_noborder { + border: 0; + float: right; + margin-top: 8px; + margin-left: 8px; +} + +.prose TABLE.embed_right_noborder { + border: 0; + float: left; + margin-top: 8px; + margin-left: 16px; +} + +/* THE FOLLOWING ALIGNMENTS DON'T WORK IN SAFARI OR EXPLORER: */ + +/* TD.decimal { */ +/* text-align: "."; */ +/* } */ + +/* TD.middot { */ +/* text-align: "°§"; */ +/* } */ + +TD.sidepadded { + padding: 0 1em; +} + +.sidebar { + margin-left: 2em; + margin-right: 2em; + font-size: 85%; + font-style: italic; + padding: 0 .5em; + border-style: solid; + border-top-width: 1px; + border-bottom-width: 1px; + border-left-width: 0; + border-right-width: 0; +} + +.arithmetic { + font-family: Courier, monospace; + padding: 0 .5em; + text-align: right; + margin-top: 0em; + margin-bottom: 0em; +} + +.arithmetic .underscore { + color: #ff0000 ! important; + border-style: solid; + border-bottom-width: 1px; +} + +TD.lineunder { + font-family: Courier, monospace; + padding: 0 .5em; + text-align: right; + border-style: solid; + border-top-width: 0px; + border-bottom-width: 1px; + border-left-width: 0px; + border-right-width: 0px; + margin-top: 0em; + margin-bottom: 0em; +} + +.total { + font-family: Courier, monospace; + padding: 0 .5em; + text-align: right; + border-style: solid; + border-top-width: 1px; + border-bottom-width: 0px; + border-left-width: 0px; + border-right-width: 0px; + margin-top: 0em; + margin-bottom: 0em; +} + +.totalwithleftBorder { + font-family: Courier, monospace; + padding: 0 .5em; + text-align: right; + border-style: solid; + border-top-width: 1px; + border-bottom-width: 0px; + border-left-width: 1px; + border-right-width: 0px; + margin-top: 0em; + margin-bottom: 0em; +} + +.totalwithrightBorder { + font-family: Courier, monospace; + padding: 0 .5em; + text-align: right; + border-style: solid; + border-top-width: 1px; + border-bottom-width: 0px; + border-left-width: 0px; + border-right-width: 1px; + margin-top: 0em; + margin-bottom: 0em; +} + +/* +double underscores, see: +E/Gazetteer/Places/Europe/Italy/_Texts/HODIHI/2d_edition/6/NoteF*.html + */ +.double_underscored_total { + font-family: Courier, monospace; + padding: 0 .5em; + text-align: right; + border-style: double; + border-top-width: 0px; + border-bottom-width: 4px; + border-left-width: 0px; + border-right-width: 0px; + margin-top: 0em; + margin-bottom: 0em; +} + +.doubleunder { + border-bottom-style: double; + border-bottom-width: 3px; +} + +.top_border { + border-style: solid; + border-top-width: 1px; +} + +.top_and_bottom_border { + border-style: solid; + border-top-width: 1px; + border-bottom-width: 1px; + border-left-width: 0px; + border-right-width: 0px; +} + +TD.alias { + width: 292px; + text-align: center; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-weight: bold; +} + +TD.quietalias { + width: 292px; + font-size: 80%; +} + +TD.right { + text-align: right; +} + +TD.cell { + text-align: center; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-size: 50%; +/* font-size was originally 9.1px */ +} + +TD.midcell { + vertical-align: middle; + text-align: center; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-size: 50%; +} + +TD.upcell1 { + width: 78px; + vertical-align: middle; + text-align: center; + font-family: Verdana, sans-serif; + font-size: 55%; + font-weight: bold; + color: #0000ff ! important; + background-color: #ffffcc ! important; +} + +TD.upcell { + width: 78px; + text-align: center; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-size: 50%; + background-color: #ffffcc ! important; + color: #cccccc ! important; /* grey only if no link; otherwise, overridden*/ +} + +/* The following is used for upcells, etc. that are just a text anchor, in order to line them up right. See examples in AOG Reunions. */ +.no_image { + vertical-align: middle; + margin-top: 24px; + margin-bottom: 24px; +} + +TD.alsocell1 { + vertical-align: middle; + text-align: center; + font-family: Verdana, sans-serif; + font-size: 55%; + font-weight: bold; + color: #0000ff ! important; + background-color: #ffff99 ! important; +} + +TD.alsocell { + width: 78px; + text-align: center; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-size: 50%; + background-color: #ffff99 ! important; + color: #cccccc ! important; /* grey only if no link; otherwise, overridden*/ +} + +TD.alsocell2 { + width: 156px; + text-align: center; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-size: 50%; + background-color: #ffff99 ! important; +} + +TD.offcell1 { + vertical-align: middle; + text-align: center; + font-family: Verdana, sans-serif; + font-size: 55%; + font-weight: bold; + color: #0000ff ! important; + background-color: #ffff66 ! important; +} + +TD.offcell { + width: 78px; + text-align: center; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-size: 50%; + color: #0000ff ! important; + background-color: #ffff66 ! important; +} + +TD.previouscell { + width: 100px; + vertical-align: middle; + text-align: center; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-size: 50%; +} + +TD.nextcell { + width: 100px; + vertical-align: middle; + text-align: center; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-size: 50%; +} + +TD.pinkcell { + width: 78px; + text-align: center; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-size: 50%; + background-color: #ffcccc ! important; +} + +TD.toughcell { + width: 78px; + text-align: center; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-size: 50%; + background-color: #ffff33 ! important; +} + +TD.churchcell { + width: 78px; + text-align: center; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-size: 50%; + background-color: #ecdaff ! important; +} + +TD.churchcell1 { + vertical-align: middle; + text-align: center; + font-family: Verdana, sans-serif; + font-size: 55%; + font-weight: bold; + color: #0000ff ! important; + background-color: #ecdaff ! important; +} + +TD.diarycell { + width: 78px; + text-align: center; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-size: 50%; + background-color: #99ffcc ! important; +} + +TD.diarycell1 { + vertical-align: middle; + text-align: center; + font-family: Verdana, sans-serif; + font-size: 55%; + font-weight: bold; + color: #0000ff ! important; + background-color: #99ffcc ! important; +} + +.transcription { + font-family: Verdana, sans-serif; + font-size: 90%; + color: #990000 ! important; + background-color: #ffffff ! important; +} + +.expansion { + font-family: Verdana, sans-serif; + font-size: 90%; + color: #990000 ! important; + background-color: #ffffcc ! important; +} + +.interpretation { + font-family: Verdana, sans-serif; + font-size: 90%; + color: #000033 ! important; + background-color: #ffcccc ! important; +} + +/* + the widths of "flag" and "mail" work together to add to 100%: + [1* the width of "mailN"] + [(N-1) * the width of "flagN"] add to 100% + + where "100%" is the width of TABLE.header or TABLE.headerbox +*/ + +TD.USMA_flag { + text-align: right; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-size: 50%; +} + +TD.flag { + text-align: center; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-size: 80%; +} + +TD.flagcell { + vertical-align: bottom; + text-align: center; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; +} + +TD.flagcell .Greek { + font-size: 95%; + line-height: 1.15; /* Greek fonts have more line-height built‑in, force smaller */ +} + +TD.flagcell .Ukrainian { + line-height: 1.00; /* Ukrainian fonts have more line-height built‑in, force smaller */ + color: #000066; /* to prevent Ukrainian-language color */ +} + +TD.mailcell { + vertical-align: bottom; + text-align: center; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; +} + +TR.header2 { + font-size: 80%; +} + TR.header2 .mailcell { + width: 75%; + } + TR.header2 .flagcell { + width: 25%; + } + +TR.header3 { + font-size: 80%; +} + TR.header3 .mailcell { + width: 40%; + } + TR.header3 .flagcell { + width: 30%; + } + +TR.header4 { + font-size: 80%; +} + TR.header4 .mailcell { + width: 28%; + } + TR.header4 .flagcell { + width: 24%; + } + +TR.header5 { + font-size: 80%; +} + TR.header5 .mailcell { + width: 28%; + } + TR.header5 .flagcell { + width: 18%; + } + +TR.header6 { + font-size: 75%; +} + TR.header6 .mailcell { + width: 20%; + } + + TR.header6 .flagcell { + width: 16%; + } + +TR.header7 { + font-size: 70%; +} + TR.header7 .mailcell { + width: 16%; + } + TR.header7 .flagcell { + width: 14%; + } + +TR.header7 { + font-size: 70%; +} + TR.header8 .mailcell { + font-size: 70%; + width: 16%; + } + TR.header8 .flagcell { + font-size: 70%; + width: 12%; + } + +TD.flag4 { + text-align: center; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-size: 80%; + width: 24%; +} + +TD.flag5 { + text-align: center; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-size: 80%; + width: 18%; +} + +TD.flag6 { + text-align: center; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-size: 75%; + width: 16%; +} + +TD.flag7 { + text-align: center; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-size: 70%; + width: 14%; +} + +TD.flag8 { + text-align: center; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-size: 70%; + width: 12%; +} + +TD.incipit { + text-align: center; + font-family: "Times New Roman", serif; + font-size: 85%; +} + +TD.mail { + width: 100px; + vertical-align: bottom; + text-align: center; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-size: 80%; +} + +TD.mail4 { + vertical-align: bottom; + text-align: center; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-size: 80%; + width: 28%; +} + +TD.mail5 { + vertical-align: bottom; + text-align: center; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-size: 80%; + width: 28%; +} + +TD.mail6 { + vertical-align: bottom; + text-align: center; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-size: 75%; + width: 20%; +} + +TD.mail7 { + vertical-align: bottom; + text-align: center; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-size: 70%; + width: 16%; +} + +TD.mail8 { + vertical-align: bottom; + text-align: center; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-size: 70%; + width: 16%; +} + +TD.icon { + width: 146px; + text-align: center; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-size: 69%; +} + TD.icon IMG.icon0 { + margin-top: 16px; + } + TD.icon IMG.icon1 { + margin-top: 16px; + } + TD.icon IMG.icon2 { + margin-top: 15px; + } + +/* PHASE OUT "TD.rubric": From now on, use TABLE.rubric (which specifies the 85% font); and each time, immediately delete all TD class attributes "CLASS="rubric" — leaving, however, any "TD CLASS="rubricB". When all "rubric" tables have been switched over, delete this style: it isn't needed at all. The model page is the main Umbertide page. */ +TD.rubric { + text-align: justify; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + margin-left: 10px; + margin-right: 10px; + font-size: 85%; +} + +TD.rubricTEMP { + text-align: justify; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + margin-left: 10px; + margin-right: 10px; +} + +TD.rubricB { + text-align: justify; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + margin-left: 10px; + margin-right: 10px; + vertical-align: bottom; +} + +TD.rubricT { + text-align: justify; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + margin-left: 10px; + margin-right: 10px; + vertical-align: top; +} + +TD.banner { + background-color: #ccffff ! important; + text-align: center; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-size: 100%; + color: #cc0066 ! important; + font-weight: bold; +} + +TD.update { + text-align: center; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + color: #cc0066 ! important; +} + +TR { + vertical-align: top; +} + +TR.down { + vertical-align: bottom; +} + +TR.middle { + vertical-align: middle; +} + +TR.up { + background-color: #ffffcc ! important; + empty-cells: show; + vertical-align: top; +} + +TR.also { + background-color: #ffff99 ! important; + empty-cells: show; + vertical-align: top; +} + +TR.church { + background-color: #ecdaff ! important; + empty-cells: show; + vertical-align: top; +} + +TR.diary { + background-color: #99ffcc ! important; + empty-cells: show; + vertical-align: top; +} + +TR.off { + background-color: #ffff66 ! important; + empty-cells: show; + vertical-align: top; +} + +TR.lapidary { + font-family: Verdana, sans-serif; + font-size: 90%; + color: #990000 ! important; + background-color: #ffffff ! important; +} + +.translation { + font-family: Verdana, sans-serif; + font-size: 90%; + color: #000066 ! important; + background-color: #ffff99 ! important; +} + +.sandstone .translation { + color: #000066 ! important; + background-color: #f0d9c7 ! important; +} + +TR.interpretation { + font-family: Verdana, sans-serif; + font-size: 90%; + color: #000033 ! important; + background-color: #ffcccc ! important; +} + +TABLE P.x1 { + margin-top: 0em; + margin-bottom: 0em; + margin-left: 20px; + margin-right: 10px; + text-indent: -10px; + } + +TABLE P.x2 { + margin-top: 0em; + margin-bottom: 0em; + margin-left: 30px; + margin-right: 30px; + text-indent: -30px; + } + +DIV.TOCbox { + width: 527px ! important; /* TOC minus 49 */ + background-color: #ccffff ! important; + text-align: justify; + font-size: 85%; + color: #000066 ! important; + margin: auto; + padding-top: 0.4em; + padding-bottom: 0.4em; + padding-left: 1.3em; + padding-right: 1.3em; + border-style: ridge +} + + .TOCbox H3 { + margin-top: 1.5em; /* same as halfstart */ + } + +TABLE.TOC { + background-color: #ffffff ! important; + color: #000066 ! important; + border-width: 5px; + border-collapse: collapse; + border-style: double; + font-size: 80%; +} + +TABLE.with_dividers { + border-collapse: collapse; +} + +TABLE.with_dividers TR.discreetly_separated{ + border-color: #ffffff; +} + + .TOC A { + color: #0000ff ! important; + } + .TOC A:link { + color: #0077cc ! important; + } + .TOC A:visited { + color: #ff0000 ! important; + } + .TOC A:hover { + color: #ff00ff ! important; + } + .TOC TD { + vertical-align: middle; + } + + .TOC P { + margin-top: 0em; + margin-bottom: 0em; + margin-left: 20px; + margin-right: 10px; + text-indent: -10px; + } + + .TOC P.center { + text-align: center; + margin-top: 0em; + margin-bottom: 0em; + margin-left: 0em; + margin-right: 0em; + text-indent: 0; + } + + .TOC P.white { + color: #000066; + } + + .TOC P.m1 { + margin-top: 0em; + margin-bottom: 0em; + margin-left: 30px; + margin-right: 20px; + text-indent: 0; + } + + .TOC P.m1x1 { + margin-top: 0em; + margin-bottom: 0em; + margin-left: 2em; + margin-right: 1em; + text-indent: -1em; + } + + .TOC P.m1x2 { + margin-top: 0em; + margin-bottom: 0em; + margin-left: 3em; + margin-right: 1em; + text-indent: -2em; + } + + .TOC P.m2 { + margin-top: 0em; + margin-bottom: 0em; + margin-left: 2em; + margin-right: 2em; + text-indent: 0; + } + + .TOC P.m2x1 { + margin-top: 0em; + margin-bottom: 0em; + margin-left: 3em; + margin-right: 2em; + text-indent: -1em; + } + + .TOC P.m2x2 { + margin-top: 0em; + margin-bottom: 0em; + margin-left: 4em; + margin-right: 2em; + text-indent: -2em; + } + + .TOC P.m3 { + margin-top: 0em; + margin-bottom: 0em; + margin-left: 3em; + margin-right: 3em; + text-indent: 0; + } + + .TOC P.m3x1 { + margin-top: 0em; + margin-bottom: 0em; + margin-left: 4em; + margin-right: 2em; + text-indent: -1em; + } + + .TOC P.m3x2 { + margin-top: 0em; + margin-bottom: 0em; + margin-left: 5em; + margin-right: 2em; + text-indent: -2em; + } + + .TOC P.m4 { + margin-top: 0em; + margin-bottom: 0em; + margin-left: 4em; + margin-right: 4em; + text-indent: 0; + } + + .TOC P.x2 { + margin-left: 50px; + text-indent: -40px; + } + +TABLE.TOC1 { + background-color: #ffffff ! important; + border-width: 5px; + border-style: double; + font-size: 80%; +} + + .TOC1 TD { + vertical-align: middle; + } + + .TOC1 P { + margin-top: 0.24em; + margin-bottom: 0.24em; + margin-left: 20px; + margin-right: 10px; + text-indent: -10px; + } + + .TOC1 .m1 { + margin-left: 30px; + margin-right: 30px; +} + +TABLE.newpages { + margin-top: 5em; + font-size: 85%; +} + + TABLE.newpages .m2x1 { + margin-left: 4em; + margin-right: 2em; + text-indent: -1em; + } + + TABLE.newpages .m3x1 { + margin-left: 5em; + margin-right: 3em; + text-indent: -1em; + } + + TABLE.newpages B { + color: #444444 ! important; + } + TABLE.newpages .bold { + color: #444444 ! important; + } + TABLE.newpages A.bold { + color: #0000ff ! important; + } + TABLE.newpages A:link { + color: #0000ff ! important; + } + TABLE.newpages A:visited { + color: #cc0000 ! important; + } + TABLE.newpages A:hover { + color: #ff00ff ! important; + } + TABLE.newpages A:active { + color: #ff00ff ! important; + } + +TABLE.dotpoints { + width: 90%; + margin: auto; + line-height: 1.5; + text-align: justify; +} + + TABLE.dotpoints TD { + padding-left: 10px; + padding-right: 10px; + } + +.TOCitem { + text-align: justify; + font-size: 80%; + margin-left: 2em; + margin-right: 1em; + text-indent: -1em; +} + +.TOCpagenum { + vertical-align: middle; + font-family: Courier, monospace; + text-align: right; + padding-right: 10px; + margin-left: 10px; +} + +.TOCchapnum { + vertical-align: middle; + text-align: center; + font-weight: bold; + font-size: 190%; +} + +TD.leadoff_summary { + background-color: #ccffff ! important; + font-family: Verdana, Arial, Helvetica, sans-serif; + font-size: 53%; + color: #000066 ! important; + text-align: center; + border-style: solid; + border-color: #990000; + border-width: 1px; +} + +TD.Roman_summary { + background-color: #ff99ff ! important; + font-family: Verdana, Arial, Helvetica, sans-serif; + font-size: 53%; + text-align: center; +} + +.big_caption { + text-align: center; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-weight: bold; +} + +.caption { + text-align: center; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-size: 80%; +} + + .caption .photo_credits { + margin-top: .5em; + margin-right: 0; +} + +.low_caption { + text-align: center; + font-size: 85%; + text-transform: uppercase; + margin-bottom: 0; +} + +.image_title { + text-align: center; + margin-top: 0.5em; + hyphens: none; +} + +TD.contents { + margin-left: 10px; + margin-right: 10px; + font-size: 80%; +} + +.contents { + margin-left: 10px; + margin-right: 10px; + font-size: 80%; +} + + .contents .inscription { + font-family: Verdana, sans-serif; + font-size: 80%; + line-height: 1.2; /* line-height of ".inscription" (1.5) multiplied by font-size of ".contents" */ +} + + .contents .small_inscription { + font-family: Verdana, sans-serif; + font-size: 80%; +} + + .contents .Ukrainian { + font-size: 80%; + line-height: 1.08; +} + + .contents .lapis { + font-family: Verdana, sans-serif; + font-size: 80%; + line-height: 1.2; +} + + .contents .nummus { + color: #990000 ! important; + font-family: Verdana, sans-serif; + font-size: 80%; + text-transform: uppercase; + line-height: 1.2; +} + + .contents P { + margin-left: 10px; + margin-right: 10px; +} + +.ecru1 { + background-color: #ffffcc ! important; +} + +.ecru2 { + background-color: #ffff99 ! important; +} + +.ecru3 { + background-color: #ffff66 ! important; +} + +.ex { + text-align: justify; + margin-left: 30px; + text-indent: -30px; +} + +.exdent { + text-align: justify; + margin-left: 30px; + text-indent: -30px; + font-family: Verdana, sans-serif; + font-size: 75%; + line-height: 120%; +} + +.exdent_quote { + text-align: justify; + margin-top: 0em; + margin-bottom: 0em; + margin-left: 30px; + text-indent: -30px; + font-family: Verdana, sans-serif; + font-size: 85%; + color: #990000 ! important; + line-height: 100%; +} + +.index { + text-align: justify; + margin-left: 30px; + text-indent: -30px; + font-size: 75%; +} + +.index-start { + margin-top: 3em; + text-align: justify; + margin-left: 30px; + text-indent: -30px; + font-size: 75%; +} + +.margin { + margin-left: 40px; + margin-right: 40px; +} + +.nomargin { + margin-left: -40px; + margin-right: -40px; +} + +.not_online1 { + background-color: #e0e0e0 ! important; + font-size: 90%; + color: #666666 ! important; +} + +.not_online2 { + background-color: #d0d0d0 ! important; + font-size: 90%; + color: #555555 ! important; +} + +.offsite1 { + background-color: #ccffe5 ! important; +} + +.offsite2 { + background-color: #99ffcc ! important; +} + +.pad { + margin-left: 10px; + margin-right: 10px; +} + +TABLE.padsides TD { + padding-left: 10px; + padding-right: 10px; + font-size: 90%; +} + +.proofread0 { + background-color: #b2ffff ! important; +} + +.proofread1 { /* 90% white */ + background-color: #ccffff ! important; +} + TR.proofread1 TD.not_online { + background-color: #e0e0e0 ! important; + font-size: 90%; + color: #555555 ! important; + } + + .proofread1 .comment { + font-weight: bold; + color: #990099! important; + } + + .proofread1 .emend { + color: #339933 ! important; + } + + .proofread1 .primary_source { + color: #2AA22A ! important; + } + + .proofread1 .source { + font-weight: bold; + color: #006600! important; + } + + TR.proofread1 TD A { + color: #0000ff! important; + } + TR.proofread1 TD A:link { + color: #0000ff ! important; + } + TR.proofread1 TD A:visited { + color: #ff0000 ! important; + } + TR.proofread1 TD A:hover { + color: #ff00ff ! important; + } + TR.proofread1 TD A:active { + color: #ff00ff ! important; + } + +.proofread2 { /* 80% white */ + background-color: #99ffff ! important; +} + TR.proofread2 TD.not_online { + background-color: #d0d0d0 ! important; + font-size: 90%; + color: #555555 ! important; + } + + .proofread2 .comment { + font-weight: bold; + color: #990099! important; + } + + .proofread2 .emend { + color: #339933 ! important; + } + + .proofread2 .source { + font-weight: bold; + color: #006600! important; + } + + TR.proofread2 TD A { + color: #0000ff! important; + } + + TR.proofread2 TD A:link { + color: #0000ff ! important; + } + TR.proofread2 TD A:visited { + color: #ff0000 ! important; + } + TR.proofread2 TD A:hover { + color: #ff00ff ! important; + } + TR.proofread2 TD A:active { + color: #ff00ff ! important; + } + +.needs_images0 { + background-color: #c6d9ff ! important; +} + +.needs_images1 { /* 90% white, and closer to proofread1 than to unproofread1 */ + background-color: #ccddff ! important; +} + TR.needs_images1 TD A { + color: #0000ff! important; + } + + TR.needs_images1 TD A:link { + color: #0000ff ! important; + } + TR.needs_images1 TD A:visited { + color: #ff0000 ! important; + } + TR.needs_images1 TD A:hover { + color: #ff00ff ! important; + } + TR.needs_images1 TD A:active { + color: #ff00ff ! important; + } + +.needs_images2 { /* 85% white, and closer to proofread2 than to unproofread2 */ + background-color: #b2ccff ! important; +} + TR.needs_images2 TD A { + color: #0000ff! important; + } + + TR.needs_images2 TD A:link { + color: #0000ff ! important; + } + TR.needs_images2 TD A:visited { + color: #ff0000 ! important; + } + TR.needs_images2 TD A:hover { + color: #ff00ff ! important; + } + TR.needs_images2 TD A:active { + color: #ff00ff ! important; + } + + +.gloss { + font-family: Verdana, sans-serif; + font-size: 90%; + color: #660099 ! important; + } + +/* An imperfect workaround used for pulling text up one line in order to superimpose two lines: the second line is the one that gets the style. */ +/* +Used in +E/Gazetteer/People/Robert_Edward_Coontz/From_the_Mississippi_to_the_Sea/Appendices/C*.html + */ +.up1line { + margin-top: -2.5em; +} + +.unindented_prose { + font-family: "Myriad Web Pro", Helvetica, Geneva, "Lucida Grande", sans-serif; + line-height: 1.5; + font-size: 85%; + text-align: justify; +} + +.allcaps { + text-transform: uppercase; + letter-spacing: .05em; +} + +.prose { + font-family: "Myriad Web Pro", Helvetica, Geneva, "Lucida Grande", sans-serif; + line-height: 1.5; + font-size: 85%; + margin-left: 2em; + margin-right: 2em; + text-align: justify; +} + + .prose .normal { + font-family: Verdana, sans-serif; + font-size: 90%; + color: #660099 ! important; + } + + .prose .citation { + font-weight: bold; + font-size: 85%; + font-variant: normal; + } + + .prose .manuscript { + font-size: 90%; + } + + .prose .Greek { + color: #996600 ! important; + font-family: "Lucida Grande", "Palatino Linotype", "Arial Unicode Ms", "Titus Cyberbit Basic", "Lucida Sans Unicode", sans-serif ! important; + font-size: 95%; + } + + .prose TABLE { + font-family: "Myriad Web Pro", Helvetica, Geneva, "Lucida Grande", sans-serif; + margin-left: -.2em; + margin-right: -.2em; + line-height: 1.5; + font-size: 100%; + text-align: justify; + } + +.outquote { + color: #7700b3 ! important; +} + +.quote { + font-family: Verdana, sans-serif; + font-size: 85%; +} + +.quote1 { + font-family: Verdana, sans-serif; + font-size: 85%; + margin-left: 2em; + margin-right: 2em; +} + + .quote1 P { + margin-top: 0em; + margin-bottom: 0em; + text-indent: 1em; + text-align: justify; + } + + .quote1 P.right { + margin-top: 0em; + margin-bottom: 0em; + text-align: right; + } + + .quote1 P.center { + margin-top: 0em; + margin-bottom: 0em; + text-align: center; + } + + .quote1 P.in{ + margin-top: 0em; + margin-bottom: 0em; + text-indent: 0em; + text-align: justify; + } + +.verseTEST { + font-family: Verdana, sans-serif; + font-size: 85%; + position: relative; + margin: auto; + height: 50%; + top: 25%; +} + +.verseTEST P { + margin: auto; + margin-top: 0em; + margin-bottom: 0em; + margin-left: 3em; + text-indent: -3em; +} + +/*Greek TEST (settled)*/ +.verse { + font-family: "Myriad Web Pro", Helvetica, Geneva, "Lucida Grande", sans-serif; + line-height: 1.5; + font-size: 85%; + letter-spacing: .06em; + margin-left: 2em; + margin-right: 2em; +} + + .mynote .verse { + color: #000066 ! important; + } + + .mynoteWide .verse { + color: #000066 ! important; + } + + +.verse .right { + font-family: "Myriad Web Pro", Helvetica, Geneva, "Lucida Grande", sans-serif; + font-size: 85%; + margin-left: 2em; + margin-right: 2em; +} + +.verse P { + margin-top: 0em; + margin-bottom: 0em; + margin-left: 3em; + margin-right: 3em; + text-indent: -3em; +} + +.verse P.nopad { + margin-top: 0em; + margin-bottom: 0em; + margin-left: 0em; + margin-right: 0em; + color: #ff6600 ! important;} + +/* +TABLE.verse P.center { + margin-top: 0em; + margin-bottom: 0em; + margin-left: 3em; + margin-right: 3em; +} +*/ + +.verse P.start { + margin-top: 1em; + margin-bottom: 0em; +} + +.verse P.start2 { + margin-top: 5em; + margin-bottom: 0em; +} + +.verse .verse { + font-size: 100%; + text-indent: -2em; +} + +.verse .verse1 { + text-indent: 0em; +} + +.verse .verse2 { + text-indent: 2em; +} + +.verse .verse3 { + text-indent: 4em; +} + +.verse .verse4 { + text-indent:6em; +} + +.verse .verse5 { + text-indent: 8em; +} + +.verse .verse6 { + text-indent: 10em; +} + +.verse .verse7 { + text-indent: 12em; +} + +.verse .verse8 { + text-indent: 14em; +} + +.verse .verse9 { + text-indent: 16em; +} + +.verse .verse10 { + text-indent: 18em; +} + +.verse .verse11 { + text-indent: 20em; +} + +.verse .verse12 { + text-indent: 22em; +} + +.unproofread0 { + background-color: #ffb2b2 ! important; +} + +.unproofread1 { /* 90% white */ + background-color: #ffcccc ! important; +} + TR.unproofread1 TD.not_online { + background-color: #e0e0e0 ! important; + font-size: 90%; + color: #555555 ! important; + } + + TR.unproofread1 TD A { + color: #0000ff! important; + } + + TR.unproofread1 TD A:link { + color: #0000ff ! important; + } + TR.unproofread1 TD A:visited { + color: #ff0000 ! important; + } + TR.unproofread1 TD A:hover { + color: #ff00ff ! important; + } + TR.unproofread1 TD A:active { + color: #ff00ff ! important; + } + +.unproofread2 { /* 80% white */ + background-color: #ff9999 ! important; +} + TR.unproofread2 TD.not_online { + background-color: #d0d0d0 ! important; + font-size: 90%; + color: #555555 ! important; + } + + TR.unproofread2 TD A { + color: #0000ff! important; + } + + TR.unproofread2 TD A:link { + color: #0000ff ! important; + } + TR.unproofread2 TD A:visited { + color: #ff0000 ! important; + } + TR.unproofread2 TD A:hover { + color: #ff00ff ! important; + } + TR.unproofread2 TD A:active { + color: #ff00ff ! important; + } + + +.unproofread3 { + background-color: #ff6666 ! important; +} + +.unproofread4 { + background-color: #ff3333 ! important; +} + +TR.thanks { + background-color: #ccffff ! important; +} + +.thanks { + margin-left: 10em; + font-size: 85%; + background-color: #ccffff ! important; + vertical-align: middle; + text-align: center; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + color: #cc3300 ! important; +} + +.thanks A:visited { + color: #00ff00 ! important; /* THIS DOESN'T WORK. */ +} + +.thanks A { + font-weight: bold; + font-size: 120%; + color: #0000ff ! important; +} + +P.thanks { + margin: 1em; +} + +/* COMPOUND SCHEMES: */ + +.callout1 { + font-family: sans-serif; + color: #8800cc ! important; +} + +.sans { + font-family: sans-serif; +} + +.callout-red { + font-family: sans-serif; + color: #cc0033 ! important; +} + +.callout-orange { + font-family: sans-serif; + color: #cc9900 ! important; +} + +.epitome { + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + color: #660066 ! important; +} + +.Tzetzes { + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + color: #003333 ! important; +} + +.nummus { + color: #990000 ! important; + font-family: Verdana, sans-serif ! important; + font-size: 80% ! important; + text-transform: uppercase ! important; +} + + .nummus .emend { + color: #ee6633 ! important; + } + + .nummus .superscript { + font-size: 50%; + vertical-align: top; + } + +.Tiny { + font-family: Tiny, sans-serif; + font-size: 62%; +} + +/* THIS SEEMS NOT TO BE USED. I COMMENTED IT OUT BECAUSE IT CONFLICTS WITH TR.up, CAUSING A MINOR BUT UNAESTHETIC GLITCH IN FOOTERS. IF IT NEEDS TO BE RESTORED, RENAME IT. +.up { + position: relative; + top: -4px; +} + */ + +.Verdana { + font-family: Verdana, sans-serif; + font-size: 85%; +} + +/* COLOR SCHEMES:*/ + /* for table columns and rows:*/ + +.green1 { + background-color: #ccffcc ! important; +} + +.green2 { + background-color: #99ff99 ! important; +} + +.beige1 { + background-color: #fff7f2 ! important; +} + +.beige2 { + background-color: #ffe7d9 ! important; +} + +.blue1 { + background-color: #ccffff ! important; +} + +.blue2 { + background-color: #99ffff ! important; +} + +.purple1 { + background-color: #ffddff ! important; +} + +.purple2 { + background-color: #ffaaff ! important; +} + +.red1 { + background-color: #ffbbbb ! important; +} + +.red2 { + background-color: #ff8888 ! important; +} + +.orange1 { + background-color: #ffddbb ! important; +} + +.orange2 { + background-color: #ffbb88 ! important; +} + +.yellow1 { + background-color: #ffffaa ! important; +} + +.yellow2 { + background-color: #ffff55 ! important; +} + +.grey0 { + background-color: #f6f6f6 ! important; +} + +.grey1 { + background-color: #e9e9e9 ! important; +} + +.grey2 { + background-color: #e3e3e3 ! important; +} + +.road1 { + background-color: #ffffcc ! important; +} + +.road2 { + background-color: #ffff99 ! important; +} + +.land1 { + background-color: #ccffcc ! important; +} + +.land2 { + background-color: #99ff99 ! important; +} + +.sandstone1 { + background-color: #ffeedd ! important; +} + +.sandstone2 { + background-color: #eeddcc ! important; +} + +.sea1 { + background-color: #ccffff ! important; +} + +.sea2 { + background-color: #99ffff ! important; +} + +.row1cell1 { + background-color: #ffffcc ! important; +} + +.row1cell2 { + background-color: #ccffff ! important; +} + +.row2cell1 { + background-color: #ffff99 ! important; +} + +.row2cell2 { + background-color: #99ffff ! important; +} + +.addendum { + color: #003399 ! important; +} + +.callout { + color: #8800cc ! important; +} + + +DIV.boxlinksprompt { + background-color: #E8E8E8 !important; + text-align: center; + font-size: 65%; + color: #061CBE !important; + width: 42em; + margin-left: auto; + margin-right: auto; + margin-top: 3em; + padding-top: 0.4em; + padding-bottom: 0.4em; + padding-left: 0.6em; + padding-right: 0.6em; + border: .25em ridge #ffffff !important; +} + +.GazetteerPrompt { + background-color: #ebebff ! important; + color: #0066ff ! important; +} + + .GazetteerPrompt .title { + margin-bottom: 0em; + text-align: center; + color: #0000ff ! important; +} + + .GazetteerPrompt P { + margin-top: 0em; +} + +.HistoryPrompt { + background-color: #ffebeb ! important; + color: #993333 ! important; +} + + .HistoryPrompt .title { + margin-bottom: 0em; + text-align: center; + color: #ff0000 ! important; +} + + .HistoryPrompt P { + margin-top: 0em; +} + +.MixedPrompt { + background-color: #ffe5ff ! important; + color: #663399 ! important; +} + + .MixedPrompt .title { + margin-bottom: 0em; + text-align: center; + color: #cc00ff ! important; +} + + .MixedPrompt P { + margin-top: 0em; +} + +.recommended { + background-color: #ccffcc ! important; +} + +.not_recommended { + background-color: #ffeedd ! important; +} + +/* +TABLE COLORS: use country name nouns, reserving adjectives for font styles +*/ +.France { + color: #001099 ! important; + border: 1px solid #cc0000 ! important; +} + +.Italy { + color: #309900 ! important; + border: 1px solid #cc0000 ! important; +} + +.Symbola{ + font-family: Symbola; +} diff --git a/sources/book_4b_files/up.gif b/sources/book_4b_files/up.gif new file mode 100644 index 0000000..526a178 Binary files /dev/null and b/sources/book_4b_files/up.gif differ diff --git a/sources/book_4c.html b/sources/book_4c.html new file mode 100644 index 0000000..e18b8c1 --- /dev/null +++ b/sources/book_4c.html @@ -0,0 +1,2521 @@ + + + + + + + + + + +LacusCurtius • Ad Herennium — Book IV, 47‑69 + + + + + + + + + + + + + + + +

+ + + + +
+
+ 
+[image ALT: Much of my site will be useless to you if you've got the images turned off!]
+
+ + + + + + + + + + + + + + + + + +
+mail: +
+Bill Thayer + +
+ + 
+[image ALT: Cliccare qui per una pagina di aiuto in Italiano.]
+
+Italiano +
+
+ + 
+[Link to a series of help pages]
+
+Help +
+
+ + [Link to the next level up]
+Up +
+
+ + [Link to my homepage]
+Home +
+
+ + + + + +
+ previous: +
+ 
+[image ALT: link to previous section]
+
+IV.19‑46 +
+
+

+This webpage reproduces part of +
+a complete English translation of the +
+ +Rhetorica ad Herennium + +
+published in the +Loeb Classical Library, +
+1954 +

+The text is in the public domain. + +

+This page has been carefully proofread +
+and I believe it to be free of errors. +
+If you find a mistake though, +
+ +please let me know! + +

+ [image ALT: a blank space] +
+
+ + +

+ +Rhetorica ad Herennium + +

+ +

+  p347  +Book IV +

+ + +

+ [34] +[46] This is substantially all +I have thought it necessary to say on the Figures of Diction. Now +the subject itself directs me to turn next to the Figures of Thought. + +

+ 35 + +47 Distribution​1 occurs when certain specified rôles are assigned among a number of things or persons,​2 + as follows: "Whoever of you, men of the jury, loves the good name of +the Senate, must hate this man, for his attacks upon that body have +always been most insolent. Whoever of you wishes the equestrian order​3 + to be most resplendent in the state, must want this person to have paid + the severest penalty, so that he may not be, through his personal +shame, a stain and disgrace to a most honourable order. You who have +parents, must prove by your punishment of this creature that un­dutiful + men do not find favour with you. You who have children, must set forth +an example to show how great are the punishments that have been provided + in our state for men of that stamp." Again, "The Senate's function is +to assist the state with counsel; the magistracy's is to execute, by +diligent activity, the Senate's will; the people's to choose and support + by its votes the best measures and the most suitable men." Again, "The +duty of the prosecutor is to bring the charges; that of the counsel for +the defence to explain them away and rebut them; that + + + p349 of the witness to say what he knows or has heard;​4 + that of the presiding justice to hold each of these to his duty. +Therefore, Lucius Cassius, if you allow a witness to argue and to attack + by means of conjecture, passing beyond what he knows or has heard, you +will be confusing the rights of a prosecutor with those of a witness, +you will be encouraging the partiality of a dishonest witness, and you +will be ordaining for the defendant that he defend himself twice."​5 + This figure has richness, for it embraces much in little and, by +assigning to each his duty, severally distinguishes a number of +entities. + +

+ 36 + +48 It is Frankness of Speech​6 + when, talking before those to whom we owe reverence or fear, we yet +exercise our right to speak out, because we seem justified in +reprehending them, or persons dear to them, for some fault. For example: + "You wonder, fellow citizens, that every one abandons your interests? +That no one undertakes your cause? That no one declares himself your +defender? Blame this upon yourselves; cease to wonder. Why indeed should + not every one avoid and shun this situation of your making? Bethink +yourselves of those whom you have had for defenders; set their devotion +before your eyes, and next consider what has become of them all. Then +remember that thanks to your — to speak aright — indifference, or +cowardice rather, all these men have been murdered before your eyes, and + + + p351 thanks to your own votes their enemies have reached the highest estate."​7 + Again: "Now what was your motive, men of the jury, in hesitating to +pass sentence on this abominable man, or in allowing him a new trial?​8 + Were not the facts charged as plain as day? Were they not all proved by + witnesses? Was not the answer, on the other hand, feeble and trifling? +Did you at this point fear that in condemning him at the first hearing +you would be considered cruel? While avoiding a reproach for cruelty, +which you would have been far from incurring, you have incurred another +reproach — you are considered timid and cowardly. You have met with very + great losses, private and public, and now when even greater losses seem + to impend, you sit and yawn. During the day you wait for night, at +night you wait for day. Every day some troublesome and unpleasant news +is announced — yet even now will you temporize longer with the author of + these our ills, and nourish him for the destruction of the republic; +will you keep him in the commonwealth as long as you can?" + +

+ 37 +49 If Frank Speech of this sort seems +too pungent, there will be many means of palliation, for one may +immediately thereafter add something of this sort: "I here appeal +to your virtue, I call on your wisdom, I bespeak your old +habit," so that praise may quiet the feelings aroused by the frankness. +As a result, the praise frees the hearer from wrath and annoyance, and +the frankness deters him from error. This precaution in speaking, as in + + + p353 friendship, + if taken at the right place, is especially effective in keeping the +hearers from error and in presenting us, the speakers, as friendly both +to the hearers and to the truth. + +

+There is also a certain kind of frankness in speaking which is achieved +by a craftier device, when we remonstrate with the hearers as they wish +us to remonstrate with them, or when we say "we fear how the audience +may think" something which we know they all will hear with acceptance, +"yet the truth moves us to say it none the less."​9 + I shall add examples of both these kinds. Of the former, as +follows: "Fellow citizens, you are of too simple and gentle a character; + you have too much confidence in every one. You think that every one +strives to perform what he has promised you. You are mistaken, and now +for a long time you have been kept back by false and groundless hope, in + your fatuity choosing to seek from others what lay in your power, +rather than take it yourselves."​10 + Of the latter kind of Frank Speech the following will be an example: +"I enjoyed a friendship with this person, men of the jury, yet of +that friendship — although I fear how you are going to receive what + I shall say, I will yet say it — you have deprived me. Why? +Because, in order to win your approval, I have preferred to +consider your assailant as an enemy rather than as a friend." + +

 p355  +50 Thus this figure called Frankness +of Speech will, as I have shown, be handled in two ways: with +pungency, which, if too severe, will be mitigated by praise; and with +reticence, discussed above, which does not require mitigation, because +it assumes the guise of Frank Speech and is of itself agreeable to the +hearer's frame of mind. + +

+ 38 +Understatement​11 + occurs when we say that by nature, fortune, or diligence, we or our +clients possess some exceptional advantage, and, in order to avoid the +impression of arrogant display, we moderate and soften the statement of +it, as follows: "This, men of the jury, I have the right to say — +that, by labour and diligence I have contrived to be no laggard in +the mastery of military science." If the speaker had here said "be the +best" he might have spoken the truth, but would have seemed arrogant. He + has now said quite enough both to avoid envy and to secure praise. +Again: "Was it then because of avarice or of need that he entered upon +the crime? Avarice? But he was most generous to his friends, and that is + a sign of generosity, a virtue opposed to avarice. Need? But his father + left him a patrimony that was — I do not wish to exaggerate — not +the smallest."​12 + Here again, calling the patrimony "large" or "very large" was avoided. +This, then, is the precaution we shall take in setting forth the +exceptional advantages which we or our clients enjoy. For + + + p357 things of +this sort, if you handle them indiscreetly, in life provoke jealousy and + in a speech antipathy. Therefore just as by circumspection we escape +jealousy in life, so by prudence we avoid antipathy in speaking. + +

+ 39 +51 Vivid Description​13 + is the name for the figure which contains a clear, lucid, and +impressive exposition of the consequences of an act, as follows: "But, +men of the jury, if by your votes you free this defendant, immediately, +like a lion released from his cage, or some foul beast loosed from his +chains,​14 he will slink and prowl about in the forum,​15 + sharpening his teeth to attack every one's property, assaulting every +man, friend and enemy, known to him or unknown, now despoiling a good +name, now attacking a life, now bringing ruin upon a house and its +entire household, shaking the republic from its foundations. Therefore, +men of the jury, cast him out from the state, free every one from fear, +and finally, think of yourselves. For if you release this creature +without punishment, believe me, gentlemen, it is against yourselves that + you will have let loose a wild and savage beast." + +

+Again: "For if you inflict a heavy penalty upon the defendant, men of +the jury, you will at once by a single judgement have taken many lives. +His aged father, who has set the entire hope of his last years on this +young man, will have no reason for wishing to stay alive. His small +children, deprived of their father's aid, will be exposed as objects of +scorn and contempt to their father's enemies. His entire household will +collapse under this undeserved + + + p359 calamity. +But his enemies, when once they have won the bloody palm by the most +cruel of victories, will exult over the miseries of these unfortunates, +and will be found insolent on the score of deeds as well as of words." + +

+Again: "For none of you, fellow citizens, fails to see what miseries +usually follow upon the capture of a city. Those who have borne arms +against the victors are forthwith slain with extreme cruelty. Of the +rest, those who by reason of youth and strength can endure hard labour +are carried off into slavery, and those who cannot are deprived of life. + In short, at one and the same time a house blazes up by the enemy's +torch, and they whom nature or free choice has joined in the bonds of +kinship or of sympathy are dragged apart. Of the children, some are torn + from their parents' arms, others murdered on their parents' bosom, +still others violated at their parents' feet. No one, men of the jury, +can, by words, do justice to the deed, nor reproduce in language the +magnitude of the disaster."16 + +

+With this kind of figure either indignation or pity can be aroused, when + the consequences of an act, taken together as a whole, are concisely +set forth in a clear style. + +

 p361  + 40 +52 Division​17 + separates the alternatives of a question and resolves each by means of a + reason subjoined, as follows: "Why should I now reproach you in +any way? If you are an upright man, you have not deserved reproach; if a + wicked man, you will be unmoved." Again: "Why should I now boast +of my deserts? If you remember them, I shall weary you; if you have + forgotten them, have been ineffective in action, and therefore what +could I effect by words?" Again: "There are two things which can +urge men to illicit gain: poverty and greed. That you were greedy in the + division with your brother we know, that you are poor and destitute we +now see. How, therefore, can you show that you had no motive for the +crime?" There is the following difference between the present kind of +Division and that other which forms the third part of a discourse, and +which I treated in Book I,​18 + next after Statement of Facts: the former Division operates through the + Enumeration or Exposition of the topics to be discussed throughout the +whole discourse; whereas here the Division at once unfolds itself, and +by briefly adding the reasons for the two or more parts, embellishes the + style. + +

+Accumulation​19 + occurs when the points scattered throughout the whole cause are +collected in one place so as to make the speech more impressive or sharp + or accusatory, as follows: "From what vice, I ask, is this +defendant free? What ground have you for wishing to acquit him of the +suit? He is the betrayer of his own self-respect, and the waylayer of + + + p363 the self-respect of others; covetous, intemperate, irascible, arrogant; disloyal to his parents, ungrateful to his friends, troublesome to his kin; insulting to his betters, disdain­ful of his equals and mates, cruel to his inferiors; in short he is intolerable to every one." + +

+53 Of the same kind is that other +Accumulation, which is very useful in city council cases, when the +implications, which were petty and weak because expressed separately, +are collected in one place and so seem to make the subject evident and +not dubious,​20 as follows:​21 + "Do not, therefore, men of the jury, do not consider singly the things +I have said, but join them all together and combine them into one. + +

+ 41 +"If the defendant profited from the victim's death; if also his life is +full of dishonour, his heart most avaricious, and his family fortune +very meagre; and if that crime benefited no one but him;​22 + and if no one else could have done the deed with equal skill, or he +himself could not have done it by methods more apt; if he neglected +nothing that was necessary for the crime, and did nothing that was not +necessary; and if he not only sought the most suitable place, but also a + favourable occasion for entering upon the crime, and the most opportune + moment for undertaking it; if he spent the longest period of time in +executing it, and not without the greatest hope of concealing and +completing it; and besides, if, before the victim was murdered, the +defendant was seen, alone, in the place in which the murder was +committed; if soon afterward, during the very + + + p365 commission + of the crime, the voice of the victim was heard; if it is established +that then, after the murder, the defendant returned home, at dead of +night; that on the next day he spoke of the man's murder haltingly and +inconsistently​23 — if all these indications are proved, partly by witnesses, and partly by the confessions upon torture​24 + which have been adduced in confirmation, and by public opinion, which, +born of evidence, must necessarily be true; then, gentlemen, it is your +duty to gather all these indications into one, and arrive at definite +knowledge, not suspicion, of the crime. To be sure, some one or two of +these things can by chance have happened in such a way as to throw +suspicion upon this defendant; but for everything to coincide from first + to last, he must have been a participant in the crime. This cannot be +the result of chance." This figure has force, and in a city council +issue is almost always essential; in the other types of causes and +indeed in all discourse it is to be used occasionally. + +

+ 42 + +54 Refining​25 + consists in dwelling on the same topic and yet seeming to say something + ever new. It is accomplished in two ways: by merely repeating the same +idea, or by descanting upon it. We shall not repeat the same thing +precisely — for that, to be sure, would weary the hearer and not refine +the idea — but with changes. Our changes will be of three kinds: in the +words, in the delivery, and in the treatment. + +

+Our changes will be verbal when, having expressed the idea once, we repeat it once again or oftener in + + + p367 other, +equivalent terms, as follows: "No peril is so great that a wise man +would think it ought to be avoided when the safety of the fatherland is +at stake. When the lasting security of the state is in question, the man + endowed with good principles will undoubtedly believe that in defence +of the fortunes of the republic he ought to shun no crisis of life, and +he will ever persist in the determination eagerly to enter, for the +fatherland, any combat, however great the peril to life." + +

+Our changes will reside in the delivery if now in the tone of +conversation, now in an energetic tone, and now in variation after +variation of voice and gesture, repeating the same ideas in different +words, we also change the delivery quite strikingly. This cannot be +described with complete effectiveness, and yet it is clear enough. Hence + there is no need of illustration. + +

+55 The third kind of change, +accomplished in the treatment, will take place if we transfer the +thought into the form of Dialogue or into the form of Arousal. + +

+ 43 +Dialogue — which I shall soon more fully discuss in its place​26 + and shall now touch upon briefly, as far as may be sufficient for the +present purpose — consists in putting in the mouth of some person +language in keeping with his character, as follows (for the sake of +greater clarity, to continue the same theme as above): "The wise man +will think that for the common weal he ought to undergo every peril.​27 Often he will say to himself:​28 'Not for self alone was I born, but also, and much more, for the fatherland.29 + + + p369 Above all, + let me spend my life, which I owe to fate, for the salvation of my + country. She has nourished me. She has in safety and honour reared me +even to this time of life. She has protected my interests by good laws, +the best of customs, and a most honourable training. How can I +adequately repay her from whom I have received these blessings?' +According as the wise man often says this to himself, when the republic +is in danger, he on his part will shun no danger." + +

+Again, the idea is changed in the treatment by means of a transfer to the form of Arousal,​30 + when not only we ourselves seem to speak under emotion, but we also +stir the hearer, thus: "Who is possessed of reasoning power so feeble, +whose soul is bound in such straits of envy, that he would not heap +eager praise upon this man and judge him most wise, a man who for the +salvation of the fatherland, the security of the state, and the +prosperity of the republic eagerly undertakes and gladly undergoes any +danger, no matter how great or terrible? 56 For + my part, my desire to praise this man adequately is greater than my +power to do so, and I am sure that this feeling of inadequacy is +shared by all of you." + +

+The theme, then, will be varied in speaking in these three ways: in the +words, in the delivery, in the treatment. In the treatment we shall vary + the theme by two means: by Dialogue and by Arousal. + +

+But when we descant upon the same theme, we shall use a great many +variations. Indeed, after having expressed the theme simply, we can +subjoin the Reason, and then express the theme in another form, with or +without the Reasons;​31 next we can present the Contrary​32 (all this I have discussed under + + + p371 Figures of Diction); then a Comparison and an Example (about these I shall say more in their place);​33 44 and finally the Conclusion (the essential details of which were discussed in Book II,​34 when I showed how one should bring arguments to a close; in this Book​35 + I have explained the nature of that figure of diction which is +called Conclusion). A Refinement of this sort, which will consist +of numerous figures of diction and of thought, can therefore be +exceedingly ornate. + +

+The following, then, will illustrate a treatment in seven parts — to +continue the use of the same theme for my example, in order that you may + know how easily, by the precepts of rhetoric, a simple idea is +developed in a multiple manner:​36 +

+57 "The wise man will, on the republic's behalf, shun no peril,​37 + because it may often happen that if a man has been loath to perish for +his country it will be necessary for him to perish with her. Further, +since it is from our country that we receive all our advantages, no +disadvantage incurred on her behalf is to be regarded as severe.​38 +

+"I say, then, that they who flee from the peril to be undergone on behalf of the republic act foolishly,​39 for they cannot avoid the disadvantages, and are found guilty of ingratitude towards the state.​40 +

+"But on the other hand they who, with peril to themselves, confront the +perils of the fatherland, are to be considered wise, since they render +to their country the homage due her, and prefer to die for + + + p373 many of +their fellow citizens instead of with them. It is extremely unjust to +give back to nature, when she compels, the life you have received from +nature, and not to give to your country, when she calls for it, the life + you have preserved thanks to your country;​41 + and when you can die for fatherland with the greatest manliness and +honour, to prefer to live in disgrace and cowardice; and when you are +willing to face danger for friends and parents and your other kin, to +refuse to run the risk for the republic, which embraces all these and +that most holy name of fatherland as well.​42 +

+"He who in a voyage prefers his own to his vessel's security, deserves +contempt. No less blameworthy is he who in a crisis of the republic +consults his own in preference to the common safety. For from the wreck +of a ship many of those on board escape unharmed, but from the wreck of +the fatherland no one can swim to safety.​43 +

+"It is this that, in my opinion, Decius​44 + well understood, who is said to have devoted himself to death, and, in +order to save his legions, to have plunged into the midst of the enemy. +He gave up his life, but did not throw it away; for at the cost of a +very cheap good he redeemed a sure good, of a small good the greatest +good. He gave his life, and received his country in exchange. He lost +his life, and gained glory, which, transmitted with highest praise, +shines more and more every day as time goes on.​45 +

 p375  +"But if reason has shown and illustration confirmed that it is fitting +to confront danger in defence of the republic, they are to be esteemed +wise who do not shrink from any peril when the security of the +fatherland is at stake."46 + +

+58 It is of these types, then, that +Refining consists. I have been led to discuss it at rather great +length because it not only gives force and distinction to the speech +when we plead a cause, but it is by far our most important means of +training for skill in style. It will be advantageous therefore to +practise the principles of Refining in exercises divorced from a real +cause, and in actual pleading to put them to use in the Embellishment of + an argument, which I discussed in Book II.47 + +

+ 45 +Dwelling on the Point​48 + occurs when one remains rather long upon, and often returns to, the +strongest topic on which the whole cause rests. Its use is particularly +advantageous, and is especially characteristic of the good orator, for +no opportunity is given the hearer to remove his attention from this +strongest topic. I have been unable to subjoin a quite appropriate +example​49 of the figure, because this topic is not isolated from the whole cause like some limb, but like blood​50 is spread through the whole body of the discourse. + +

 p377  +Through Antithesis contraries will meet. As I have explained above, it belongs either among the figures of diction,​51 + as in the following example: "You show yourself conciliatory to your +enemies, inexorable to your friends"; or among the figures of thought, +as in the following example: "While you deplore the troubles besetting +him, this knave rejoices in the ruin of the state. While you despair of +your fortunes, this knave alone grows all the more confident in his +own." Between these two kinds of Antithesis there is this difference: +the first consists in a rapid opposition of words; in the other opposing + thoughts ought to meet in a comparison. + +

+59 Comparison​52 + is a manner of speech that carries over an element of likeness from one + thing to a different thing. This is used to embellish or prove or +clarify or vilify. Furthermore, corresponding to these four aims, it has + four forms of presentation: Contrast, Negation, Detailed Parallel, +Abridged Comparison. To each single aim in the use of Comparison we +shall adapt the corresponding form of presentation. + +

+ 46 +In the form of a contrast, in order to embellish, Comparison is used as +follows: "Unlike what happens in the palaestra, where he who receives +the flaming torch is swifter in the relay race than he who hands it on, +the new general who receives command of an army is not superior to the +general who retires from its command. For in the one case it is an +exhausted runner who hands the torch to a fresh athlete, whereas in this + it is an experienced commander who hands over the army to an +inexperienced." This could have been expressed quite + + + p379 simply, +clearly, and plausibly without the Comparison, as follows: "They say +that usually it is inferior generals who take over the command of armies + from superior." But the Comparison is used for embellishment, so as to +secure a certain distinction for the style. It is moreover presented in +the form of a contrast. For a Comparison in the form of a contrast is +used when we deny that something else is like the thing we are asserting + to be true. + +

+In the form of a negation and for the purpose of proof, Comparison will +be used as follows: "Neither can an untrained horse, however well-built +by nature, be fit for the services desired of a horse, nor can an +uncultivated man, however well-endowed by nature, attain to virtue."​53 + This idea has been rendered more plausible, for it becomes easier to +believe that virtue cannot be secured without culture, when we see that +not even a horse can be serviceable if untrained. Thus the Comparison is + used for the purpose of proof, and moreover is presented in the form of + a negation, as is clear from the first word of the Comparison. + +

+ 47 +60 A comparison will be used also + for greater clarity — the presentation being in abridged form — as +follows: "In maintaining a friendship, as in a foot-race, you must +train yourself not only so that you succeed in running as far as is +required, but so that, extending yourself by will and sinew, you easily +run beyond that point." Indeed this Comparison serves to make more +obvious the poor reasoning evinced by the detractors of those who, for +example, are + + + p381 protectors + of a friend's children after his death; for a runner ought to have +enough speed to carry him beyond the goal, and a friend so much good +will that in the devotion of friendship he may reach even beyond what +his friend is capable of perceiving. The Comparison is moreover +presented in abridged form, for one term is not detached from the other +as in the other form, but the two are conjoined and intermingled in the +presentation. + +

+A Comparison will be used for vividness, and be set forth in the form of a detailed parallel,​54 as follows: "Let us imagine a player on the lyre​55 who has presented himself on the stage, magnificently garbed, clothed in a gold-embroidered + robe, with purple mantle interlaced in various colours, wearing a +golden crown illumined with large gleaming jewels, and holding a lyre +covered with golden ornaments and set off with ivory. Further, he has a +personal beauty, presence, and stature that impose dignity. If, when by +these means he has roused a great expectation in the public, he should +in the silence he has created suddenly give utterance to a rasping +voice, and this should be accompanied by a repulsive gesture, he is the +more forcibly thrust off in derision and scorn, the richer his adornment + and the higher the hopes he has raised. In the same way, a man of high +station, endowed with great and opulent resources, and abounding in all +the gifts of fortune and the emoluments of nature, if he yet lacks +virtue and the arts that teach virtue, will so much the more forcibly in + derision and scorn be cast from all association with good men, the +richer he is in the other advantages, the greater his distinction, and +the higher the hopes he has raised." This Comparison, by embellishing +both + + + p383 terms, +bringing into relation by a method of parallel description the one man's + ineptitude and the other's lack of cultivation, has set the subject +vividly before the eyes of all. Moreover the Comparison is presented in +the form of a detailed parallel because, once the similitude has been +set up, all like elements are related. + +

+ 48 +61 In Comparisons we must carefully +see to it that when we present the corresponding idea for the sake of +which we have introduced the figure we use words suited to the likeness. + The following is an example: "Just as when the swallows are with us in +summer time, and when driven by the frost retire, . . ." +Keeping the same comparison, and using Metaphor, we now say: "so false +friends are with us in a peaceful season of our life, and as soon as +they have seen the winter of our fortune, they fly away, one and all." +But the invention of Comparisons will be easy if one can frequently set +before one's eyes everything animate and inanimate, mute and articulate, + wild and tame, of the earth, sky, and sea, wrought by art, chance, or +nature, ordinary or unusual, and can amongst these hunt out some +likeness which is capable of embellishing or proving or clarifying or +vivifying. The resemblance between the two things need not apply +throughout, but must hold on the precise point of comparison. + +

+ 49 +62 Exemplification​56 is the citing of something done or said in the past, along with the definite naming of the doer or author. It is used with the + + + p385 same +motives as a Comparison. It renders a thought more brilliant when used +for no other purpose than beauty; clearer, when throwing more light upon + what was somewhat obscure; more plausible, when giving the thought +greater verisimilitude; more vivid, when expressing everything so +lucidly that the matter can, I may almost say, be touched by the +hand. I would have added individual specimens of each type +had I not under Refining demonstrated the nature of +Exemplification,​57 and, under Comparison, made clear the motives for its use.​58 + Therefore I have been unwilling to make my discussion of it either + too brief for it to be understood, or too long once it is understood. + +

+Simile​59 + is the comparison of one figure with another, implying a certain +resemblance between them. This is used either for praise or censure. For + praise, as follows: "He entered the combat in body like the strongest +bull, in impetuosity like the fiercest lion."​60 For censure, so as to excite hatred, as follows: "That wretch who daily glides through + + + p387 the middle of the Forum like a crested serpent, with curved fangs, poisonous glance,​61 + and fierce panting, looking about him on this side and that for some +one to blast with venom from his throat — to smear it with his lips, to +drive it in with his teeth, to spatter it with his tongue." To excite +envy, as follows: "That creature who flaunts his riches, loaded and +weighed down with gold, shouts and raves like a Phrygian eunuch-priest of Cybele​62 + or like a soothsayer." To excite contempt, as follows: "That creature, +who like a snail silently hides and keeps himself in his shell, is +carried off, he and his house, to be swallowed whole." + +

+63 Portrayal​63 + consists in representing and depicting in words clearly enough for +recognition the bodily form of some person, as follows: "I mean +him, men of the jury, the ruddy, short, bent man, with white and rather +curly hair, blue-grey eyes, and a huge scar on his chin, if perhaps you +can recall him to memory." This figure is not only serviceable, if you +should wish to designate some person, but also graceful, if fashioned +with brevity and clarity. + +

+ 50 + +Character Delineation​64 + consists in describing a person's character by the definite signs +which, like distinctive marks, are attributes of that character; + + + p389 for +example, if you should wish to describe a man who is not actually rich +but parades as a moneyed man, you would say: "That person there, men of +the jury, who thinks it admirable that he is called rich, see now first +with what an air he surveys us. Does he not seem to you to be saying: +'I'd gladly give you clients' doles, if you didn't try my patience!' +Yes, once he has propped his chin on his left hand​65 + he thinks that he dazzles the eyes of all with gleam of his jewelry and + the glitter of his gold. When he turns to his slave boy here, his only +one​66 + — I know him, and you do not, I think — he calls him now by +one name, now by another, and now by a third: 'Ho there, you, +Sannio,' says he, 'come here, see that these barbarians​67 + don't turn things upside down,' so that unknowing hearers may think he +is selecting one slave from among many. Whispering in the boy's ear he +tells him either to arrange the dining-couches at home, or to ask his uncle for an Ethiop​68 + to attend him to the baths, or to station the Asturian thoroughbred +before his front door, or to make ready some other flimsy stage property + which should set off his vainglory. Then he shouts, that all may hear: +'See to it that the money is carefully counted before nightfall,​69 + if possible.' The boy, by this time well knowing his master's +character, says: 'You had better send more slaves over there if you want + the counting done today.' 'Go then,' he + + + p391 answers, 'take with you Libanus and Sosia.' 'Very good, sir.' + +

+"Then by chance come guests, whom the rascal had invited while +travelling abroad in splendour. By this event the man is, you may be +sure, quite embarrassed, but he still does not desist from his natural +fault. 'You do well,' says he, 'to come, but you would have done better +to go straight to me at my house.' 'That we would have done,' say they, +'had we known your house.' 'But surely it was easy to find that out from + anyone. Still, come with me.' + +

+"They follow. In the meanwhile all his conversation is spent in +boasting. He asks: 'How are the crops in the fields?' They say that +because his villas have been burnt, he cannot go to them, and does not +yet dare rebuild them, 'although on my Tusculan estate, to be sure, +I have commenced an insane undertaking — to build on the same +foundations.' + +

+ 51 +64 "While saying this he comes to a +certain house in which a banqueting club was to meet on that very day. +As if in fact he knew the owner, the rascal now enters the house with +his guest. 'Here,' says he, 'is where I live.' He scrutinizes the +silver which had been laid out, inspects the dining-couch + which had been spread, and indicates his approval. A little slave +boy comes up. They say aloud to the man that the master is about to +arrive; would he wish to leave? 'Indeed?' says the man. 'Let us be off, +my friends. My brother has arrived from the Falernian country. +I shall go to meet him. Do come here at four o'clock.'​70 + The guests depart. The rascal rushes posthaste to his own home. They, +as he had bidden, come at four o'clock. They ask for him, discover + + + p393 whose house it is, and, hoodwinked, betake themselves to an inn. + +

+"They see the man the next day, tell him their story, make their +complaint and their accusation. He assures them that they had been +deceived by the similarity of the place and had missed their way by a +whole street;​71 + he had, to the prejudice of his health, waited for them late into the +night. To his boy Sannio he had given the job of borrowing vessels, +coverings, and servants, and the little slave, not wanting in +cleverness, had quite energetically and artfully procured all these. The + rascal leads his guest to his home. He says he has accommodated one of +his friends with the loan of his largest mansion for a wedding. The boy +reports that the silver is being recalled; the lender had misgivings. +'Off with you,' says our man, 'I have obliged him with a mansion, +I have given him my household of slaves. Does he want the silver,​72 too? And yet, although I have guests, let him use it; we shall be content with Samian.'73 + +

+"Why should I tell what he next brings to pass? Such is the +character of the man that what he effects by empty boasting and showing-off in one day I could hardly recount if I talked a whole year." + +

+65 Character Delineations of this kind + which describe the qualities proper to each man's nature carry very +great charm, for they set before our eyes a person's whole character, of + the boastful man, as I undertook to illustrate, or the envious or +pompous man, or the + + + p395 miser, the + climber, the lover, the voluptuary, the thief, the public informer — in + short, by such delineation any one's ruling passion can be brought into + the open. + +

+ 52 +Dialogue​74 + consists in assigning to some person language which as set forth +conforms with his character, for example: "When the city overflowed with + soldiers, and all the citizens, oppressed by fear, kept themselves at +home, this fellow appeared in military cloak, armed with a sword, in his + hand a javelin. Three young men, equipped like him, follow behind.​75 + Suddenly he bursts into the house, and in a loud voice shouts: 'Where +is he, the wealthy owner of this house? Why has he not appeared before +me? Why are you silent?' At this all are struck dumb with terror. The +wife of the unhappy man, bursting into tears, throws herself at this +creature's feet, and says: 'By all that is dearest to you in life, +I pray you, pity us.​76 Destroy not anew them that are destroyed.​77 Use your good fortune kindly. We too have enjoyed good fortune. Remember that you are human.'​78 'Why do you not surrender him to me and cease wailing into my ears? He shall not escape.' + +

+"Meanwhile word of this person's arrival and of his clamorous threats of + death is brought to the master of the house. Immediately upon receipt +of these + + + p397 tidings, +'Hark, Gorgias,' he says to the attendant of his children, 'hide them, +defend them, see that you bring them up safe to young manhood.' Hardly +had he uttered these words when, behold, this person appears, and says: +'You are still here, rash fool? Has not my voice frightened you to +death? Appease my enmity and sate my wrath with your blood.' The master, + with proud spirit, replies: 'I feared I might really be +conquered. Now I see: You do not wish to contend with me in a trial + at law, where failure brings shame, and success glory. You wish to kill + me. True, I shall be killed, but I will die unconquered.' +'Sententious​79 + even at the point of death! You do not wish to beg your life of me when + you see I have you in my power?' Then the woman: 'Nay, truly he +begs and implores you. I plead with you, be moved to pity. And do +you, in heaven's name, clasp his knees. He has you in his power. He has +prevailed over you, and do you now prevail over your spirit.' 'Why do +you not cease, my wife,' says he, 'to utter words unworthy of me? Be +silent, and attend to your tasks.​80 + And you, why do you not, once for all, rob me of life, and yourself, by + my death, of every hope of enjoying life?' The intruder thrust the +weeping woman from him, and as the master began to say something or +other, worthy, I am sure, of his manliness, buried the sword in his + side."81 + +

 p399  +I think that in this example the language assigned to each person +was appropriate to his character — a precaution necessary to +maintain in Dialogue. + +

+There are likewise Hypothetical Dialogues, as follows: "Indeed what do +we think those people will say if you have passed this judgement? Will +not every one say as follows: –––––?" And then one must add what they will say. + +

+ 53 +66 Personification​82 + consists in representing an absent person as present, or in making a +mute thing or one lacking form articulate, and attributing to it a +definite form and a language or a certain behaviour appropriate to its +character, as follows: "But if this invincible city would now give +utterance to her voice, would she not speak as follows? 'I, city of + renown, who have been adorned with numerous trophies, enriched with +unconditional triumphs, and made opulent by famous victories, am now +vexed, O citizens, by your dissensions. Her whom Carthage with her +wicked guile, Numantia with her tested strength, and Corinth with her +polished culture, could not shake, do you now suffer to be trod upon and + trampled underfoot by worthless weaklings?' " Again: "But if that +great Lucius Brutus should now come to life again and appear here before + you, would he not use this language? 'I banished kings; you bring +in tyrants. I created liberty, which did not exist; what +I created you do not wish to preserve. I, at peril of my life, + freed the fatherland; you, even + + + p401 without peril, do not care to be free.' "​83 + Personification may be applied to a variety of things, mute and +inanimate. It is most useful in the divisions under Amplification and in + Appeal to Pity.84 + +

+67 Emphasis​85 + is the figure which leaves more to be suspected than has been actually +asserted. It is produced through Hyperbole, Ambiguity, Logical +Consequence, Aposiopesis, and Analogy. + +

+The emphasis is produced through Hyperbole​86 + when more is said than the truth warrants, so as to give greater force +to the suspicion, as follows: "Out of so great a patrimony, in so short a + time, this man has not laid by even an earthen pitcher wherewith to +seek a fire for himself."87 + +

+The emphasis is produced through Ambiguity​88 + when a word can be taken in two or more senses, but yet is taken in +that sense which the speaker intends; for example, if you should say +concerning a man who has come into many legacies: "Just look out, you, +who look out for yourself so profitably."​89 54 Even + as we must of those ambiguities which render the style obscure, so must + we seek those which produce an emphasis of this sort. It will be easy +to find them if we know and pay heed to the double and multiple meanings + of words. + +

 p403  + +Emphasis by Logical Consequence​90 + is produced when one mentions the things that follow from a given +circumstance, thus leaving the whole matter in distrust; for example, if + you should say to the son of a fishmonger: "Quiet, you, whose father +used to wipe his nose with his forearm."91 + +

+The emphasis is produced through Aposiopesis​92 + if we begin to say something and then stop short, and what we have +already said leaves enough to arouse suspicion, as follows: "He who so +handsome and so young, recently at a stranger's house — I am +unwilling to say more." + +

+The emphasis is produced through Analogy, when we cite some analogue and + do not amplify it, but by its means intimate what we are thinking, as +follows: "Do not, Saturninus, rely too much on the popular mob — +unavenged lie the Gracchi."93 + +

+This figure sometimes possesses liveliness and distinction in the +highest degree; indeed it permits the hearer himself to guess what the +speaker has not mentioned. + +

+68 Conciseness​94 + is the expressing of an idea by the very minimum of essential words, as + follows: "On his way he took Lemnus, then left a garrison at Thasus, +after that destroyed the Bithynian city, + + + p405 Cius; next, returning to the Hellespont, he forthwith occupies Abydus."​95 + Again: "Just recently consul, next he was first man of the state; then +he sets out for Asia; next he is declared a public enemy and exiled; +after that he is made general-in‑chief and finally consul for the seventh time."​96 + Conciseness expresses a multitude of things within the limits of but +a few words, and is therefore to be used often, either when the +facts do not require a long discourse or when time will not permit +dwelling upon them. + +

+ 55 +It is Ocular Demonstration​97 + when an event is so described in words that the business seems to be +enacted and the subject to pass vividly before our eyes. This we can +effect by including what has + + + p407 preceded, followed, and accompanied the event itself, or by keeping steadily to its consequences​98 or the attendant circumstances,​99 + as follows: As soon as Gracchus saw that the people were wavering, in +their fear that he might, by the Senate's decree, be moved to change his + mind, he ordered a convocation of the Assembly. In the meanwhile, this +fellow, filled with wicked and criminal designs, bounds out of the +temple of Jupiter. In a sweat, with eyes blazing,​100 + hair bristling, toga awry, he begins to quicken his pace, several other + men joining him. While the herald is asking attention for Gracchus, the + fellow, beside himself, plants his heel on a bench, breaks off a leg of + it with his right hand, and orders the others to do likewise. When +Gracchus begins a prayer to the gods, these creatures in a rush attack +him, coming together from all quarters, and a man in the crowd shouts: +'Fly, Tiberius, fly! Don't you see? Look behind you, I say!' Then +the fickle mob, stricken with sudden fear, +take to flight. But this fellow, frothing crime from his mouth, +breathing forth cruelty from the depth of his lungs, swings his arm, +and, while Gracchus wonders what it means, but still does not move from +the place where he stood, strikes him on the temple. Gracchus does not +impair his inborn manliness by a single cry, but falls without uttering a + sound. The assassin, bespattered with the pitiable blood of the bravest + of heroes, looks about him as if he had done a most admirable deed, +gaily extends his murderous hand to his + + + p409 followers as they congratulate him, and betakes himself to the temple of Jupiter."​101 69 Through + this kind of narrative Ocular Demonstration is very useful in +amplifying a matter and basing on it an appeal to pity, for its sets +forth the whole incident and virtually brings it before our eyes. + +

+ 56 +I have here carefully collected all the principles of embellishing +style. If, Herennius, you exercise yourself diligently in these, your +speaking will possess impressiveness,​102 distinction, and charm.​103 + As a result you will speak like a true orator, and the product of your +invention will not be bare and inelegant, nor will it be expressed in +commonplace language. + +

+Now let us again and again jointly insist (for the matter will concern +us both) upon our seeking, constantly and unremittingly, by study and +exercise, to master the theory of the art.​104 Others find this difficult for three main areas: they have no one with whom it is a pleasure to practise, or they lack self-confidence, + or they do not know the right path to follow. For us none of these +difficulties exists. We practise together gladly because of our +friendship, which, originating in blood relation­ship, has in addition been strengthened by the study of philosophy. We are not without self-confidence, + both because we have made no little progress, and because there are +other and better studies which we pursue in life more intently, so that +even if, in public speaking, we have not reached our goal, we shall miss + but + + + p411 a little of the wholly perfect life.​105 And finally, we know the path to follow, because from these books no principle of rhetoric has been omitted. + +

+Indeed I have shown how in every type of cause one ought to find +ideas. I have told how it is proper to arrange these. I have +disclosed the method of delivery. I have taught how we can have a +good memory. I have explained the means by which to secure a +finished style. If we follow these principle our Invention will be keen +and prompt, our Arrangement clear and orderly, our Delivery impressive +and graceful, our Memory sure and lasting, our Style brilliant and +charming. In the art of rhetoric, then, there is no more. All these +faculties we shall attain if we supplement the precepts of theory with +diligent practice.106 + + + +


+

+The Loeb Editor's Notes: +

+ +

+ 1 +διαίρεσις, μερισμός. Cf. the distributio of + +1.x.17, +the distributio (Broken Tone of Debate) of + +3.xiii.23, and the figure, divisio, in + +4.xl.52. + + +

+ + +

+ 2 +Of πράγματα or of πρόσωπα. Cf. the distinction in the third kind of narratio, + +1.viii.13 + +above. + + +

+ + +

+ 3 +In accordance with the Lex Plautia Iudiciaria of 90/89 B.C. both senators and knights (and also some of the plebs) served as iudices in the criminal courts. Sulla restored the senatorial monopoly in 82/81 B.C. + + +

+ + +

+ 4 +On the admission of hearsay evidence in Roman Law see J. L. Strachan-Davidson, Problems of the Roman Criminal Law, Oxford, 1912, 2.123 ff.; cf. 2.viii.12 + +above. + + +

+ + +

+ 5 +From the celebrated speech delivered in 113 B.C. + (or at the end of 114) by L. Licinius Crassus in defence of +Licinia, accused with other Vestals of unchastity and condemned. +L. Cassius Longinus Ravilla (whose rule was to insist on the +question of the motive: Cui bono? — "for whose advantage was the crime?") was the examining magistrate. + + +

+ + +

+ 6 +παρρησία, oratio libera. Quintilian, + +9.2.27 + +and + +9.3.99, denies that this is a figure. Cf. Isocrates, De Pace 72 f.: + + +"While hating those who revile you to your hurt as +bearing malice to the state, you ought to praise those who admonish you +for your benefit, and think them the best of your fellow-citizens, + and think that best of all is the man who can demonstrate most vividly +the defects of your practices and the misfortunes that arise from them." + + +

+ + +

+ 7 +Whether this passage derives from a speech actually delivered we do not +know. The sentiments are appropriate to a tribune of the time of Marius. + + +

+ + +

+ 8 +The renewal (ampliatio) of a case followed the verdict non liquet by the jury, and the president's pronouncement amplius (cognoscendum). Renewals had to be repeated until + + +the verdict of fecisse videtur or non fecisse videtur was rendered. The Lex Aelia Repetundarum (123/2 B.C.) + provided against the abuses of this power by juries; it permitted the +jury no more than one renewal in a single case at penalty of a fine. + + +

+ + +

+ 9 +Cf. Plato, Phaedo 91B: + "And I would enjoin upon you to be giving only little thought to +Socrates, but much more to the truth"; and the saying attributed to +Aristotle by Cervantes: Amicus Plato, sed magis amica veritas. (See James Condamin, Répertoire Alphabétique des Citations, Lyons and Paris, 1926, pp26 ff.). + + +

+ + +

+ 10 +It has been suspected (see Friedrich Ellendt in Meyer-Dübner, Orator. Rom. Fragm., 2nd ed., p235, and Kroehnert, p30) that this may be a fragment from the speech De legibus promulgatis delivered (in 122 B.C.) + by Gaius Gracchus, the words here being directed against M. Livius + Drusus; but there is no real evidence to substantiate the conjecture. +Rutilius Lupus, 2.18 (Halm, pp20‑21), uses as an example of this figure +the following passage from Demosthenes (Fragm. + + +Orat. Att., ed. Baiter-Sauppe, + fragm. 54, p257): "But shall I refrain from speaking the +truth frankly before you? No, I say. I shall not be silent, +because the common welfare demands speech. It is by your own doing, men +of Athens, that the state is in such great peril. For you have failed to + defend yourselves, by recklessly believing every one and by esteeming +as most useful the opinions of those whose counsels are most cowardly." + + +

+ + +

+ 11 +ἀντεναντίωσις. Sometimes also μείωσις, λιτότης. + + +

+ + +

+ 12 +It has been conjectured (see Ellendt in Meyer-Dübner, Orator. Rom. Fragm., 2nd ed., p256, and Kroehnert, p31) + + +that this passage may have its source in the speech delivered by Marcus Antonius, in 98 B.C., in defence of Manius Aquilius, accused of extortion; cf. Cicero, Pro Flacco 98: + "Aquilius, who had been convicted of extortion on many charges and by +many witnesses." But there is no real evidence for the ascription. + + +

+ + +

+ 13 +διατύπωσις. Cf. demonstratio (Ocular Demonstration), + +4.lv.68 + +below, and consequentium frequentatio in + +Cicero, Part. Orat. 16.55. The figure is useful for exciting emotions; cf. the tenth commonplace of Amplification in + +2.xxx.49 + +above. + + +

+ + +

+ 14 +Cf. the example of Comparison in Aristotle, Rhet. 3.3 (1406B): + "Androtion said of Idrieus that he was 'like a cur let loose from his +chain, that flies at you and bites'; so Idrieus, let loose from his +chains, was vicious." + + +

+ + +

+ 15 +Cf. the second example of Simile, + +4.xlix.62 + +below, and the passage of Demosthenes cited in note. + + +

+ + +

+ 16 +The example is Greek in origin; see the similar example (illustrating διάλυσις) in Herodian (Walz 8.603). Notice that the speaker addresses the hearers as Quirites at first, and as iudices at the end. For content and diction cf. the example of the grand style, + +4.viii.12 + +above. Cf. also in Homer, Il. 9.591 ff., Cleopatra's description of the woes that come to + + +men whose city is captured: "The warriors are slain, the city is wasted by fire, and strangers lead captive the children and deep-girdled women"; the example of Metathesis from an unknown author in Isidore, Rhet. 21.34 + (Halm, p521): "Recall your minds to the spectacle of an unhappy city +that has been stormed, and imagine that you see all the burning, the +killing, the plundering, the pillaging, the bodily injury done the +children, the taking captive of the matrons, the slaying of the old +men"; + +Dio Chrysostom 32.89; and Caesar in + +Sallust, Cat. 51.9. + + +

+ + +

+ 17 +προσαπόδοσις, Distributive Reply. In distributis supposita ratio in + +De Oratore 3.54.207; Quintilian, + +9.3.93, doubts whether distributis subiecta ratio is a figure. The figure is related to Dilemma (duplex conclusio), used in argumentation; see + +2.xxiv.38 + +above. Cf. distributio + +(4.xxxv.47) + +and ratiocinatio + +(4.xvi.23). Cf. also Trimalchio on Agamemnon's controversia in + +Petronius 48: "If the business took place, there is no argument; if it did not, it is all nonsense." + + +

+ + +

+ 18 + +1.x.17. + + +

+ + +

+ 19 +συναθροισμός. Cf. enumeratio in + +2.xxx.47 + +above, and consummatio in + +Quintilian, 9.2.103. + + +

+ + +

+ 20 +For the same idea see + +Cicero, Part. Orat. 11.40. + + +

+ + +

+ 21 +The example that follows is a summary of a city council case (with its +dependence on the topics of circumstantial evidence) according to the +principles set forth above in + +2.ii.3 ff. + + +

+ + +

+ 22 +Cf., in + +2.iv.6 + +above, the prosecutor's use of Comparison, and for this whole passage + +Quintilian, 7.2.42‑44, on Intention (consilium). + + +

+ + +

+ 23 +Cf. 2.v.8 + +above, on Subsequent Behaviour. + + +

+ + +

+ 24 +All these considerations are discussed above in + +2.vi.9 ff. + + +

+ + +

+ 25 +A χρεία, a thought (usually ethical) developed in detail in accordance with definite rules; a favourite type of progymnasma. + + +

+ + +

+ 26 + +4.lii.65 + +below. + + +

+ + +

+ 27 +A quaestio infinita (θέσις); see + +Quintilian, 3.5.5 f. + + +

+ + +

+ 28 +Cf. Julius Rufinianus 20 (Halm, pp43‑4): "διαλογισμός occurs when someone discusses with himself and ponders what he is doing or what he thinks ought to be done." + + +

+ + +

+ 29 +Cf. Plato, Epist. 9, 358A: "Yet this, too, you ought to bear in mind — that none of us was born for self alone, but our + + +existence is shared by our country, our parents, and our friends"; Demosthenes, De Corona 205: + "Every one of those men considered himself to have been born, not to +his father and mother alone, but also to his fatherland." + + +

+ + +

+ 30 +ἀνάστασις. + + +

+ + +

+ 31 +Cf. 4.xvii.24. + + +

+ + +

+ 32 +Cf. 4.xviii.25. + + +

+ + +

+ 33 + +4.xlv.59‑xlix.62. + + +

+ + +

+ 34 + +2.xxx.47 ff. + + +

+ + +

+ 35 + +4.xxx.41. + + +

+ + +

+ 36 +The tractatio (ἐξεργασία) of the chria is freer than that of the epicheireme in + +2.xix.28 ff. This is our oldest extant illustration of a chria. Cf. the tractatio in Hermogenes, Progymn. 3 (ed. Rabe, pp6‑8). + + +

+ + +

+ 37 +The Theme expressed simply (χρεία). + + +

+ + +

+ 38 +The Reasons (αἰτίαι). + + +

+ + +

+ 39 +Expression of the theme in a new form. + + +

+ + +

+ 40 +The Reasons. + + +

+ + +

+ 41 +Cf. Cicero, Phil. 10.10.20: + "But since through the days and nights every kind of fate surrounds us +on all sides, it is not a man's part, certainly not a Roman's, to +hesitate to give to his country the life he owes to nature." + + +

+ + +

+ 42 +The argument from the Contrary (ἐκ τοῦ ἐναντίου). + + +

+ + +

+ 43 +The argument by Comparison (ἐκ παραβολῆς). + + +

+ + +

+ 44 +The national hero P. Decius Mus, in 295 B.C. at + +Sentinum + +in the war against the Samnites, flung himself upon the weapons of the +enemy, and by this act of devotion brought victory to the Romans. The +like act was attributed to his + + +father (who bore the same name) in a battle against the Latins in 340 B.C. This story was a favourite historical example (see Exemplification, + +4.xlix.62 + +below) of patriotism. + + +

+ + +

+ 45 +The argument from Example (ἐκ παραδειγμάτων), and the testimony of antiquity (μαρτύρια τῶν παλαιῶν). + + +

+ + +

+ 46 +Conclusion (ἐπίλογος). + + +

+ + +

+ 47 + +2.xviii.28, + +2.xxx.47 ff. + + +

+ + +

+ 48 +ἐπιμονή. Cf. also διατριβή, as, for example, in Aristotle, Rhet. 3.17 (1418A). + + +

+ + +

+ 49 +Anon., Schemata Dianoeas, in Halm, p72.7, cites in illustration +of this figure the famous beginning of Cicero's first oration against +Catiline: "How long, in heaven's name, Catiline, will you abuse our +patience? How much longer yet will that madness of yours make mock of +us? To what limit will your unbridled audacity vaunt itself?" + + +

+ + +

+ 50 +The basis is the common comparison of a discourse with the human body. Cf. ἁδρόν (4.viii.11 + +above), ἰσχνόν (4.x.14 + +above), and esp. sufflata (4.x.15 + +above), and dissolutum (sine nervis et articulis) and exile (4.xi.16 + +above); Cicero, Brutus 9.36 + +and + +16.64, and + +Orator 23.76; + +Horace, Serm. 2.1.2; in Plato, Phaedrus 264C, + Socrates' principle that every discourse is constructed like a living +creature, with a body of its own and a head and feet, and Aristotle, Poet., ch. 7 (1450B). See also La Rue Van Hook, The Metaphorical Terminology of Greek Rhetoric and Literary Criticism, Chicago diss., 1905, pp18 ff. + + +

+ + +

+ 51 + +4.xv.21. The ancient rhetoricians differed widely, some regarding +Antithesis as a figure of diction, others as a figure of thought, and +still others as belonging to both classes; see Cousin, Études sur Quintilien, 2.46‑8. + + +

+ + +

+ 52 +παραβολή. This figure and the next form a common triad in post-Aristotelian rhetoric. In + +Cicero, De Inv. 1.xxx.49, they are divisions of comparabile (= ὁμοίωσις). Cf. Metaphor and Allegory, + +4.xxxiv.45, 46 + +above, among + + +the figures of diction. Comparisons are invented, but drawn from real life; see + +note on Exemplification, 4.xlix.62 + +below. + + +

+ + +

+ 53 +Cf. Xenophon, Memorabilia 4.1.13; "Such as +believed themselves good by nature and looked down upon learning, +Socrates would teach that the greater the natural endowments, the +greater is the need of education, pointing out that spirited and +impetuous thoroughbreds, if they are tamed + + +when young, become useful and excellent horses, but if not broken in, become intractable and worthless;" also + +Quintilian, 5.11.24 f. + + +

+ + +

+ 54 +See + +note on Exemplification, 4.xlix.62 + +below. + + +

+ + +

+ 55 +The story of Evangelus of Tarentum at the Pythian games; see +Lucian, Adv. Indoctum 8‑10. Cf. also Socrates in Xenophon, Memorabilia 1.7.2, on the bad flute-player considered in connection with imposture and the life of virtue. + + +

+ + +

+ 56 +παράδειγμα. Examples are drawn from history. Aristotle, Rhet. 2.20 (1393A ff.), + divides Examples into this type and also that which is invented (but +drawn from real life), and the latter again into the Comparison (see + +4.xlv.49 + +above) and the Fable. Cf. Rhet. ad Alex., ch. 8 (1429A‑1430A), and Quintilian, + +5.11.1 ff. + +and + +8.3.72 ff. + +Examples are recommended especially in deliberative speaking, + +3.v.9 + +above; cf. Isocrates, Ad Demonicum 34, Aristotle, Rhet. 1.9 (1368A) and 3.17 (1418A). Both embellishment (cf. 2.xxix.46 + +above) and proof (cf. 3.iii.4 + +above) are here + + +included among the functions of Example by our author. In + +4.iii.5 + +above +the function is declared to be demonstratio, not confirmatio or testificatio; see note. For facti et dicti in the definition cf. Quintilian's recommendation in + +12.2.29 + + + +that the speaker know and ponder the noblest things "said and done" in the past, and the title of Valerius Maximus' work, Factorum et Dictorum Memorabilium Libri IX; also Thucydides' division of his material into λόγοι and ἔργα. See Karl Alewell, Über das rhetorische παράδειγμα, Kiel diss., Leipzig, 1913, especially pp18 ff. Marius Plotius (Keil, Gramm. Lat. 6.469) and Apsines, Ars Rhet. 8 (Spengel-Hammer 1[2].281.10 ff.) treat four methods of drawing examples: from the like, the contrary, the greater, the less; cf. 4.xlv.49 + +above. + + +

+ + +

+ 57 + +4.xliv.57 + +above. + + +

+ + +

+ 58 + +4.xlv.59 + +above. + + +

+ + +

+ 59 +εἰκών. Puttenham's "Resemblance by Imagerie or Pourtrait." Cf. Aristotle, Rhet. 3.4 (1406B ff.). In post-Aristotelian rhetoric this appears as a special figure, separate from similitudo (Comparison), + +4.xlv.59 + +above, to which it is yet closely akin; Minucianus, De Epich. 2 (Spengel-Hammer 1[2].342) attributes greater vividness to εἰκών. Quintilian, + +5.11.24, advises that this kind of comparison should be used less often than the kind which helps to prove our point. Cf. Cicero, De Inv. 1.xxx.49. Polybius Sard. (Spengel 3.108) gives nine figures related to εἰκών. + + +

+ + +

+ 60 +Cf. Aristotle, Rhet. 3.4 (1406B): "When Homer [cf. Il. 20.164] says of Achilles, 'Like a lion he rushed to meet his foe,' that is εἰκών." + + +

+ + +

+ 61 +βάσκανος ὀφθαλμός. For the example cf. Demosthenes, Adv. Aristogeit. 1.52: "But he moves through the market-place + like a snake or scorpion with sting raised, darting here and there, +looking about for someone upon whom to bring down misfortune or calumny +or evil of some kind." + + +

+ + +

+ 62 +The Galli derived their name from a river Gallus in Phrygia; who drank of it went mad + +(Ovid, Fasti 4.366). The worship of the Phrygian Mother Goddess was characterized by extreme wildness. + + +

+ + +

+ 63 +χαρακτηρισμός, favoured in comedy; e.g.Terence, Hecyra 439‑41: "Well, I'll describe him so that you will recognize him — he is tall, ruddy, curly-headed, heavy-set, blear-eyed, and has a face like a corpse." Quintilian, + +9.3.99, excludes this from the figures. + + +

+ + +

+ 64 +ἠθοποιία. Morum ac vitae imitatio in + +Cicero, De Oratore 3.53.204. Cf. Theophrastus, Characters, especially XXIII, "Pretentiousness." Theophrastus developed the type; Roman comedy favoured it (cf. the narratives in Terence, and, for the theme, the Miles Gloriosus of Plautus). Of the orators Lysias employs Ethopoeia with special skill. ἠθοποιία may be connected with the simple style (see + +4.x.14 + +above), although the example of the figure shows an artificial elegance which sermo rarely had. Quintilian, + +9.3.99, excludes ἠθοποιία from the figures. + + +

+ + +

+ 65 +This gesture, used by Palaestrio in + +Plautus, Miles Gloriosus 209, is interpreted by Periplecomenus as indicating thought. Cf. the statue of Polyhymnia, No. 195 in A. Baumeister, Bilder aus dem griech. und röm. Altertum, Munich, 1889. + + +

+ + +

+ 66 +Cf., in Athenaeus, 6.230, the bragging +beggar who owned in all only a drachm's weight of silver, and would +shout to his one and only slave — but using names as many as the sands +in number: "Boy! Strombichides! Don't set before us the silver we use in + winter, but that which we use in summer!" + + +

+ + +

+ 67 +Unlike Sannio, who was doubtless home-born. + + +

+ + +

+ 68 +In Theophrastus, Characters 21.4, the Man of Petty Ambition "sees to it that his attendant shall be an Ethiop." + + +

+ + +

+ 69 +Cf. Calpurnius Siculus 3.63 f.: "Let him only vie in feeding kids in number equal to my bulls as these are counted at nightfall." + + +

+ + +

+ 70 +The dinner hour; cf. Martial, Epigr. 4.8.7, + +7.51.11. + + +

+ + +

+ 71 +Cf. the situation in + +Plautus, Pseud. 960‑2. + + +

+ + +

+ 72 +Cf. Plautus, Asin. 444 ff.: + [Leonida:] "The cups I lent Philodamus — has he brought them +back?" [Libanus:] "Not yet." "Oh? He hasn't? Give things away, if you +wish — accommodate a friend with them." + + +

+ + +

+ 73 +In this ware metal shapes were imitated. By no means the humblest ware, +Samian yet represents the inferiority of earthen vessels as against +those of metal. See F. O. Waagé, Antiquity 11 (1937), 46‑55. + + +

+ + +

+ 74 +διάλογοι. Quintilian, + +9.2.29 ff., joins this figure and Personification (next below) as one. Cf. 4.xliii.55 + +above. + + +

+ + +

+ 75 +Cf. Plautus, Rud. 315: "Who had three men with him, wearing cloaks and swords (chlamydatos cum machaeris)." + + +

+ + +

+ 76 +The style is Greek. Cf., for example, Euripides, Androm. 892‑3: πρός σε τῶνδε γουνάτων οἴκτειρον ἡμᾶς ("I implore you by these knees, take pity on me"), and Medea 324; Sophocles, Oed. Col. 250, and Philoct. 468. + + +

+ + +

+ 77 +Cf. Euripides, Alc. 1065: "Take me not captive who am already captive"; Sophocles, Antig. 1030: "What feat is it to slay the slain anew?"; + +Ovid, Epist. ex Ponto 4.16.51: "What pleasure do you find, Malice, in driving the steel into limbs already dead?" + + +

+ + +

+ 78 +Cf. Isocrates, Ad Demonicum 21: "You will achieve self-control if, when in trouble, you regard the misfortunes of + + +others and remind yourself that you are human"; the verse ascribed in Stobaeus, 3.22.25, to the poet Hippothoön (or Hippothoüs): "Since you are human, remember the common lot of humanity" (see + +Nauck, Trag. Graec. Fragm., 2nd ed. [1889], p827); Theseus in Sophocles, Oed. Col. 567 f.: "I know well that I am mortal and have no greater share in the morrow than you do." + + +

+ + +

+ 79 +γνωμολογεῖς. + + +

+ + +

+ 80 +Cf. in Homer, Il. 6.490, Hector's words to Andromache: "But go thou to thine house and attend to thine own tasks." + + +

+ + +

+ 81 +Whereas the example of Character Delineation next above is in the spirit + of comedy, this example is tragic in nature. As the notes indicate, it +is probably of Greek origin, despite certain of its distinctively Roman +features. Marx, Proleg., p108, thinks that it may perhaps be referred to the controversia concerning the murder of Sulpicius, + +1.xv.25 + +above. + + +

+ + +

+ 82 +προσωποποιία. Representing an absent person as present would not today be regarded as strictly within the meaning of Personification. Cf. Cicero, De Oratore 3.53.205 +(personarum ficta inductio); + +Quintilian, 9.2.29‑37. See George Reichel, Quaestiones Progymnasm., diss. Leipzig, 1909, pp75‑88, on this figure as a progymnasma. Making the dead speak was sometimes called εἰδωλοποιία. Cf. Cicero, Orator 25.85: + "The [unaffected Attic speaker] will not represent the commonwealth as +speaking, or call the dead from the lower world." Volkmann, p490, +excludes Personification from the figures of thought; see also pp280 +and 312 on its uses. + + +

+ + +

+ 83 +Such sentiments as are expressed in these two passages might have been +uttered by tribunes of the plebs in the time of Marius; see Kroehnert, +p32. L. Junius Brutus liberated Rome from the Tarquins and founded +the Roman consulate. + + +

+ + +

+ 84 +See + +2.xxx.48‑xxxi.50. + + +

+ + +

+ 85 +ἔμφασις. Meaning conveyed by implication. Really more a trope than a figure. Cf. Quintilian, 8.3.83: "There are two kinds of Emphasis; one means more than it says, the other often means something it does not say." + + +

+ + +

+ 86 +See + +4.xxxiii.44 + +above +(superlatio). + + +

+ + +

+ 87 +This passage is in the spirit of the excerpts, in + +Cicero, De Oratore 2.55.223‑6, from the speech delivered in probably + + +91 B.C. by +L. Licinius Crassus on behalf of Cn. Planc(i)us against +M. Junius Brutus, who had squandered his patrimony. Kroehnert, p31, + thinks it may come from this speech, but there is no real evidence for +the ascription. + + +

+ + +

+ 88 +Quintilian, + +6.3.47 ff., considers the play on double meanings only rarely telling, unless helped out by the facts. + + +

+ + +

+ 89 +The play is upon the double meaning of cernere: + to "discern" and, in judicial language, "to enter upon an inheritance;" + thus: "you who know exceedingly well how to enter upon bequests." + + +

+ + +

+ 90 +ἐπακολούθησις. + + +

+ + +

+ 91 +The saying is common, e.g., with reference to the freedman father of the poet Horace, in + +Suetonius, De Viris Illustribus, Vita Horatii, and to the freedman father of Bion of Borysthenes (first half, third century B.C.), in + +Diogenes Laertius 4.46. Cf. also Plutarch, Quaest. Conviv. 2.4 (631D), and, illustrating σκῶμμα (contumelia celata), + +Macrobius, Sat. 7.3.6. + + +

+ + +

+ 92 +See + +4.xxx.41 + +above (praecisio). + + +

+ + +

+ 93 +L. Appuleius Saturninus, of praetorian descent, after being removed from the quaestor­ship by the Senate, joined the populares, and thereafter by demagoguery and violence + + +fought the Senate until he was, in 100 B.C., declared a public enemy by that body and slain, the mob participating; see + +note on 4.xxii.31 + +above. Saturninus was influenced by the political ideas of C. Gracchus. On his grain-bill see + +1.xii.21 + +above. + + +

+ + +

+ 94 +βραχυλογία. Also, from another point of view, ἐπιτροχασμός. Cf. distincte concisa brevitas and percursio in + +Cicero, De Oratore 3.53.202. Quintilian in + +9.3.99 + +denies that βραχυλογία is a figure, yet in + +9.3.50 + +treats it as a form of Asyndeton. + + +

+ + +

+ 95 +Text and reference are uncertain. Friedrich Muenzer (Philologus 89 [1934], 215‑25) believes that the expedition made in 202‑200 B.C. + by Philip V of Macedon (Rome declared war in 200) is +indicated. Cius was the city on the Propontis in Bithynia. The Rhodians +were active against Philip; this passage may come from an actual +oration, perhaps delivered, Muenzer thinks, by Apollonius Molo or +Apollonius ὁ μαλακός. W. Warde Fowler, + +Class. Rev. 29 (1915), 136‑7, and Roman Essays and Interpretations, Oxford, 1920, pp95‑99, thinks the reference is to Lucullus and his fleet in 84 (85) B.C., when he was clearing the Hellespont and Aegean of the forces of Mithridates for Sulla. Marx (Viminacium), Rhein. Mus. 47  +(1892), 157‑9, doubts the possibility of establishing the reference. For + other conjectures, see A. von Domaszewski, Jahreshefte der oesterr. archaeol. Inst. in Wien, Hermes 8 (1874), 75‑7 (Lysimachia, and Antiochus III after his defeat in 191 B.C. by the Romans at Thermopylae). +

+Alexander Numenii, De Schemat. (Spengel 3.22), cites in + + +illustration of ἐπιτροχασμός Demosthenes, Phil. 3.27: + "He has gone to the Hellespont; formerly he marched against Ambracia; +Elis — that important city in the Peloponnese — he holds; against the +Megarians he plotted lately." If our author's example does not come from + a speech actually delivered, it may be an imitation of this passage. + + +

+ + +

+ 96 +The reference is to Marius; see W. Warde Fowler, Journ. of Philol. 10 (1882), 197‑205, and Roman Essays and Interpretations, pp91‑95. Marius was consul for the first time in 107 B.C., and for the fifth in 101; in 100, during his sixth consul­ +ship, spent at Rome, he was in complete control of the state; he +departed for Asia in voluntary exile in 99; when, after the contest + with Sulla in 88, he was declared a public enemy by the Senate and + exiled, he fled to Africa; he returned to Italy in the middle +of 87, and soon thereafter received from Cinna the proconsular imperium and the fasces; he held the consul­ +ship for the seventh time in January 86 for a few days until +his death. The career of Marius was a common theme in the rhetorical +schools; cf. Seneca, Contr. 1.1.5, + +Valerius Maximus, 6.9.14. + + +

+ + +

+ 97 +ἐνάργεια. To Quintilian, + +8.3.61, + +9.2.40, evidentia, repraesentatio, sub oculos subiectio. Sometimes Hypotyposis (ὑποτύπωσις). Cf. descriptio, + +4.xxxix.51 + +above; Kroll, "Rhetorik," coll. 1111 f. + + +

+ + +

+ 98 +τὰ παρεπόμενα. + + +

+ + +

+ 99 +τὰ παρακολουθοῦντα, τὰ συμβαίνοντα. + + +

+ + +

+ 100 +Cf. Cicero, Verr. 2.5.62.161: + "He [Verres] came into the Forum burning with criminal fury; his eyes +blazed, and cruelty stood out on every feature of his face;" cited by +Quintilian, + +9.2.40, and by Gellius, + +10.3.9. + + +

+ + +

+ 101 +This is a partisan narrative, probably from a controversia, of the murder of Ti. Gracchus in 133 B.C. + by P. Cornelius Scipio Nasica Serapio and his followers. On the +accounts that we have in the ancient historians see Friedrich Muenzer, +P.‑W. 4.1503. + + +

+ + +

+ 102 +μεγαλοπρέπεια. + + +

+ + +

+ 103 +τὸ ἡδύ. + + +

+ + +

+ 104 +Cf. 1.1.1 + +above. + + +

+ + +

+ 105 +Philodemus, Rhet., ed. Sudhaus, 1.250, says that the art of rhetoric does not conduce to a life of happiness. + +

+

+Thayer's Note: At last, after having transcribed this entire work by +hand, and its 765 notes, and out of excess of masochism, proofread +all of it — something I can connect with. If, having read this +querulous little bleat of mine, you should actually happen to have found + the exercise useful, + +please drop me a line + +and let me know that I haven't wasted a week and a half of my life: I will be gratified; and amazed. +

+ + +

+ + +

+ 106 +Cf. Dionysius Halic., De Composit. Verb., +ch. 26, Conclusion: "Here, Rufus, is my gift to you. It will be +'worth many others' if only you will . . . exercise yourself +in its lessons every day. For the rules in textbooks of rhetoric cannot +by themselves make expert those who are eager to dispense with study and + practice." + + + +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + +

+ 
+[image ALT: Valid HTML 4.01.]
+	+

+Page updated: +14 Feb 18 +

+ + \ No newline at end of file diff --git a/sources/book_4c_files/401.png b/sources/book_4c_files/401.png new file mode 100644 index 0000000..c010842 Binary files /dev/null and b/sources/book_4c_files/401.png differ diff --git a/sources/book_4c_files/Ebox.js b/sources/book_4c_files/Ebox.js new file mode 100644 index 0000000..0c57824 --- /dev/null +++ b/sources/book_4c_files/Ebox.js @@ -0,0 +1,2921 @@ +//\//////////////////////////////// +//\ overLIB 3.33 -- This notice must remain untouched at all times. +//\ Copyright Erik Bosrup 1998-2001. All rights reserved. +//\ +//\ By Erik Bosrup (erik@bosrup.com). Last modified 2001-01-26. +//\ Portions by Dan Steinman (dansteinman.com). Additions by other people are +//\ listed on the overLIB homepage. +//\ +//\ Get the latest version at http://www.bosrup.com/web/overlib/ +//\ +//\ This script is published under an open source license. Please read the license +//\ agreement online at: http://www.bosrup.com/web/overlib/license.html +//\ If you have questions regarding the license please contact erik@bosrup.com. +//\ +//\ This script library was originally created for personal use. By request it has +//\ later been made public. This is free software. Do not sell this as your own +//\ work, or remove this copyright notice. For full details on copying or changing +//\ this script please read the license agreement at the link above. +//\ +//\ Please give credit on sites that use overLIB and submit changes of the script +//\ so other people can use them as well. This script is free to use, don't abuse. +//\//////////////////////////////// +//\mini + +//\//////////////////////////////// +//\ ▸ the URLs above, at "bosrup.com", are dead: the entire site went belly-up. +//\//////////////////////////////// + + +//\//////////////////////////////// +//\ Thayer flavor: +//\ I've renamed "overlib" to "Ebox", "Fbox", etc. +//\ to save 3 characters on each call +//\ while specifying the language (English, French, etc.) +//\//////////////////////////////// + + +//////////////////////////////////// +// CONSTANTS +// Don't touch these. :) +//////////////////////////////////// +var INARRAY = 1; +var CAPARRAY = 2; +var STICKY = 3; +var BACKGROUND = 4; +var NOCLOSE = 5; +var CAPTION = 6; +var LEFT = 7; +var RIGHT = 8; +var CENTER = 9; +var OFFSETX = 10; +var OFFSETY = 11; +var FGCOLOR = 12; +var BGCOLOR = 13; +var TEXTCOLOR = 14; +var CAPCOLOR = 15; +var CLOSECOLOR = 16; +var WIDTH = 17; +var BORDER = 18; +var STATUS = 19; +var AUTOSTATUS = 20; +var AUTOSTATUSCAP = 21; +var HEIGHT = 22; +var CLOSETEXT = 23; +var SNAPX = 24; +var SNAPY = 25; +var FIXX = 26; +var FIXY = 27; +var FGBACKGROUND = 28; +var BGBACKGROUND = 29; +var PADX = 30; +var PADY = 31; +var PADX2 = 32; +var PADY2 = 33; +var FULLHTML = 34; +var ABOVE = 35; +var BELOW = 36; +var CAPICON = 37; +var TEXTFONT = 38; +var CAPTIONFONT = 39; +var CLOSEFONT = 40; +var TEXTSIZE = 41; +var CAPTIONSIZE = 42; +var CLOSESIZE = 43; +var FRAME = 44; +var TIMEOUT = 45; +var FUNCTION = 46; +var DELAY = 47; +var HAUTO = 48; +var VAUTO = 49; + + +//////////////////////////////////// +// DEFAULT CONFIGURATION +// You don't have to change anything here if you don't want to. All of this can be +// changed on your html page or through an overLIB call. +//////////////////////////////////// + +// Main background color (the large area) +// Usually a bright color (white, yellow etc) +if (typeof ol_fgcolor == 'undefined') { var ol_fgcolor = "#FFFFDD";} + +// Border color and color of caption +// Usually a dark color (black, brown etc) +if (typeof ol_bgcolor == 'undefined') { var ol_bgcolor = "#333399";} + +// Text color +// Usually a dark color +if (typeof ol_textcolor == 'undefined') { var ol_textcolor = "#000066";} + +// Color of the caption text +// Usually a bright color +if (typeof ol_capcolor == 'undefined') { var ol_capcolor = "#FFFFFF";} + +// Color of "Close" when using Sticky +// Usually a semi-bright color +if (typeof ol_closecolor == 'undefined') { var ol_closecolor = "#9999FF";} + +// Font face for the main text +if (typeof ol_textfont == 'undefined') { var ol_textfont = "Courier, Courier New, serif";} + +// Font face for the caption +if (typeof ol_captionfont == 'undefined') { var ol_captionfont = "Courier, Courier New";} + +// Font face for the close text +if (typeof ol_closefont == 'undefined') { var ol_closefont = "Courier, Courier New";} + +// Font size for the main text +if (typeof ol_textsize == 'undefined') { var ol_textsize = "1";} + +// Font size for the caption +if (typeof ol_captionsize == 'undefined') { var ol_captionsize = "1";} + +// Font size for the close text +if (typeof ol_closesize == 'undefined') { var ol_closesize = "1";} + +// Width of the popups in pixels +// 100-300 pixels is typical +if (typeof ol_width == 'undefined') { var ol_width = "225";} + +// How thick the ol_border should be in pixels +// 1-3 pixels is typical +if (typeof ol_border == 'undefined') { var ol_border = "2";} + +// How many pixels to the right/left of the cursor to show the popup +// Values between 3 and 12 are best +if (typeof ol_offsetx == 'undefined') { var ol_offsetx = 10;} + +// How many pixels below the cursor to show the popup +// Values between 3 and 12 are best +if (typeof ol_offsety == 'undefined') { var ol_offsety = 10;} + +// Default text for popups +// Should you forget to pass something to overLIB this will be displayed. +if (typeof ol_text == 'undefined (but the link is good !)') { var ol_text = "Default Text"; } + +// Default caption +// You should leave this blank or you will have problems making non caps popups. +if (typeof ol_cap == 'undefined') { var ol_cap = ""; } + +// Decides if sticky popups are default. +// 0 for non, 1 for stickies. +if (typeof ol_sticky == 'undefined') { var ol_sticky = 0; } + +// Default background image. Better left empty unless you always want one. +if (typeof ol_background == 'undefined') { var ol_background = ""; } + +// Text for the closing sticky popups. +// Normal is "Close". +if (typeof ol_close == 'undefined') { var ol_close = "Close"; } + +// Default vertical alignment for popups. +// It's best to leave RIGHT here. Other options are LEFT and CENTER. +if (typeof ol_hpos == 'undefined') { var ol_hpos = RIGHT; } +// TO CHANGE THIS WITHIN A PAGE: see syntax on +// E/Gazetteer/Places/Asia/Russia/_Topics/history/_Texts/SMANPS/Appendices/C*.html +// (search for "ol_hpos") + +// Default status bar text when a popup is invoked. +if (typeof ol_status == 'undefined') { var ol_status = ""; } + +// If the status bar automatically should load either text or caption. +// 0=nothing, 1=text, 2=caption +if (typeof ol_autostatus == 'undefined') { var ol_autostatus = 0; } + +// Default height for popup. Often best left alone. +if (typeof ol_height == 'undefined') { var ol_height = -1; } + +// Horizontal grid spacing that popups will snap to. +// 0 makes no grid, anything else will cause a snap to that grid spacing. +if (typeof ol_snapx == 'undefined') { var ol_snapx = 0; } + +// Vertical grid spacing that popups will snap to. +// 0 makes no grid, anything else will cause a snap to that grid spacing. +if (typeof ol_snapy == 'undefined') { var ol_snapy = 0; } + +// Sets the popups horizontal position to a fixed column. +// Anything above -1 will cause fixed position. +if (typeof ol_fixx == 'undefined') { var ol_fixx = -1; } + +// Sets the popups vertical position to a fixed row. +// Anything above -1 will cause fixed position. +if (typeof ol_fixy == 'undefined') { var ol_fixy = -1; } + +// Background image for the popups inside. +if (typeof ol_fgbackground == 'undefined') { var ol_fgbackground = ""; } + +// Background image for the popups frame. +if (typeof ol_bgbackground == 'undefined') { var ol_bgbackground = ""; } + +// How much horizontal left padding text should get by default when BACKGROUND is used. +if (typeof ol_padxl == 'undefined') { var ol_padxl = 1; } + +// How much horizontal right padding text should get by default when BACKGROUND is used. +if (typeof ol_padxr == 'undefined') { var ol_padxr = 1; } + +// How much vertical top padding text should get by default when BACKGROUND is used. +if (typeof ol_padyt == 'undefined') { var ol_padyt = 1; } + +// How much vertical bottom padding text should get by default when BACKGROUND is used. +if (typeof ol_padyb == 'undefined') { var ol_padyb = 1; } + +// If the user by default must supply all html for complete popup control. +// Set to 1 to activate, 0 otherwise. +if (typeof ol_fullhtml == 'undefined') { var ol_fullhtml = 0; } + +// Default vertical position of the popup. Default should normally be BELOW. +// ABOVE only works when HEIGHT is defined. +if (typeof ol_vpos == 'undefined') { var ol_vpos = BELOW; } + +// Default height of popup to use when placing the popup above the cursor. +if (typeof ol_aboveheight == 'undefined') { var ol_aboveheight = 50; } + +// Default icon to place next to the popups caption. +if (typeof ol_caption == 'undefined') { var ol_capicon = ""; } + +// Default frame. We default to current frame if there is no frame defined. +if (typeof ol_frame == 'undefined') { var ol_frame = self; } + +// Default timeout. By default there is no timeout. +if (typeof ol_timeout == 'undefined') { var ol_timeout = 0; } + +// Default javascript function. By default there is none. +if (typeof ol_function == 'undefined') { var ol_function = Function(); } + +// Default timeout. By default there is no timeout. +if (typeof ol_delay == 'undefined') { var ol_delay = 0; } + +// If overLIB should decide the horizontal placement. +if (typeof ol_hauto == 'undefined') { var ol_hauto = 0; } + +// If overLIB should decide the vertical placement. +if (typeof ol_vauto == 'undefined') { var ol_vauto = 0; } + + +//////////////////////////////////// +// ARRAY CONFIGURATION +// You don't have to change anything here if you don't want to. The following +// arrays can be filled with text and html if you don't wish to pass it from +// your html page. +//////////////////////////////////// + +// THAYER'S BOILERPLATES: +var CClickHere = "

Feu clic aquí per
"; +var EClickHere = "

Click here for
"; +var FClickHere = "

Faire clic ici pour
"; +var IClickHere = "

Cliccare qui per
"; +var NClickHere = "

Klik hier voor
"; +var PClickHere = "

Clique aqui para
"; +var SClickHere = "

Haga clic aquí para
"; +var CZero = "

La pàgina s\'obre en
AQUESTA finestra
"; +var EZero = "

Page opens
in THIS window
"; +var FZero = "

S\'ouvre dans
CETTE fenêtre
"; +var IZero = "

Si apre in
QUESTO pannello
"; +var PZero = "

A página abre
NESTA janela
"; +var SZero = "

La página abre
en ESTA ventana
"; +var CThisWindow = "
La pàgina s\'obre
en AQUESTA finestra
"; +var EThisWindow = "
Page opens
in THIS window
"; +var FThisWindow = "
S\'ouvre dans
CETTE fenêtre
"; +var IThisWindow = "
Si apre in
QUESTO pannello
"; + +// THAYER'S ARRAYS: +// Array with texts. FOR SIMPLICITY, KEEP THIS AT LINE 280 (Number is then linenum minus 285) +// LANGUAGE ORDER: E:0 - F:10 - I:20 - L:30 - S:40 - P:90 (…0-4: EFILS) +// AFTER THE COMMA AT THE END OF EACH LINE: THERE MUST BE A SPACE! +// EXCEPT THE LAST LINE HAS NO COMMA, NO SPACE: FOR SIMPLICITY, KEEP IT AS A BLANK LINE. +var ol_texts = new Array( +EZero, +"

(Page opens in another window)", +"

Link is offsite:
page opens in
another window.
", +"

(This photo or a related one, opens in another window)", +"

(The photo will open in another window)", +"

(Elsewhere on this page)", +EClickHere+"the author\'s note at the bottom of this page.", +EClickHere+"my note at the bottom of this page.", +"

Click here
to go back
to the reference
in the text.", +"

If you don\'t know what this is about,
the explanation is only a click away.
(Opens in another window)", +FZero, +"

(La page s\'ouvre dans une autre fenêtre)", +"

Le lien est hors site :
la page s\'ouvre
dans une autre fenêtre
", +"

(Cette photo ou une photo apparentée, s\'ouvre dans une autre fenêtre)", +"

(Cette photo s\'ouvre dans une autre fenêtre)", +"

(Ailleurs sur cette page)", +FClickHere+"la note de l\'auteur au bas de la page.", +FClickHere+"ma note au bas de la page.", +FClickHere+"retourner au renvoi dans le texte.", +"

Si vous ne savez pas ce de quoi il s\'agit, il n\'y a qu\'à faire clic pour l\'explication.
(S'ouvre dans une autre fenêtre)", +"

(Die Seite öffnet sich in DIESEM Fenster)", +"

(Die Seite öffnet sich in einem anderen Fenster)", +"

(Auf externe Site: die Seite öffnet sich in einem anderen Fenster)", +"

(Dieses Foto oder ein Ähnliches Foto öffnet sich in einem anderen Fenster)", +"

(Die Foto öffnet sich in einem anderen Fenster)", +" ", +" ", +" ", +" ", +" ", +IZero, +"

(La pagina si apre in un altro pannello)", +"

Il link è fuori sito:
la pagina si apre
in un altro pannello
", +"

(Questa foto o una foto connessa, si apre in un altro pannello)", +"

(La foto si apre in un altro pannello)", +"

(Altrove su questa pagina)", +IClickHere+"la nota
dell\' autore a piè di pagina.", +IClickHere+"la mia nota a piè di pagina.", +IClickHere+"tornare al riferimento nel testo.", +"

Se questo non vi dice nulla, basta cliccare per la spiegazione.
(La pagina si apre in un altro pannello)", +"

(HAC in fenestra aperietur pagina)", +"

(Altera in fenestra aperietur pagina)", +"

(In alio situ: altera in fenestra aperietur pagina)", +"

(Altera in fenestra aperietur haec seu conexa photo)", +"

(Altera in fenestra aperietur photo)", +"

(Alibi in hac pagina)", +"

Cliccare hic
ad auctoris sive editoris
adnotationem legendam
in ima pagina", +"

Cliccare hic
ad adnotationem meam
in ima pagina legendam", +"

Cliccare hic
ad revertendum in textum", +" ", +SZero, +"

(La página abre en una otra ventana)", +"

(Fuera del sitio: la página abre en una otra ventana)", +"

(Esta foto o una foto relacionada, abre en una otra ventana)", +"

(La foto abre en una otra ventana)", +"

(Otra parte en esta página)", +SClickHere+"la nota del autor en bajo de la página.", +SClickHere+"mi nota en bajo de la página.", +SClickHere+"volver a la referencia en el texto.", +" ", +EClickHere+"the article in Smith\'s Dictionary."+EThisWindow, +FClickHere+"l\' article de Smith\'s Dictionary."+FThisWindow, +IClickHere+"
l\' articolo
di Smith\'s Dictionary."+IThisWindow, +" ", +SClickHere+"el artículo de Smith\'s Dictionary.
(Abre en ESTA ventana)", +EClickHere+"the article in Smith\'s Dictionary.
(Page opens in another window)", +FClickHere+"l\' article de Smith\'s Dictionary.
(S'ouvre dans une autre fenêtre)", +IClickHere+"l\' articolo di Smith\'s Dictionary.
(Si apre in un altro pannello)", +" ", +SClickHere+"el artículo de Smith\'s Dictionary.
(Abre en una otra ventana)", +"

If you don\'t know what this is about,
the explanation is only a click away."+EThisWindow, +"

Si vous ne savez pas ce de quoi il s\'agit,
il n\'y a qu\'à faire clic pour l\'explication."+FThisWindow, +"

Se non sapete che cosa è,
basta cliccare qui per la spiegazione."+IThisWindow, +" ", +" ", +"

If you don\'t know what this is about,
the explanation is only a click away.
(Offsite: opens in another window)", +"

Si vous ne savez pas ce de quoi il s\'agit,
il n\'y a qu\'à faire clic pour l\'explication.
(Hors site: s\'ouvre dans une autre fenêtre)", +"

Se non sapete che cosa è,
basta cliccare qui per la spiegazione.
(Fuori sito: si apre in un altro pannello)", +" ", +" ", +EClickHere+"the relevant section
of an article
in Smith\'s Dictionary."+EThisWindow, +FClickHere+"le passage ou le chapitre de l\' article
de Smith\'s Dictionary."+FThisWindow, +IClickHere+"la parte corrispettiva di un articolo
di Smith\'s Dictionary."+IThisWindow, +" ", +SClickHere+"la parte relativa del artículo de Smith\'s Dictionary.
(Abre en ESTA ventana)", +EClickHere+"the relevant section
of an article
in Smith\'s Dictionary.
(Page opens
in another window)
", +FClickHere+"le passage ou le chapitre de l\' article
de Smith\'s Dictionary.
(S'ouvre dans une autre fenêtre)", +IClickHere+"la parte corrispettiva di un articolo
di Smith\'s Dictionary.
(Si apre in un altro pannello)", +" ", +SClickHere+"la parte relativa del artículo de Smith\'s Dictionary.
(Abre en una otra ventana)", +PZero, +"

(A página abre em uma outra janela)", +"

(Offsite: a página abre em uma outra janela)", +"

(Esta foto ou uma foto relacionada, abre em uma outra janela)", +"

(A foto abre em uma outra janela)", +"

(Em outro lugar desta página)", +PClickHere+"a anotação do autor no fim da página.", +PClickHere+"a minha anotação no fim da página.", +PClickHere+"voltar para a referência no texto.", +" ", +EClickHere+"the main index page of Smith\'s Dictionary.
(Opens in a separate index window)", +FClickHere+"la page principale de Smith\'s Dictionary.
(S\'ouvre dans une autre fenêtre-index)", +IClickHere+"la pagina principale di Smith\'s Dictionary.
(Si apre in un altro pannello-indice)", +" ", +SClickHere+"la página principal de Smith\'s Dictionary.
(Abre en una otra ventana-indice)", +" ", +"

Click here
for the text discussion.
(Elsewhere on this page)", +EClickHere+"the main index page of Smith\'s Dictionary."+EThisWindow, +EClickHere+"the main index page of Daremberg & Saglio\'s Dictionary.
(Opens in a separate index window)", +EClickHere+"the main index page of Daremberg & Saglio\'s Dictionary."+EThisWindow, +EClickHere+"the article in Platner\'s Topographical Dictionary of Ancient Rome.
(Page opens in THIS window)", +FClickHere+"l\'article dans le Topographical Dictionary of Ancient Rome de Platner.
(La page s\'ouvre dans CETTE fenêtre)", +IClickHere+"l\' articolo nel Topographical Dictionary of Ancient Rome del Platner."+IThisWindow, +"

Cliccare hic ad articulum legendum
in Platneri Topographical Dictionary of Ancient Rome.
(Anglice, HANC in fenestram aperietur pagina)", +SClickHere+"el artículo en el Topographical Dictionary of Ancient Rome de Platner.
(Abre en ESTA ventana)", +EClickHere+"the article in Platner\'s Topographical Dictionary of Ancient Rome.
(Page opens in another window)", +FClickHere+"l\'article dans le Topographical Dictionary of Ancient Rome de Platner.
(La page s\'ouvre dans une autre fenêtre)", +IClickHere+"l\' articolo nel Topographical Dictionary of Ancient Rome del Platner.
(Si apre in un altro pannello)", +"

Cliccare hic ad articulum legendum
in Platneri Topographical Dictionary of Ancient Rome.
(Anglice, altera in fenestra aperietur pagina)", +SClickHere+"el artículo en el Topographical Dictionary of Ancient Rome de Platner.
(Abre en una otra ventana)", +EClickHere+"the article in Platner\'s Topographical Dictionary of Ancient Rome, with one or more photos.
(Page opens in THIS window)", +FClickHere+"l\'article dans le Topographical Dictionary of Ancient Rome de Platner, avec une ou plusieurs photos.
(La page s\'ouvre dans CETTE fenêtre)", +IClickHere+"l\' articolo nel Topographical Dictionary of Ancient Rome del Platner, con una o parecchie foto."+IThisWindow, +"

Cliccare hic ad articulum legendum
in Platneri Topographical Dictionary of Ancient Rome,
una pluribusve cum photographiis.
(Anglice, HANC in fenestram aperietur pagina)", +" ", +EClickHere+"the article in Platner\'s Topographical Dictionary of Ancient Rome, with one or more photos.
(Page opens in another window)", +FClickHere+"l\'article dans le Topographical Dictionary of Ancient Rome de Platner, avec une ou plusieurs photos.
(La page s\'ouvre dans une autre fenêtre)", +IClickHere+"l\' articolo nel Topographical Dictionary of Ancient Rome del Platner, con una o parecchie foto.
(Si apre in un altro pannello)", +"

Cliccare hic ad articulum legendum
in Platneri Topographical Dictionary of Ancient Rome,
una plurisve photographiis.
(Anglice, altera in fenestra aperietur pagina)", +" ", +EClickHere+"the relevant section of an article in Platner\'s Topographical Dictionary of Ancient Rome.
(Page opens in THIS window)", +FClickHere+"la partie relative à ce sujet dans l\'article du Topographical Dictionary of Ancient Rome de Platner.
(La page s\'ouvre dans CETTE fenêtre)", +IClickHere+"la parte pertinente di un articolo nel Topographical Dictionary of Ancient Rome del Platner."+IThisWindow, +" ", +SClickHere+"la parte pertinente de un artículo en el Topographical Dictionary of Ancient Rome de Platner.
(Abre en ESTA ventana)", +EClickHere+"the relevant section of an article in Platner\'s Topographical Dictionary of Ancient Rome.
(Page opens in another window)", +FClickHere+"la partie relative à ce sujet dans l\'article du Topographical Dictionary of Ancient Rome de Platner.
(La page s\'ouvre dans une autre fenêtre)", +IClickHere+"la parte pertinente di un articolo nel Topographical Dictionary of Ancient Rome del Platner.
(Si apre in un altro pannello)", +" ", +SClickHere+"la parte pertinente de un artículo en el Topographical Dictionary of Ancient Rome de Platner.
(Abre en una otra ventana)", +EClickHere+"the complete work(s), onsite.
(Page opens in THIS window)", +" ", +" ", +" ", +" ", +EClickHere+"the complete work(s), onsite.
(Page opens in another window)", +" ", +" ", +" ", +" ", +EClickHere+"Armellini\'s
Chiese di Roma,
to this passage.
(In Italian;
page opens in THIS window)
", +FClickHere+"Chiese di Roma de Mariano Armellini, à ce passage.
(en italien; la page s\'ouvre dans CETTE fenêtre)", +IClickHere+"le Chiese di Roma dell\' Armellini, a questo passo."+IThisWindow, +" ", +" ", +EClickHere+"Armellini\'s
Chiese di Roma,
to this passage.
(In Italian;
page opens
in another window)
", +FClickHere+"Chiese di Roma de Mariano Armellini, à ce passage.
(en italien; la page s\'ouvre dans une autre fenêtre)", +IClickHere+"le Chiese di Roma dell\' Armellini, a questo passo.
(Si apre in un altro pannello)", +" ", +" ", +EClickHere+"Christian Hülsen\'s
Chiese di Roma nel Medio Evo,
to this passage or section.
(In Italian;
page opens in THIS window)", +FClickHere+"Chiese di Roma nel Medio Evo de Christian Hülsen, à ce passage.
(en italien; la page s\'ouvre dans CETTE fenêtre)", +IClickHere+"le Chiese di Roma nel Medio Evo di Christian Hülsen, a questo passo."+IThisWindow, +" ", +" ", +EClickHere+"Christian Hülsen\'s
Chiese di Roma nel Medio Evo,
to this passage or section.
(In Italian;
page opens in another window)
", +FClickHere+"Chiese di Roma nel Medio Evo de Christian Hülsen, à ce passage.
(en italien; la page s\'ouvre dans une autre fenêtre)", +IClickHere+"le Chiese di Roma nel Medio Evo di Christian Hülsen, a questo passo.
(Si apre in un altro pannello)", +" ", +" ", +EClickHere+"my homepage for this church,
with the texts of Armellini, Hülsen, and Titi,
plus photos and offsite links.
(Page opens in THIS window)", +FClickHere+"mon site sur cette église,
avec les textes d\'Armellini, de Hülsen, et de Titi,
ainsi que des photos et des liens hors site."+FThisWindow, +IClickHere+"il mio sito sulla chiesa,
con i testi dell\' Armellini, del Hülsen, e/o del Titi;
e con fotografie e links fuori sito."+IThisWindow, +" ", +SClickHere+"mi sitio sobre esta iglesia, con los textos de Armellini, de Hülsen, y de Titi; y con fotos y enlaces externos.
(Abre en ESTA ventana)", +EClickHere+"my homepage for this church, with the texts of Armellini, Hülsen, and Titi, plus photos and offsite links.
(Page opens in another window)", +FClickHere+"mon site sur cette église, avec les textes d\'Armellini, de Hülsen, et de Titi, ainsi que des photos et des liens hors site.
(S\'ouvre dans une autre fenêtre)", +IClickHere+"il mio sito sulla chiesa, con i testi dell\' Armellini, del Hülsen, e/o del Titi; e con fotografie e links fuori sito.
(Si apre in un altro pannello)", +" ", +SClickHere+"mi sitio sobre esta iglesia, con los textos de Armellini, de Hülsen, y de Titi; y con fotos y enlaces externos.
(Abre en una otra ventana)", +EClickHere+"the article in Daremberg & Saglio\'s Dictionary.
(Page opens in THIS window)", +FClickHere+"l\' article du Dictionnaire de Daremberg & Saglio."+FThisWindow, +IClickHere+"l\' articolo del Dizionario di Daremberg e Saglio."+IThisWindow, +" ", +SClickHere+"el artículo del Diccionario de Daremberg y Saglio.
(Abre en ESTA ventana)", +EClickHere+"the article in Daremberg & Saglio\'s Dictionary.
(Page opens in another window)", +FClickHere+"l\' article du Dictionnaire de Daremberg & Saglio.
(S'ouvre dans une autre fenêtre)", +IClickHere+"l\' articolo del Dizionario di Daremberg e Saglio.
(Si apre in un altro pannello)", +" ", +SClickHere+"el artículo del Diccionario de Daremberg y Saglio.
(Abre en una otra ventana)", +EClickHere+"my page."+EThisWindow, +FClickHere+"ma page."+FThisWindow, +IClickHere+"la mia pagina."+IThisWindow, +" ", +SClickHere+"mi página.
(Abre en ESTA ventana)", +EClickHere+"my page.
(Opens in another window)", +FClickHere+"ma page.
(S'ouvre dans une autre fenêtre)", +IClickHere+"la mia pagina.
(Si apre in un altro pannello)", +" ", +SClickHere+"mi página.
(Abre en una otra ventana)", +EClickHere+"my pages.
(Orientation page opens in THIS window)", +FClickHere+"mes pages.
(La page d\'orientation s\'ouvre dans CETTE fenêtre)", +IClickHere+"le mie pagine.
(La pagina di orientazione si apre in QUESTO pannello)", +" ", +SClickHere+"mis páginas.
(La página de orientación abre en ESTA ventana)", +EClickHere+"my pages.
(Orientation page opens in another window)", +FClickHere+"mes pages.
(La page d\'orientation s\'ouvre dans une autre fenêtre)", +IClickHere+"le mie pagine.
(La pagina di orientazione si apre in un altro pannello)", +" ", +SClickHere+"mis páginas.
(La página de orientación abre en una otra ventana)", +EClickHere+"my page on this church, with photos."+EThisWindow, +FClickHere+"ma page sur cette église, avec photos."+FThisWindow, +IClickHere+"la mia pagina su questa chiesa, con delle foto."+IThisWindow, +" ", +SClickHere+"mi página sobre esta iglesia, con fotos.
(Abre en ESTA ventana)", +EClickHere+"my page on this church, with photos.
(Opens in another window)", +FClickHere+"ma page sur cette église, avec photos.
(S'ouvre dans une autre fenêtre)", +IClickHere+"la mia pagina su questa chiesa, con delle foto.
(Si apre in un altro pannello)", +" ", +SClickHere+"mi página sobre esta iglesia, con fotos.
(Abre en una otra ventana)", +EClickHere+"my pages on this church, with photos.
(Orientation page
opens in THIS window)
", +FClickHere+"mes pages sur cette église, avec photos.
(La page d\'orientation s\'ouvre dans CETTE fenêtre)", +IClickHere+"le mie pagine su questa chiesa, con delle foto.
(La pagina di orientazione si apre in QUESTO pannello)", +" ", +SClickHere+"mis páginas sobre esta iglesia, con fotos.
(La página de orientación abre en ESTA ventana)", +EClickHere+"my pages on this church, with photos.
(Orientation page
opens in another window)
", +FClickHere+"mes pages sur cette église, avec photos.
(La page d\'orientation s\'ouvre dans une autre fenêtre)", +IClickHere+"le mie pagine su questa chiesa, con delle foto.
(La pagina di orientazione si apre in un altro pannello)", +" ", +SClickHere+"mis páginas sobre esta iglesia, con fotos.
(La página de orientación abre en una otra ventana)", +EClickHere+"my site on this town,
with photos and links.
(Orientation page opens in THIS window)", +FClickHere+"mes pages sur cette ville,
avec photos et liens.
(La page d\'orientation s\'ouvre dans CETTE fenêtre)", +IClickHere+"le mie pagine su questa città,
con fotografie e un elenco di link.
(La pagina di orientazione si apre in QUESTO pannello)", +" ", +SClickHere+"mis páginas sobre esta ciudad,
con fotos y enlaces.
(La página de orientación abre en ESTA ventana)", +EClickHere+"my site on this town,
with photos and links.
(Orientation page opens in another window)", +FClickHere+"mes pages sur cette ville,
avec photos et liens.
(La page d\'orientation s\'ouvre dans une autre fenêtre)", +IClickHere+"le mie pagine su questa città,
con fotografie e un elenco di link.
(La pagina di orientazione si apre in un altro pannello)", +" ", +SClickHere+"mis páginas sobre esta ciudad,
con fotos y enlaces.
(La página de orientación abre en una otra ventana)", +EClickHere+"the passage
in an English translation
linked to the original Latin.
(Opens in another window)

", //"THIS IS WHAT REALLY BELONGS IN 520:
Click here for the passage
in the Latin text of Suetonius,
linked to an English translation.
(Opens in another window)", +FClickHere+"le passage
en traduction anglaise
lié au texte latin.
(S'ouvre dans une autre fenêtre)", +IClickHere+"il passo
in una traduzione inglese
collegato al testo latino.
(Si apre in un altro pannello)
", //"THIS IS WHAT REALLY BELONGS IN 522:
Cliccare qui per il passo
nel testo latino di Svetonio,
collegato a traduzioni in inglese e francese.
(Si apre in un altro pannello)", +"

Cliccare hic ad legendum
in anglica versione
ad Latinum textum conexum.
(Altera in fenestra aperietur pagina)", +SClickHere+"este pasaje
en una traducción inglesa
con enlace al texto latino.
(Abre en una otra ventana)", +EClickHere+"the passage
in an English translation
linked to the original Latin.
(Offsite, opens in another window)

", //"THIS IS WHAT REALLY BELONGS IN 525:
Click here for the passage
in the Latin text of Suetonius,
linked to an English translation.
(Opens in another window)", +FClickHere+"le passage
en traduction anglaise
lié au texte latin.
(Hors site, s\'ouvre dans une autre fenêtre)", +IClickHere+"il passo
in una traduzione inglese
collegato al testo latino.
(Fuori sito, si apre in un altro pannello)
", //"THIS IS WHAT REALLY BELONGS IN 507:
Cliccare qui per il passo
nel testo latino di Svetonio,
collegato a traduzioni in inglese e francese.
(Si apre in un altro pannello)", +"

Cliccare hic ad legendum
in anglica versione
ad Latinum textum conexum.
(Apud alios, altera in fenestra aperietur pagina)", +SClickHere+"este pasaje
en una traducción inglesa
con enlace al texto latino.
(Fuera del sitio, abre en una otra ventana)", +EClickHere+"the passage
in the original Latin
linked to an English translation.
(Opens in another window)

", //"THIS IS WHAT REALLY BELONGS IN 510:
Click here for the passage
in the Latin text of Suetonius,
linked to an English translation.
(Opens in another window)", +FClickHere+"le passage
dans le texte latin
lié à une traduction anglaise.
(S'ouvre dans une autre fenêtre)", +IClickHere+"il passo
nel testo latino
collegato ad una traduzione inglese.
(Si apre in un altro pannello)
", //"THIS IS WHAT REALLY BELONGS IN 512:
Cliccare qui per il passo
nel testo latino di Svetonio,
collegato a traduzioni in inglese e francese.
(Si apre in un altro pannello)", +"

Cliccare hic ad legendum
Latinum textum
ad anglicam versionem conexum.
(Altera in fenestra aperietur pagina)", +SClickHere+"este pasaje
en el texto latino
con enlace a una traducción inglesa.
(Abre en una otra ventana)", +EClickHere+"the passage
in the original Latin
linked to an English translation.
(Offsite, opens in another window)

", //"THIS IS WHAT REALLY BELONGS IN 515:
Click here for the passage
in the Latin text of Suetonius,
linked to an English translation.
(Opens in another window)", +FClickHere+"le passage
dans le texte latin
lié à une traduction anglaise.
(Hors site, s\'ouvre dans une autre fenêtre)", +IClickHere+"il passo
nel testo latino
collegato ad una traduzione inglese.
(Fuori sito, si apre in un altro pannello)
", //"THIS IS WHAT REALLY BELONGS IN 517:
Cliccare qui per il passo
nel testo latino di Svetonio,
collegato a traduzioni in inglese e francese.
(Si apre in un altro pannello)", +"

Cliccare hic ad legendum
Latinum textum
ad anglicam versionem conexum.
(Apud alios, altera in fenestra aperietur pagina)", +SClickHere+"este pasaje
en el texto latino
con enlace a una traducción inglesa.
(Fuera del sitio, abre en una otra ventana)", +EClickHere+"the passage
in Pliny the Elder\'s Natural History.
(Latin, opens in another window)", +FClickHere+"le passage
dans l\'Histoire Naturelle de Pline l\'ancien.
(En latin; s\'ouvre dans une autre fenêtre)", +IClickHere+"il passo
nella Storia Naturale di Plinio il Vecchio.
(In latino; si apre in un altro pannello)", +" ", +SClickHere+"el pasaje
en la Historia Natural de Plinio el Viejo.
(En latín; abre en una otra ventana)", +EClickHere+"the passage
in Ptolemy\'s Geography.
(English, opens in another window)", +FClickHere+"le passage
dans la Géographie de Ptolémé.
(En anglais; s\'ouvre dans une autre fenêtre)", +IClickHere+"il passo
nella Geografia di Tolomeo.
(In inglese; si apre in un altro pannello)", +"

Cliccare hic ad textum legendum
in Geographia Ptolemaei.
(Anglice, altera in fenestra aperietur pagina)", +" ", +EClickHere+"the passage
in Ammian
in an English translation
linked to the original Latin.
(Opens in another window)", +FClickHere+"le passage
dans Ammien
en traduction anglaise
liée au texte latin.(S'ouvre dans une autre fenêtre)", +"

Cliccare qui per il passo
in Ammiano
in una traduzione inglese
collegato al testo latino.
(Si apre in un altro pannello)", +" ", +" ", +EClickHere+"the passage
in Appian.
(English, opens in another window)", +FClickHere+"le passage
dans Appien.
(En anglais; s\'ouvre dans une autre fenêtre)", +IClickHere+"il passo
in Appiano.
(In inglese; si apre in un altro pannello)", +" ", +" ", +EClickHere+"the passage
in Cassius Dio\'s History.
(English, opens in another window)", +FClickHere+"le passage
dans l\'Histoire de Dion Cassius.
(En anglais; s\'ouvre dans une autre fenêtre)", +IClickHere+"il passo
nella Storia di Cassio Dione.
(In inglese; si apre in un altro pannello)", +" ", +SClickHere+"el pasaje
en Dion Cásio.
(en inglés, abre en una otra ventana)", +EClickHere+"the passage
in Plutarch.
(English, opens in another window)", +FClickHere+"le passage
dans Plutarque.
(En anglais; s\'ouvre dans une autre fenêtre)", +IClickHere+"il passo
in Plutarco.
(In inglese; si apre in un altro pannello)", +" ", +SClickHere+"el pasaje
en Plutarco.
(en inglés, abre en una otra ventana)", +EClickHere+"the passage
in Polybius\' Histories.
(English, opens in another window)", +FClickHere+"le passage
dans les Histoires de Polybe.
(En anglais; s\'ouvre dans une autre fenêtre)", +IClickHere+"il passo
nelle Storie di Polibio.
(In inglese; si apre in un altro pannello)", +"

Cliccare hic ad textum legendum
in Historiis Polybii.
(Anglice, altera in fenestra aperietur pagina)", +" ", +EClickHere+"the passage
in Strabo\'s Geography.
(English, opens in another window)", +FClickHere+"le passage
dans la Géographie de Strabon.
(En anglais; s\'ouvre dans une autre fenêtre)", +IClickHere+"il passo
nella Geografia di Strabone.
(In inglese; si apre in un altro pannello)", +"

Cliccare hic ad textum legendum
in Geographia Strabonis.
(Anglice, altera in fenestra aperietur pagina)", +" ", +IClickHere+"la scheda di questa chiesa.
(Rimane in questo pannello)", +IClickHere+"la scheda di questa chiesa.
(Un\' altra pagina si apre in QUESTO pannello)", +IClickHere+"la scheda di quest\' artista nell\' indice."+IThisWindow, +IClickHere+"la scheda di quest\' artista nell\' indice.
(Si apre in un altro pannello)", +IClickHere+"il catalogo,
al passo preciso.
(Si aprirà nel pannello dei cataloghi)", +IClickHere+"questo quadro della pianta.
(Si aprirà nel pannello delle piante)", +IClickHere+"QUESTO QUADRO ADIACENTE.
(Rimane in questo pannello)", +IClickHere+"questa chiesa.
(Si apre nel pannello principale del testo)", +EClickHere+"this artist\'s entry in the index.
(Open in THIS window)", +EClickHere+"this artist\'s entry in the index.
(Open in another window)", +EClickHere+"my site or page."+EThisWindow, +FClickHere+"mon site ou ma page."+FThisWindow, +IClickHere+"il mio sito o la mia pagina."+IThisWindow, +" ", +SClickHere+"mi sitio o página.
(Abre en ESTA ventana)", +EClickHere+"my site or page.
(Opens in another window)", +FClickHere+"mon site ou ma page.
(S'ouvre dans une autre fenêtre)", +IClickHere+"il mio sito o la mia pagina.
(Si apre in un altro pannello)", +" ", +SClickHere+"mi sitio o página.
(Abre en una otra ventana)", +EClickHere+"my subsite,
with several pages, photos, etc."+EThisWindow, +FClickHere+"mon sous-site,
qui comporte plusieurs pages, photos, etc."+FThisWindow, +IClickHere+"il mio sotto-sito,
con parecchie pagine e immagini, ecc."+IThisWindow, +" ", +SClickHere+"mi sub-sitio,
con varias páginas, imágenes, etc.
(Abre en ESTA ventana)", +EClickHere+"my subsite,
with several pages, photos, etc.
(Opens in another window)", +FClickHere+"mon sous-site,
qui comporte plusieurs pages, photos, etc.
(S'ouvre dans une autre fenêtre)", +IClickHere+"il mio sotto-sito,
con parecchie pagine e immagini, ecc.
(Si apre in un altro pannello)", +" ", +SClickHere+"mi sub-sitio,
con varias páginas, imágenes, etc.
(Abre en una otra ventana)", +EClickHere+"my subsite,
with many pages, photos, links."+EThisWindow, +FClickHere+"mon sous-site,
qui comporte de nombreux pages, photos, et liens."+FThisWindow, +IClickHere+"il mio sotto-sito,
con molti pagine, immagini, link."+IThisWindow, +" ", +SClickHere+"mi sub-sitio,
con muchas páginas, imágenes, y enlaces.
(Abre en ESTA ventana)", +EClickHere+"my subsite,
with many pages, photos, links.
(Opens in another window)", +FClickHere+"mon sous-site,
qui comporte de nombreuses pages et photos, et de nombreux liens.
(S'ouvre dans une autre fenêtre)", +IClickHere+"il mio sotto-sito,
con molte pagine e immagini, e molti link.
(Si apre in un altro pannello)", +" ", +SClickHere+"mi sub-sitio,
con muchas páginas y imagenes, y muchos enlaces.
(Abre en una otra ventana)", +"

The entire book is onsite.
(Orientation page opens in THIS window)", +"

Le livre entier se trouve sur le site.
(La page d\'orientation s\'ouvre dans CETTE fenêtre)", +"

Il libro intero si trova sul sito.
(La pagina di orientazione si apre in QUESTO pannello)", +" ", +"

El libro entero es reproducido en este sitio.
(La página de orientación abre en ESTA ventana)", +"

The entire book is onsite.
(Orientation page opens in another window)", +"

Le livre entier se trouve sur le site.
(La page d\'orientation s\'ouvre dans une autre fenêtre)", +"

Il libro intero si trova sul sito.
(La pagina di orientazione si apre in un altro pannello)", +" ", +"

El libro entero es reproducido en este sitio.
(La página de orientación abre en una otra ventana)", +EClickHere+"their website or page.
(Offsite, so it opens in another window)", +FClickHere+"leur site ou page.
(Hors site, s\'ouvrira donc dans une autre fenêtre)", +IClickHere+"loro sito o pagina.
(Fuori sito, si apre quindi in un altro pannello)", +" ", +SClickHere+"su sitio o página.
(Sitio externo: abre en una otra ventana)", +" ", +" ", +" ", +" ", +" ", +EClickHere+"the original Latin.
(Opens in another window)", +FClickHere+"le latin original.
(S'ouvre dans une autre fenêtre)", +IClickHere+"il latino originale.
(Si apre in un altro pannello)", +" ", +SClickHere+"el latino originale.
(Abre en una otra ventana)", +" ", +" ", +" ", +" ", +" ", +EClickHere+"the passage
in the Latin text.
(Opens in another window)", +FClickHere+"le passage du texte latin.
(S'ouvre dans une autre fenêtre)", +IClickHere+"il passo dell\' autore latino.
(Si apre in un altro pannello)", +" ", +SClickHere+"el pasaje del autor latino.
(Abre en una otra ventana)", +EClickHere+"the passage
in a Latin translation.
(Opens in another window)", +FClickHere+"le passage dans une traduction latine.
(S'ouvre dans une autre fenêtre)", +IClickHere+"il passo del testo tradotto in latino.
(Si apre in un altro pannello)", +" ", +SClickHere+"el pasaje del autor latino.
(Abre en una otra ventana)", +EClickHere+"the passage
in the Latin text.
(Offsite: opens in another window)", +FClickHere+"le passage du texte latin.
(Hors site: s\'ouvre dans une autre fenêtre)", +IClickHere+"il passo del testo latino.
(Fuori sito: si apre in un altro pannello)", +" ", +SClickHere+"el pasaje del texto latino.
(Fuera del sitio: abre en una otra ventana)", +EClickHere+"the passage
in the Latin text,
linked to a translation
(Offsite: opens in another window)", +FClickHere+"le passage du texte latin.
liée à une traduction(Hors site: s\'ouvre dans une autre fenêtre)", +IClickHere+"il passo del testo latino.
collegato ad una traduzione
(Fuori sito: si apre in un altro pannello)", +" ", +SClickHere+"el pasaje del texto latino.
con enlace a una traducción(Fuera del sitio: abre en una otra ventana)", +EClickHere+"the passage
in the Latin text,
linked to one or more translations.
(Opens in another window)", +FClickHere+"le passage du texte latin,
lié à une ou plusieurs traductions.
(S'ouvre dans une autre fenêtre)", +IClickHere+"il passo dell\' autore latino,
collegato ad una o più traduzioni.
(Si apre in un altro pannello)", +" ", +SClickHere+"el pasaje del autor latino,
con enlace a una o mas traducciones.
(Abre en una otra ventana)", +EClickHere+"the passage in the Latin text,
linked to one or more translations.
(Offsite: opens in another window)", +FClickHere+"le passage du texte latin,
lié à une ou plusieurs traductions.
(Hors site: s\'ouvre dans une autre fenêtre)", +IClickHere+"il passo dell\' autore latino,
collegato ad una o più traduzioni.
(Fuori sito: si apre in un altro pannello)", +" ", +SClickHere+"el pasaje del autor latino,
con enlace a una o mas traducciones.
(Fuera del sitio: abre en una otra ventana)", +EClickHere+"the text of this passage
in the original language.
(Opens in another window)", +FClickHere+"le texte de ce passage
dans la langue originale.
(S'ouvre dans une autre fenêtre)", +IClickHere+"il testo di questo passo
nella lingua originaria.
(Si apre in un altro pannello)", +"

Cliccare hic ad legendum textum
in lingua originali.
(Altera in fenestra aperietur pagina)", +SClickHere+"el texto de este pasaje
en la lingua original.
(Abre en una otra ventana)", +EClickHere+"the text of this passage
in the original language.
(Offsite: opens in another window)", +FClickHere+"le texte de ce passage
dans la langue originale.
(Hors site: s\'ouvre dans une autre fenêtre)", +IClickHere+"il testo di questo passo
nella lingua originaria.
(Fuori sito: si apre in un altro pannello)", +"

Cliccare hic ad legendum textum
in lingua originali.
(In situ externo: altera in fenestra aperietur pagina)", +SClickHere+"el texto de este pasaje
en la lingua original.
(Fuera del sitio: abre en una otra ventana)", +EClickHere+"an English translation
of this passage.
(Opens in another window)", +FClickHere+"une traduction en français de ce passage.
(S'ouvre dans une autre fenêtre)", +IClickHere+"una traduzione italiana di questo passo.
(Si apre in un altro pannello)", +" ", +SClickHere+"una traducción en castellano de este parágrafo.
(Abre en una otra ventana)", +EClickHere+"an English translation.
(Offsite: opens in another window)", +FClickHere+"une traduction en français.
(Hors site: s\'ouvre dans une autre fenêtre)", +IClickHere+"una traduzione italiana.
(Fuori sito: si apre in un altro pannello)", +" ", +SClickHere+"una traducción en castellano.
(Fuera del sitio: abre en una otra ventana)", +CZero, +"

(La pàgina s\'obre en una altra finestra)", +"

(Fora d\'aquest lloc: la pàgina s\'obre en una altra finestra)", +"

(Aquesta foto o una foto relacionada, s\'obre en una altra finestra)", +"

(La foto s\'obre en una altra finestra)", +"

(En una altra part d\'aquesta pàgina)", +CClickHere+"la nota de l'autor a peu de la pàgina.", +CClickHere+"la meva nota a peu de la pàgina.", +CClickHere+"torna a la referència en el text.", +" ", +"

(Offsite page
opens in another window)

Warning: PDF file.", +" ", +"

(La pagina, fuori sito,
si apre in un altro pannello)

Attenzione: documento PDF.", +" ", +" ", +"

(Page opens in another window)
JSTOR (limited access)", +" ", +" ", +" ", +" ", +"

(Page opens in another window)
Warning: The page contains coding errors and may not be visible in all browsers.", +" ", +"

(Si apre in un altro pannello)
Avvertimento: La pagina contiene errori di codaggio e può darsi che non sia visibile in tutti i navigatori.", +" ", +" ", +"

(Page opens in another window)
Warning: loud soundfile; you may want to turn down your volume level before going there.", +" ", +" ", +" ", +" ", +EClickHere+"the solution!
(Opens in another window)", +FClickHere+"la solution!
(S'ouvre dans une autre fenêtre)", +IClickHere+"la soluzione!
(Si apre in un altro pannello)", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +EClickHere+"the passage
in Diodorus\' Library of History.
(English, opens in another window)", +FClickHere+"le passage
dans l\'Histoire de Diodore.
(En anglais; s\'ouvre dans une autre fenêtre)", +IClickHere+"il passo
nella Storia di Diodoro.
(In inglese; si apre in un altro pannello)", +"

Cliccare hic ad textum legendum
in Historia Diodori.
(Anglice, altera in fenestra aperietur pagina)", +" ", +EClickHere+"the passage of Herodotus
(English, linked to the Greek original: opens in another window)", +FClickHere+"le passage d\'Hérodote
(En anglais, lié à l'original grec : s\'ouvre dans une autre fenêtre)", +IClickHere+"il passo di Erodoto
(In inglese, collegato all' originale greco; si apre in un altro pannello)", +" ", +" ", +EClickHere+"the passage of Pausanias
(Offsite: opens in another window)", +FClickHere+"le passage de Pausanias
(Hors site: s\'ouvre dans une autre fenêtre)", +IClickHere+"il passo di Pausania
(Fuori sito: si apre in un altro pannello)", +" ", +" ", +EClickHere+"the passage of Thucydides
(Offsite: opens in another window)", +FClickHere+"le passage de Thucydide
(Hors site: s\'ouvre dans une autre fenêtre)", +IClickHere+"il passo di Tucidide
(Fuori sito: si apre in un altro pannello)", +" ", +" ", +EClickHere+"the passage
in the Latin text of Frontinus,
linked to an English translation.
(Opens in another window)", +FClickHere+"le passage
dans le texte latin de Frontin,
lié à une traduction anglaise.
(S'ouvre dans une autre fenêtre)", +IClickHere+"il passo
nel testo latino di Frontino,
collegato ad una traduzione in inglese.
(Si apre in un altro pannello)", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +EClickHere+"the passage
in an English translation of Frontinus,
linked to the Latin text.
(Opens in another window)", +FClickHere+"le passage
dans une traduction anglaise de Frontin,
lié au texte latin.
(S'ouvre dans une autre fenêtre)", +" ", +" ", +" ", +EClickHere+"the passage
in Dionysius in English translation
(Opens in another window)", +" ", +IClickHere+"il passo
di Dionisio in traduzione inglese
(Si apre in un altro pannello)", +" ", +" ", +"

If you don\'t know what this is about,
the explanation is only a click away."+EThisWindow, +"

Si vous ne savez pas ce de quoi il s\'agit,
il n\'y a qu\'à faire clic pour l\'explication."+FThisWindow, +"

Se questo non vi dice nulla,
basta cliccare per la spiegazione.
(La pagina si apre in QUESTO pannello)", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +EClickHere+"the Latin original
of this passage.
(Opens in another window)", +FClickHere+"l\'original latin
de ce passage.
(S'ouvre dans une autre fenêtre)", +IClickHere+"l\' originale latino
di questo passo.
(Si apre in un altro pannello)", +" ", +" ", +EClickHere+"the Greek original
of this passage.
(Opens in another window)", +FClickHere+"l\'original grec
de ce passage.
(S'ouvre dans une autre fenêtre)", +IClickHere+"l\' originale greco
di questo passo.
(Si apre in un altro pannello)", +" ", +" ", +"

This site comprises roughly 15,000 pages of text and photos, mostly about American history, ancient Rome, classical Antiquity, and central Italy.
CLICK ON THE LINK FOR THE HOMEPAGE.
(Opens in THIS window.)", +"

Ce site comporte environ 15.000 pages de texte et de photos, surtout sur Rome antique et médiévale et l\'Italie centrale.
FAIRE CLIC SUR LE LIEN POUR LA PAGE D\'ACCUEIL.
(S\'ouvre dans CETTE fenêtre.)", +"

Questo sito contiene circa 15.000 pagine di testo e di foto, innanzitutto sulla Roma antica e medioevale e l\'Italia centrale.
CLICCARE SUL LINK PER LA PAGINA HOME.
(Si apre in QUESTO pannello.)", +"

Hic situs milia paginarum
textus photographiarumque
continet, plerumque
de historia Americana,
Roma antiqua et medievali,
antiquitate classica, et Italia centrali.
CLICCARE SUPER VINCULAM
AD PAGINAM PRINCIPALEM
VIDENDAM.

(HAC in fenestra
aperietur pagina.)
", +"

Deze site omvat ongeveer 15.000 pagina's tekst en foto's, meestal over de Amerikaanse geschiedenis, het oude Rome, de klassieke oudheid, en Midden-Italië.
KLIK OP DE LINK VOOR DE HOMEPAGE.
(Opent in DIT venster.)", +"

Este site contém cerca de 15.000 páginas de texto e fotos, especialmente sobre a história das Américas, a Roma antiga e medieval, e o centro da Itália.
CLIQUE NO LINK PARA A PÁGINA DE ACOLHIMENTO.
(A página abre NESTA janela.)", +"

Este sitio contiene aproximadamente 15.000 páginas de texto e fotos, sobre todo sobre la história de las Américas, Roma antigua y medieval, y el centro de Italia.
CLIC EN EL ENLACE PARA LA PÁGINA PRINCIPAL.
(La página abre en ESTA ventana.)", +" ", +" ", +" ", +"

This site comprises roughly 15,000 pages of text and photos, mostly about American history, ancient Rome, classical Antiquity, and central Italy.
CLICK HERE FOR THE HOMEPAGE.
(Opens in another window.)", +"

Ce site comporte environ 15.000 pages de texte et de photos, surtout sur Rome antique et médiévale et l\'Italie centrale.
FAIRE CLIC ICI POUR LA PAGE D\'ACCUEIL.
(S\'ouvre dans une autre fenêtre.)", +"

Questo sito contiene circa 15.000 pagine di testo e di foto, innanzitutto sulla Roma antica e medioevale e l\'Italia centrale.
CLICCARE QUI PER LA PAGINA HOME.
(Si apre in un altro pannello.)", +"

Hic situs milia paginarum
textus photographiarumque
continet, plerumque
de historia Americana,
Roma antiqua et medievali,
antiquitate classica, et Italia centrali.
CLICCARE HIC
AD PAGINAM PRINCIPALEM
VIDENDAM.

(In altera fenestra
aperietur pagina.)", +"

Deze site omvat ongeveer 15.000 pagina's tekst en foto's, meestal over de Amerikaanse geschiedenis, het oude Rome, de klassieke oudheid, en Midden-Italië.
KLIK OP DE LINK VOOR DE HOMEPAGE.
(Opent in DIT venster.)", +"

Este site contém cerca de 15.000 páginas de texto e fotos, especialmente sobre a Roma antiga e medieval, a história das Américas, e o centro da Itália.
CLIQUE NO LINK PARA A PÁGINA DE ACOLHIMENTO.
(A página abre em outra janela.)", +"

Este sitio contiene aproximadamente 15.000 páginas de texto e fotos, sobre todo sobre la história de las Américas, Roma antigua y medieval, y el centro de Italia.
HAGA CLIC AQUÍ PARA LA PÁGINA PRINCIPAL.
(La página abre en una otra ventana.)", +" ", +" ", +" ", +"

Click here to send me an e-mail; you\'ll first get a FAQ covering some of the commoner questions.
(Opens in another window)", +FClickHere+"m\'envoyer une e-mail; vous verrez d\'abord un FAQ traitant de quelques questions couramment posées.
(S'ouvre dans une autre fenêtre)", +IClickHere+"mandarmi un\' e-mail; vedrete prima un FAQ trattando di alcune frequenti questioni.
(Si apre in un altro pannello)", +"

Click here to send me an e-mail; you\'ll first get a FAQ covering some of the commoner things people write me about.
(Altera in fenestra aperietur)", +" ", +" ", +" ", +" ", +" ", +" ", +EClickHere+"the appropriate section of this page.
LET THE PAGE LOAD COMPLETELY BEFORE CLICKING.", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +EClickHere+"the author\'s note at the bottom of this page.", +" ", +IClickHere+"la nota
dell\' autore a piè di pagina.", +" ", +" ", +EClickHere+"the editor\'s note at the bottom of this page.", +FClickHere+"la note de l\'éditeur au bas de cette page.", +IClickHere+"la nota
dell\' editore a piè di pagina.", +"

Cliccare hic ad editoris notam legendam in ima pagina.", +" ", +EClickHere+"a textual note at the bottom of this page.", +" ", +IClickHere+"una nota testuale
a piè di pagina.", +" ", +" ", +EClickHere+"the Italian original
of this passage.
(Opens in another window)", +" ", +" ", +" ", +" ", +"

Click here to go one level up:
Opens in THIS window.", +"

Faire clic ici
pour remonter d\'un niveau
(S\'ouvre dans CETTE fenêtre.)", +"

Fare clic qui per risalire un livello
(Si apre in QUESTO pannello.)", +"

Cliccare hic ad paginam superiorem ingrediendam
(HAC in fenestra aperietur.)", +SClickHere+"ir al nivel superior
(Abre en ESTA ventana)", +" ", +" ", +" ", +" ", +" ", +"

Click here to go one level up
(Opens in another window.)", +FClickHere+"remonter d\'un niveau
(S\'ouvre dans une autre fenêtre.)", +"

Fare clic qui per risalire un livello
(Si apre in un altro pannello.)", +"

Cliccare hic ad paginam superiorem ingrediendam
(Altera in fenestra aperietur.)", +PClickHere+"subir um nivel
(Abre em uma outra janela)", +SClickHere+"ir al nivel superior
(Abre en una otra ventana)", +" ", +" ", +" ", +" ", +EClickHere+"the passage
in an English translation of Sallust,
linked to the Latin text.
(Opens in another window)", +FClickHere+"le passage
dans une traduction anglaise de Salluste,
lié au texte latin.
(S'ouvre dans une autre fenêtre)", +IClickHere+"il passo
in una traduzione inglese di Sallustio,
collegato al testo latino.
(Si apre in un altro pannello)", +" ", +" ", +EClickHere+"the passage
in the Latin text of Sallust,
linked to an English translation.
(Opens in another window)", +FClickHere+"le passage
dans le texte latin de Salluste,
lié à une traduction anglaise.
(S'ouvre dans une autre fenêtre)", +IClickHere+"il passo
nel testo latino di Sallustio,
collegato ad una traduzione in inglese.
(Si apre in un altro pannello)", +" ", +" ", +EClickHere+"the passage
in an English translation of Tacitus.
(Opens in another window)", +FClickHere+"le passage
dans une traduction anglaise de Tacite.
(S'ouvre dans une autre fenêtre)", +IClickHere+"il passo
in una traduzione inglese di Tacito.
(Si apre in un altro pannello)", +" ", +"

Haga clic aquí por el pasaje
en una traducción inglesa de Tacito.
(Abre en una otra ventana)", +EClickHere+"the passage
in the Latin text of Tacitus,
linked to an English translation.
(Opens in another window)", +FClickHere+"le passage
dans le texte latin de Tacite,
lié à une traduction anglaise.
(S'ouvre dans une autre fenêtre)", +IClickHere+"il passo
nel testo latino di Tacito,
collegato ad una traduzione in inglese.
(Si apre in un altro pannello)", +" ", +"

Haga clic aquí por el pasaje
en el texto latino de Tacito.
(Abre en una otra ventana)", +EClickHere+"the Bible verse
in Greek, Latin, English facing columns.
(Offsite, opens in another window)", +" ", +" ", +" ", +PClickHere+"o versículo da Bíblia
em colunas enfrentadas: grego, latim, inglês.
(Offsite: a página abre em uma outra janela)", +"

CULLUM NUMBER
(If you don\'t know what this is,
click here for an explanation
on the Cullum\'s Register homepage:
opens in another window.)
", +"

CLASS RANK
From 1818 to 1977, within each Class graduates are listed in order of their general merit: academic and military standing combined.", +" ", +" ", +" ", +"

(De pagina opent in DIT venster)", +"

(De pagina opent in een ander venster)", +"

(Offsite: de pagina opent in een ander venster)", +"

(Deze foto of een verwante foto, opent in een ander venster)", +"

(De foto wordt geopend in een ander venster)", +"

(Elders op deze pagina)", +NClickHere+"de nota van de auteur aan de onderkant van deze pagina.", +NClickHere+"mijn nota aan de onderkant van deze pagina.", +"

Klik hier om terug te gaan
de verwijzing in de tekst.", +"

Als je niet weet waar dit over gaat,
je alleen maar een klik verwijderd van de uitleg.
(Opent in een ander venster)", +"

Klik hier om een niveau omhoog gaan.
(Opent in DIT venster)
", +"

Klik hier om een niveau omhoog gaan.
(Opent in een ander venster)
", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +EClickHere+"the passage
in a Latin translation of Aelian.
(Opens in another window)", +FClickHere+"le passage
dans une traduction latine d\'Elien.
(S'ouvre dans une autre fenêtre)", +IClickHere+"il passo
in una traduzione latina di Eliano.
(Si apre in un altro pannello)", +" ", +SClickHere+"el pasaje
en una traducción latina de Eliano.
(Abre en una otra ventana)", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +EClickHere+"the passage
in the Greek text.
(Opens in another window)", +FClickHere+"le passage du texte grec.
(S'ouvre dans une autre fenêtre)", +IClickHere+"il passo dell\' autore greco.
(Si apre in un altro pannello)", +" ", +SClickHere+"el pasaje del autor griego.
(Abre en una otra ventana)", +EClickHere+"the passage
in the Greek text,
linked to a translation
(Opens in another window)", +FClickHere+"le passage du texte grec.
liée à une traduction(S'ouvre dans une autre fenêtre)", +IClickHere+"il passo dell\' autore greco.
collegato ad una traduzione
(Si apre in un altro pannello)", +" ", +SClickHere+"el pasaje del autor griego.
con enlace a una traducción(Abre en una otra ventana)", +EClickHere+"the passage
in the Greek text.
(Offsite: opens in another window)", +FClickHere+"le passage du texte grec.
(Hors site: s\'ouvre dans une autre fenêtre)", +IClickHere+"il passo dell\' autore greco.
(Fuori sito: si apre in un altro pannello)", +" ", +SClickHere+"el pasaje del autor griego.
(Fuera del sitio: abre en una otra ventana)", +EClickHere+"the passage
in the Greek text,
linked to a translation
(Offsite: opens in another window)", +FClickHere+"le passage du texte grec.
liée à une traduction(Hors site: s\'ouvre dans une autre fenêtre)", +IClickHere+"il passo dell\' autore greco.
collegato ad una traduzione
(Fuori sito: si apre in un altro pannello)", +" ", +SClickHere+"el pasaje del autor griego.
con enlace a una traducción(Fuera del sitio: abre en una otra ventana)", +EClickHere+"the passage
in an English translation
linked to the original Greek.
(Opens in another window)

", +FClickHere+"le passage
en traduction anglaise
lié au texte grec.
(S'ouvre dans une autre fenêtre)", +IClickHere+"il passo
in una traduzione inglese
collegato al testo greco.
(Si apre in un altro pannello)
", +"

Cliccare hic ad legendum
in anglica versione
ad Graecum textum conexum.
(Altera in fenestra aperietur pagina)", +SClickHere+"este pasaje
en una traducción inglesa
con enlace al texto greco.
(Abre en una otra ventana)", +EClickHere+"the passage
in an English translation
linked to the original Greek.
(Offsite, opens in another window)

", +FClickHere+"le passage
en traduction anglaise
lié au texte grec.
(Hors site, s\'ouvre dans une autre fenêtre)", +IClickHere+"il passo
in una traduzione inglese
collegato al testo greco.
(Fuori sito, si apre in un altro pannello)
", +"

Cliccare hic ad legendum
in anglica versione
ad Graecum textum conexum.
(Apud alios, altera in fenestra aperietur pagina)", +SClickHere+"este pasaje
en una traducción inglesa
con enlace al texto greco.
(Fuera del sitio, abre en una otra ventana)", +EClickHere+"the passage
in the original Greek
linked to an English translation.
(Opens in another window)

", +FClickHere+"le passage
dans le texte grec
lié à une traduction anglaise.
(S'ouvre dans une autre fenêtre)", +IClickHere+"il passo
nel testo greco
collegato ad una traduzione inglese.
(Si apre in un altro pannello)
", +"

Cliccare hic ad legendum
Graecum textum
ad anglicam versionem conexum.
(Altera in fenestra aperietur pagina)", +SClickHere+"este pasaje
en el texto greco
con enlace a una traducción inglesa.
(Abre en una otra ventana)", +EClickHere+"the passage
in the original Greek
linked to an English translation.
(Offsite, opens in another window)", +FClickHere+"le passage
dans le texte grec
lié à une traduction anglaise.
(Hors site, s\'ouvre dans une autre fenêtre)", +IClickHere+"il passo
nel testo greco
collegato ad una traduzione inglese.
(Fuori sito, si apre in un altro pannello)", +"

Cliccare hic ad legendum
Graecum textum
ad anglicam versionem conexum.
(Apud alios, altera in fenestra aperietur pagina)", +SClickHere+"este pasaje
en el texto greco
con enlace a una traducción inglesa.
(Fuera del sitio, abre en una otra ventana)", +EClickHere+"the passage in Plutarch
in an English translation
linked to the original Greek
(Opens in another window)", +FClickHere+"le passage dans Plutarque
en traduction anglaise
lié au texte grec(S\'ouvre dans une autre fenêtre)", +IClickHere+"il passo in Plutarco

in una traduzione inglese
collegato al testo greco.
(Si apre in un altro pannello)", +" ", +SClickHere+"el pasaje en Plutarco
en una traducción inglesa
con enlace al texto greco.
(en inglés, abre en una otra ventana)", +EClickHere+"the passage in the Res Gestae
— parallel texts:
Latin, Greek, English
(Opens in another window)", +" ", +" ", +" ", +" ", +"

Link is to the Livius.Org website:
page opens in
another window.
", +EClickHere+"Jona Lendering\'s note at the bottom of this page.", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +EClickHere+"the passage
in the original Latin
linked to a French translation.
(Opens in another window)", //"THIS IS WHAT REALLY BELONGS IN 510:

Click here for the passage
in the Latin text of Suetonius,
linked to an English translation.
(Opens in another window)", +FClickHere+"le passage
dans le texte latin
lié à une traduction française.
(S'ouvre dans une autre fenêtre)", +IClickHere+"il passo
nel testo latino
collegato ad una traduzione francese.
(Si apre in un altro pannello)
", //"THIS IS WHAT REALLY BELONGS IN 512:
Cliccare qui per il passo
nel testo latino di Svetonio,
collegato a traduzioni in inglese e francese.
(Si apre in un altro pannello)", +"

Cliccare hic ad legendum
Latinum textum
ad anglicam versionem conexum.
(Altera in fenestra aperietur pagina)", +SClickHere+"este pasaje
en el texto latino
con enlace a una traducción francesa.
(Abre en una otra ventana)", +EClickHere+"the passage
in the original Latin
linked to a French translation.
(Offsite, opens in another window)

", //"THIS IS WHAT REALLY BELONGS IN 515:
Click here for the passage
in the Latin text of Suetonius,
linked to an English translation.
(Opens in another window)", +FClickHere+"le passage
dans le texte latin
lié à une traduction française.
(Hors site, s\'ouvre dans une autre fenêtre)", +IClickHere+"il passo
nel testo latino
collegato ad una traduzione francese.
(Fuori sito, si apre in un altro pannello)
", //"THIS IS WHAT REALLY BELONGS IN 517:
Cliccare qui per il passo
nel testo latino di Svetonio,
collegato a traduzioni in inglese e francese.
(Si apre in un altro pannello)", +"

Cliccare hic ad legendum
Latinum textum
ad Francogallicam versionem conexum.
(Apud alios, altera in fenestra aperietur pagina)", +SClickHere+"este pasaje
en el texto latino
con enlace a una traducción francesa.
(Fuera del sitio, abre en una otra ventana)", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +"

THIS IS THE PAGE YOU\'RE ON.", +"

C\'EST LA PAGE QUE VOUS AVEZ DEVANT LES YEUX.", +"

QUESTA È LA PAGINA CHE AVETE DAVANTI AGLI OCCHI.", +" ", +" ", +"

ACTIVE AREAS:
WHEREVER THIS PROMPT
IS REPLACED BY ANOTHER", +"

ZONES ACTIVES :
PARTOUT OU CE MESSAGE EST REMPLACE PAR UN AUTRE", +"

AREE ATTIVE:
OVUNQUE QUESTO MESSAGGIO VIENE SOSTITUITO DA UN\' ALTRO", +"

Click here for the homepage of the
U. S. MILITARY ACADEMY.
(Offsite: opens in another window.)", +"

Click here for the homepage of the
U. S. NAVAL ACADEMY.
(Offsite: opens in another window.)", +"

Click here for the homepage of the
U. S. COAST GUARD ACADEMY.
(Offsite: opens in another window.)", + +" " //THIS LAST LINE MUST NOT END WITH A COMMA +); + +// Array with captions. +var ol_caps = new Array("Array Caption 0", "Array Caption 1"); + + +//\//////////////////////////////// +//\ Thayer CONSTANTS: +//\//////////////////////////////// + +var CarelessLoeb50 = "

The Loeb edition —
thru 50 years of reprintings! —
has "; +var CarelessLoeb60 = "
The Loeb edition —
thru 60 years of reprintings! —
has "; +var CarelessLoeb70 = "
The Loeb edition —
thru 70 years of reprintings! —
has "; +var CarelessLoeb80 = "
The Loeb edition —
thru 80 years of reprintings! —
has "; +var CarelessLoeb90 = "
The Loeb edition —
thru 90 years of reprintings! —
has "; +var CarelessLoebX = "
The Loeb edition —
thru many years of reprintings! —
has "; +var Cullum0 = ":
This is a link
to another entry
in Cullum\'s Register.
(Opens in THIS window)
"; +var Cullum1 = "
USMA, Class of "; +var Cullum2 = ":
This is a link to the biographical summary
in Cullum\'s Register.
(Opens in another window)
"; +var CullumR1 = "

CLASS RANK
— of "; +var CullumR2 = " in the Class"; + + +// ENGLISH: +var Eng2 = "
(English, opens in another window)"; +var EngSearch = "
then search for
"; + + +// FRENCH: +// var Fr0 = "

(La page s\'ouvre dans CETTE fenêtre)"; +// var Fr1 = "

(La page s\'ouvre dans une autre fenêtre)"; +// var Fr2 = "

Le lien est hors site :
la page s\'ouvre
dans une autre fenêtre
"; +// var Fr5 = "

(Ailleurs sur cette page)"; +var FrCullum0 = " :
Ceci est un lien à la notice biographique
dans Cullum\'s Register.
(S\'ouvre dans CETTE fenêtre)

"; +var FrCullum1 = "
USMA, Promotion de "; +var FrCullum2 = " :
Ceci est un lien à la notice biographique
dans Cullum\'s Register.
(S\'ouvre dans une autre fenêtre)
"; +var FrCullumR1 = "

CLASS RANK
— sur "; +var FrCullumR2 = " dans la Promotion"; +var FrGk2 = "
(Grec s\'ouvre dans une autre fenêtre)"; +var FrGkSearch = "
puis chercher
"; +var FrLat2 = "
(Latin, s\'ouvre dans une autre fenêtre)"; +var FrLatSearch = "
puis chercher
"; + + +// GREEK: +var Gk2 = "
(Greek, opens in another window)"; +var GkSearch = "
then search for
"; + + +// ITALIAN: +var It5 = "

(Altrove su questa pagina)"; +var ItGk2 = "
(in Greco, apre in un altro pannello)"; +var ItGkSearch = "
poi cercare
"; +var ItLat2 = "
(in Latino, apre in un altro pannello)"; +var ItLatSearch = "
poi cercare
"; + + +// LATIN: +var Lat2 = "
(Latin, opens in another window)"; +var LatSearch = "
then search for
"; +var RedSearch = "
then search for the word or passage in red"; + + +// SPANISH: +var SpGk2 = "
(Griego, abre en una otra ventana)"; +var SpGkSearch = "
pues buscar
"; +var SpLat2 = "
(Latín, abre en una otra ventana)"; +var SpLatSearch = "
pues buscar
"; + +//////////////////////////////////// +// END CONFIGURATION +//////////////////////////////////// + + + +//////////////////////////////////// +// INIT +//////////////////////////////////// + + +// Runtime variables init. Used for runtime only, don't change, not for config! +var o3_text = ""; +var o3_cap = ""; +var o3_sticky = 0; +var o3_background = ""; +var o3_close = "Close"; +var o3_hpos = RIGHT; +var o3_offsetx = 2; +var o3_offsety = -3; +var o3_fgcolor = ""; +var o3_bgcolor = ""; +var o3_textcolor = ""; +var o3_capcolor = ""; +var o3_closecolor = ""; +var o3_width = 100; +var o3_border = 1; +var o3_status = ""; +var o3_autostatus = 0; +var o3_height = -1; +var o3_snapx = 0; +var o3_snapy = 0; +var o3_fixx = -1; +var o3_fixy = -1; +var o3_fgbackground = ""; +var o3_bgbackground = ""; +var o3_padxl = 0; +var o3_padxr = 0; +var o3_padyt = 0; +var o3_padyb = 0; +var o3_fullhtml = 0; +var o3_vpos = ABOVE; +var o3_aboveheight = 3; +var o3_capicon = ""; +var o3_textfont = "Verdana,Arial,Helvetica"; +var o3_captionfont = "Verdana,Arial,Helvetica"; +var o3_closefont = "Verdana,Arial,Helvetica"; +var o3_textsize = "1"; +var o3_captionsize = "1"; +var o3_closesize = "1"; +var o3_frame = self; +var o3_timeout = 0; +var o3_timerid = 0; +var o3_allowmove = 0; +var o3_function = Function(); +var o3_delay = 0; +var o3_delayid = 0; +var o3_hauto = 0; +var o3_vauto = 0; + +// OTHER THAYER VARIABLES +var BadF = "
"; +var GreekF = "
"; +var LatinF = "
"; +var SearchF = "
"; + + + +var SourceErr = "

The printed text has
"; +var SourceOm = "

The printed text omits
"; +var SourceOmL = "

The printed text omits
"; +var SourceOmG = "

The printed text omits
"; +var SourceOm0 = "

The printed text
omits this."; +var SourceOm1 = "

The printed text
omits this word."; +var SourceOm2 = "

The printed text
omits these words."; + + + +var FrSourceErr = "

Le texte imprimé porte
"; +var FrSourceOm = "

Le texte imprimé omet
"; +var FrSourceOmL = "

Le texte imprimé omet
"; +var FrSourceOmG = "

Le texte imprimé omet
"; + +var FrSourceOm1 = "

Le texte imprimé omet ce mot."; +var FrSourceOm2 = "

Le texte imprimé omet ces mots."; + + + +var ItSourceErr = "

Il testo stampato reca
"; +var ItSourceOm = "

Il testo stampato omette
"; +var ItSourceOmL = "

Il testo stampato omette
"; +var ItSourceOmG = "

Il testo stampato omette
"; +var ItSourceOm0 = "

Il testo stampato
omette questo."; +var ItSourceOm1 = "

Il testo stampato
omette questa parola."; +var ItSourceOm2 = "

Il testo stampato
omette queste parole."; + + + +var NeSourceErr = "

In de gedrukte tekst leest
"; +var NeSourceOm = "

De gedrukte tekst weglaat
"; + + + + + + + + +var PgSourceOm0 = "

O texto impresso omite isso."; +var PgSourceErr = "

No texto impresso lê‑se
"; +var PgSourceOm = "

O texto impresso omite
"; +var PgSourceOmL = "

O texto impresso omite
"; +var PgSourceOmG = "

O texto impresso omite
"; + + + + + +var SpSourceErr = "

En el texto imprimido
se lee
"; +var SpSourceOm = "

El texto imprimido omite
"; +var SpSourceOmL = "

El texto imprimido omite
"; +var SpSourceOmG = "

El texto imprimido omite
"; + +var MyDiaryErr = "

In my diary, I wrote
"; + + + + +var SourceErrMe = "

I actually wrote
"; +var SourceOmMe = "

I omitted
"; + +var DivergenceFromLatin = "

The Latin text onsite is not the one on which this translation is based. It reads
"; +var DivergenceFromGreek = "

The Latin text onsite is not the one on which this translation is based. It reads
"; +var DivergenceInEnglish = "

The English translation onsite is not based on this text. It reads
"; + +var CloseF = ""; +var USMAPromptWidth = 205; +var USNAPromptWidth = 205; +var USCGAPromptWidth = 205; +var PDFPromptWidth = 216; +var DiaryErr = "

The diary actually reads
"; +var DiaryOm = "

The diary omits
"; + +var Ru2 = "

Ссылка выключен сайт:
страница открывается в другом окне
"; + + + +// THAYER'S ARRAY. (add 285 for the linenum of the corresponding text) +var ThisPhoto = 3; +var Photo = 4; +var OnPage = 5; +var Note = 6; +var MyNote = 7; +var BackRef = 8; +var Glossary = 9; + +var Ca0 = 420; var CaWidth0 = 210; +var Ca1 = 421; var CaWidth1 = 210; +var Ca2 = 422; var CaWidth2 = 140; +var CaThisPhoto = 423; var CaThisPhotoWidth = 180; +var CaPhoto = 424; +var CaOnPage = 425; var CaOnPageWidth = 150; +var CaNote = 426; +var CaMyNote = 427; +var CaBackRef = 428; +var CaGlossary = 429; + +var Fr0 = 10; var FrWidth0 = 180; +var Fr1 = 11; var FrWidth1 = 210; +var Fr2 = 12; +var FrThisPhoto = 13; +var FrPhoto = 14; +var FrOnPage = 15; +var FrNote = 16; +var FrMyNote = 17; +var FrBackRef = 18; +var FrGlossary = 19; + +var Ge0 = 20; +var Ge1 = 21; +var Ge2 = 22; +var GeThisPhoto = 23; +var GePhoto = 24; +var GeOnPage = 25; +var GeNote = 26; +var GeMyNote = 27; +var GeBackRef = 28; +var GeGlossary = 29; + +var It0 = 30; var ItWidth0 = 210; +var It1 = 31; var ItWidth1 = 210; +var It2 = 32; var ItWidth2 = 210; +var ItThisPhoto = 33; var ItThisPhotoWidth = 180; +var ItPhoto = 34; +var ItOnPage = 35; var ItOnPageWidth = 150; +var ItNote = 36; +var ItMyNote = 37; +var ItBackRef = 38; +var ItGlossary = 39; + +var La0 = 40; +var La1 = 41; +var La2 = 42; +var LaThisPhoto = 43; +var LaPhoto = 44; +var LaOnPage = 45; +var LaNote = 46; +var LaMyNote = 47; +var LaGlossary = 49; + +var Sp0 = 50; var SpWidth0 = 210; +var Sp1 = 51; var SpWidth1 = 210; +var Sp2 = 52; var SpWidth2 = 140; +var SpThisPhoto = 53; var SpThisPhotoWidth = 180; +var SpPhoto = 54; +var SpOnPage = 55; var SpOnPageWidth = 150; +var SpNote = 56; +var SpMyNote = 57; +var SpBackRef = 58; +var SpGlossary = 59; + +var Pt0 = 90; var PtWidth0 = 210; +var Pt1 = 91; var PtWidth1 = 210; +var Pt2 = 92; var PtWidth2 = 140; +var PtThisPhoto = 93; var PtThisPhotoWidth = 180; +var PtPhoto = 94; +var PtOnPage = 95; var PtOnPageWidth = 190; +var PtNote = 96; +var PtMyNote = 97; +var PtBackRef = 98; +var PtGlossary = 99; + +var Smith0 = 60; var SmithWidth0 = 200; +var FrSmith0 = 61; +var ItSmith0 = 62; +var SpSmith0 = 64; +var Smith1 = 65; var SmithWidth1 = 200; +var FrSmith1 = 66; +var ItSmith1 = 67; +var SpSmith1 = 69; + +var Glossary0 = 70; +var FrGlossary0 = 71; +var ItGlossary0 = 72; + +var Glossary2 = 75; +var FrGlossary2 = 76; +var ItGlossary2 = 77; + +var SmithSub0 = 80; +var FrSmithSub0 = 81; +var ItSmithSub0 = 82; +var SpSmithSub0 = 84; + +var SmithSub1 = 85; var SmithSubWidth1 = 190; +var FrSmithSub1 = 86; +var ItSmithSub1 = 87; +var SpSmithSub1 = 89; + +var XMarksTheSpot = 790; +var FrXMarksTheSpot = 791; +var ItXMarksTheSpot = 792; + +var ActiveAreas = 795; +var FrActiveAreas = 796; +var ItActiveAreas = 797; + +var USMA = 798; +var USNA = 799; +var USCGA = 800; + +var SmithHome = 100; +var FrSmithHome = 101; +var ItSmithHome = 102; +var SpSmithHome = 104; +var TextOnPage = 106; +var SmithHome0 = 107; +var DarembergHome = 108; +var DarembergHome0 = 109; + +var Platner0 = 110; +var FrPlatner0 = 111; +var ItPlatner0 = 112; +var LaPlatner0 = 113; +var SpPlatner0 = 114; +var Platner1 = 115; +var FrPlatner1 = 116; +var ItPlatner1 = 117; +var LaPlatner1 = 118; +var SpPlatner1 = 119; + +var PlatnerPhoto0 = 120; +var FrPlatnerPhoto0 = 121; +var ItPlatnerPhoto0 = 122; +var LaPlatnerPhoto0 = 123; +var SpPlatnerPhoto0 = 124; +var PlatnerPhoto1 = 125; +var FrPlatnerPhoto1 = 126; +var ItPlatnerPhoto1 = 127; +var LaPlatnerPhoto1 = 128; +var SpPlatnerPhoto1 = 129; + +var PlatnerSub0 = 130; +var FrPlatnerSub0 = 131; +var ItPlatnerSub0 = 132; +var SpPlatnerSub0 = 134; +var PlatnerSub1 = 135; +var FrPlatnerSub1 = 136; +var ItPlatnerSub1 = 137; +var SpPlatnerSub1 = 139; + +var CompleteWork0 = 140; +var FrCompleteWork0 = 141; +var ItCompleteWork0 = 142; +var SpCompleteWork0 = 144; +var CompleteWork1 = 145; +var FrCompleteWork1 = 146; +var ItCompleteWork1 = 147; +var SpCompleteWork1 = 149; + +var Armellini0 = 150; +var FrArmellini0 = 151; +var ItArmellini0 = 152; +var SpArmellini0 = 154; +var Armellini1 = 155; +var FrArmellini1 = 156; +var ItArmellini1 = 157; +var SpArmellini1 = 159; + +var Huelsen0 = 160; +var FrHuelsen0 = 161; +var ItHuelsen0 = 162; +var SpHuelsen0 = 164; +var Huelsen1 = 165; +var FrHuelsen1 = 166; +var ItHuelsen1 = 167; +var SpHuelsen1 = 169; + +var RomeChurch0 = 170; +var FrRomeChurch0 = 171; +var ItRomeChurch0 = 172; +var SpRomeChurch0 = 174; +var RomeChurch1 = 175; +var FrRomeChurch1 = 176; +var ItRomeChurch1 = 177; +var SpRomeChurch1 = 179; + +var Daremberg0 = 180; +var FrDaremberg0 = 181; +var ItDaremberg0 = 182; +var SpDaremberg0 = 184; +var Daremberg1 = 185; +var FrDaremberg1 = 186; +var ItDaremberg1 = 187; +var SpDaremberg1 = 189; + +var Page0 = 190; +var FrPage0 = 191; +var ItPage0 = 192; +var LaPage0 = 193; +var SpPage0 = 194; +var Page1 = 195; +var FrPage1 = 196; +var ItPage1 = 197; +var LaPage1 = 198; +var SpPage1 = 199; + +var Pages0 = 200; +var FrPages0 = 201; +var ItPages0 = 202; +var LaPages0 = 203; +var SpPages0 = 204; +var Pages1 = 205; +var FrPages1 = 206; +var ItPages1 = 207; +var LaPages1 = 208; +var SpPages1 = 209; + +var ChurchPage0 = 210; +var FrChurchPage0 = 211; +var ItChurchPage0 = 212; +var LaChurchPage0 = 213; +var SpChurchPage0 = 214; +var ChurchPage1 = 215; +var FrChurchPage1 = 216; +var ItChurchPage1 = 217; +var LaChurchPage1 = 218; +var SpChurchPage1 = 219; + +var ChurchPages0 = 220; +var FrChurchPages0 = 221; +var ItChurchPages0 = 222; +var LaChurchPages0 = 223; +var SpChurchPages0 = 224; +var ChurchPages1 = 225; +var FrChurchPages1 = 226; +var ItChurchPages1 = 227; +var LaChurchPages1 = 228; +var SpChurchPages1 = 229; + +var Town0 = 230; +var FrTown0 = 231; +var ItTown0 = 232; +var LaTown0 = 233; +var SpTown0 = 234; +var Town1 = 235; +var FrTown1 = 236; +var ItTown1 = 237; +var LaTown1 = 238; +var SpTown1 = 239; + +var EPlusL = 240; +var FrEPlusL = 241; +var ItEPlusL = 242; +var SpEPlusL = 244; +var EPlusL2 = 245; +var FrEPlusL2 = 246; +var ItEPlusL2 = 247; +var LaEPlusL2 = 248; +var SpEPlusL2 = 249; + +var LPlusE = 250; +var FrLPlusE = 251; +var ItLPlusE = 252; +var SpLPlusE = 254; +var LPlusE2 = 255; +var FrLPlusE2 = 256; +var ItLPlusE2 = 257; +var SpLPlusE2 = 259; + +var Pliny = 260; +var FrPliny = 261; +var ItPliny = 262; +var SpPliny = 264; + +var Ptolemy = 265; +var FrPtolemy = 266; +var ItPtolemy = 267; +var LaPtolemy = 268; + +var Ammian = 270; +var FrAmmian = 271; +var ItAmmian = 272; + +var Appian = 275; +var FrAppian = 276; +var ItAppian = 277; + +var Dio = 280; +var FrDio = 281; +var ItDio = 282; +var SpDio = 284; + +var Plutarch = 285; var PlutarchWidth = 230; +var FrPlutarch = 286; +var ItPlutarch = 287; +var SpPlutarch = 289; + +var Polybius = 290; +var FrPolybius = 291; +var ItPolybius = 292; +var LaPolybius = 293; + +var Strabo = 295; +var FrStrabo = 296; +var ItStrabo = 297; +var LaStrabo = 298; + +var Chiesa0 = 300; +var Chiesa1 = 301; +var Artista0 = 302; +var Artista = 303; +var Catalogo = 304; +var Pianta = 305; +var QuadroPianta = 306; +var ChiesaNelTesto = 307; +var ETitiArtista0 = 308; +var ETitiArtista = 309; + +var MySite0 = 310; +var FrMySite0 = 311; +var ItMySite0 = 312; +var SpMySite0 = 314; +var MySite1 = 315; +var FrMySite1 = 316; +var ItMySite1 = 317; +var SpMySite1 = 319; + +var MyMidSite0 = 320; +var FrMyMidSite0 = 321; +var ItMyMidSite0 = 322; +var SpMyMidSite0 = 324; +var MyMidSite1 = 325; +var FrMyMidSite1 = 326; +var ItMyMidSite1 = 327; +var SpMyMidSite1 = 329; + +var MyBigSite0 = 330; +var FrMyBigSite0 = 331; +var ItMyBigSite0 = 332; +var SpMyBigSite0 = 334; +var MyBigSite1 = 335; +var FrMyBigSite1 = 336; +var ItMyBigSite1 = 337; +var SpMyBigSite1 = 339; + +var MyBook0 = 340; +var FrMyBook0 = 341; +var ItMyBook0 = 342; +var LaMyBook0 = 343; +var SpMyBook0 = 344; +var MyBook1 = 345; +var FrMyBook1 = 346; +var ItMyBook1 = 347; +var LaMyBook1 = 348; +var SpMyBook1 = 349; + +var TheirSite = 350; +var FrTheirSite = 351; +var ItTheirSite = 352; +var SpTheirSite = 357; + +var LatinText = 360; +var FrLatinText = 361; +var ItLatinText = 362; +var SpLatinText = 367; + +var LatinRef1 = 370; +var FrLatinRef1 = 371; +var ItLatinRef1 = 372; +var SpLatinRef1 = 374; +var LatinTrans1 = 375; +var FrLatinTrans1 = 376; +var ItLatinTrans1 = 377; +var SpLatinTrans1 = 379; + +var LatinRef2 = 380; +var FrLatinRef2 = 381; +var ItLatinRef2 = 382; +var SpLatinRef2 = 384; +var LatinRef2PlusTranslation = 385; //KEEP. Use for texts with translations into languages other than English +var FrLatinRef2PlusTranslation = 386; +var ItLatinRef2PlusTranslation = 387; +var SpLatinRef2PlusTranslation = 389; + +var LatinPlus1 = 390; +var FrLatinPlus1 = 391; +var ItLatinPlus1 = 392; +var SpLatinPlus1 = 394; +var LatinPlus2 = 395; +var FrLatinPlus2 = 396; +var ItLatinPlus2 = 397; +var SpLatinPlus2 = 399; + +var Original1 = 400; +var FrOriginal1 = 401; +var ItOriginal1 = 402; +var LaOriginal1 = 403; +var SpOriginal1 = 404; +var Original2 = 405; +var FrOriginal2 = 406; +var ItOriginal2 = 407; +var LaOriginal2 = 408; +var SpOriginal2 = 409; + +var Translation1 = 410; +var FrTranslation1 = 411; +var ItTranslation1 = 412; +var SpTranslation1 = 414; +var Translation2 = 415; +var FrTranslation2 = 416; +var ItTranslation2 = 417; +var SpTranslation2 = 419; + +var PDF = 430; +var FrPDF = 431; +var ItPDF = 432; +var SpPDF = 434; + +var JSTOR = 435; +var FrJSTOR = 436; +var ItJSTOR = 437; +var SpJSTOR = 438; + +var BadCoding = 440; +var FrBadCoding = 441; +var ItBadCoding = 442; +var SpBadCoding = 444; +var Loud = 445; +var FrLoud = 446; +var ItLoud = 447; +var SpLoud = 448; + +var Solution = 450; +var FrSolution = 451; +var ItSolution = 452; +var SpSolution = 454; + +var Diodorus = 460; +var FrDiodorus = 461; +var ItDiodorus = 462; +var SpDiodorus = 464; + +var Herodotus = 465; +var FrHerodotus = 466; +var ItHerodotus = 467; +var SpHerodotus = 469; + +var Pausanias = 470; +var FrPausanias = 471; +var ItPausanias = 472; +var SpPausanias = 474; + +var Thucydides = 475; +var FrThucydides = 476; +var ItThucydides = 477; +var SpThucydides = 479; + +var FrontinusL = 480; +var FrFrontinusL = 481; +var ItFrontinusL = 482; +var SpFrontinusL = 484; + +var FrontinusE = 490; +var FrFrontinusF = 491; + +var Dionysius = 495; +var FrDionysius = 496; +var ItDionysius = 497; +var LaDionysius = 498; +var SpDionysius = 499; + +var Glossary0 = 500; +var FrGlossary0 = 501; +var ItGlossary0 = 502; +var SpGlossary0 = 507; + +var LatinOriginal = 510; +var FrLatinOriginal = 511; +var ItLatinOriginal = 512; +var SpLatinOriginal = 513; + +var GreekOriginal = 515; +var FrGreekOriginal = 516; +var ItGreekOriginal = 517; +var SpGreekOriginal = 518; + +var Home = 520; +var FrHome = 521; +var ItHome = 522; +var LaHome = 524; +var SpHome = 527; +var Home1 = 530; +var FrHome1 = 531; +var ItHome1 = 532; +var LaHome1 = 533; +var NeHome1 = 534; +var PtHome1 = 535; +var SpHome1 = 536; + +var Mail = 540; +var FrMail = 541; +var ItMail = 542; +var LaMail = 543; +var SpMail = 544; + +var LetLoad = 550; +var FrLetLoad = 551; +var ItLetLoad = 552; +var LaLetLoad = 553; +var SpLetLoad = 554; + +var AuNote = 560; +var ItAuNote = 562; + +var EdNote = 565; +var FrEdNote = 566; +var ItEdNote = 567; var ItEdNoteWidth = 230; + +var CritNote = 570; +var ItCritNote = 572; + +var ItalianOriginal = 575; +var FrItalianOriginal = 576; +var ItItalianOriginal = 577; +var SpItalianOriginal = 578; + +var Up = 580; +var FrUp = 581; +var ItUp = 582; +var LaUp = 583; +var SpUp = 584; +var Up1 = 590; +var FrUp1 = 591; +var ItUp1 = 592; +var LaUp1 = 593; +var PtUp1 = 594; +var SpUp1 = 595; + +var SallustE = 600; +var FrSallustE = 601; +var ItSallustE = 602; + +var SallustL = 605; +var FrSallustL = 606; +var ItSallustL = 607; + +var Tacitus = 610; +var FrTacitusE = 611; +var ItTacitusE = 612; +var SpTacitusE = 614; + +var TacitusL = 615; +var FrTacitusL = 616; +var ItTacitusL = 617; +var SpTacitusL = 619; + +var Bible = 620; +var FrBible = 621; +var ItBible = 622; +var PtBible = 624; +// var SpBible = 624; + +var CullumNo = 625; +var CullumRank = 626; + +var Ne0 = 630; var NeWidth0 = 190; +var Ne1 = 631; var NeWidth1 = 210; +var Ne2 = 632; var NeWidth2 = 140; +var NeThisPhoto = 633; var NeThisPhotoWidth = 180; +var NePhoto = 634; +var NeOnPage = 635; var NeOnPageWidth = 150; +var NeNote = 636; +var NeMyNote = 637; +var NeBackRef = 638; +var NeGlossary = 639; +var NeUp = 640; +var NeUp1 = 641; var NeUpWidth1 = 210; +var NeHome = 525; var NeHomeWidth = 240; + +var Aelian = 650; +var FrAelian = 651; +var ItAelian = 652; +var SpAelian = 654; + +var GreekRef1 = 670; +var FrGreekRef1 = 671; +var ItGreekRef1 = 672; +var SpGreekRef1 = 674; +var GreekTrans1 = 675; var GreekTransWidth1 = 240; +var FrGreekTrans1 = 676; +var ItGreekTrans1 = 677; +var SpGreekTrans1 = 679; + +var GreekRef2 = 680; +var FrGreekRef2 = 681; +var ItGreekRef2 = 682; +var SpGreekRef2 = 684; +var GreekRef2PlusTranslation = 685; //KEEP. Use for texts with translations into languages other than English +var FrGreekRef2PlusTranslation = 686; +var ItGreekRef2PlusTranslation = 687; +var SpGreekRef2PlusTranslation = 689; + +var EPlusG = 690; var EPlusGWidth = 240; +var FrEPlusG = 691; +var ItEPlusG = 692; +var LaEPlusG = 693; +var SpEPlusG = 694; +var EPlusG2 = 695; +var FrEPlusG2 = 696; +var ItEPlusG2 = 697; +var LaEPlusG2 = 698; +var SpEPlusG2 = 699; + +var GPlusE = 700; +var FrGPlusE = 701; +var ItGPlusE = 702; +var LaGPlusE = 703; +var SpGPlusE = 704; +var GPlusE2 = 705; +var FrGPlusE2 = 706; +var ItGPlusE2 = 707; +var LaGPlusE2 = 708; +var SpGPlusE2 = 709; + +var PlutarchPlusG = 710; /* var PlutarchWidth = 230; */ +var FrPlutarchPlusG = 286; +var ItPlutarchPlusG = 287; +var SpPlutarchPlusG = 289; + +var ResGestae = 715; + +var toLivius = 720; +var LenderingNote = 721; + +var EnLPlusF = 730; +var LPlusF = 731; +var ItLPlusF = 732; +var LaLPlusF = 733; +var SpLPlusF = 734; +var LPlusF2 = 735; +var FrLPlusF2 = 736; +var ItLPlusF2 = 737; +var LaLPlusF2 = 738; +var SpLPlusF2 = 739; + + +// Ссылка выключен сайт, страница открывается в другом окне. + + +// Display state variables +var o3_x = 0; +var o3_y = 0; +var o3_allow = 0; +var o3_showingsticky = 0; +var o3_removecounter = 0; + +// Our layer +var over = null; + + +// Decide browser version +var ns4 = (document.layers)? true:false; +var ns6 = (document.getElementById)? true:false; +var ie4 = (document.all)? true:false; +var ie5 = false; + +// Microsoft Stupidity Check(tm). +if (ie4) { + if (navigator.userAgent.indexOf('MSIE 5')>0) { + ie5 = true; + } + if (ns6) { + ns6 = false; + } +} + + +// Capture events, alt. diffuses the overlib function. +if ( (ns4) || (ie4) || (ns6)) { + document.onmousemove = mouseMove + if (ns4) document.captureEvents(Event.MOUSEMOVE) +} else { + Ebox = no_box; + nd = no_box; + ver3fix = true; +} + + +// Fake function for 3.0 users. +function no_box() { + return ver3fix; +} + + + +//////////////////////////////////// +// PUBLIC FUNCTIONS +//////////////////////////////////// + + +// Ebox(arg0, ..., argN) +// Loads parameters into global runtime variables. +function Ebox() { + + // Load defaults to runtime. + o3_text = ol_text; + o3_cap = ol_cap; + o3_sticky = ol_sticky; + o3_background = ol_background; + o3_close = ol_close; + o3_hpos = ol_hpos; + o3_offsetx = ol_offsetx; + o3_offsety = ol_offsety; + o3_fgcolor = ol_fgcolor; + o3_bgcolor = ol_bgcolor; + o3_textcolor = ol_textcolor; + o3_capcolor = ol_capcolor; + o3_closecolor = ol_closecolor; + o3_width = ol_width; + o3_border = ol_border; + o3_status = ol_status; + o3_autostatus = ol_autostatus; + o3_height = ol_height; + o3_snapx = ol_snapx; + o3_snapy = ol_snapy; + o3_fixx = ol_fixx; + o3_fixy = ol_fixy; + o3_fgbackground = ol_fgbackground; + o3_bgbackground = ol_bgbackground; + o3_padxl = ol_padxl; + o3_padxr = ol_padxr; + o3_padyt = ol_padyt; + o3_padyb = ol_padyb; + o3_fullhtml = ol_fullhtml; + o3_vpos = ol_vpos; + o3_aboveheight = ol_aboveheight; + o3_capicon = ol_capicon; + o3_textfont = ol_textfont; + o3_captionfont = ol_captionfont; + o3_closefont = ol_closefont; + o3_textsize = ol_textsize; + o3_captionsize = ol_captionsize; + o3_closesize = ol_closesize; + o3_timeout = ol_timeout; + o3_function = ol_function; + o3_delay = ol_delay; + o3_hauto = ol_hauto; + o3_vauto = ol_vauto; + + + + // Special for frame support, over must be reset... + if ( (ns4) || (ie4) || (ns6) ) { + o3_frame = ol_frame; + if (ns4) over = o3_frame.document.overDiv + if (ie4) over = o3_frame.overDiv.style + if (ns6) over = o3_frame.document.getElementById("overDiv"); + } + + + // What the next argument is expected to be. + var parsemode = -1; + + var ar = arguments; + + for (i = 0; i < ar.length; i++) { + + if (parsemode == 0) { + // Arg is command + if (ar[i] == INARRAY) { parsemode = INARRAY; } + if (ar[i] == CAPARRAY) { parsemode = CAPARRAY; } + if (ar[i] == STICKY) { parsemode = opt_STICKY(ar[i]); } + if (ar[i] == BACKGROUND) { parsemode = BACKGROUND; } + if (ar[i] == NOCLOSE) { parsemode = opt_NOCLOSE(ar[i]); } + if (ar[i] == CAPTION) { parsemode = CAPTION; } + if (ar[i] == LEFT) { parsemode = opt_HPOS(ar[i]); } + if (ar[i] == RIGHT) { parsemode = opt_HPOS(ar[i]); } + if (ar[i] == CENTER) { parsemode = opt_HPOS(ar[i]); } + if (ar[i] == OFFSETX) { parsemode = OFFSETX; } + if (ar[i] == OFFSETY) { parsemode = OFFSETY; } + if (ar[i] == FGCOLOR) { parsemode = FGCOLOR; } + if (ar[i] == BGCOLOR) { parsemode = BGCOLOR; } + if (ar[i] == TEXTCOLOR) { parsemode = TEXTCOLOR; } + if (ar[i] == CAPCOLOR) { parsemode = CAPCOLOR; } + if (ar[i] == CLOSECOLOR) { parsemode = CLOSECOLOR; } + if (ar[i] == WIDTH) { parsemode = WIDTH; } + if (ar[i] == BORDER) { parsemode = BORDER; } + if (ar[i] == STATUS) { parsemode = STATUS; } + if (ar[i] == AUTOSTATUS) { parsemode = opt_AUTOSTATUS(ar[i]); } + if (ar[i] == AUTOSTATUSCAP) { parsemode = opt_AUTOSTATUSCAP(ar[i]); } + if (ar[i] == HEIGHT) { parsemode = HEIGHT; } + if (ar[i] == CLOSETEXT) { parsemode = CLOSETEXT; } + if (ar[i] == SNAPX) { parsemode = SNAPX; } + if (ar[i] == SNAPY) { parsemode = SNAPY; } + if (ar[i] == FIXX) { parsemode = FIXX; } + if (ar[i] == FIXY) { parsemode = FIXY; } + if (ar[i] == FGBACKGROUND) { parsemode = FGBACKGROUND; } + if (ar[i] == BGBACKGROUND) { parsemode = BGBACKGROUND; } + if (ar[i] == PADX) { parsemode = PADX; } + if (ar[i] == PADY) { parsemode = PADY; } + if (ar[i] == FULLHTML) { parsemode = opt_FULLHTML(ar[i]); } + if (ar[i] == ABOVE) { parsemode = opt_VPOS(ar[i]); } + if (ar[i] == BELOW) { parsemode = opt_VPOS(ar[i]); } + if (ar[i] == CAPICON) { parsemode = CAPICON; } + if (ar[i] == TEXTFONT) { parsemode = TEXTFONT; } + if (ar[i] == CAPTIONFONT) { parsemode = CAPTIONFONT; } + if (ar[i] == CLOSEFONT) { parsemode = CLOSEFONT; } + if (ar[i] == TEXTSIZE) { parsemode = TEXTSIZE; } + if (ar[i] == CAPTIONSIZE) { parsemode = CAPTIONSIZE; } + if (ar[i] == CLOSESIZE) { parsemode = CLOSESIZE; } + if (ar[i] == FRAME) { parsemode = FRAME; } + if (ar[i] == TIMEOUT) { parsemode = TIMEOUT; } + if (ar[i] == FUNCTION) { parsemode = FUNCTION; } + if (ar[i] == DELAY) { parsemode = DELAY; } + if (ar[i] == HAUTO) { parsemode = opt_HAUTO(ar[i]); } + if (ar[i] == VAUTO) { parsemode = opt_VAUTO(ar[i]); } + + + } else { + if (parsemode < 0) { + // Arg is maintext, unless INARRAY + if (ar[i] == INARRAY) { + parsemode = INARRAY; + } else { + o3_text = ar[i]; + parsemode = 0; + } + } else { + // Arg is option for command + if (parsemode == INARRAY) { parsemode = opt_INARRAY(ar[i]); } + if (parsemode == CAPARRAY) { parsemode = opt_CAPARRAY(ar[i]); } + if (parsemode == BACKGROUND) { parsemode = opt_BACKGROUND(ar[i]); } + if (parsemode == CAPTION) { parsemode = opt_CAPTION(ar[i]); } + if (parsemode == OFFSETX) { parsemode = opt_OFFSETX(ar[i]); } + if (parsemode == OFFSETY) { parsemode = opt_OFFSETY(ar[i]); } + if (parsemode == FGCOLOR) { parsemode = opt_FGCOLOR(ar[i]); } + if (parsemode == BGCOLOR) { parsemode = opt_BGCOLOR(ar[i]); } + if (parsemode == TEXTCOLOR) { parsemode = opt_TEXTCOLOR(ar[i]); } + if (parsemode == CAPCOLOR) { parsemode = opt_CAPCOLOR(ar[i]); } + if (parsemode == CLOSECOLOR) { parsemode = opt_CLOSECOLOR(ar[i]); } + if (parsemode == WIDTH) { parsemode = opt_WIDTH(ar[i]); } + if (parsemode == BORDER) { parsemode = opt_BORDER(ar[i]); } + if (parsemode == STATUS) { parsemode = opt_STATUS(ar[i]); } + if (parsemode == HEIGHT) { parsemode = opt_HEIGHT(ar[i]); } + if (parsemode == CLOSETEXT) { parsemode = opt_CLOSETEXT(ar[i]); } + if (parsemode == SNAPX) { parsemode = opt_SNAPX(ar[i]); } + if (parsemode == SNAPY) { parsemode = opt_SNAPY(ar[i]); } + if (parsemode == FIXX) { parsemode = opt_FIXX(ar[i]); } + if (parsemode == FIXY) { parsemode = opt_FIXY(ar[i]); } + if (parsemode == FGBACKGROUND) { parsemode = opt_FGBACKGROUND(ar[i]); } + if (parsemode == BGBACKGROUND) { parsemode = opt_BGBACKGROUND(ar[i]); } + if (parsemode == PADX2) { parsemode = opt_PADX2(ar[i]); } // must be before PADX + if (parsemode == PADY2) { parsemode = opt_PADY2(ar[i]); } // must be before PADY + if (parsemode == PADX) { parsemode = opt_PADX(ar[i]); } + if (parsemode == PADY) { parsemode = opt_PADY(ar[i]); } + if (parsemode == CAPICON) { parsemode = opt_CAPICON(ar[i]); } + if (parsemode == TEXTFONT) { parsemode = opt_TEXTFONT(ar[i]); } + if (parsemode == CAPTIONFONT) { parsemode = opt_CAPTIONFONT(ar[i]); } + if (parsemode == CLOSEFONT) { parsemode = opt_CLOSEFONT(ar[i]); } + if (parsemode == TEXTSIZE) { parsemode = opt_TEXTSIZE(ar[i]); } + if (parsemode == CAPTIONSIZE) { parsemode = opt_CAPTIONSIZE(ar[i]); } + if (parsemode == CLOSESIZE) { parsemode = opt_CLOSESIZE(ar[i]); } + if (parsemode == FRAME) { parsemode = opt_FRAME(ar[i]); } + if (parsemode == TIMEOUT) { parsemode = opt_TIMEOUT(ar[i]); } + if (parsemode == FUNCTION) { parsemode = opt_FUNCTION(ar[i]); } + if (parsemode == DELAY) { parsemode = opt_DELAY(ar[i]); } + + } + } + } + + if (o3_delay == 0) { + return box333(); + } else { + o3_delayid = setTimeout("box333()", o3_delay); + + if (o3_sticky) { + return false; + } else { + return true; + } + } +} + + + +// Clears popups if appropriate +function nd() { + if ( o3_removecounter >= 1 ) { o3_showingsticky = 0 }; + if ( (ns4) || (ie4) || (ns6) ) { + if ( o3_showingsticky == 0 ) { + o3_allowmove = 0; + if (over != null) hideObject(over); + } else { + o3_removecounter++; + } + } + + return true; +} + + + + + + + +//////////////////////////////////// +// OVERLIB 3.33 FUNCTION +//////////////////////////////////// + + +// This function decides what it is we want to display and how we want it done. +function box333() { + + // Make layer content + var layerhtml; + + if (o3_background != "" || o3_fullhtml) { + // Use background instead of box. + layerhtml = ol_content_background(o3_text, o3_background, o3_fullhtml); + } else { + // They want a popup box. + + // Prepare popup background + if (o3_fgbackground != "") { + o3_fgbackground = "BACKGROUND=\""+o3_fgbackground+"\""; + } + if (o3_bgbackground != "") { + o3_bgbackground = "BACKGROUND=\""+o3_bgbackground+"\""; + } + + // Prepare popup colors + if (o3_fgcolor != "") { + o3_fgcolor = "BGCOLOR=\""+o3_fgcolor+"\""; + } + if (o3_bgcolor != "") { + o3_bgcolor = "BGCOLOR=\""+o3_bgcolor+"\""; + } + + // Prepare popup height + if (o3_height > 0) { + o3_height = "HEIGHT=" + o3_height; + } else { + o3_height = ""; + } + + // Decide which kinda box. + if (o3_cap == "") { + // Plain + layerhtml = ol_content_simple(o3_text); + } else { + // With caption + if (o3_sticky) { + // Show close text + layerhtml = ol_content_caption(o3_text, o3_cap, o3_close); + } else { + // No close text + layerhtml = ol_content_caption(o3_text, o3_cap, ""); + } + } + } + + // We want it to stick! + if (o3_sticky) { + o3_showingsticky = 1; + o3_removecounter = 0; + } + + // Write layer + layerWrite(layerhtml); + + // Prepare status bar + if (o3_autostatus > 0) { + o3_status = o3_text; + if (o3_autostatus > 1) { + o3_status = o3_cap; + } + } + + // When placing the layer the first time, even stickies may be moved. + o3_allowmove = 0; + + // Initiate a timer for timeout + if (o3_timeout > 0) { + if (o3_timerid > 0) clearTimeout(o3_timerid); + o3_timerid = setTimeout("cClick()", o3_timeout); + } + + // Show layer + disp(o3_status); + + // Stickies should stay where they are. + if (o3_sticky) { + o3_allowmove = 0; + return false; + } else { + return true; + } +} + + + +//////////////////////////////////// +// LAYER GENERATION FUNCTIONS +//////////////////////////////////// + +// Makes simple table without caption +function ol_content_simple(text) { + txt = "
"+text+"
"; + set_background(""); + return txt; +} + +// Makes table with caption and optional close link +function ol_content_caption(text, title, close) { + closing = ""; + if (close != "") { + closing = ""+close+""; + } + if (o3_capicon != "") { + o3_capicon = " "; + } + txt = "
"+closing+"
"+o3_capicon+title+"
"+text+"
"; + set_background(""); + return txt; +} + +// Sets the background picture, padding and lots more :) +function ol_content_background(text, picture, hasfullhtml) { + if (hasfullhtml) { + txt = text; + } else { + txt = "
"+text+"
"; + } + set_background(picture); + return txt; +} + +// Loads a picture into the div. +function set_background(pic) { + if (pic == "") { + if (ie4) over.backgroundImage = "none"; + if (ns6) over.style.backgroundImage = "none"; + } else { + if (ns4) { + over.background.src = pic; + } else if (ie4) { + over.backgroundImage = "url("+pic+")"; + } else if (ns6) { + over.style.backgroundImage = "url("+pic+")"; + } + } +} + + + +//////////////////////////////////// +// HANDLING FUNCTIONS +//////////////////////////////////// + + +// Displays the popup +function disp(statustext) { + if ( (ns4) || (ie4) || (ns6) ) { + if (o3_allowmove == 0) { + placeLayer(); + showObject(over); + o3_allowmove = 1; + } + } + + if (statustext != "") { + self.status = statustext; + } +} + +// Decides where we want the popup. +function placeLayer() { + var placeX, placeY; + + // HORIZONTAL PLACEMENT + if (o3_fixx > -1) { + // Fixed position + placeX = o3_fixx; + } else { + winoffset = (ie4) ? o3_frame.document.body.scrollLeft : o3_frame.pageXOffset; + if (ie4) iwidth = o3_frame.document.body.clientWidth; + if (ns4) iwidth = o3_frame.innerWidth; // was screwed in mozilla, fixed now? + if (ns6) iwidth = o3_frame.outerWidth; + + // If HAUTO, decide what to use. + if (o3_hauto == 1) { + if ( (o3_x - winoffset) > ((eval(iwidth)) / 2)) { + o3_hpos = LEFT; + } else { + o3_hpos = RIGHT; + } + } + + // From mouse + if (o3_hpos == CENTER) { // Center + placeX = o3_x+o3_offsetx-(o3_width/2); + } + if (o3_hpos == RIGHT) { // Right + placeX = o3_x+o3_offsetx; + if ( (eval(placeX) + eval(o3_width)) > (winoffset + iwidth) ) { + placeX = iwidth + winoffset - o3_width; + if (placeX < 0) placeX = 0; + } + } + if (o3_hpos == LEFT) { // Left + placeX = o3_x-o3_offsetx-o3_width; + if (placeX < winoffset) placeX = winoffset; + } + + // Snapping! + if (o3_snapx > 1) { + var snapping = placeX % o3_snapx; + if (o3_hpos == LEFT) { + placeX = placeX - (o3_snapx + snapping); + } else { + // CENTER and RIGHT + placeX = placeX + (o3_snapx - snapping); + } + if (placeX < 0) placeX = 0; + } + } + + + + // VERTICAL PLACEMENT + if (o3_fixy > -1) { + // Fixed position + placeY = o3_fixy; + } else { + // If VAUTO, decide what to use. + if (o3_vauto == 1) { + if (ie4) iheight = o3_frame.document.body.clientHeight; + if (ns4) iheight = o3_frame.innerHeight; + if (ns6) iheight = o3_frame.outerHeight; + + iheight = (eval(iheight)) / 2; + if (o3_y > iheight) { + o3_vpos = ABOVE; + } else { + o3_vpos = BELOW; + } + } + + // From mouse + if (o3_aboveheight > 0 && o3_vpos == ABOVE) { + placeY = o3_y - (o3_aboveheight + o3_offsety); + } else { + // BELOW + placeY = o3_y + o3_offsety; + } + + // Snapping! + if (o3_snapy > 1) { + var snapping = placeY % o3_snapy; + + if (o3_aboveheight > 0 && o3_vpos == ABOVE) { + placeY = placeY - (o3_snapy + snapping); + } else { + placeY = placeY + (o3_snapy - snapping); + } + + if (placeY < 0) placeY = 0; + } + } + + + // Actually move the object. + repositionTo(over, placeX, placeY); +} + + +// Moves the layer +function mouseMove(e) { + if ( (ns4) || (ns6) ) {o3_x=e.pageX; o3_y=e.pageY;} + if (ie4) {o3_x=event.x; o3_y=event.y;} + if (ie5) {o3_x=event.x+o3_frame.document.body.scrollLeft; o3_y=event.y+o3_frame.document.body.scrollTop;} + + if (o3_allowmove == 1) { + placeLayer(); + } +} + +// The Close onMouseOver function for stickies +function cClick() { + hideObject(over); + o3_showingsticky = 0; +} + + +// Makes sure target frame has overLIB +function compatibleframe(frameid) { + if (ns4) { + if (typeof frameid.document.overDiv =='undefined') return false; + } else if (ie4) { + if (typeof frameid.document.all["overDiv"] =='undefined') return false; + } else if (ns6) { + if (frameid.document.getElementById('overDiv') == null) return false; + } + + return true; +} + + + +//////////////////////////////////// +// LAYER FUNCTIONS +//////////////////////////////////// + + +// Writes to a layer +function layerWrite(txt) { + txt += "\n"; + + if (ns4) { + var lyr = o3_frame.document.overDiv.document + + lyr.write(txt) + lyr.close() + } else if (ie4) { + o3_frame.document.all["overDiv"].innerHTML = txt + } else if (ns6) { + range = o3_frame.document.createRange(); + range.setStartBefore(over); + domfrag = range.createContextualFragment(txt); + while (over.hasChildNodes()) { + over.removeChild(over.lastChild); + } + over.appendChild(domfrag); + } +} + +// Make an object visible +function showObject(obj) { + if (ns4) obj.visibility = "show"; + else if (ie4) obj.visibility = "visible"; + else if (ns6) obj.style.visibility = "visible"; +} + +// Hides an object +function hideObject(obj) { + if (ns4) obj.visibility = "hide"; + else if (ie4) obj.visibility = "hidden"; + else if (ns6) obj.style.visibility = "hidden"; + if (o3_timerid > 0) clearTimeout(o3_timerid); + if (o3_delayid > 0) clearTimeout(o3_delayid); + o3_timerid = 0; + o3_delayid = 0; + self.status = ""; +} + +// Move a layer +function repositionTo(obj,xL,yL) { + if ( (ns4) || (ie4) ) { + obj.left = xL; + obj.top = yL; + } else if (ns6) { + obj.style.left = xL + "px"; + obj.style.top = yL+ "px"; + } +} + + + +//////////////////////////////////// +// PARSER FUNCTIONS +//////////////////////////////////// + + +// Sets text from array. +function opt_INARRAY(id) { + o3_text = ol_texts[id]; + return 0; +} + +// Sets caption from array. +function opt_CAPARRAY(id) { + o3_cap = ol_caps[id]; + return 0; +} + +// Sets stickiness. +function opt_STICKY(unused) { + o3_sticky = 1; + return 0; +} + +// Sets background picture. +function opt_BACKGROUND(file) { + o3_background = file; + return 0; +} + +// Sets use of close text. +function opt_NOCLOSE(unused) { + o3_close = ""; + return 0; +} + +// Sets caption. +function opt_CAPTION(text) { + o3_cap = text; + return 0; +} + +// Sets hpos, for LEFT, RIGHT and CENTER. +function opt_HPOS(pos) { + o3_hpos = pos; + return 0; +} + +// Sets the x offset +function opt_OFFSETX(offset) { + o3_offsetx = offset; + return 0; +} + +// Sets the y offset +function opt_OFFSETY(offset) { + o3_offsety = offset; + return 0; +} + + +// Sets the fg color +function opt_FGCOLOR(clr) { + o3_fgcolor = clr; + return 0; +} + +// Sets the bg color +function opt_BGCOLOR(clr) { + o3_bgcolor = clr; + return 0; +} + +// Sets the text color +function opt_TEXTCOLOR(clr) { + o3_textcolor = clr; + return 0; +} + +// Sets the caption color +function opt_CAPCOLOR(clr) { + o3_capcolor = clr; + return 0; +} + +// Sets the close color +function opt_CLOSECOLOR(clr) { + o3_closecolor = clr; + return 0; +} + +// Sets the popup width +function opt_WIDTH(pixels) { + o3_width = pixels; + return 0; +} + +// Sets the popup border width +function opt_BORDER(pixels) { + o3_border = pixels; + return 0; +} + +// Sets the status bar text +function opt_STATUS(text) { + o3_status = text; + return 0; +} + +// Sets that status bar text to the text +function opt_AUTOSTATUS(val) { + o3_autostatus = 1; + return 0; +} + +// Sets that status bar text to the caption +function opt_AUTOSTATUSCAP(val) { + o3_autostatus = 2; + return 0; +} + +// Sets the popup height +function opt_HEIGHT(pixels) { + o3_height = pixels; + o3_aboveheight = pixels; + return 0; +} + +// Sets the close text. +function opt_CLOSETEXT(text) { + o3_close = text; + return 0; +} + +// Sets horizontal snapping +function opt_SNAPX(pixels) { + o3_snapx = pixels; + return 0; +} + +// Sets vertical snapping +function opt_SNAPY(pixels) { + o3_snapy = pixels; + return 0; +} + +// Sets horizontal position +function opt_FIXX(pos) { + o3_fixx = pos; + return 0; +} + +// Sets vertical position +function opt_FIXY(pos) { + o3_fixy = pos; + return 0; +} + +// Sets the fg background +function opt_FGBACKGROUND(picture) { + o3_fgbackground = picture; + return 0; +} + +// Sets the bg background +function opt_BGBACKGROUND(picture) { + o3_bgbackground = picture; + return 0; +} + +// Sets the left x padding for background +function opt_PADX(pixels) { + o3_padxl = pixels; + return PADX2; +} + +// Sets the top y padding for background +function opt_PADY(pixels) { + o3_padyt = pixels; + return PADY2; +} + +// Sets the right x padding for background +function opt_PADX2(pixels) { + o3_padxr = pixels; + return 0; +} + +// Sets the bottom y padding for background +function opt_PADY2(pixels) { + o3_padyb = pixels; + return 0; +} + +// Sets that user provides full html. +function opt_FULLHTML(unused) { + o3_fullhtml = 1; + return 0; +} + +// Sets vpos, for ABOVE and BELOW +function opt_VPOS(pos) { + o3_vpos = pos; + return 0; +} + +// Sets the caption icon. +function opt_CAPICON(icon) { + o3_capicon = icon; + return 0; +} + +// Sets the text font +function opt_TEXTFONT(fontname) { + o3_textfont = fontname; + return 0; +} + +// Sets the caption font +function opt_CAPTIONFONT(fontname) { + o3_captionfont = fontname; + return 0; +} + +// Sets the close font +function opt_CLOSEFONT(fontname) { + o3_closefont = fontname; + return 0; +} + +// Sets the text font size +function opt_TEXTSIZE(fontsize) { + o3_textsize = fontsize; + return 0; +} + +// Sets the caption font size +function opt_CAPTIONSIZE(fontsize) { + o3_captionsize = fontsize; + return 0; +} + +// Sets the close font size +function opt_CLOSESIZE(fontsize) { + o3_closesize = fontsize; + return 0; +} + +// Defines which frame we should point to. +function opt_FRAME(frm) { + o3_frame = compatibleframe(frm) ? frm : ol_frame; + + if ( (ns4) || (ie4 || (ns6)) ) { + if (ns4) over = o3_frame.document.overDiv; + if (ie4) over = o3_frame.overDiv.style; + if (ns6) over = o3_frame.document.getElementById("overDiv"); + } + + return 0; +} + +// Sets the popup timeout (note: 1 sec = 1000) +function opt_TIMEOUT(maxtime) { + o3_timeout = maxtime; + return 0; +} + +// Calls an external function +function opt_FUNCTION(callme) { + o3_text = callme() + return 0; +} + +// Sets the popup delay (note: 1 sec = 1000) +function opt_DELAY(waittime) { + o3_delay = waittime; + return 0; +} + +// Sets the auto horizontal option +function opt_HAUTO(onoff) { + if (o3_hauto == 0) { + o3_hauto = 1; + } else { + o3_hauto = 0; + } + return 0; +} + +// Sets the auto vertical option +function opt_VAUTO(onoff) { + if (o3_vauto == 0) { + o3_vauto = 1; + } else { + o3_vauto = 0; + } + return 0; +} + + +//end (OF OVERLIB. OTHER ITEMS MAY FOLLOW) + + +// Opens a single window of parametered size, called "pannellino" +function makeWindow(W,H) { + if (W == null) { W = 567; } + if (H == null) { H = 378; } +W = W+16; +H = H+16; +window.open("","pannellino","width="+W+",height="+H+",innerwidth="+W+",innerheight="+H+",titlebar=no,title=no,resizable=no"); +} + +// Opens multiple windows of parametered size, each called "pannellinoN" (N = 1, 2, etc.) +// used in SMIGRA Coma +function makeWindow1(W,H,N) { + if (W == null) { W = 567; } + if (H == null) { H = 378; } +N = "pannellino"+N; +W = W+16; +H = H+16; +window.open("",N,"width="+W+",height="+H+",innerwidth="+W+",innerheight="+H+",titlebar=no,title=no,resizable=no"); +} + +// Opens a single window of parametered size, called "pannellone" +function makeWindow2(W,H) { + if (W == null) { W = 567; } + if (H == null) { H = 378; } +W = W+16; +H = H+16; +window.open("","pannellone","width="+W+",height="+H+",innerwidth="+W+",innerheight="+H+",titlebar=no,title=no,resizable=no"); +} + diff --git a/sources/book_4c_files/Italy.gif b/sources/book_4c_files/Italy.gif new file mode 100644 index 0000000..4e82f2c Binary files /dev/null and b/sources/book_4c_files/Italy.gif differ diff --git a/sources/book_4c_files/LIGHT.css b/sources/book_4c_files/LIGHT.css new file mode 100644 index 0000000..e46698f --- /dev/null +++ b/sources/book_4c_files/LIGHT.css @@ -0,0 +1,10 @@ +.running_title { + color: #000066 ! important; +} + .running_title .emend { + color: #0066cc ! important; + } + +.my_running_title { + color: #0066cc ! important; /* matches .emend */ +} diff --git a/sources/book_4c_files/colors.css b/sources/book_4c_files/colors.css new file mode 100644 index 0000000..dc4a17a --- /dev/null +++ b/sources/book_4c_files/colors.css @@ -0,0 +1,2173 @@ +/* +KEEP IN THE FOLLOWING ORDER: + 1. GOOGLEMAP COLORS FIRST ▸ search for <1> + 2. PLAIN FONT COLORS NO BACKGROUNDS ▸ search for <2> + 3. PLAIN BACKGROUND COLORS ▸ search for <3> + 4. COMBINED FONT+BACKGROUND SCHEMES ▸ search for <4> +*/ + +/* +ideally: + plain color names should be for plain font colors + evocative names should be for combined schemes + */ + +/* +TABLES WITH ALTERNATING ROWS/BANDS: + Across all backgrounds and stylesheets, they are CLASS="Orvieto", + differently defined in the various stylesheets. + Model use: +E/Gazetteer/Places/America/United_States/_Topics/history/_Texts/DULOCT/Appendix*.html + */ + +/*<1>*/ + +SPAN.WalkColor { + color: #00bf40 ! important; +} + +SPAN.RideColor { + color: #cc6600 ! important; +} + +SPAN.ApproximateColor { + color: #ff99ff ! important; +} + +/*<2>*/ +/* +KEEP IN THE FOLLOWING ORDER: + 1. NAMED COLORS ▸ search for + 2. colorNNNNNN PLACEHOLDERS ▸ search for , within which: + 2a. WEBSAFE: xxyyzz with x, y, z = {0,3,6,9,C,F} + 2b. OTHER +*/ + +/**/ +.black { + color: #000000 ! important; + } + +.blue { + color: #0000ff ! important; +} + +.celadon { + color: #33CCFF ! important; + } + +.chancery { + color: #FF33FF ! important; + } + +.cordovan { + color: #993300 ! important; + } + +.fuchsia { + color: #ff00ff ! important; + } + +.green { + color: #009900 ! important; +} + +.dark_green { + color: #003300 ! important; + } + +.lawngreen { + color: #7cfc00 ! important; +} + +.light_green { + color: #33ff33 ! important; +} + + A.light_green { + background-color: inherit ! important; + color: #33ff33 ! important; + } + +.light_red { + color: #ff3333 ! important; +} + +.light_yellow { + color: #ffff33 ! important; +} + +.pale_green { + color: #ccffcc ! important; +} + + A.pale_green { + background-color: inherit ! important; + color: #ccffcc ! important; + } + +.pale_yellow { + color: #ffffcc ! important; +} + +.lemon { + color: #FFFF99 ! important; + } + +.maroon { + color: #990000 ! important; + } + +.muted { + color: #666666 ! important; + } + +.semimuted { + color: #999999 ! important; + } + +.ochre { + color: #996600 ! important; + } + +.ochre_yellow { + color: #ccad00 ! important; +} + +.orange { + color: #FFAA22 ! important; + } + +.pale_magenta { + color: #ff6699 ! important; +} + +.pale_purple { + color: #ffccff ! important; +} + + A.pale_purple { + background-color: inherit ! important; + color: #ffccff ! important; + } + +.purple { + color: #990099 ! important; + } + +.red { + color: #ff0000 ! important; +} + +.rust { + color: #CC6600 ! important; + } + +.salmon { + color: #ff6666 ! important; +} + +.USMA_gold { + color: #ffdd00 ! important; + } + +.USMA_stripes { + color: #fffb98 ! important; + } + +.violet { + color: #200080 ! important; +} + +/**/ + /**/ + /* Should eventually be replaced by mnemonic names */ + +.color001100 { + color: #001100 ! important; + } + +.color000033 { + color: #000033 ! important; + } + +.color000066 { + color: #000066 ! important; + } + +.color000099 { + color: #000099 ! important; + } + +.color0000CC { + color: #0000CC ! important; + } + +.color003333 { + color: #003333 ! important; + } + +.color003366 { + color: #003366 ! important; + } + +.color0033CC { + color: #0033CC ! important; + } + +.color006600 { + color: #006600 ! important; + } + +.color006633 { + color: #006633 ! important; + } + +.color0066CC { + color: #0066CC ! important; + } + +.color0066FF { + color: #0066FF ! important; + } + +.color00CC99 { + color: #00CC99 ! important; + } + +.color00FF99 { + color: #00FF99 ! important; + } + +.color330000 { + color: #330000 ! important; + } + +.color330033 { + color: #330033 ! important; + } + +.color333333 { + color: #333333 ! important; + } + +.color333300 { + color: #333300 ! important; + } + +.color333366 { + color: #333366 ! important; + } + +.color333399 { + color: #333399 ! important; + } + +.color3333CC { + color: #3333CC ! important; + } + +.color3333FF { + color: #3333FF ! important; + } + +.color336600 { + color: #336600 ! important; + } + +.color336633 { + color: #336633 ! important; + } + +.color3366FF { + color: #3366FF ! important; + } + +.color339900 { + color: #339900 ! important; + } + +.color339933 { + color: #339933 ! important; + } + +.color33FFFF { + color: #33FFFF ! important; + } + +.color660000 { + color: #660000 ! important; + } + +.color660033 { + color: #660033 ! important; + } + +.color660066 { + color: #660066 ! important; + } + +.color660099 { + color: #660099 ! important; + } + +.color663300 { + color: #663300 ! important; + } + +.color663333 { + color: #663333 ! important; + } + +.color6699CC { + color: #6699CC ! important; + } + +.color993333 { + color: #993333 ! important; + } + +.color996666 { + color: #996666 ! important; + } + +.color999999 { + color: #999999 ! important; + } + +.color99CCFF { + color: #99CCFF ! important; + } + +.color99FF66 { + color: #99FF66 ! important; + } + +.color99FFFF { + color: #99FFFF ! important; + } + +.colorCC0000 { + color: #CC0000 ! important; + } + +.colorCC0033 { + color: #CC0033 ! important; + } + +.colorCC0066 { + color: #CC0066 ! important; + } + +.colorCC0099 { + color: #CC0099 ! important; + } + +.colorCC00CC { + color: #CC00CC ! important; + } + +.colorCC3300 { + color: #CC3300 ! important; + } + +.colorCC6666 { + color: #CC6666 ! important; + } + +.colorCC9900 { + color: #CC9900 ! important; + } + +.colorCCCCFF { + color: #CCCCFF ! important; + } + +.colorCCFFCC { + color: #CCFFCC ! important; + } + +.colorCCFFFF { + color: #CCFFFF ! important; + } + +.colorFF0066 { + color: #FF0066 ! important; + } + +.colorFF0099 { + color: #FF0099 ! important; + } + +.colorFF3300 { + color: #FF3300 ! important; + } + +.colorFF6600 { + color: #FF6600 ! important; + } + +.colorFF9900 { + color: #FF9900 ! important; + } + +.colorFF9933 { + color: #FF9933 ! important; + } + +.colorFF9966 { + color: #FF9966 ! important; + } + +.colorFF9999 { + color: #FF9999 ! important; + } + +.colorFF99CC { + color: #FF99CC ! important; + } + +.colorFF99FF { + color: #FF99FF ! important; + } + +.colorFFCC00 { + color: #FFCC00 ! important; + } + +.colorFFCC33 { + color: #FFCC33 ! important; + } + +.colorFFCC66 { + color: #FFCC66 ! important; + } + +.colorFFCC99 { + color: #FFCC99 ! important; + } + +.colorFFCCCC { + color: #FFCCCC ! important; + } + +.colorFFFF00 { + color: #FFFF00 ! important; + } + +.colorFFFF66 { + color: #FFFF66 ! important; + } + +.colorFFFFFF { + color: #FFFFFF ! important; + } + + /**/ + +.color000090 { + color: #000090 ! important; + } + +.color002200 { + color: #002200 ! important; + } + +.color004000 { + color: #004000 ! important; + } + +.color0040B0 { + color: #0040B0 ! important; + } + +.color004400 { + color: #004400 ! important; + } + +.color004A00 { + color: #004A00 ! important; + } + +.color0060FF { + color: #0060FF ! important; + } + +.color006E3A { + color: #006E3A ! important; + } + +.color007000 { + color: #007000 ! important; + } + +.color008000 { + color: #008000 ! important; + } + +.color0080FF { + color: #0080FF ! important; + } + +.color008800 { + color: #008800 ! important; + } + +.color008C00 { + color: #008C00 ! important; + } + +.color0C3000 { + color: #0C3000 ! important; + } + +.color110000 { + color: #110000 ! important; + } + +.color110011 { + color: #110011 ! important; + } + +.color112200 { + color: #112200 ! important; + } + +.color200000 { + color: #200000 ! important; + } + +.color223344 { + color: #223344 ! important; + } + +.color330010 { + color: #330010 ! important; + } + +.color332222 { + color: #332222 ! important; + } + +.color3900D6 { + color: #3900D6 ! important; + } + +.color3900E6 { + color: #3900E6 ! important; + } + +.color400080 { + color: #400080 ! important; + } + +.color4040FF { + color: #4040FF ! important; + } + +.color410000 { + color: #410000 ! important; + } + +.color4B2700 { + color: #4B2700 ! important; + } + +.color4C1900 { + color: #4C1900 ! important; + } + +.color4C9900 { + color: #4C9900 ! important; + } + +.color5000D0 { + color: #5000D0 ! important; + } + +.color600000 { + color: #600000 ! important; + } + +.color6A0080 { + color: #6A0080 ! important; + } + +.color6F0000 { + color: #6F0000 ! important; + } + +.color800000 { + color: #800000 ! important; + } + +.color800080 { + color: #800080 ! important; + } + +.color802600 { + color: #802600 ! important; + } + +.color900000 { + color: #900000 ! important; + } + +.color903030 { + color: #903030 ! important; + } + +.color992200 { + color: #992200 ! important; + } + +.color994C4C { + color: #994C4C ! important; + } + +.color9C2973 { + color: #9C2973 ! important; + } + +.color9C6342 { + color: #9C6342 ! important; + } + +.colorA00000 { + color: #A00000 ! important; + } + +.colorAACC00 { + color: #AACC00 ! important; + } + +.colorBE5F00 { + color: #BE5F00 ! important; + } + +.colorC03A3A { + color: #C03A3A ! important; + } + +.colorCCCCDD { + color: #CCCCDD ! important; + } + +.colorD00000 { + color: #D00000 ! important; + } + +.colorD10022 { + color: #D10022 ! important; + } + +.colorD56A00 { + color: #D56A00 ! important; + } + +.colorDDDDCC { + color: #DDDDCC ! important; + } + +.colorDDDDDD { + color: #DDDDDD ! important; + } + +.colorDDDDEE { + color: #DDDDEE ! important; + } + +.colorDDDDFF { + color: #DDDDFF ! important; + } + +.colorDDFFCC { + color: #DDFFCC ! important; + } + +.colorE0FFCC { + color: #E0FFCC ! important; + } + +.colorE77300 { + color: #E77300 ! important; + } + +.colorEECC99 { + color: #EECC99 ! important; + } + +.colorEEEEEE { + color: #EEEEEE ! important; + } + +.colorEEEEFF { + color: #EEEEFF ! important; + } + +.colorEEFFFF { + color: #EEFFFF ! important; + } + +.colorFF002A { + color: #FF002A ! important; + } + +.colorFF4000 { + color: #FF4000 ! important; + } + +.colorFF5500 { + color: #FF5500 ! important; + } + +.colorFF6633 { + color: #FF6633 ! important; + } + +.colorFF7F00 { + color: #FF7F00 ! important; + } + +.colorFFAA00 { + color: #FFAA00 ! important; + } + +.colorFFBB88 { + color: #FFBB88 ! important; + } + +.colorFFDD00 { + color: #FFDD00 ! important; + } + +.colorFFDD99 { + color: #FFDD99 ! important; + } + +.colorFFDDBB { + color: #FFDDBB ! important; + } + +.colorFFDDDD { + color: #FFDDDD ! important; + } + +.colorFFDDEE { + color: #FFDDEE ! important; + } + +.colorFFEEDD { + color: #FFEEDD ! important; + } + +.colorFFEEEE { + color: #FFEEEE ! important; + } + +.colorFFFFEE { + color: #FFFFEE ! important; + } + +/*<3>*/ + +.aquawhite { + background-color: #f7fbff ! important; +} + +.bluewhite { + background-color: #f7f7ff ! important; +} + +.ecruwhite { + background-color: #fffff7 ! important; +} + +.redwhite { + background-color: #fff7f7 ! important; +} + +.bistre { + background-color: #cccc99 ! important; +} + +SPAN.bistre { + background-color: inherit ! important; + color: #cccc99 ! important; +} + +.ecru { + background-color: #ffffcc ! important; + color: #000066 ! important; +} + +SPAN.ecru { + background-color: inherit ! important; + color: #ffffcc ! important; +} + +.grey { + background-color: #cccccc ! important; +} + +SPAN.grey { + color: #cccccc ! important; +} + +.pale_grey { + background-color: #ddddee ! important; + } + +.paler_grey { + background-color: #eeeef6 ! important; + } + +.lagoon { + background-color: #99ffff ! important; + color: #000066 ! important; +} + + SPAN.lagoon { + background-color: inherit ! important; + color: #99ffff ! important; +} + +.lime { + background-color: #ccff99 ! important; +} + +.mist_green { + background-color: #e8ffe8 ! important; +} + +.mustard { + background-color: #ffcc44 ! important; +} + +.pale_blue { + background-color: #ccccff ! important; +} + SPAN.pale_blue { + background-color: inherit ! important; + color: #ccccff ! important; + } + +.hospital_wall { + background-color: #ccffcc ! important; +} + SPAN.hospital_wall { + background-color: inherit ! important; + color: #ccffcc ! important; + } + + A.hospital_wall { + background-color: inherit ! important; + color: #ccffcc ! important; + } + +.pale_red { + background-color: #ffcccc ! important; +} + SPAN.pale_red { + background-color: inherit ! important; + color: #ffcccc ! important; + } + + A.pale_red { + background-color: inherit ! important; + color: #ffcccc ! important; + } + +.pink { + background-color: #fff2ff ! important; +} + +.plaster { + background-color: #ffeedd ! important; +} + +.pumpkin { + background-color: #ff9933 ! important; +} + +.silver { + background-color: #f6f6ff ! important; +} + +.silver .emend { + color: #0066cc ! important; +} + +.sky { + background-color: #99ccff ! important; +} + SPAN.sky { + background-color: inherit ! important; + color: #99ccff ! important; + } + +.sunset { + background-color: #ffff99 ! important; +} + +.tawny { + background-color: #ffcc66 ! important; +} + + .tawny .Latin { + color: #660000 ! important; + } + + .tawny .lapis { + color: #660000 ! important; + } + + .tawny .nummus { + color: #660000 ! important; + } + + .tawny .Latin .emend { + color: #cc3399 ! important; + } + + .tawny .lapis .emend { + color: #cc3399 ! important; + } + + .tawny .nummus .emend { + color: #cc3399 ! important; + } + +.terracotta { + background-color: #ff9966 ! important; +} + +.white { + background-color: #ffffff ! important; + color: #000066 ! important; +} + + SPAN.white { + background-color: inherit ! important; + color: #ffffff ! important; + } + +/*<4>*/ + +.Acquaeortus { + background-color: #ff6666 ! important; + color: #ffffff ! important; +} + +.Air_Force { + background-color: #003366 ! important; + color: #ffffff ! important; +} + .Air_Force A { + color: #ffff33 ! important; + } + +.Algol { + background-color: #444444 ! important; + color: #ff6600 ! important; +} + + .Algol P { + color: #ff6600 ! important; + } + + .Algol .Italian { + color: #99ff99 ! important; + } + + .Algol .source { + color: #99ff99 ! important; + } + .Algol A { + color: #ffcccc ! important; + } + +.Algol2 { + background-color: #333333 ! important; + color: #ff6633 ! important; +} + + .Algol2 P { + color: #ff6633 ! important; + } + + .Algol2 .source { + color: #99ff99 ! important; + } + .Algol2 A { + color: #ffcccc ! important; + } + +.Americas { + background-color: #bbffff ! important; + color: #336633 ! important; +} + +.amphora { + background-color: #993333 ! important; + color: #ffffcc ! important; +} + + .amphora .Latin { + color: #ffff99 ! important; + } + + .amphora .lapis { + color: #ff9999 ! important; + } + + .amphora .nummus { + color: #ff9999 ! important; + } + .amphora A { + color: #33ff33 ! important; + } + +.angelica { + background-color: #99cc33 ! important; +} + +.angels { + background-color: #000099 ! important; + color: #ffff66 ! important; +} + .angels A { + color: #99ffff ! important; + } + +.Antares { + background-color: #000000 ! important; + color: #ff3300 ! important; +} + .Antares A { + color: #ffff66 ! important; + } + +.aqua { + background-color: #ccffff ! important; + color: #000066 ! important; +} + A.aqua { + background-color: inherit ! important; + color: #ccffff ! important; + } + + SPAN.aqua { + background-color: inherit ! important; + color: #ccffff ! important; + } + +.Arizona { + background-color: #ffe6cc ! important; +} + .Arizona .Italian { + color: #20bb44 ! important; + } + +.Arnhem { + background-color: #3333ff ! important; + color: #ffffff ! important; +} + + A.Arnhem { + background-color: inherit ! important; + color: #3333ff ! important; + } + + SPAN.Arnhem { + color: #ffffff ! important; + } + +.Augustus { + background-color: #660022 ! important; + color: #ffffff ! important; +} + .Augustus A { + color: #00ffcc ! important; + } + +.autumn { + background-color: #663333 ! important; + color: #ffcc99 ! important; +} + .autumn A { + color: #99ffff ! important; + } + +.autumn_gold { + background-color: #663333 ! important; + color: #ffff66 ! important; +} + +.autumn_sand { + background-color: #663333 ! important; + color: #ffffcc ! important; +} + +.azure { + background-color: #150080 ! important; + color: #ffffcc ! important; +} + +.Bonely { + background-color: #cccccc ! important; + color: #000011 ! important; +} + +.Boston_red { + color: #cc0000 ! important; +} + +.brick { + background-color: #773300 ! important; + color: #ffffff ! important; +} + + .brick .Latin { + color: #ffff99 ! important; + } + + .brick .lapis { + color: #ffff99 ! important; + } + + .brick .nummus { + color: #ffff99 ! important; + } + .brick A { + color: #33ff33 ! important; + } + +.brickstamp { + background-color: #ffcc99 ! important; +} + +.brickstamp1 { + background-color: #ffcc99 ! important; + color: #cc3333 ! important; +} + +.brickstamp2 { + background-color: #ffcc99 ! important; + color: #993333 ! important; +} + +.Britain { + background-color: #00237d ! important; + /*must be the same color as BODY in Britannia.css*/ + color: #ffffff ! important; +} + +.brown { + background-color: #330000 ! important; + color: #ffffcc ! important; +} + + .brown .Latin { + color: #ffcc66 ! important; + } + + .brown .lapis { + color: #ffcc66 ! important; + } + + .brown .nummus { + color: #ffcc66 ! important; + } + + .brown .source { + color: #99ff33 ! important; + } + + SPAN.brown { + background-color: inherit ! important; + color: #330000 ! important; + } + + SPAN.brown A { + color: #0000ff ! important; + } + .brown A { + color: #99ff99 ! important; + } + +.dark_brown { + background-color: #332222 ! important; + color: #ffffcc ! important; +} + + .dark_brown .Latin { + color: #ffcc66 ! important; + } + + .dark_brown .lapis { + color: #ffcc66 ! important; + } + + .dark_brown .nummus { + color: #ffcc66 ! important; + } + + .dark_brown .source { + color: #99ff33 ! important; + } + +.burgundy { + background-color: #330000 ! important; + color: #ffcccc ! important; +} + +.butterscotch { + background-color: #995500 ! important; + color: #ffffff ! important; +} + + .butterscotch .Latin { + color: #ffff99 ! important; + } + + .butterscotch .lapis { + color: #ffff99 ! important; + } + + .butterscotch .nummus { + color: #ffff99 ! important; + } + .butterscotch A { + color: #33ff33 ! important; + } + +.cadet_grey { + background-color: #a5a6bb ! important; + color: #000066 ! important; +} + +.light_cadet_grey { + background-color: #c5c6d3 ! important; + color: #000066 ! important; +} + +/* The red of the Cambodian flag is e00025; the color here is slightly bluer, and much darker, for readability and so as not to confuse it with a link. */ +/* OLD: +.Cambodia { + background-color: #ffffff ! important; + color: #bf0050 ! important; + border-color: #032ea1 ! important; + border-width: 2px ! important; +} + .Cambodia A { + color: #cc00ff ! important; + } + */ + +.Cambodia { + background-color: #e00025 ! important; + color: #ffffff ! important; + border-color: #032ea1 ! important; + border-width: 2px ! important; +} + .Cambodia A { + color: #99ffff ! important; + } + .Cambodia A.ref { + color: #99ffff ! important; + } + +.Canada { + background-color: #ffffff ! important; + color: #37495f ! important; /* matches the Canadian Government's site */ + border-color: #ff0000 ! important; +} + .Canada A { + color: #cc00ff ! important; + } + +.Capella { + background-color: #000000 ! important; + color: #ffffcc ! important; +} + .Capella A { + color: #ffff66 ! important; + } + + .Capella .source { + color: #66ff66 ! important; + } + +.caramel { + background-color: #996633 ! important; + color: #ffffff ! important; +} + .caramel A { + color: #bbbbff ! important; + } + +.Cartagena { + background-color: #ff6666 ! important; + color: #ffff99 ! important; +} + +.Catalunya { + background-color: #fcdd09 ! important; + color: #da131a ! important; + border-color: #da131a ! important; +} + .Catalunya A { + color: #cc00ff ! important; + } + +/* +The following style was called "Catholic" but I renamed it to avoid conflict with BODY CLASS= "Catholic". It appears to be very rarely called; but if in fact it is called a lot, I may have to revert the name. + */ +.Kapaun { + background-color: #90191b ! important; + color: #ffff33 ! important; + font-size: 90%; +} + .Kapaun A { + color: #ffff00 ! important; + } + +.charcoal { + background-color: #333333 ! important; + color: #ffffff ! important; +} + .charcoal A { + color: #ffff33 ! important; + } + +.checkColor { /* = ecru */ + background-color: #ffffcc ! important; +} + +.Chicago_maroon { + background-color: #cccccc ! important; + color: #990000 ! important; +} + +.Chile { + background-color: #ffffff ! important; + color: #0044cc ! important; + border-color: #d83820 ! important; +} + .Chile A { + color: #cc00ff ! important; + } + +.chocolate { + background-color: #330000 ! important; + color: #ffff99 ! important; +} + .chocolate A { + color: #33ff33 ! important; + } + +.Claudian { + background-color: #333333 ! important; + color: #cccccc ! important; +} + + .Claudian P { + color: #cccccc ! important; + } + + .Claudian .source { + color: #99ff99 ! important; + } + .Claudian A { + color: #66ccff ! important; + } + +.cobblestone { + background-color: #999999 ! important; + color: #ffffff ! important; +} + +.cocoa { + background-color: #665555 ! important; + color: #ffffcc ! important; +} + .cocoa A { + color: #33ccff ! important; + } + +.coffee { + background-color: #998866 ! important; + color: #ffffee ! important; +} + .coffee A { + color: #0033ff ! important; + } + +.crimson { + background-color: #990033 ! important; + color: #ffcc00 ! important; +} + + .crimson P { + color: #ffcc00 ! important; + } + +.daffodil { + background-color: #ffffff ! important; + color: #70a000 ! important; +} + +.Dalmatian { + background-color: #ffffff ! important; + color: #000000 ! important; +} + +.dandelion { + background-color: #003300 ! important; + color: #ffcc00 ! important; +} + .dandelion A { + color: #9999ff ! important; + } + + .dandelion .source { + color: #99ff99 ! important; + } + +.Daniel { + background-color: #006600 ! important; + color: #ffff99 ! important; +} + .Daniel A { + color: #ff6633 ! important; + } + +.dark_blue { + background-color: #003399 ! important; + color: #ffffff ! important; +} + .dark_blue A { + background-color: inherit ! important; + font-weight: bold; + color: #ffff33 ! important; + } + + SPAN.dark_blue { + color: #003399 ! important; + } + +.dark_pines { + background-color: #003300 ! important; + color: #ffffff ! important; +} + .dark_pines A { + color: #9999ff ! important; + } + + .dark_pines .source { + color: #99ff99 ! important; + } + +.dark_sepia { + background-color: #888877 ! important; + color: #ddddcc ! important; +} + .dark_sepia A { + color: #99ffff ! important; + } + + .dark_sepia .source { + color: #99ff99 ! important; + } + +.dark_slate { + background-color: #444444 ! important; + color: #ffffff ! important; +} + +.doughboy { + background-color: #a67c41 ! important; + color: #e5c68e ! important; +} + +.Dutch2 { + background-color: #ddffff ! important; /*e9feff*/ + color: #ee8800 ! important; /*eb810f*/ +} + +.early_spring { + background-color: #99cc66 ! important; + color: #ffffff ! important; +} + +.empyrean { + background-color: #000033 ! important; + color: #ffcc99 ! important; +} + .empyrean A { + color: #99ffff ! important; + } + + .empyrean .Latin { + color: #ff9999 ! important; + } + + .empyrean .lapis { + color: #ff9999 ! important; + } + + .empyrean .nummus { + color: #ff9999 ! important; + } + +.eucalyptus { + background-color: #669966 ! important; + color: #0033cc ! important; +} + .eucalyptus A { + color: #33ff33 ! important; + } + +.farmhouse { + background-color: #113300 ! important; + color: #ffffcc ! important; +} + .farmhouse A { + color: #99ccff ! important; + } + +.fertile { + background-color: #663300 ! important; + color: #33ff00 ! important; +} + +.Firenze_ghibellino { + background-color: #ff3333 ! important; + color: #ffffff ! important; +} + +.Firenze { + background-color: #ffffff ! important; + color: #ff3333 ! important; +} + +.forest_sunset { + background-color: #336633 ! important; + color: #ffddbb ! important; +} + .forest_sunset A { + color: #ccccff ! important; + } + +.French2 { + background-color: #99ccff ! important; + color: #ee4037 ! important; +} + +.French_paperback { + background-color: #fff7f2 ! important; + color: #b7375c ! important; +} + +.fudge { + background-color: #996600 ! important; + color: #ffffff ! important; +} + +.glauque { + background-color: #669999 ! important; + color: #ffffff ! important; +} + .glauque A { + color: #ccccff ! important; + } + .glauque A:visited { + color: #ffcccc ! important; + } + +.Gran_Colombia { + background-color: #fee88a ! important; + color: #0044cc ! important; /* why doesn't this work? */ + border-color: #d83820 ! important; +} + .Gran_Colombia TD { + color: #0044cc ! important; /* workaround because previous doesn't work! */ + } + + .Gran_Colombia A { + color: #339900 ! important; + } + +.grey_pines { + background-color: #336600 ! important; + color: #ccccff ! important; +} + .grey_pines A { + color: #ffffcc ! important; + } + + .grey_pines .source { + color: #99ff99 ! important; + } + + .grey_pines .Italian { + color: #7acc7a ! important; + } + +.Harlequin { + background-color: #000000 ! important; + color: #ffffff ! important; +} + .Harlequin A { + color: #ffff66 ! important; + } + + .Harlequin .source { + color: #66ff66 ! important; + } + + .Harlequin .bland { + color: #ffffff ! important; + } + +.imperial { + background-color: #4d0099 ! important; + color: #ffff66 ! important; +} + +.ink_blue { + background-color: #000033 ! important; + color: #ffffff ! important; +} + .ink_blue A { + color: #99ffff ! important; + } + + .ink_blue P { + color: #ffffff ! important; + } + + SPAN.ink_blue { + color: #000033 ! important; + } + +.Labro { + background-color: #506600 ! important; + color: #fff9e5 ! important; +} + +.landscape { + background-color: #559900 ! important; + color: #ffffff ! important; +} + +.laterite { + background-color: #cc6633 ! important; + color: #ccffff ! important; +} + +.late_spring { + background-color: #339900 ! important; + color: #ffcccc ! important; +} + .late_spring A { + font-weight: bold; + color: #ffff33 ! important; + } + +.light_ochre { + background-color: #cc9933 ! important; + color: #ffffff ! important; +} + +.limestone { + background-color: #ffffcc ! important; + color: #663300 ! important; +} + +.London { + background-color: #cccccc ! important; + color: #993333 ! important; +} + +.lupine { + background-color: #113300 ! important; + color: #ffffff ! important; +} + .lupine A { + color: #99ccff ! important; + } + +.marl { + background-color: #ffcccc ! important; + color: #333366 ! important; +} + +.mahogany { + background-color: #330000 ! important; + color: #ffffff ! important; +} + .mahogany A { + color: #33ff33 ! important; + } + + .mahogany A.comment { + color: #33ccff ! important; + font-weight: bold; + font-size: 85%; + } + + .mahogany .Latin { + color: #ff6600 ! important; + } + + .mahogany .Latin .emend { + color: #ffaa00 ! important; + } + + .mahogany .lapis { + color: #ff6600 ! important; + } + + .mahogany .lapis .emend { + color: #ffaa00 ! important; + } + +.masoor_dal { + background-color: #cc6600 ! important; + color: #ffffff ! important; +} + + .masoor_dal .Latin { + color: #ffff99 ! important; + } + + .masoor_dal .lapis { + color: #ffff99 ! important; + } + + .masoor_dal .nummus { + color: #ffff99 ! important; + } + .masoor_dal A { + color: #33ff33 ! important; + } + +.mimosa { + background-color: #336633 ! important; + color: #ffff99 ! important; +} + +.minium { + background-color: #ffe0aa ! important; + color: #cc0000 ! important; +} + +.mint { + background-color: #003300 ! important; + color: #ccffcc ! important; +} + .mint A { + color: #9999ff ! important; + } + + .mint .source { + color: #99ff99 ! important; + } + +.mordore { + background-color: #663300 ! important; + color: #ffffcc ! important; +} + .mordore A { + color: #33ff33 ! important; + } + + .mordore .emend { + color: #99ffff ! important; + } + + .mordore .Latin { + color: #ff3300 ! important; + } + + .mordore .Latin .emend { + color: #cc3399 ! important; + } + +.mossy_pavement { + background-color: #cccccc ! important; + color: #006600 ! important; +} + +.mourning_dove { + background-color: #a8a99b ! important; + color: #f1e0d6 ! important; +} + .mourning_dove A { + color: #4662d0 ! important; + } + +.MrWhite { + background-color: #ffffff ! important; + color: #993333 ! important; +} + +.Nar { + background-color: #808066 ! important; + color: #ffffcc ! important; +} + +.Navajo { + background-color: #330000 ! important; + color: #33ff00 ! important; +} + .Navajo A { + color: #99ff33 ! important; + } + +.navy { + background-color: #110044 ! important; + color: #ffffff ! important; +} + +.Netherlands { + background-color: #ffffff ! important; + color: #3075f6 ! important; + border-color: #f29e39 ! important; +} + .Netherlands A { + color: #cc00ff ! important; + } + +.Newburgh { + background-color: #b4b5cc ! important; + color: #fff600 ! important; +} + +.nicotine { + background-color: #ffffcc ! important; + color: #993333 ! important; +} + +.Nigeria { + background-color: #006600 ! important; + color: #ffffff ! important; +} + .Nigeria A { + color: #ff6633 ! important; + } + +.North_Carolina { + background-color: #ffffff ! important; + color: #003399 ! important;/*102f5f*/ + border-color: #bf2b45 ! important; +} + .North_Carolina A { + color: #ff6633 ! important; + } + +.old_belfry { + background-color: #998866 ! important; + color: #ddffff ! important; +} + +.olive { + background-color: #666633 ! important; + color: #ffffcc ! important; +} + .olive A { + color: #ccccff ! important; + } + +.dark_olive { + background-color: #333300 ! important; + color: #ffffff ! important; +} + .dark_olive A { + color: #99ffff ! important; + } + + .dark_olive .emend { + color: #ccffff ! important; + } + +.light_olive { + background-color: #999966 ! important; + color: #ffffcc ! important; +} + .light_olive A { + color: #ccccff ! important; + } + +.Oxford { + background-color: #ddeeff ! important; + color: #f36512 ! important; + font-weight: bold; +} + .Oxford A { + color: #993333 ! important; + } + + .Oxford .bland { + color: #000066 ! important; + font-weight: normal; +} + +SPAN.pale_yellow { + background-color: inherit ! important; + color: #ffffcc ! important; + } + +A.pale_yellow { + background-color: inherit ! important; + color: #ffffcc ! important; + } + +.paleo { + background-color: #e6d7b8 ! important; + color: #331900 ! important; +} + .paleo .Italian { + color: #20bb44 ! important; + } + +.parchment { + background-color: #ffffff ! important; + color: #663300 ! important; +} + +.Pentecost { + background-color: #660000 ! important; + color: #ffff66 ! important; +} + +.pietra_morta { + background-color: #ccccb0 ! important; + color: #330000 ! important; +} + +.pigeon { + background-color: #99cccc ! important; + color: #660000 ! important; +} + +.pines { + background-color: #447711 ! important; + color: #ffffff ! important; +} + .pines A { + color: #66ffff ! important; + } + + .pines .source { + color: #99ff99 ! important; + } + +.Ravenna { + background-color: #440055 ! important; + color: #ccffcc ! important; +} + +.red_wax { + background-color: #cc3333 ! important; + color: #ffffff ! important; +} + .red_wax A { + color: #66ffff ! important; + } + +.rockscape { + background-color: #330000 ! important; + color: #ccffff ! important; +} + .rockscape A { + color: #66ffff ! important; + } + +.sand { + background-color: #ffeeee ! important; + color: #663300 ! important; +} + +.sandstone { + background-color: #ffeedd ! important; + color: #663300 ! important; +} + +.shaded_stone { + background-color: #cccccc ! important; + color: #663300 ! important; +} + +.sigillata { + background-color: #660000 ! important; + color: #ffffff ! important; +} + .sigillata .Latin { + color: #ffff99 ! important; + } + .sigillata .lapis { + color: #ff9999 ! important; + } + .sigillata .nummus { + color: #ff9999 ! important; + } + .sigillata A { + color: #33ff33 ! important; + } + +.slate { + background-color: #666666 ! important; + color: #ffffff ! important; +} + +.spaceflight { + background-color: #150080 ! important; + color: #ffff66 ! important; +} + +.spearmint { + background-color: #ffffff ! important; + color: #006600 ! important; +} + +.spring { + background-color: #66cc00 ! important; + color: #ffffff ! important; +} + +.stone_walls { + background-color: #221100 ! important; + color: #cc7733 ! important; +} + .stone_walls A { + color: #66ffff ! important; + } + +.storm_pines { + background-color: #003300 ! important; + color: #cccccc ! important; +} + .storm_pines A { + color: #9999ff ! important; + } + .storm_pines .source { + color: #99ff99 ! important; + } + +.straw { + background-color: #ffffff ! important; + color: #996600 ! important; +} + +.summer { + background-color: #7c9645 ! important; + color: #ffffff ! important; +} + .summer A { + color: #0044ff ! important; + } + +.tobacco { + background-color: #663300 ! important; + color: #ffcc00 ! important; +} + +.toffee { + background-color: #cc9966 ! important; + color: #660000 ! important; +} + + .toffee .Latin { + color: #cc3300 ! important; + } + + .toffee .lapis { + color: #ffff99 ! important; + } + + .toffee .nummus { + color: #ffff99 ! important; + } + +.Ukraine { + background-color: #ffffff ! important; + color: #0056bd ! important; + border-color: #fed700 ! important; +} + +.umber { + background-color: #663300 ! important; + color: #ffffff ! important; +} + .umber A { + color: #33ff33 ! important; + } + .umber .emend { + color: #99ffff ! important; + } + .umber .Latin { + color: #ff3300 ! important; + } + .umber .Latin .emend { + color: #cc3399 ! important; + } + +.Venezuela { + background-color: #ffea80 ! important; + color: #152169 ! important; +} + +.very_green { + background-color: #002200 ! important; + color: #aacc00 ! important; +} + .very_green A { + color: #ccccff ! important; + } + +.wintergreen { + background-color: #ffffff ! important; + color: #0099cc ! important; +} + +.woodruff { + background-color: #336633 ! important; + color: #ffffff ! important; +} + .woodruff A { + color: #ccccff ! important; + } + .woodruff .emend { + color: #ddffff ! important; + } + +.Wyoming { + background-color: #ffffff ! important; + color: #003399 ! important; + border-color: #bf0b32 ! important; +} + .Wyoming A { + color: #ff6633 ! important; + } + +.zinnia { + background-color: #003300 ! important; + color: #ff8800 ! important; +} + + SPAN.zinnia { + background-color: inherit ! important; + color: #003300 ! important; +} + .zinnia A { + color: #6699ff ! important; + } + +/* ORVIETO */ +/* +BODY. TABLE.Orvieto { +} + */ diff --git a/sources/book_4c_files/empty.gif b/sources/book_4c_files/empty.gif new file mode 100644 index 0000000..d37a0bb Binary files /dev/null and b/sources/book_4c_files/empty.gif differ diff --git a/sources/book_4c_files/home_.gif b/sources/book_4c_files/home_.gif new file mode 100644 index 0000000..4ec156c Binary files /dev/null and b/sources/book_4c_files/home_.gif differ diff --git a/sources/book_4c_files/home__small.gif b/sources/book_4c_files/home__small.gif new file mode 100644 index 0000000..cf2137e Binary files /dev/null and b/sources/book_4c_files/home__small.gif differ diff --git a/sources/book_4c_files/logo__.gif b/sources/book_4c_files/logo__.gif new file mode 100644 index 0000000..0fbb441 Binary files /dev/null and b/sources/book_4c_files/logo__.gif differ diff --git a/sources/book_4c_files/ol.js b/sources/book_4c_files/ol.js new file mode 100644 index 0000000..8ed611d --- /dev/null +++ b/sources/book_4c_files/ol.js @@ -0,0 +1,8 @@ +!function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e():"function"==typeof define&&define.amd?define([],e):"object"==typeof exports?exports.ol=e():t.ol=e()}(window,function(){return function(t){var e={};function i(r){if(e[r])return e[r].exports;var n=e[r]={i:r,l:!1,exports:{}};return t[r].call(n.exports,n,n.exports,i),n.l=!0,n.exports}return i.m=t,i.c=e,i.d=function(t,e,r){i.o(t,e)||Object.defineProperty(t,e,{enumerable:!0,get:r})},i.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},i.t=function(t,e){if(1&e&&(t=i(t)),8&e)return t;if(4&e&&"object"==typeof t&&t&&t.__esModule)return t;var r=Object.create(null);if(i.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:t}),2&e&&"string"!=typeof t)for(var n in t)i.d(r,n,function(e){return t[e]}.bind(null,n));return r},i.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return i.d(e,"a",e),e},i.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},i.p="",i(i.s=9)}([function(t,e,i){"use strict";t.exports=n,t.exports.default=n;var r=i(5);function n(t,e){if(!(this instanceof n))return new n(t,e);this._maxEntries=Math.max(4,t||9),this._minEntries=Math.max(2,Math.ceil(.4*this._maxEntries)),e&&this._initFormat(e),this.clear()}function o(t,e,i){if(!i)return e.indexOf(t);for(var r=0;r=t.minX&&e.maxY>=t.minY}function y(t){return{children:t,height:1,leaf:!0,minX:1/0,minY:1/0,maxX:-1/0,maxY:-1/0}}function v(t,e,i,n,o){for(var s,a=[e,i];a.length;)(i=a.pop())-(e=a.pop())<=n||(s=e+Math.ceil((i-e)/n/2)*n,r(t,s,e,i,o),a.push(e,s,s,i))}n.prototype={all:function(){return this._all(this.data,[])},search:function(t){var e=this.data,i=[],r=this.toBBox;if(!g(t,e))return i;for(var n,o,s,a,h=[];e;){for(n=0,o=e.children.length;n=0&&o[e].children.length>this._maxEntries;)this._split(o,e),e--;this._adjustParentBBoxes(n,o,e)},_split:function(t,e){var i=t[e],r=i.children.length,n=this._minEntries;this._chooseSplitAxis(i,n,r);var o=this._chooseSplitIndex(i,n,r),a=y(i.children.splice(o,i.children.length-o));a.height=i.height,a.leaf=i.leaf,s(i,this.toBBox),s(a,this.toBBox),e?t[e-1].children.push(a):this._splitRoot(i,a)},_splitRoot:function(t,e){this.data=y([t,e]),this.data.height=t.height+1,this.data.leaf=!1,s(this.data,this.toBBox)},_chooseSplitIndex:function(t,e,i){var r,n,o,s,h,l,u,c;for(l=u=1/0,r=e;r<=i-e;r++)s=f(n=a(t,0,r,this.toBBox),o=a(t,r,i,this.toBBox)),h=p(n)+p(o),s=e;n--)o=t.children[n],h(u,t.leaf?s(o):o),p+=c(u);return p},_adjustParentBBoxes:function(t,e,i){for(var r=i;r>=0;r--)h(e[r],t)},_condense:function(t){for(var e,i=t.length-1;i>=0;i--)0===t[i].children.length?i>0?(e=t[i-1].children).splice(e.indexOf(t[i]),1):this.clear():s(t[i],this.toBBox)},_initFormat:function(t){var e=["return a"," - b",";"];this.compareMinX=new Function("a","b",e.join(t[0])),this.compareMinY=new Function("a","b",e.join(t[1])),this.toBBox=new Function("a","return {minX: a"+t[0]+", minY: a"+t[1]+", maxX: a"+t[2]+", maxY: a"+t[3]+"};")}}},function(t,e,i){"use strict";t.exports=n;var r=i(6);function n(t){this.buf=ArrayBuffer.isView&&ArrayBuffer.isView(t)?t:new Uint8Array(t||0),this.pos=0,this.type=0,this.length=this.buf.length}n.Varint=0,n.Fixed64=1,n.Bytes=2,n.Fixed32=5;function o(t){return t.type===n.Bytes?t.readVarint()+t.pos:t.pos+1}function s(t,e,i){return i?4294967296*e+(t>>>0):4294967296*(e>>>0)+(t>>>0)}function a(t,e,i){var r=e<=16383?1:e<=2097151?2:e<=268435455?3:Math.ceil(Math.log(e)/(7*Math.LN2));i.realloc(r);for(var n=i.pos-1;n>=t;n--)i.buf[n+r]=i.buf[n]}function h(t,e){for(var i=0;i>>8,t[i+2]=e>>>16,t[i+3]=e>>>24}function m(t,e){return(t[e]|t[e+1]<<8|t[e+2]<<16)+(t[e+3]<<24)}n.prototype={destroy:function(){this.buf=null},readFields:function(t,e,i){for(i=i||this.length;this.pos>3,o=this.pos;this.type=7&r,t(n,e,this),this.pos===o&&this.skip(r)}return e},readMessage:function(t,e){return this.readFields(t,e,this.readVarint()+this.pos)},readFixed32:function(){var t=y(this.buf,this.pos);return this.pos+=4,t},readSFixed32:function(){var t=m(this.buf,this.pos);return this.pos+=4,t},readFixed64:function(){var t=y(this.buf,this.pos)+4294967296*y(this.buf,this.pos+4);return this.pos+=8,t},readSFixed64:function(){var t=y(this.buf,this.pos)+4294967296*m(this.buf,this.pos+4);return this.pos+=8,t},readFloat:function(){var t=r.read(this.buf,this.pos,!0,23,4);return this.pos+=4,t},readDouble:function(){var t=r.read(this.buf,this.pos,!0,52,8);return this.pos+=8,t},readVarint:function(t){var e,i,r=this.buf;return e=127&(i=r[this.pos++]),i<128?e:(e|=(127&(i=r[this.pos++]))<<7,i<128?e:(e|=(127&(i=r[this.pos++]))<<14,i<128?e:(e|=(127&(i=r[this.pos++]))<<21,i<128?e:function(t,e,i){var r,n,o=i.buf;if(n=o[i.pos++],r=(112&n)>>4,n<128)return s(t,r,e);if(n=o[i.pos++],r|=(127&n)<<3,n<128)return s(t,r,e);if(n=o[i.pos++],r|=(127&n)<<10,n<128)return s(t,r,e);if(n=o[i.pos++],r|=(127&n)<<17,n<128)return s(t,r,e);if(n=o[i.pos++],r|=(127&n)<<24,n<128)return s(t,r,e);if(n=o[i.pos++],r|=(1&n)<<31,n<128)return s(t,r,e);throw new Error("Expected varint not more than 10 bytes")}(e|=(15&(i=r[this.pos]))<<28,t,this))))},readVarint64:function(){return this.readVarint(!0)},readSVarint:function(){var t=this.readVarint();return t%2==1?(t+1)/-2:t/2},readBoolean:function(){return Boolean(this.readVarint())},readString:function(){var t=this.readVarint()+this.pos,e=function(t,e,i){var r="",n=e;for(;n239?4:h>223?3:h>191?2:1;if(n+u>i)break;1===u?h<128&&(l=h):2===u?128==(192&(o=t[n+1]))&&(l=(31&h)<<6|63&o)<=127&&(l=null):3===u?(o=t[n+1],s=t[n+2],128==(192&o)&&128==(192&s)&&((l=(15&h)<<12|(63&o)<<6|63&s)<=2047||l>=55296&&l<=57343)&&(l=null)):4===u&&(o=t[n+1],s=t[n+2],a=t[n+3],128==(192&o)&&128==(192&s)&&128==(192&a)&&((l=(15&h)<<18|(63&o)<<12|(63&s)<<6|63&a)<=65535||l>=1114112)&&(l=null)),null===l?(l=65533,u=1):l>65535&&(l-=65536,r+=String.fromCharCode(l>>>10&1023|55296),l=56320|1023&l),r+=String.fromCharCode(l),n+=u}return r}(this.buf,this.pos,t);return this.pos=t,e},readBytes:function(){var t=this.readVarint()+this.pos,e=this.buf.subarray(this.pos,t);return this.pos=t,e},readPackedVarint:function(t,e){var i=o(this);for(t=t||[];this.pos127;);else if(e===n.Bytes)this.pos=this.readVarint()+this.pos;else if(e===n.Fixed32)this.pos+=4;else{if(e!==n.Fixed64)throw new Error("Unimplemented type: "+e);this.pos+=8}},writeTag:function(t,e){this.writeVarint(t<<3|e)},realloc:function(t){for(var e=this.length||16;e268435455||t<0?function(t,e){var i,r;t>=0?(i=t%4294967296|0,r=t/4294967296|0):(r=~(-t/4294967296),4294967295^(i=~(-t%4294967296))?i=i+1|0:(i=0,r=r+1|0));if(t>=0x10000000000000000||t<-0x10000000000000000)throw new Error("Given varint doesn't fit into 10 bytes");e.realloc(10),function(t,e,i){i.buf[i.pos++]=127&t|128,t>>>=7,i.buf[i.pos++]=127&t|128,t>>>=7,i.buf[i.pos++]=127&t|128,t>>>=7,i.buf[i.pos++]=127&t|128,t>>>=7,i.buf[i.pos]=127&t}(i,0,e),function(t,e){var i=(7&t)<<4;if(e.buf[e.pos++]|=i|((t>>>=3)?128:0),!t)return;if(e.buf[e.pos++]=127&t|((t>>>=7)?128:0),!t)return;if(e.buf[e.pos++]=127&t|((t>>>=7)?128:0),!t)return;if(e.buf[e.pos++]=127&t|((t>>>=7)?128:0),!t)return;if(e.buf[e.pos++]=127&t|((t>>>=7)?128:0),!t)return;e.buf[e.pos++]=127&t}(r,e)}(t,this):(this.realloc(4),this.buf[this.pos++]=127&t|(t>127?128:0),t<=127||(this.buf[this.pos++]=127&(t>>>=7)|(t>127?128:0),t<=127||(this.buf[this.pos++]=127&(t>>>=7)|(t>127?128:0),t<=127||(this.buf[this.pos++]=t>>>7&127))))},writeSVarint:function(t){this.writeVarint(t<0?2*-t-1:2*t)},writeBoolean:function(t){this.writeVarint(Boolean(t))},writeString:function(t){t=String(t),this.realloc(4*t.length),this.pos++;var e=this.pos;this.pos=function(t,e,i){for(var r,n,o=0;o55295&&r<57344){if(!n){r>56319||o+1===e.length?(t[i++]=239,t[i++]=191,t[i++]=189):n=r;continue}if(r<56320){t[i++]=239,t[i++]=191,t[i++]=189,n=r;continue}r=n-55296<<10|r-56320|65536,n=null}else n&&(t[i++]=239,t[i++]=191,t[i++]=189,n=null);r<128?t[i++]=r:(r<2048?t[i++]=r>>6|192:(r<65536?t[i++]=r>>12|224:(t[i++]=r>>18|240,t[i++]=r>>12&63|128),t[i++]=r>>6&63|128),t[i++]=63&r|128)}return i}(this.buf,t,this.pos);var i=this.pos-e;i>=128&&a(e,i,this),this.pos=e-1,this.writeVarint(i),this.pos+=i},writeFloat:function(t){this.realloc(4),r.write(this.buf,t,this.pos,!0,23,4),this.pos+=4},writeDouble:function(t){this.realloc(8),r.write(this.buf,t,this.pos,!0,52,8),this.pos+=8},writeBytes:function(t){var e=t.length;this.writeVarint(e),this.realloc(e);for(var i=0;i=128&&a(i,r,this),this.pos=i-1,this.writeVarint(r),this.pos+=r},writeMessage:function(t,e,i){this.writeTag(t,n.Bytes),this.writeRawMessage(e,i)},writePackedVarint:function(t,e){this.writeMessage(t,h,e)},writePackedSVarint:function(t,e){this.writeMessage(t,l,e)},writePackedBoolean:function(t,e){this.writeMessage(t,c,e)},writePackedFloat:function(t,e){this.writeMessage(t,u,e)},writePackedDouble:function(t,e){this.writeMessage(t,p,e)},writePackedFixed32:function(t,e){this.writeMessage(t,d,e)},writePackedSFixed32:function(t,e){this.writeMessage(t,f,e)},writePackedFixed64:function(t,e){this.writeMessage(t,_,e)},writePackedSFixed64:function(t,e){this.writeMessage(t,g,e)},writeBytesField:function(t,e){this.writeTag(t,n.Bytes),this.writeBytes(e)},writeFixed32Field:function(t,e){this.writeTag(t,n.Fixed32),this.writeFixed32(e)},writeSFixed32Field:function(t,e){this.writeTag(t,n.Fixed32),this.writeSFixed32(e)},writeFixed64Field:function(t,e){this.writeTag(t,n.Fixed64),this.writeFixed64(e)},writeSFixed64Field:function(t,e){this.writeTag(t,n.Fixed64),this.writeSFixed64(e)},writeVarintField:function(t,e){this.writeTag(t,n.Varint),this.writeVarint(e)},writeSVarintField:function(t,e){this.writeTag(t,n.Varint),this.writeSVarint(e)},writeStringField:function(t,e){this.writeTag(t,n.Bytes),this.writeString(e)},writeFloatField:function(t,e){this.writeTag(t,n.Fixed32),this.writeFloat(e)},writeDoubleField:function(t,e){this.writeTag(t,n.Fixed64),this.writeDouble(e)},writeBooleanField:function(t,e){this.writeVarintField(t,Boolean(e))}}},function(t,e,i){var r=i(7);e.Processor=r},,,function(t,e,i){t.exports=function(){"use strict";function t(t,e,i){var r=t[e];t[e]=t[i],t[i]=r}function e(t,e){return te?1:0}return function(i,r,n,o,s){!function e(i,r,n,o,s){for(;o>n;){if(o-n>600){var a=o-n+1,h=r-n+1,l=Math.log(a),u=.5*Math.exp(2*l/3),p=.5*Math.sqrt(l*u*(a-u)/a)*(h-a/2<0?-1:1),c=Math.max(n,Math.floor(r-h*u/a+p)),d=Math.min(o,Math.floor(r+(a-h)*u/a+p));e(i,r,c,d,s)}var f=i[r],_=n,g=o;for(t(i,n,r),s(i[o],f)>0&&t(i,n,o);_0;)g--}0===s(i[n],f)?t(i,n,g):t(i,++g,o),g<=r&&(n=g+1),r<=g&&(o=g-1)}}(i,r,n||0,o||i.length-1,s||e)}}()},function(t,e){e.read=function(t,e,i,r,n){var o,s,a=8*n-r-1,h=(1<>1,u=-7,p=i?n-1:0,c=i?-1:1,d=t[e+p];for(p+=c,o=d&(1<<-u)-1,d>>=-u,u+=a;u>0;o=256*o+t[e+p],p+=c,u-=8);for(s=o&(1<<-u)-1,o>>=-u,u+=r;u>0;s=256*s+t[e+p],p+=c,u-=8);if(0===o)o=1-l;else{if(o===h)return s?NaN:1/0*(d?-1:1);s+=Math.pow(2,r),o-=l}return(d?-1:1)*s*Math.pow(2,o-r)},e.write=function(t,e,i,r,n,o){var s,a,h,l=8*o-n-1,u=(1<>1,c=23===n?Math.pow(2,-24)-Math.pow(2,-77):0,d=r?0:o-1,f=r?1:-1,_=e<0||0===e&&1/e<0?1:0;for(e=Math.abs(e),isNaN(e)||e===1/0?(a=isNaN(e)?1:0,s=u):(s=Math.floor(Math.log(e)/Math.LN2),e*(h=Math.pow(2,-s))<1&&(s--,h*=2),(e+=s+p>=1?c/h:c*Math.pow(2,1-p))*h>=2&&(s++,h/=2),s+p>=u?(a=0,s=u):s+p>=1?(a=(e*h-1)*Math.pow(2,n),s+=p):(a=e*Math.pow(2,p-1)*Math.pow(2,n),s=0));n>=8;t[i+d]=255&a,d+=f,a/=256,n-=8);for(s=s<0;t[i+d]=255&s,d+=f,s/=256,l-=8);t[i+d-f]|=128*_}},function(t,e,i){var r=i(8).newImageData;function n(t){var e=!0;try{new ImageData(10,10)}catch(t){e=!1}function i(t,i,r){return e?new ImageData(t,i,r):{data:t,width:i,height:r}}return function(e){var r,n,o=e.buffers,s=e.meta,a=e.imageOps,h=e.width,l=e.height,u=o.length,p=o[0].byteLength;if(a){var c=new Array(u);for(n=0;nthis._maxQueueLength;)this._queue.shift().callback(null,null)},s.prototype._dispatch=function(){if(0===this._running&&this._queue.length>0){var t=this._job=this._queue.shift(),e=t.inputs[0].width,i=t.inputs[0].height,r=t.inputs.map(function(t){return t.data.buffer}),n=this._workers.length;if(this._running=n,1===n)this._workers[0].postMessage({buffers:r,meta:t.meta,imageOps:this._imageOps,width:e,height:i},r);else for(var o=t.inputs[0].data.length,s=4*Math.ceil(o/4/n),a=0;a0},e.prototype.removeEventListener=function(t,e){var i=this.listeners_[t];if(i){var r=i.indexOf(e);t in this.pendingRemovals_?(i[r]=I,++this.pendingRemovals_[t]):(i.splice(r,1),0===i.length&&delete this.listeners_[t])}},e}(C),M={CHANGE:"change",CLEAR:"clear",CONTEXTMENU:"contextmenu",CLICK:"click",DBLCLICK:"dblclick",DRAGENTER:"dragenter",DRAGOVER:"dragover",DROP:"drop",ERROR:"error",KEYDOWN:"keydown",KEYPRESS:"keypress",LOAD:"load",MOUSEDOWN:"mousedown",MOUSEMOVE:"mousemove",MOUSEOUT:"mouseout",MOUSEUP:"mouseup",MOUSEWHEEL:"mousewheel",MSPOINTERDOWN:"MSPointerDown",RESIZE:"resize",TOUCHSTART:"touchstart",TOUCHMOVE:"touchmove",TOUCHEND:"touchend",WHEEL:"wheel"};var F=function(t){function e(){t.call(this),this.revision_=0}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.changed=function(){++this.revision_,this.dispatchEvent(M.CHANGE)},e.prototype.getRevision=function(){return this.revision_},e.prototype.on=function(t,e){if(Array.isArray(t)){for(var i=t.length,r=new Array(i),n=0;n0;)this.pop()},e.prototype.extend=function(t){for(var e=0,i=t.length;ee?1:t=0}function z(t,e,i){var r,n=t.length;if(t[0]<=e)return 0;if(e<=t[n-1])return n-1;if(i>0){for(r=1;r>>0,n=0;nn&&(h|=$.RIGHT),ao&&(h|=$.ABOVE),h===$.UNKNOWN&&(h=$.INTERSECTING),h}function ht(){return[1/0,1/0,-1/0,-1/0]}function lt(t,e,i,r,n){return n?(n[0]=t,n[1]=e,n[2]=i,n[3]=r,n):[t,e,i,r]}function ut(t){return lt(1/0,1/0,-1/0,-1/0,t)}function pt(t,e){var i=t[0],r=t[1];return lt(i,r,i,r,e)}function ct(t,e,i,r,n){return yt(ut(n),t,e,i,r)}function dt(t,e){return t[0]==e[0]&&t[2]==e[2]&&t[1]==e[1]&&t[3]==e[3]}function ft(t,e){return e[0]t[2]&&(t[2]=e[2]),e[1]t[3]&&(t[3]=e[3]),t}function _t(t,e){e[0]t[2]&&(t[2]=e[0]),e[1]t[3]&&(t[3]=e[1])}function gt(t,e){for(var i=0,r=e.length;ie[0]?r[0]=t[0]:r[0]=e[0],t[1]>e[1]?r[1]=t[1]:r[1]=e[1],t[2]=e[0]&&t[1]<=e[3]&&t[3]>=e[1]}function bt(t){return t[2]1?(i=n,r=o):h>0&&(i+=s*h,r+=a*h)}return Yt(t,e,i,r)}function Yt(t,e,i,r){var n=i-t,o=r-e;return n*n+o*o}function Bt(t){return 180*t/Math.PI}function Vt(t){return t*Math.PI/180}function Xt(t,e){var i=t%e;return i*e<0?i+e:i}function zt(t,e,i){return t+i*(e-t)} +/** + * @license + * Latitude/longitude spherical geodesy formulae taken from + * http://www.movable-type.co.uk/scripts/latlong.html + * Licensed under CC-BY-3.0. + */var Wt=6371008.8;function Kt(t,e,i){var r=i||Wt,n=Vt(t[1]),o=Vt(e[1]),s=(o-n)/2,a=Vt(e[0]-t[0])/2,h=Math.sin(s)*Math.sin(s)+Math.sin(a)*Math.sin(a)*Math.cos(n)*Math.cos(o);return 2*r*Math.atan2(Math.sqrt(h),Math.sqrt(1-h))}function Ht(t,e){for(var i=0,r=0,n=t.length;r1?i:2,o=e;void 0===o&&(o=n>2?t.slice():new Array(r));for(var s=re,a=0;as?h=s:h<-s&&(h=-s),o[a+1]=h}return o}function le(t,e,i){var r=t.length,n=i>1?i:2,o=e;void 0===o&&(o=n>2?t.slice():new Array(r));for(var s=0;s=2;--l)s[a+l]=e[a+l]}return s}}function we(t,e,i,r){var n=Ee(t),o=Ee(e);ge(n,o,Re(i)),ge(o,n,Re(r))}function Ie(t,e){if(t===e)return!0;var i=t.getUnits()===e.getUnits();return t.getCode()===e.getCode()?i:Le(t,e)===ve&&i}function Le(t,e){var i=ye(t.getCode(),e.getCode());return i||(i=me),i}function Oe(t,e){return Le(Ee(t),Ee(e))}function Pe(t,e,i){return Oe(e,i)(t,void 0,t.length)}function be(t,e,i){return Ft(t,Oe(e,i))}Te(ae),Te(de),function(t,e,i,r){t.forEach(function(t){e.forEach(function(e){ge(t,e,i),ge(e,t,r)})})}(de,ae,he,le);var Me=new Array(6);function Fe(t){return Ne(t,1,0,0,1,0,0)}function Ae(t,e){var i=t[0],r=t[1],n=t[2],o=t[3],s=t[4],a=t[5],h=e[0],l=e[1],u=e[2],p=e[3],c=e[4],d=e[5];return t[0]=i*h+n*l,t[1]=r*h+o*l,t[2]=i*u+n*p,t[3]=r*u+o*p,t[4]=i*c+n*d+s,t[5]=r*c+o*d+a,t}function Ne(t,e,i,r,n,o,s){return t[0]=e,t[1]=i,t[2]=r,t[3]=n,t[4]=o,t[5]=s,t}function Ge(t,e){return t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[4]=e[4],t[5]=e[5],t}function De(t,e){var i=e[0],r=e[1];return e[0]=t[0]*i+t[2]*r+t[4],e[1]=t[1]*i+t[3]*r+t[5],e}function ke(t,e){var i=Math.cos(e),r=Math.sin(e);return Ae(t,Ne(Me,i,r,-r,i,0,0))}function je(t,e,i){return Ae(t,Ne(Me,e,0,0,i,0,0))}function Ue(t,e,i){return Ae(t,Ne(Me,1,0,0,1,e,i))}function Ye(t,e,i,r,n,o,s,a){var h=Math.sin(o),l=Math.cos(o);return t[0]=r*l,t[1]=n*h,t[2]=-r*h,t[3]=n*l,t[4]=s*r*l-a*r*h+e,t[5]=s*n*h+a*n*l+i,t}function Be(t){var e=function(t){return t[0]*t[3]-t[1]*t[2]}(t);Y(0!==e,32);var i=t[0],r=t[1],n=t[2],o=t[3],s=t[4],a=t[5];return t[0]=o/e,t[1]=-r/e,t[2]=-n/e,t[3]=i/e,t[4]=(n*a-o*s)/e,t[5]=-(i*a-r*s)/e,t}var Ve=[1,0,0,1,0,0],Xe=function(t){function e(){t.call(this),this.extent_=[1/0,1/0,-1/0,-1/0],this.extentRevision_=-1,this.simplifiedGeometryCache={},this.simplifiedGeometryMaxMinSquaredTolerance=0,this.simplifiedGeometryRevision=0}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.clone=function(){return r()},e.prototype.closestPointXY=function(t,e,i,n){return r()},e.prototype.containsXY=function(t,e){return!1},e.prototype.getClosestPoint=function(t,e){var i=e||[NaN,NaN];return this.closestPointXY(t[0],t[1],i,1/0),i},e.prototype.intersectsCoordinate=function(t){return this.containsXY(t[0],t[1])},e.prototype.computeExtent=function(t){return r()},e.prototype.getExtent=function(t){return this.extentRevision_!=this.getRevision()&&(this.extent_=this.computeExtent(this.extent_),this.extentRevision_=this.getRevision()),function(t,e){return e?(e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],e):t}(this.extent_,t)},e.prototype.rotate=function(t,e){r()},e.prototype.scale=function(t,e,i){r()},e.prototype.simplify=function(t){return this.getSimplifiedGeometry(t*t)},e.prototype.getSimplifiedGeometry=function(t){return r()},e.prototype.getType=function(){return r()},e.prototype.applyTransform=function(t){r()},e.prototype.intersectsExtent=function(t){return r()},e.prototype.translate=function(t,e){r()},e.prototype.transform=function(t,e){var i=Ee(t),r=i.getUnits()==$t.TILE_PIXELS?function(t,r,n){var o=i.getExtent(),s=i.getWorldExtent(),a=Rt(s)/Rt(o);return Ye(Ve,s[0],s[3],a,-a,0,0,0),Gt(t,0,t.length,n,Ve,r),Oe(i,e)(t,r,n)}:Oe(i,e);return this.applyTransform(r),this},e}(D);function ze(t){var e;return t==At.XY?e=2:t==At.XYZ||t==At.XYM?e=3:t==At.XYZM&&(e=4),e}var We=function(t){function e(){t.call(this),this.layout=At.XY,this.stride=2,this.flatCoordinates=null}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.computeExtent=function(t){return ct(this.flatCoordinates,0,this.flatCoordinates.length,this.stride,t)},e.prototype.getCoordinates=function(){return r()},e.prototype.getFirstCoordinate=function(){return this.flatCoordinates.slice(0,this.stride)},e.prototype.getFlatCoordinates=function(){return this.flatCoordinates},e.prototype.getLastCoordinate=function(){return this.flatCoordinates.slice(this.flatCoordinates.length-this.stride)},e.prototype.getLayout=function(){return this.layout},e.prototype.getSimplifiedGeometry=function(t){if(this.simplifiedGeometryRevision!=this.getRevision()&&(p(this.simplifiedGeometryCache),this.simplifiedGeometryMaxMinSquaredTolerance=0,this.simplifiedGeometryRevision=this.getRevision()),t<0||0!==this.simplifiedGeometryMaxMinSquaredTolerance&&t<=this.simplifiedGeometryMaxMinSquaredTolerance)return this;var e=t.toString();if(this.simplifiedGeometryCache.hasOwnProperty(e))return this.simplifiedGeometryCache[e];var i=this.getSimplifiedGeometryInternal(t);return i.getFlatCoordinates().length1)a=i;else{if(c>0){for(var d=0;dn&&(n=l),o=a,s=h}return n}function Je(t,e,i,r,n){for(var o=0,s=i.length;o0;){for(var p=l.pop(),c=l.pop(),d=0,f=t[c],_=t[c+1],g=t[p],y=t[p+1],v=c+r;vd&&(u=v,d=m)}d>n&&(h[(u-e)/r]=1,c+r0&&_>d)&&(f<0&&g0&&g>f)?(a=p,h=c):(o[s++]=a,o[s++]=h,l=a,u=h,a=p,h=c)}}return o[s++]=a,o[s++]=h,s}function ui(t,e,i,r,n,o,s,a){for(var h=0,l=i.length;ho&&(l-a)*(o-h)-(n-a)*(u-h)>0&&s++:u<=o&&(l-a)*(o-h)-(n-a)*(u-h)<0&&s--,a=l,h=u}return 0!==s}function _i(t,e,i,r,n,o){if(0===i.length)return!1;if(!fi(t,e,i[0],r,n,o))return!1;for(var s=1,a=i.length;sx&&_i(t,e,i,r,l=(u+p)/2,f)&&(m=l,x=E),u=p}return isNaN(m)&&(m=n[o]),s?(s.push(m,f,x),s):[m,f,x]}function yi(t,e,i,r,n){for(var o=[],s=0,a=i.length;s=n[0]&&o[2]<=n[2]||(o[1]>=n[1]&&o[3]<=n[3]||vi(t,e,i,r,function(t,e){return function(t,e,i){var r=!1,n=at(t,e),o=at(t,i);if(n===$.INTERSECTING||o===$.INTERSECTING)r=!0;else{var s,a,h=t[0],l=t[1],u=t[2],p=t[3],c=e[0],d=e[1],f=i[0],_=i[1],g=(_-d)/(f-c);o&$.ABOVE&&!(n&$.ABOVE)&&(r=(s=f-(_-p)/g)>=h&&s<=u),r||!(o&$.RIGHT)||n&$.RIGHT||(r=(a=_-(f-u)*g)>=l&&a<=p),r||!(o&$.BELOW)||n&$.BELOW||(r=(s=f-(_-l)/g)>=h&&s<=u),r||!(o&$.LEFT)||n&$.LEFT||(r=(a=_-(f-h)*g)>=l&&a<=p)}return r}(n,t,e)}))))}function xi(t,e,i,r,n){if(!function(t,e,i,r,n){return!!(mi(t,e,i,r,n)||fi(t,e,i,r,n[0],n[1])||fi(t,e,i,r,n[0],n[3])||fi(t,e,i,r,n[2],n[1])||fi(t,e,i,r,n[2],n[3]))}(t,e,i[0],r,n))return!1;if(1===i.length)return!0;for(var o=1,s=i.length;o0}function Ti(t,e,i,r,n){for(var o=void 0!==n&&n,s=0,a=i.length;se?r:new Array(1+e-n).join("0")+r}function Ki(t,e){for(var i=(""+t).split("."),r=(""+e).split("."),n=0;ns)return 1;if(s>o)return-1}return 0}function Hi(t,e){return t[0]+=e[0],t[1]+=e[1],t}function Zi(t,e){var i,r,n=t[0],o=t[1],s=e[0],a=e[1],h=s[0],l=s[1],u=a[0],p=a[1],c=u-h,d=p-l,f=0===c&&0===d?0:(c*(n-h)+d*(o-l))/(c*c+d*d||0);return f<=0?(i=h,r=l):f>=1?(i=u,r=p):(i=h+f*c,r=l+f*d),[i,r]}function qi(t,e,i){var r=Xt(e+180,360)-180,n=Math.abs(3600*r),o=i||0,s=Math.pow(10,o),a=Math.floor(n/3600),h=Math.floor((n-3600*a)/60),l=n-3600*a-60*h;return(l=Math.ceil(l*s)/s)>=60&&(l=0,h+=1),h>=60&&(h=0,a+=1),a+"° "+Wi(h,2)+"′ "+Wi(l,2,o)+"″"+(0==r?"":" "+t.charAt(r<0?1:0))}function Ji(t,e,i){return t?e.replace("{x}",t[0].toFixed(i)).replace("{y}",t[1].toFixed(i)):""}function Qi(t,e){for(var i=!0,r=t.length-1;r>=0;--r)if(t[r]!=e[r]){i=!1;break}return i}function $i(t,e){var i=Math.cos(e),r=Math.sin(e),n=t[0]*i-t[1]*r,o=t[1]*i+t[0]*r;return t[0]=n,t[1]=o,t}function tr(t,e){return t[0]*=e,t[1]*=e,t}function er(t,e){var i=t[0]-e[0],r=t[1]-e[1];return i*i+r*r}function ir(t,e){return Math.sqrt(er(t,e))}function rr(t,e){return er(t,Zi(t,e))}function nr(t,e){return Ji(t,"{x}, {y}",e)}function or(t,e,i,r,n,o){var s=NaN,a=NaN,h=(i-e)/r;if(1===h)s=t[e],a=t[e+1];else if(2==h)s=(1-n)*t[e]+n*t[e+r],a=(1-n)*t[e+1]+n*t[e+r+1];else if(0!==h){for(var l=t[e],u=t[e+1],p=0,c=[0],d=e+r;d>1)],e))<0?s=r+1:(a=r,h=!n);return h?s:~s}(c,g);if(y<0){var v=(g-c[-y-2])/(c[-y-1]-c[-y-2]),m=e+(-y-2)*r;s=zt(t[m],t[m+r],v),a=zt(t[m+1],t[m+r+1],v)}else s=t[e+y*r],a=t[e+y*r+1]}return o?(o[0]=s,o[1]=a,o):[s,a]}function sr(t,e,i,r,n,o){if(i==e)return null;var s;if(n>1;n0&&g.length>0;)o=g.pop(),u=f.pop(),c=_.pop(),(h=o.toString())in y||(l.push(c[0],c[1]),y[h]=!0),s=g.pop(),p=f.pop(),d=_.pop(),Ut((n=e(r=t(a=(o+s)/2)))[0],n[1],c[0],c[1],d[0],d[1])=1024){var n=0;for(var o in t)0==(3&n++)&&(delete t[o],--e)}r=function(t){var e,i,r,n,o;cr.exec(t)&&(t=function(t){var e=document.createElement("div");if(e.style.color=t,""!==e.style.color){document.body.appendChild(e);var i=getComputedStyle(e).color;return document.body.removeChild(e),i}return""}(t));if(pr.exec(t)){var s,a=t.length-1;s=a<=4?1:2;var h=4===a||8===a;e=parseInt(t.substr(1+0*s,s),16),i=parseInt(t.substr(1+1*s,s),16),r=parseInt(t.substr(1+2*s,s),16),n=h?parseInt(t.substr(1+3*s,s),16):255,1==s&&(e=(e<<4)+e,i=(i<<4)+i,r=(r<<4)+r,h&&(n=(n<<4)+n)),o=[e,i,r,n/255]}else 0==t.indexOf("rgba(")?gr(o=t.slice(5,-1).split(",").map(Number)):0==t.indexOf("rgb(")?((o=t.slice(4,-1).split(",").map(Number)).push(1),gr(o)):Y(!1,14);return o}(i),t[i]=r,++e}return r}}();function _r(t){return Array.isArray(t)?t:fr(t)}function gr(t){return t[0]=kt(t[0]+.5|0,0,255),t[1]=kt(t[1]+.5|0,0,255),t[2]=kt(t[2]+.5|0,0,255),t[3]=kt(t[3],0,1),t}function yr(t){var e=t[0];e!=(0|e)&&(e=e+.5|0);var i=t[1];i!=(0|i)&&(i=i+.5|0);var r=t[2];return r!=(0|r)&&(r=r+.5|0),"rgba("+e+","+i+","+r+","+(void 0===t[3]?1:t[3])+")"}var vr=function(t){var e=t||{};this.color_=void 0!==e.color?e.color:null,this.checksum_=void 0};vr.prototype.clone=function(){var t=this.getColor();return new vr({color:Array.isArray(t)?t.slice():t||void 0})},vr.prototype.getColor=function(){return this.color_},vr.prototype.setColor=function(t){this.color_=t,this.checksum_=void 0},vr.prototype.getChecksum=function(){if(void 0===this.checksum_){var t=this.color_;t?Array.isArray(t)||"string"==typeof t?this.checksum_="f"+dr(t):this.checksum_=o(this.color_):this.checksum_="f-"}return this.checksum_};var mr=vr,xr=function(t){var e=t||{};this.color_=void 0!==e.color?e.color:null,this.lineCap_=e.lineCap,this.lineDash_=void 0!==e.lineDash?e.lineDash:null,this.lineDashOffset_=e.lineDashOffset,this.lineJoin_=e.lineJoin,this.miterLimit_=e.miterLimit,this.width_=e.width,this.checksum_=void 0};xr.prototype.clone=function(){var t=this.getColor();return new xr({color:Array.isArray(t)?t.slice():t||void 0,lineCap:this.getLineCap(),lineDash:this.getLineDash()?this.getLineDash().slice():void 0,lineDashOffset:this.getLineDashOffset(),lineJoin:this.getLineJoin(),miterLimit:this.getMiterLimit(),width:this.getWidth()})},xr.prototype.getColor=function(){return this.color_},xr.prototype.getLineCap=function(){return this.lineCap_},xr.prototype.getLineDash=function(){return this.lineDash_},xr.prototype.getLineDashOffset=function(){return this.lineDashOffset_},xr.prototype.getLineJoin=function(){return this.lineJoin_},xr.prototype.getMiterLimit=function(){return this.miterLimit_},xr.prototype.getWidth=function(){return this.width_},xr.prototype.setColor=function(t){this.color_=t,this.checksum_=void 0},xr.prototype.setLineCap=function(t){this.lineCap_=t,this.checksum_=void 0},xr.prototype.setLineDash=function(t){this.lineDash_=t,this.checksum_=void 0},xr.prototype.setLineDashOffset=function(t){this.lineDashOffset_=t,this.checksum_=void 0},xr.prototype.setLineJoin=function(t){this.lineJoin_=t,this.checksum_=void 0},xr.prototype.setMiterLimit=function(t){this.miterLimit_=t,this.checksum_=void 0},xr.prototype.setWidth=function(t){this.width_=t,this.checksum_=void 0},xr.prototype.getChecksum=function(){return void 0===this.checksum_&&(this.checksum_="s",this.color_?"string"==typeof this.color_?this.checksum_+=this.color_:this.checksum_+=o(this.color_):this.checksum_+="-",this.checksum_+=","+(void 0!==this.lineCap_?this.lineCap_.toString():"-")+","+(this.lineDash_?this.lineDash_.toString():"-")+","+(void 0!==this.lineDashOffset_?this.lineDashOffset_:"-")+","+(void 0!==this.lineJoin_?this.lineJoin_:"-")+","+(void 0!==this.miterLimit_?this.miterLimit_.toString():"-")+","+(void 0!==this.width_?this.width_.toString():"-")),this.checksum_};var Er=xr,Sr="point",Tr="line",Cr=function(t){var e=t||{};this.font_=e.font,this.rotation_=e.rotation,this.rotateWithView_=e.rotateWithView,this.scale_=e.scale,this.text_=e.text,this.textAlign_=e.textAlign,this.textBaseline_=e.textBaseline,this.fill_=void 0!==e.fill?e.fill:new mr({color:"#333"}),this.maxAngle_=void 0!==e.maxAngle?e.maxAngle:Math.PI/4,this.placement_=void 0!==e.placement?e.placement:Sr,this.overflow_=!!e.overflow,this.stroke_=void 0!==e.stroke?e.stroke:null,this.offsetX_=void 0!==e.offsetX?e.offsetX:0,this.offsetY_=void 0!==e.offsetY?e.offsetY:0,this.backgroundFill_=e.backgroundFill?e.backgroundFill:null,this.backgroundStroke_=e.backgroundStroke?e.backgroundStroke:null,this.padding_=void 0===e.padding?null:e.padding};Cr.prototype.clone=function(){return new Cr({font:this.getFont(),placement:this.getPlacement(),maxAngle:this.getMaxAngle(),overflow:this.getOverflow(),rotation:this.getRotation(),rotateWithView:this.getRotateWithView(),scale:this.getScale(),text:this.getText(),textAlign:this.getTextAlign(),textBaseline:this.getTextBaseline(),fill:this.getFill()?this.getFill().clone():void 0,stroke:this.getStroke()?this.getStroke().clone():void 0,offsetX:this.getOffsetX(),offsetY:this.getOffsetY(),backgroundFill:this.getBackgroundFill()?this.getBackgroundFill().clone():void 0,backgroundStroke:this.getBackgroundStroke()?this.getBackgroundStroke().clone():void 0})},Cr.prototype.getOverflow=function(){return this.overflow_},Cr.prototype.getFont=function(){return this.font_},Cr.prototype.getMaxAngle=function(){return this.maxAngle_},Cr.prototype.getPlacement=function(){return this.placement_},Cr.prototype.getOffsetX=function(){return this.offsetX_},Cr.prototype.getOffsetY=function(){return this.offsetY_},Cr.prototype.getFill=function(){return this.fill_},Cr.prototype.getRotateWithView=function(){return this.rotateWithView_},Cr.prototype.getRotation=function(){return this.rotation_},Cr.prototype.getScale=function(){return this.scale_},Cr.prototype.getStroke=function(){return this.stroke_},Cr.prototype.getText=function(){return this.text_},Cr.prototype.getTextAlign=function(){return this.textAlign_},Cr.prototype.getTextBaseline=function(){return this.textBaseline_},Cr.prototype.getBackgroundFill=function(){return this.backgroundFill_},Cr.prototype.getBackgroundStroke=function(){return this.backgroundStroke_},Cr.prototype.getPadding=function(){return this.padding_},Cr.prototype.setOverflow=function(t){this.overflow_=t},Cr.prototype.setFont=function(t){this.font_=t},Cr.prototype.setMaxAngle=function(t){this.maxAngle_=t},Cr.prototype.setOffsetX=function(t){this.offsetX_=t},Cr.prototype.setOffsetY=function(t){this.offsetY_=t},Cr.prototype.setPlacement=function(t){this.placement_=t},Cr.prototype.setFill=function(t){this.fill_=t},Cr.prototype.setRotation=function(t){this.rotation_=t},Cr.prototype.setScale=function(t){this.scale_=t},Cr.prototype.setStroke=function(t){this.stroke_=t},Cr.prototype.setText=function(t){this.text_=t},Cr.prototype.setTextAlign=function(t){this.textAlign_=t},Cr.prototype.setTextBaseline=function(t){this.textBaseline_=t},Cr.prototype.setBackgroundFill=function(t){this.backgroundFill_=t},Cr.prototype.setBackgroundStroke=function(t){this.backgroundStroke_=t},Cr.prototype.setPadding=function(t){this.padding_=t};var Rr=Cr,wr=new Er({color:"rgba(0,0,0,0.2)"}),Ir=[90,45,30,20,10,5,2,1,.5,.2,.1,.05,.01,.005,.002,.001],Lr=function(t){var e=t||{};this.map_=null,this.postcomposeListenerKey_=null,this.projection_=null,this.maxLat_=1/0,this.maxLon_=1/0,this.minLat_=-1/0,this.minLon_=-1/0,this.maxLatP_=1/0,this.maxLonP_=1/0,this.minLatP_=-1/0,this.minLonP_=-1/0,this.targetSize_=void 0!==e.targetSize?e.targetSize:100,this.maxLines_=void 0!==e.maxLines?e.maxLines:100,this.meridians_=[],this.parallels_=[],this.strokeStyle_=void 0!==e.strokeStyle?e.strokeStyle:wr,this.fromLonLatTransform_=void 0,this.toLonLatTransform_=void 0,this.projectionCenterLonLat_=null,this.meridiansLabels_=null,this.parallelsLabels_=null,1==e.showLabels&&(this.lonLabelFormatter_=void 0==e.lonLabelFormatter?qi.bind(this,"EW"):e.lonLabelFormatter,this.latLabelFormatter_=void 0==e.latLabelFormatter?qi.bind(this,"NS"):e.latLabelFormatter,this.lonLabelPosition_=void 0==e.lonLabelPosition?0:e.lonLabelPosition,this.latLabelPosition_=void 0==e.latLabelPosition?1:e.latLabelPosition,this.lonLabelStyle_=void 0!==e.lonLabelStyle?e.lonLabelStyle:new Rr({font:"12px Calibri,sans-serif",textBaseline:"bottom",fill:new mr({color:"rgba(0,0,0,1)"}),stroke:new Er({color:"rgba(255,255,255,1)",width:3})}),this.latLabelStyle_=void 0!==e.latLabelStyle?e.latLabelStyle:new Rr({font:"12px Calibri,sans-serif",textAlign:"end",fill:new mr({color:"rgba(0,0,0,1)"}),stroke:new Er({color:"rgba(255,255,255,1)",width:3})}),this.meridiansLabels_=[],this.parallelsLabels_=[]),this.intervals_=void 0!==e.intervals?e.intervals:Ir,this.setMap(void 0!==e.map?e.map:null)};Lr.prototype.addMeridian_=function(t,e,i,r,n,o){var s=this.getMeridian_(t,e,i,r,o);if(Pt(s.getExtent(),n)){if(this.meridiansLabels_){var a=this.getMeridianPoint_(s,n,o);this.meridiansLabels_[o]={geom:a,text:this.lonLabelFormatter_(t)}}this.meridians_[o++]=s}return o},Lr.prototype.getMeridianPoint_=function(t,e,i){var r,n=t.getFlatCoordinates(),o=Math.max(e[1],n[1]),s=Math.min(e[3],n[n.length-1]),a=kt(e[1]+Math.abs(e[1]-e[3])*this.lonLabelPosition_,o,s),h=[n[0],a];return i in this.meridiansLabels_?(r=this.meridiansLabels_[i].geom).setCoordinates(h):r=new ci(h),r},Lr.prototype.addParallel_=function(t,e,i,r,n,o){var s=this.getParallel_(t,e,i,r,o);if(Pt(s.getExtent(),n)){if(this.parallelsLabels_){var a=this.getParallelPoint_(s,n,o);this.parallelsLabels_[o]={geom:a,text:this.latLabelFormatter_(t)}}this.parallels_[o++]=s}return o},Lr.prototype.getParallelPoint_=function(t,e,i){var r,n=t.getFlatCoordinates(),o=Math.max(e[0],n[0]),s=Math.min(e[2],n[n.length-2]),a=[kt(e[0]+Math.abs(e[0]-e[2])*this.latLabelPosition_,o,s),n[1]];return i in this.parallelsLabels_?(r=this.parallelsLabels_[i].geom).setCoordinates(a):r=new ci(a),r},Lr.prototype.createGraticule_=function(t,e,i,r){var n=this.getInterval_(i);if(-1==n)return this.meridians_.length=this.parallels_.length=0,this.meridiansLabels_&&(this.meridiansLabels_.length=0),void(this.parallelsLabels_&&(this.parallelsLabels_.length=0));var o,s,a,h,l=this.toLonLatTransform_(e),u=l[0],p=l[1],c=this.maxLines_,d=[Math.max(t[0],this.minLonP_),Math.max(t[1],this.minLatP_),Math.min(t[2],this.maxLonP_),Math.min(t[3],this.maxLatP_)],f=(d=be(d,this.projection_,"EPSG:4326"))[3],_=d[2],g=d[1],y=d[0];for(h=kt(u=Math.floor(u/n)*n,this.minLon_,this.maxLon_),s=this.addMeridian_(h,g,f,r,t,0),o=0;h!=this.minLon_&&o++0&&this.points_[i+2]>t;)i-=3;var r=this.points_[e+2]-this.points_[i+2];if(r<1e3/60)return!1;var n=this.points_[e]-this.points_[i],o=this.points_[e+1]-this.points_[i+1];return this.angle_=Math.atan2(o,n),this.initialVelocity_=Math.sqrt(n*n+o*o)/r,this.initialVelocity_>this.minVelocity_},Pr.prototype.getDistance=function(){return(this.minVelocity_-this.initialVelocity_)/this.decay_},Pr.prototype.getAngle=function(){return this.angle_};var br=Pr,Mr=function(t){function e(e,i,r){t.call(this,e),this.map=i,this.frameState=void 0!==r?r:null}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e}(P),Fr=function(t){function e(e,i,r,n,o){t.call(this,e,i,o),this.originalEvent=r,this.pixel=i.getEventPixel(r),this.coordinate=i.getCoordinateFromPixel(this.pixel),this.dragging=void 0!==n&&n}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.preventDefault=function(){t.prototype.preventDefault.call(this),this.originalEvent.preventDefault()},e.prototype.stopPropagation=function(){t.prototype.stopPropagation.call(this),this.originalEvent.stopPropagation()},e}(Mr),Ar={SINGLECLICK:"singleclick",CLICK:M.CLICK,DBLCLICK:M.DBLCLICK,POINTERDRAG:"pointerdrag",POINTERMOVE:"pointermove",POINTERDOWN:"pointerdown",POINTERUP:"pointerup",POINTEROVER:"pointerover",POINTEROUT:"pointerout",POINTERENTER:"pointerenter",POINTERLEAVE:"pointerleave",POINTERCANCEL:"pointercancel"},Nr=function(t){function e(e,i,r,n,o){t.call(this,e,i,r.originalEvent,n,o),this.pointerEvent=r}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e}(Fr),Gr={POINTERMOVE:"pointermove",POINTERDOWN:"pointerdown",POINTERUP:"pointerup",POINTEROVER:"pointerover",POINTEROUT:"pointerout",POINTERENTER:"pointerenter",POINTERLEAVE:"pointerleave",POINTERCANCEL:"pointercancel"},Dr=function(t,e){this.dispatcher=t,this.mapping_=e};Dr.prototype.getEvents=function(){return Object.keys(this.mapping_)},Dr.prototype.getHandlerForEvent=function(t){return this.mapping_[t]};var kr=Dr,jr=1,Ur="mouse";function Yr(t){if(!this.isEventSimulatedFromTouch_(t)){jr.toString()in this.pointerMap&&this.cancel(t);var e=Wr(t,this.dispatcher);this.pointerMap[jr.toString()]=t,this.dispatcher.down(e,t)}}function Br(t){if(!this.isEventSimulatedFromTouch_(t)){var e=Wr(t,this.dispatcher);this.dispatcher.move(e,t)}}function Vr(t){if(!this.isEventSimulatedFromTouch_(t)){var e=this.pointerMap[jr.toString()];if(e&&e.button===t.button){var i=Wr(t,this.dispatcher);this.dispatcher.up(i,t),this.cleanupMouse()}}}function Xr(t){if(!this.isEventSimulatedFromTouch_(t)){var e=Wr(t,this.dispatcher);this.dispatcher.enterOver(e,t)}}function zr(t){if(!this.isEventSimulatedFromTouch_(t)){var e=Wr(t,this.dispatcher);this.dispatcher.leaveOut(e,t)}}function Wr(t,e){var i=e.cloneEvent(t,t),r=i.preventDefault;return i.preventDefault=function(){t.preventDefault(),r()},i.pointerId=jr,i.isPrimary=!0,i.pointerType=Ur,i}var Kr=function(t){function e(e){var i={mousedown:Yr,mousemove:Br,mouseup:Vr,mouseover:Xr,mouseout:zr};t.call(this,e,i),this.pointerMap=e.pointerMap,this.lastTouches=[]}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.isEventSimulatedFromTouch_=function(t){for(var e=this.lastTouches,i=t.clientX,r=t.clientY,n=0,o=e.length,s=void 0;n=e.length){for(var n=[],o=0;o-1;r&&t.splice(i,1)}(e,r)},this.dedupTimeout_)}},e}(kr),Sn=[["bubbles",!1],["cancelable",!1],["view",null],["detail",null],["screenX",0],["screenY",0],["clientX",0],["clientY",0],["ctrlKey",!1],["altKey",!1],["shiftKey",!1],["metaKey",!1],["button",0],["relatedTarget",null],["buttons",0],["pointerId",0],["width",0],["height",0],["pressure",0],["tiltX",0],["tiltY",0],["pointerType",""],["hwTimestamp",0],["isPrimary",!1],["type",""],["target",null],["currentTarget",null],["which",0]],Tn=function(t){function e(e){t.call(this),this.element_=e,this.pointerMap={},this.eventMap_={},this.eventSourceList_=[],this.registerSources()}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.registerSources=function(){if(Yi)this.registerSource("native",new dn(this));else if(Bi)this.registerSource("ms",new nn(this));else{var t=new Kr(this);this.registerSource("mouse",t),Ui&&this.registerSource("touch",new En(this,t))}this.register_()},e.prototype.registerSource=function(t,e){var i=e,r=i.getEvents();r&&(r.forEach(function(t){var e=i.getHandlerForEvent(t);e&&(this.eventMap_[t]=e.bind(i))}.bind(this)),this.eventSourceList_.push(i))},e.prototype.register_=function(){for(var t=this.eventSourceList_.length,e=0;ethis.moveTolerance_||Math.abs(t.clientY-this.down_.clientY)>this.moveTolerance_},e.prototype.disposeInternal=function(){this.relayedListenerKey_&&(E(this.relayedListenerKey_),this.relayedListenerKey_=null),this.pointerdownListenerKey_&&(E(this.pointerdownListenerKey_),this.pointerdownListenerKey_=null),this.dragListenerKeys_.forEach(E),this.dragListenerKeys_.length=0,this.documentPointerEventHandler_&&(this.documentPointerEventHandler_.dispose(),this.documentPointerEventHandler_=null),this.pointerEventHandler_&&(this.pointerEventHandler_.dispose(),this.pointerEventHandler_=null),t.prototype.disposeInternal.call(this)},e}(b),Rn="postrender",wn="movestart",In="moveend",Ln={LAYERGROUP:"layergroup",SIZE:"size",TARGET:"target",VIEW:"view"},On={IDLE:0,LOADING:1,LOADED:2,ERROR:3,EMPTY:4,ABORT:5},Pn=function(t,e){this.priorityFunction_=t,this.keyFunction_=e,this.elements_=[],this.priorities_=[],this.queuedElements_={}};Pn.prototype.clear=function(){this.elements_.length=0,this.priorities_.length=0,p(this.queuedElements_)},Pn.prototype.dequeue=function(){var t=this.elements_,e=this.priorities_,i=t[0];1==t.length?(t.length=0,e.length=0):(t[0]=t.pop(),e[0]=e.pop(),this.siftUp_(0));var r=this.keyFunction_(i);return delete this.queuedElements_[r],i},Pn.prototype.enqueue=function(t){Y(!(this.keyFunction_(t)in this.queuedElements_),31);var e=this.priorityFunction_(t);return e!=1/0&&(this.elements_.push(t),this.priorities_.push(e),this.queuedElements_[this.keyFunction_(t)]=!0,this.siftDown_(0,this.elements_.length-1),!0)},Pn.prototype.getCount=function(){return this.elements_.length},Pn.prototype.getLeftChildIndex_=function(t){return 2*t+1},Pn.prototype.getRightChildIndex_=function(t){return 2*t+2},Pn.prototype.getParentIndex_=function(t){return t-1>>1},Pn.prototype.heapify_=function(){var t;for(t=(this.elements_.length>>1)-1;t>=0;t--)this.siftUp_(t)},Pn.prototype.isEmpty=function(){return 0===this.elements_.length},Pn.prototype.isKeyQueued=function(t){return t in this.queuedElements_},Pn.prototype.isQueued=function(t){return this.isKeyQueued(this.keyFunction_(t))},Pn.prototype.siftUp_=function(t){for(var e=this.elements_,i=this.priorities_,r=e.length,n=e[t],o=i[t],s=t;t>1;){var a=this.getLeftChildIndex_(t),h=this.getRightChildIndex_(t),l=ht;){var s=this.getParentIndex_(e);if(!(r[s]>o))break;i[e]=i[s],r[e]=r[s],e=s}i[e]=n,r[e]=o},Pn.prototype.reprioritize=function(){var t,e,i,r=this.priorityFunction_,n=this.elements_,o=this.priorities_,s=0,a=n.length;for(e=0;e0;)n=(r=this.dequeue()[0]).getKey(),(i=r.getState())===On.ABORT?s=!0:i!==On.IDLE||n in this.tilesLoadingKeys_||(this.tilesLoadingKeys_[n]=!0,++this.tilesLoading_,++o,r.load());0===o&&s&&this.tileChangeCallback_()},e}(bn),Fn=42,An=256;function Nn(t){return t}function Gn(t,e){return void 0!==t?0:void 0}function Dn(t,e){return void 0!==t?t+e:void 0}var kn=0,jn=1,Un="center",Yn="resolution",Bn="rotation";function Vn(t){return Math.pow(t,3)}function Xn(t){return 1-Vn(1-t)}function zn(t){return 3*t*t-2*t*t*t}function Wn(t){return t}var Kn=0;function Hn(t,e){setTimeout(function(){t(e)},0)}function Zn(t){return!(t.sourceCenter&&t.targetCenter&&!Qi(t.sourceCenter,t.targetCenter))&&(t.sourceResolution===t.targetResolution&&t.sourceRotation===t.targetRotation)}var qn=function(t){function e(e){t.call(this);var i=u({},e);this.hints_=[0,0],this.animations_=[],this.updateAnimationKey_,this.updateAnimations_=this.updateAnimations_.bind(this),this.projection_=Ce(i.projection,"EPSG:3857"),this.applyOptions_(i)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.applyOptions_=function(t){var e={};e[Un]=void 0!==t.center?t.center:null;var i=function(t){var e,i,r,n=void 0!==t.minZoom?t.minZoom:Kn,o=void 0!==t.maxZoom?t.maxZoom:28,s=void 0!==t.zoomFactor?t.zoomFactor:2;if(void 0!==t.resolutions){var a=t.resolutions;i=a[n],r=void 0!==a[o]?a[o]:a[a.length-1],e=function(t){return function(e,i,r){if(void 0!==e){var n=z(t,e,r);n=kt(n+i,0,t.length-1);var o=Math.floor(n);if(n!=o&&o1&&"function"==typeof arguments[r-1]&&(e=arguments[r-1],--r),!this.isDef()){var n=arguments[r-1];return n.center&&this.setCenter(n.center),void 0!==n.zoom&&this.setZoom(n.zoom),void 0!==n.rotation&&this.setRotation(n.rotation),void(e&&Hn(e,!0))}for(var o=Date.now(),s=this.getCenter().slice(),a=this.getResolution(),h=this.getRotation(),l=[],u=0;u0},e.prototype.getInteracting=function(){return this.hints_[jn]>0},e.prototype.cancelAnimations=function(){this.setHint(kn,-this.hints_[kn]);for(var t=0,e=this.animations_.length;t=0;--i){for(var r=this.animations_[i],n=!0,o=0,s=r.length;o0?h/a.duration:1;l>=1?(a.complete=!0,l=1):n=!1;var u=a.easing(l);if(a.sourceCenter){var p=a.sourceCenter[0],c=a.sourceCenter[1],d=p+u*(a.targetCenter[0]-p),f=c+u*(a.targetCenter[1]-c);this.set(Un,[d,f])}if(a.sourceResolution&&a.targetResolution){var _=1===u?a.targetResolution:a.sourceResolution+u*(a.targetResolution-a.sourceResolution);a.anchor&&this.set(Un,this.calculateCenterZoom(_,a.anchor)),this.set(Yn,_)}if(void 0!==a.sourceRotation&&void 0!==a.targetRotation){var g=1===u?Xt(a.targetRotation+Math.PI,2*Math.PI)-Math.PI:a.sourceRotation+u*(a.targetRotation-a.sourceRotation);a.anchor&&this.set(Un,this.calculateCenterRotate(g,a.anchor)),this.set(Bn,g)}if(e=!0,!a.complete)break}}if(n){this.animations_[i]=null,this.setHint(kn,-1);var y=r[0].callback;y&&Hn(y,!0)}}this.animations_=this.animations_.filter(Boolean),e&&void 0===this.updateAnimationKey_&&(this.updateAnimationKey_=requestAnimationFrame(this.updateAnimations_))}},e.prototype.calculateCenterRotate=function(t,e){var i,r=this.getCenter();return void 0!==r&&($i(i=[r[0]-e[0],r[1]-e[1]],t-this.getRotation()),Hi(i,e)),i},e.prototype.calculateCenterZoom=function(t,e){var i,r=this.getCenter(),n=this.getResolution();void 0!==r&&void 0!==n&&(i=[e[0]-t*(e[0]-r[0])/n,e[1]-t*(e[1]-r[1])/n]);return i},e.prototype.getSizeFromViewport_=function(){var t=[100,100],e='.ol-viewport[data-view="'+o(this)+'"]',i=document.querySelector(e);if(i){var r=getComputedStyle(i);t[0]=parseInt(r.width,10),t[1]=parseInt(r.height,10)}return t},e.prototype.constrainCenter=function(t){return this.constraints_.center(t)},e.prototype.constrainResolution=function(t,e,i){var r=e||0,n=i||0;return this.constraints_.resolution(t,r,n)},e.prototype.constrainRotation=function(t,e){var i=e||0;return this.constraints_.rotation(t,i)},e.prototype.getCenter=function(){return this.get(Un)},e.prototype.getConstraints=function(){return this.constraints_},e.prototype.getHints=function(t){return void 0!==t?(t[0]=this.hints_[0],t[1]=this.hints_[1],t):this.hints_.slice()},e.prototype.calculateExtent=function(t){var e=t||this.getSizeFromViewport_(),i=this.getCenter();Y(i,1);var r=this.getResolution();Y(void 0!==r,2);var n=this.getRotation();return Y(void 0!==n,3),Ct(i,r,n,e)},e.prototype.getMaxResolution=function(){return this.maxResolution_},e.prototype.getMinResolution=function(){return this.minResolution_},e.prototype.getMaxZoom=function(){return this.getZoomForResolution(this.minResolution_)},e.prototype.setMaxZoom=function(t){this.applyOptions_(this.getUpdatedOptions_({maxZoom:t}))},e.prototype.getMinZoom=function(){return this.getZoomForResolution(this.maxResolution_)},e.prototype.setMinZoom=function(t){this.applyOptions_(this.getUpdatedOptions_({minZoom:t}))},e.prototype.getProjection=function(){return this.projection_},e.prototype.getResolution=function(){return this.get(Yn)},e.prototype.getResolutions=function(){return this.resolutions_},e.prototype.getResolutionForExtent=function(t,e){var i=e||this.getSizeFromViewport_(),r=Ot(t)/i[0],n=Rt(t)/i[1];return Math.max(r,n)},e.prototype.getResolutionForValueFunction=function(t){var e=t||2,i=this.maxResolution_,r=this.minResolution_,n=Math.log(i/r)/Math.log(e);return function(t){return i/Math.pow(e,t*n)}},e.prototype.getRotation=function(){return this.get(Bn)},e.prototype.getValueForResolutionFunction=function(t){var e=t||2,i=this.maxResolution_,r=this.minResolution_,n=Math.log(i/r)/Math.log(e);return function(t){return Math.log(i/t)/Math.log(e)/n}},e.prototype.getState=function(t){var e=this.getCenter(),i=this.getProjection(),r=this.getResolution(),n=r/t,o=this.getRotation();return{center:[Math.round(e[0]/n)*n,Math.round(e[1]/n)*n],projection:void 0!==i?i:null,resolution:r,rotation:o,zoom:this.getZoom()}},e.prototype.getZoom=function(){var t,e=this.getResolution();return void 0!==e&&(t=this.getZoomForResolution(e)),t},e.prototype.getZoomForResolution=function(t){var e,i,r=this.minZoom_||0;if(this.resolutions_){var n=z(this.resolutions_,t,1);r=n,e=this.resolutions_[n],i=n==this.resolutions_.length-1?2:e/this.resolutions_[n+1]}else e=this.maxResolution_,i=this.zoomFactor_;return r+Math.log(e/t)/Math.log(i)},e.prototype.getResolutionForZoom=function(t){return this.constrainResolution(this.maxResolution_,t-this.minZoom_,0)},e.prototype.fit=function(t,e){var i,r=e||{},n=r.size;n||(n=this.getSizeFromViewport_()),Y(Array.isArray(t)||"function"==typeof t.getSimplifiedGeometry,24),Array.isArray(t)?(Y(!bt(t),25),i=Oi(t)):t.getType()===Nt.CIRCLE?(i=Oi(t=t.getExtent())).rotate(this.getRotation(),Tt(t)):i=t;var o,s=void 0!==r.padding?r.padding:[0,0,0,0],a=void 0===r.constrainResolution||r.constrainResolution,h=void 0!==r.nearest&&r.nearest;o=void 0!==r.minResolution?r.minResolution:void 0!==r.maxZoom?this.constrainResolution(this.maxResolution_,r.maxZoom-this.minZoom_,0):0;for(var l=i.getFlatCoordinates(),u=this.getRotation(),p=Math.cos(-u),c=Math.sin(-u),d=1/0,f=1/0,_=-1/0,g=-1/0,y=i.getStride(),v=0,m=l.length;v=0;i--){var r=e[i];if(r.getActive())if(!r.handleEvent(t))break}}},e.prototype.handlePostRender=function(){var t=this.frameState_,e=this.tileQueue_;if(!e.isEmpty()){var i=this.maxTilesLoading_,r=i;if(t){var n=t.viewHints;n[kn]&&(i=this.loadTilesWhileAnimating_?8:0,r=2),n[jn]&&(i=this.loadTilesWhileInteracting_?8:0,r=2)}e.getTilesLoading()0&&t[1]>0}(i)&&r&&r.isDef()){for(var h=r.getHints(this.frameState_?this.frameState_.viewHints:void 0),l=this.getLayerGroup().getLayerStatesArray(),u={},p=0,c=l.length;p=t.minResolution&&e0;if(this.renderedVisible_!=i&&(this.element.style.display=i?"":"none",this.renderedVisible_=i),!Z(e,this.renderedAttributions_)){to(this.ulElement_);for(var r=0,n=e.length;r0?t.animate({rotation:0,duration:this.duration_,easing:Xn}):t.setRotation(0))},e}(uo),Ro=function(t){function e(e){var i=e||{};t.call(this,{element:document.createElement("div"),target:i.target});var r=void 0!==i.className?i.className:"ol-zoom",n=void 0!==i.delta?i.delta:1,o=void 0!==i.zoomInLabel?i.zoomInLabel:"+",s=void 0!==i.zoomOutLabel?i.zoomOutLabel:"−",a=void 0!==i.zoomInTipLabel?i.zoomInTipLabel:"Zoom in",h=void 0!==i.zoomOutTipLabel?i.zoomOutTipLabel:"Zoom out",l=document.createElement("button");l.className=r+"-in",l.setAttribute("type","button"),l.title=a,l.appendChild("string"==typeof o?document.createTextNode(o):o),v(l,M.CLICK,this.handleClick_.bind(this,n));var u=document.createElement("button");u.className=r+"-out",u.setAttribute("type","button"),u.title=h,u.appendChild("string"==typeof s?document.createTextNode(s):s),v(u,M.CLICK,this.handleClick_.bind(this,-n));var p=r+" "+fo+" "+go,c=this.element;c.className=p,c.appendChild(l),c.appendChild(u),this.duration_=void 0!==i.duration?i.duration:250}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.handleClick_=function(t,e){e.preventDefault(),this.zoomByDelta_(t)},e.prototype.zoomByDelta_=function(t){var e=this.getMap().getView();if(e){var i=e.getResolution();if(i){var r=e.constrainResolution(i,t);this.duration_>0?(e.getAnimating()&&e.cancelAnimations(),e.animate({resolution:r,duration:this.duration_,easing:Xn})):e.setResolution(r)}}},e}(uo);function wo(t){var e=t||{},i=new U;return(void 0===e.zoom||e.zoom)&&i.push(new Ro(e.zoomOptions)),(void 0===e.rotate||e.rotate)&&i.push(new Co(e.rotateOptions)),(void 0===e.attribution||e.attribution)&&i.push(new So(e.attributionOptions)),i}var Io={ACTIVE:"active"};function Lo(t,e,i,r){Oo(t,e=t.constrainRotation(e,0),i,r)}function Oo(t,e,i,r){if(void 0!==e){var n=t.getRotation(),o=t.getCenter();void 0!==n&&o&&r>0?t.animate({rotation:e,anchor:i,duration:r,easing:Xn}):t.rotate(e,i)}}function Po(t,e,i,r,n){Mo(t,e=t.constrainResolution(e,0,n),i,r)}function bo(t,e,i,r){var n=t.getResolution(),o=t.constrainResolution(n,e,0);if(void 0!==o){var s=t.getResolutions();o=kt(o,t.getMinResolution()||s[s.length-1],t.getMaxResolution()||s[0])}if(i&&void 0!==o&&o!==n){var a=t.getCenter(),h=t.calculateCenterZoom(o,i);h=t.constrainCenter(h),i=[(o*a[0]-n*h[0])/(o-n),(o*a[1]-n*h[1])/(o-n)]}Mo(t,o,i,r)}function Mo(t,e,i,r){if(e){var n=t.getResolution(),o=t.getCenter();if(void 0!==n&&o&&e!==n&&r)t.animate({resolution:e,anchor:i,duration:r,easing:Xn});else{if(i){var s=t.calculateCenterZoom(e,i);t.setCenter(s)}t.setResolution(e)}}}var Fo=function(t){function e(e){t.call(this),e.handleEvent&&(this.handleEvent=e.handleEvent),this.map_=null,this.setActive(!0)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.getActive=function(){return this.get(Io.ACTIVE)},e.prototype.getMap=function(){return this.map_},e.prototype.handleEvent=function(t){return!0},e.prototype.setActive=function(t){this.set(Io.ACTIVE,t)},e.prototype.setMap=function(t){this.map_=t},e}(D);function Ao(t){var e=!1;if(t.type==Ar.DBLCLICK){var i=t.originalEvent,r=t.map,n=t.coordinate,o=i.shiftKey?-this.delta_:this.delta_;bo(r.getView(),o,n,this.duration_),t.preventDefault(),e=!0}return!e}var No=function(t){function e(e){t.call(this,{handleEvent:Ao});var i=e||{};this.delta_=i.delta?i.delta:1,this.duration_=void 0!==i.duration?i.duration:250}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e}(Fo),Go=function(t){var e=t.originalEvent;return e.altKey&&!(e.metaKey||e.ctrlKey)&&!e.shiftKey},Do=function(t){var e=t.originalEvent;return e.altKey&&!(e.metaKey||e.ctrlKey)&&e.shiftKey},ko=function(t){return t.target.getTargetElement()===document.activeElement},jo=R,Uo=function(t){var e=t.originalEvent;return 0==e.button&&!(Ni&&Gi&&e.ctrlKey)},Yo=w,Bo=function(t){return"pointermove"==t.type},Vo=function(t){return t.type==Ar.SINGLECLICK},Xo=function(t){var e=t.originalEvent;return!e.altKey&&!(e.metaKey||e.ctrlKey)&&!e.shiftKey},zo=function(t){var e=t.originalEvent;return!e.altKey&&!(e.metaKey||e.ctrlKey)&&e.shiftKey},Wo=function(t){var e=t.originalEvent.target.tagName;return"INPUT"!==e&&"SELECT"!==e&&"TEXTAREA"!==e},Ko=function(t){var e=t.pointerEvent;return Y(void 0!==e,56),"mouse"==e.pointerType},Ho=function(t){var e=t.pointerEvent;return Y(void 0!==e,56),e.isPrimary&&0===e.button};function Zo(t){for(var e=t.length,i=0,r=0,n=0;n0}}else if(t.type==Ar.POINTERDOWN){var r=this.handleDownEvent(t);r&&t.preventDefault(),this.handlingDownUpSequence=r,e=this.stopDown(r)}else t.type==Ar.POINTERMOVE&&this.handleMoveEvent(t);return!e},e.prototype.handleMoveEvent=function(t){},e.prototype.handleUpEvent=function(t){return!1},e.prototype.stopDown=function(t){return t},e.prototype.updateTrackedPointers_=function(t){if(function(t){var e=t.type;return e===Ar.POINTERDOWN||e===Ar.POINTERDRAG||e===Ar.POINTERUP}(t)){var e=t.pointerEvent,i=e.pointerId.toString();t.type==Ar.POINTERUP?delete this.trackedPointers_[i]:t.type==Ar.POINTERDOWN?this.trackedPointers_[i]=e:i in this.trackedPointers_&&(this.trackedPointers_[i]=e),this.targetPointers=c(this.trackedPointers_)}},e}(Fo),Jo=function(t){function e(e){t.call(this,{stopDown:w});var i=e||{};this.kinetic_=i.kinetic,this.lastCentroid=null,this.lastPointersCount_,this.panning_=!1,this.condition_=i.condition?i.condition:Xo,this.noKinetic_=!1}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.handleDragEvent=function(t){this.panning_||(this.panning_=!0,this.getMap().getView().setHint(jn,1));var e=this.targetPointers,i=Zo(e);if(e.length==this.lastPointersCount_){if(this.kinetic_&&this.kinetic_.update(i[0],i[1]),this.lastCentroid){var r=this.lastCentroid[0]-i[0],n=i[1]-this.lastCentroid[1],o=t.map.getView(),s=[r,n];tr(s,o.getResolution()),$i(s,o.getRotation()),Hi(s,o.getCenter()),s=o.constrainCenter(s),o.setCenter(s)}}else this.kinetic_&&this.kinetic_.begin();this.lastCentroid=i,this.lastPointersCount_=e.length},e.prototype.handleUpEvent=function(t){var e=t.map,i=e.getView();if(0===this.targetPointers.length){if(!this.noKinetic_&&this.kinetic_&&this.kinetic_.end()){var r=this.kinetic_.getDistance(),n=this.kinetic_.getAngle(),o=i.getCenter(),s=e.getPixelFromCoordinate(o),a=e.getCoordinateFromPixel([s[0]-r*Math.cos(n),s[1]-r*Math.sin(n)]);i.animate({center:i.constrainCenter(a),duration:500,easing:Xn})}return this.panning_&&(this.panning_=!1,i.setHint(jn,-1)),!1}return this.kinetic_&&this.kinetic_.begin(),this.lastCentroid=null,!0},e.prototype.handleDownEvent=function(t){if(this.targetPointers.length>0&&this.condition_(t)){var e=t.map.getView();return this.lastCentroid=null,e.getAnimating()&&e.setCenter(t.frameState.viewState.center),this.kinetic_&&this.kinetic_.begin(),this.noKinetic_=this.targetPointers.length>1,!0}return!1},e}(qo),Qo=function(t){function e(e){var i=e||{};t.call(this,{stopDown:w}),this.condition_=i.condition?i.condition:Do,this.lastAngle_=void 0,this.duration_=void 0!==i.duration?i.duration:250}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.handleDragEvent=function(t){if(Ko(t)){var e=t.map,i=e.getView();if(i.getConstraints().rotation!==Gn){var r=e.getSize(),n=t.pixel,o=Math.atan2(r[1]/2-n[1],n[0]-r[0]/2);if(void 0!==this.lastAngle_){var s=o-this.lastAngle_;Oo(i,i.getRotation()-s)}this.lastAngle_=o}}},e.prototype.handleUpEvent=function(t){if(!Ko(t))return!0;var e=t.map.getView();return e.setHint(jn,-1),Lo(e,e.getRotation(),void 0,this.duration_),!1},e.prototype.handleDownEvent=function(t){return!!Ko(t)&&(!(!Uo(t)||!this.condition_(t))&&(t.map.getView().setHint(jn,1),this.lastAngle_=void 0,!0))},e}(qo),$o=function(t){function e(e){t.call(this),this.geometry_=null,this.element_=document.createElement("div"),this.element_.style.position="absolute",this.element_.className="ol-box "+e,this.map_=null,this.startPixel_=null,this.endPixel_=null}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.disposeInternal=function(){this.setMap(null)},e.prototype.render_=function(){var t=this.startPixel_,e=this.endPixel_,i=this.element_.style;i.left=Math.min(t[0],e[0])+"px",i.top=Math.min(t[1],e[1])+"px",i.width=Math.abs(e[0]-t[0])+"px",i.height=Math.abs(e[1]-t[1])+"px"},e.prototype.setMap=function(t){if(this.map_){this.map_.getOverlayContainer().removeChild(this.element_);var e=this.element_.style;e.left=e.top=e.width=e.height="inherit"}this.map_=t,this.map_&&this.map_.getOverlayContainer().appendChild(this.element_)},e.prototype.setPixels=function(t,e){this.startPixel_=t,this.endPixel_=e,this.createOrUpdateGeometry(),this.render_()},e.prototype.createOrUpdateGeometry=function(){var t=this.startPixel_,e=this.endPixel_,i=[t,[t[0],e[1]],e,[e[0],t[1]]].map(this.map_.getCoordinateFromPixel,this.map_);i[4]=i[0].slice(),this.geometry_?this.geometry_.setCoordinates([i]):this.geometry_=new Ii([i])},e.prototype.getGeometry=function(){return this.geometry_},e}(C),ts="boxstart",es="boxdrag",is="boxend",rs=function(t){function e(e,i,r){t.call(this,e),this.coordinate=i,this.mapBrowserEvent=r}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e}(P),ns=function(t){function e(e){t.call(this);var i=e||{};this.box_=new $o(i.className||"ol-dragbox"),this.minArea_=void 0!==i.minArea?i.minArea:64,this.onBoxEnd_=i.onBoxEnd?i.onBoxEnd:I,this.startPixel_=null,this.condition_=i.condition?i.condition:jo,this.boxEndCondition_=i.boxEndCondition?i.boxEndCondition:this.defaultBoxEndCondition}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.defaultBoxEndCondition=function(t,e,i){var r=i[0]-e[0],n=i[1]-e[1];return r*r+n*n>=this.minArea_},e.prototype.getGeometry=function(){return this.box_.getGeometry()},e.prototype.handleDragEvent=function(t){Ko(t)&&(this.box_.setPixels(this.startPixel_,t.pixel),this.dispatchEvent(new rs(es,t.coordinate,t)))},e.prototype.handleUpEvent=function(t){return!Ko(t)||(this.box_.setMap(null),this.boxEndCondition_(t,this.startPixel_,t.pixel)&&(this.onBoxEnd_(t),this.dispatchEvent(new rs(is,t.coordinate,t))),!1)},e.prototype.handleDownEvent=function(t){return!!Ko(t)&&(!(!Uo(t)||!this.condition_(t))&&(this.startPixel_=t.pixel,this.box_.setMap(t.map),this.box_.setPixels(this.startPixel_,this.startPixel_),this.dispatchEvent(new rs(ts,t.coordinate,t)),!0))},e}(qo);function os(){var t=this.getMap(),e=t.getView(),i=t.getSize(),r=this.getGeometry().getExtent();if(this.out_){var n=e.calculateExtent(i),o=function(t,e){return gt(ut(e),t)}([t.getPixelFromCoordinate(Et(r)),t.getPixelFromCoordinate(Lt(r))]);Mt(n,1/e.getResolutionForExtent(o,i)),r=n}var s=e.constrainResolution(e.getResolutionForExtent(r,i)),a=Tt(r);a=e.constrainCenter(a),e.animate({resolution:s,center:a,duration:this.duration_,easing:Xn})}var ss=function(t){function e(e){var i=e||{},r=i.condition?i.condition:zo;t.call(this,{condition:r,className:i.className||"ol-dragzoom",onBoxEnd:os}),this.duration_=void 0!==i.duration?i.duration:200,this.out_=void 0!==i.out&&i.out}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e}(ns),as={LEFT:37,UP:38,RIGHT:39,DOWN:40};function hs(t){var e=!1;if(t.type==M.KEYDOWN){var i=t.originalEvent.keyCode;if(this.condition_(t)&&(i==as.DOWN||i==as.LEFT||i==as.RIGHT||i==as.UP)){var r=t.map.getView(),n=r.getResolution()*this.pixelDelta_,o=0,s=0;i==as.DOWN?s=-n:i==as.LEFT?o=-n:i==as.RIGHT?o=n:s=n;var a=[o,s];$i(a,r.getRotation()),function(t,e,i){var r=t.getCenter();if(r){var n=t.constrainCenter([r[0]+e[0],r[1]+e[1]]);i?t.animate({duration:i,easing:Wn,center:n}):t.setCenter(n)}}(r,a,this.duration_),t.preventDefault(),e=!0}}return!e}var ls=function(t){function e(e){t.call(this,{handleEvent:hs});var i=e||{};this.defaultCondition_=function(t){return Xo(t)&&Wo(t)},this.condition_=void 0!==i.condition?i.condition:this.defaultCondition_,this.duration_=void 0!==i.duration?i.duration:100,this.pixelDelta_=void 0!==i.pixelDelta?i.pixelDelta:128}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e}(Fo);function us(t){var e=!1;if(t.type==M.KEYDOWN||t.type==M.KEYPRESS){var i=t.originalEvent.charCode;if(this.condition_(t)&&(i=="+".charCodeAt(0)||i=="-".charCodeAt(0))){var r=t.map,n=i=="+".charCodeAt(0)?this.delta_:-this.delta_;bo(r.getView(),n,void 0,this.duration_),t.preventDefault(),e=!0}}return!e}var ps=function(t){function e(e){t.call(this,{handleEvent:us});var i=e||{};this.condition_=i.condition?i.condition:Wo,this.delta_=i.delta?i.delta:1,this.duration_=void 0!==i.duration?i.duration:100}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e}(Fo),cs="trackpad",ds="wheel",fs=function(t){function e(e){var i=e||{};t.call(this,i),this.delta_=0,this.duration_=void 0!==i.duration?i.duration:250,this.timeout_=void 0!==i.timeout?i.timeout:80,this.useAnchor_=void 0===i.useAnchor||i.useAnchor,this.constrainResolution_=i.constrainResolution||!1,this.condition_=i.condition?i.condition:jo,this.lastAnchor_=null,this.startTime_=void 0,this.timeoutId_,this.mode_=void 0,this.trackpadEventGap_=400,this.trackpadTimeoutId_,this.trackpadDeltaPerZoom_=300,this.trackpadZoomBuffer_=1.5}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.decrementInteractingHint_=function(){this.trackpadTimeoutId_=void 0,this.getMap().getView().setHint(jn,-1)},e.prototype.handleEvent=function(t){if(!this.condition_(t))return!0;var e=t.type;if(e!==M.WHEEL&&e!==M.MOUSEWHEEL)return!0;t.preventDefault();var i,r=t.map,n=t.originalEvent;if(this.useAnchor_&&(this.lastAnchor_=t.coordinate),t.type==M.WHEEL?(i=n.deltaY,Fi&&n.deltaMode===WheelEvent.DOM_DELTA_PIXEL&&(i/=Di),n.deltaMode===WheelEvent.DOM_DELTA_LINE&&(i*=40)):t.type==M.MOUSEWHEEL&&(i=-n.wheelDeltaY,Ai&&(i/=3)),0===i)return!1;var o=Date.now();if(void 0===this.startTime_&&(this.startTime_=o),(!this.mode_||o-this.startTime_>this.trackpadEventGap_)&&(this.mode_=Math.abs(i)<4?cs:ds),this.mode_===cs){var s=r.getView();this.trackpadTimeoutId_?clearTimeout(this.trackpadTimeoutId_):s.setHint(jn,1),this.trackpadTimeoutId_=setTimeout(this.decrementInteractingHint_.bind(this),this.trackpadEventGap_);var a=s.getResolution()*Math.pow(2,i/this.trackpadDeltaPerZoom_),h=s.getMinResolution(),l=s.getMaxResolution(),u=0;if(al&&(a=Math.min(a,l*this.trackpadZoomBuffer_),u=-1),this.lastAnchor_){var p=s.calculateCenterZoom(a,this.lastAnchor_);s.setCenter(s.constrainCenter(p))}return s.setResolution(a),0===u&&this.constrainResolution_&&s.animate({resolution:s.constrainResolution(a,i>0?-1:1),easing:Xn,anchor:this.lastAnchor_,duration:this.duration_}),u>0?s.animate({resolution:h,easing:Xn,anchor:this.lastAnchor_,duration:500}):u<0&&s.animate({resolution:l,easing:Xn,anchor:this.lastAnchor_,duration:500}),this.startTime_=o,!1}this.delta_+=i;var c=Math.max(this.timeout_-(o-this.startTime_),0);return clearTimeout(this.timeoutId_),this.timeoutId_=setTimeout(this.handleWheelZoom_.bind(this,r),c),!1},e.prototype.handleWheelZoom_=function(t){var e=t.getView();e.getAnimating()&&e.cancelAnimations();bo(e,-kt(this.delta_,-1,1),this.lastAnchor_,this.duration_),this.mode_=void 0,this.delta_=0,this.lastAnchor_=null,this.startTime_=void 0,this.timeoutId_=void 0},e.prototype.setMouseAnchor=function(t){this.useAnchor_=t,t||(this.lastAnchor_=null)},e}(Fo),_s=function(t){function e(e){var i=e||{},r=i;r.stopDown||(r.stopDown=w),t.call(this,r),this.anchor_=null,this.lastAngle_=void 0,this.rotating_=!1,this.rotationDelta_=0,this.threshold_=void 0!==i.threshold?i.threshold:.3,this.duration_=void 0!==i.duration?i.duration:250}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.handleDragEvent=function(t){var e=0,i=this.targetPointers[0],r=this.targetPointers[1],n=Math.atan2(r.clientY-i.clientY,r.clientX-i.clientX);if(void 0!==this.lastAngle_){var o=n-this.lastAngle_;this.rotationDelta_+=o,!this.rotating_&&Math.abs(this.rotationDelta_)>this.threshold_&&(this.rotating_=!0),e=o}this.lastAngle_=n;var s=t.map,a=s.getView();if(a.getConstraints().rotation!==Gn){var h=s.getViewport().getBoundingClientRect(),l=Zo(this.targetPointers);if(l[0]-=h.left,l[1]-=h.top,this.anchor_=s.getCoordinateFromPixel(l),this.rotating_){var u=a.getRotation();s.render(),Oo(a,u+e,this.anchor_)}}},e.prototype.handleUpEvent=function(t){if(this.targetPointers.length<2){var e=t.map.getView();if(e.setHint(jn,-1),this.rotating_)Lo(e,e.getRotation(),this.anchor_,this.duration_);return!1}return!0},e.prototype.handleDownEvent=function(t){if(this.targetPointers.length>=2){var e=t.map;return this.anchor_=null,this.lastAngle_=void 0,this.rotating_=!1,this.rotationDelta_=0,this.handlingDownUpSequence||e.getView().setHint(jn,1),!0}return!1},e}(qo),gs=function(t){function e(e){var i=e||{},r=i;r.stopDown||(r.stopDown=w),t.call(this,r),this.constrainResolution_=i.constrainResolution||!1,this.anchor_=null,this.duration_=void 0!==i.duration?i.duration:400,this.lastDistance_=void 0,this.lastScaleDelta_=1}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.handleDragEvent=function(t){var e=1,i=this.targetPointers[0],r=this.targetPointers[1],n=i.clientX-r.clientX,o=i.clientY-r.clientY,s=Math.sqrt(n*n+o*o);void 0!==this.lastDistance_&&(e=this.lastDistance_/s),this.lastDistance_=s;var a=t.map,h=a.getView(),l=h.getResolution(),u=h.getMaxResolution(),p=h.getMinResolution(),c=l*e;c>u?(e=u/l,c=u):ce.getMaxResolution()){var r=this.lastScaleDelta_-1;Po(e,i,this.anchor_,this.duration_,r)}return!1}return!0},e.prototype.handleDownEvent=function(t){if(this.targetPointers.length>=2){var e=t.map;return this.anchor_=null,this.lastDistance_=void 0,this.lastScaleDelta_=1,this.handlingDownUpSequence||e.getView().setHint(jn,1),!0}return!1},e}(qo);function ys(t){var e=t||{},i=new U,r=new br(-.005,.05,100);return(void 0===e.altShiftDragRotate||e.altShiftDragRotate)&&i.push(new Qo),(void 0===e.doubleClickZoom||e.doubleClickZoom)&&i.push(new No({delta:e.zoomDelta,duration:e.zoomDuration})),(void 0===e.dragPan||e.dragPan)&&i.push(new Jo({condition:e.onFocusOnly?ko:void 0,kinetic:r})),(void 0===e.pinchRotate||e.pinchRotate)&&i.push(new _s),(void 0===e.pinchZoom||e.pinchZoom)&&i.push(new gs({constrainResolution:e.constrainResolution,duration:e.zoomDuration})),(void 0===e.keyboard||e.keyboard)&&(i.push(new ls),i.push(new ps({delta:e.zoomDelta,duration:e.zoomDuration}))),(void 0===e.mouseWheelZoom||e.mouseWheelZoom)&&i.push(new fs({condition:e.onFocusOnly?ko:void 0,constrainResolution:e.constrainResolution,duration:e.zoomDuration})),(void 0===e.shiftDragZoom||e.shiftDragZoom)&&i.push(new ss({duration:e.zoomDuration})),i}var vs=.5,ms=function(t){function e(e,i,r,n){t.call(this),this.extent=e,this.pixelRatio_=r,this.resolution=i,this.state=n}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.changed=function(){this.dispatchEvent(M.CHANGE)},e.prototype.getExtent=function(){return this.extent},e.prototype.getImage=function(){return r()},e.prototype.getPixelRatio=function(){return this.pixelRatio_},e.prototype.getResolution=function(){return this.resolution},e.prototype.getState=function(){return this.state},e.prototype.load=function(){r()},e}(b),xs={IDLE:0,LOADING:1,LOADED:2,ERROR:3},Es=function(t){function e(e,i,r,n,o){var s=void 0!==o?xs.IDLE:xs.LOADED;t.call(this,e,i,r,s),this.loader_=void 0!==o?o:null,this.canvas_=n,this.error_=null}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.getError=function(){return this.error_},e.prototype.handleLoad_=function(t){t?(this.error_=t,this.state=xs.ERROR):this.state=xs.LOADED,this.changed()},e.prototype.load=function(){this.state==xs.IDLE&&(this.state=xs.LOADING,this.changed(),this.loader_(this.handleLoad_.bind(this)))},e.prototype.getImage=function(){return this.canvas_},e}(ms),Ss={IMAGE:"IMAGE",TILE:"TILE",VECTOR_TILE:"VECTOR_TILE",VECTOR:"VECTOR"},Ts={IMAGE:"image",VECTOR:"vector"},Cs=function(t){function e(e,i,r,n,o){t.call(this,e),this.vectorContext=i,this.frameState=r,this.context=n,this.glContext=o}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e}(P),Rs=function(t){function e(e){t.call(this),this.highWaterMark=void 0!==e?e:2048,this.count_=0,this.entries_={},this.oldest_=null,this.newest_=null}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.canExpireCache=function(){return this.getCount()>this.highWaterMark},e.prototype.clear=function(){this.count_=0,this.entries_={},this.oldest_=null,this.newest_=null,this.dispatchEvent(M.CLEAR)},e.prototype.containsKey=function(t){return this.entries_.hasOwnProperty(t)},e.prototype.forEach=function(t,e){for(var i=this.oldest_;i;)t.call(e,i.value_,i.key_,this),i=i.newer},e.prototype.get=function(t){var e=this.entries_[t];return Y(void 0!==e,15),e===this.newest_?e.value_:(e===this.oldest_?(this.oldest_=this.oldest_.newer,this.oldest_.older=null):(e.newer.older=e.older,e.older.newer=e.newer),e.newer=null,e.older=this.newest_,this.newest_.newer=e,this.newest_=e,e.value_)},e.prototype.remove=function(t){var e=this.entries_[t];return Y(void 0!==e,15),e===this.newest_?(this.newest_=e.older,this.newest_&&(this.newest_.newer=null)):e===this.oldest_?(this.oldest_=e.newer,this.oldest_&&(this.oldest_.older=null)):(e.newer.older=e.older,e.older.newer=e.newer),delete this.entries_[t],--this.count_,e.value_},e.prototype.getCount=function(){return this.count_},e.prototype.getKeys=function(){var t,e=new Array(this.count_),i=0;for(t=this.newest_;t;t=t.older)e[i++]=t.key_;return e},e.prototype.getValues=function(){var t,e=new Array(this.count_),i=0;for(t=this.newest_;t;t=t.older)e[i++]=t.value_;return e},e.prototype.peekLast=function(){return this.oldest_.value_},e.prototype.peekLastKey=function(){return this.oldest_.key_},e.prototype.peekFirstKey=function(){return this.newest_.key_},e.prototype.pop=function(){var t=this.oldest_;return delete this.entries_[t.key_],t.newer&&(t.newer.older=null),this.oldest_=t.newer,this.oldest_||(this.newest_=null),--this.count_,t.value_},e.prototype.replace=function(t,e){this.get(t),this.entries_[t].value_=e},e.prototype.set=function(t,e){Y(!(t in this.entries_),16);var i={key_:t,newer:null,older:this.newest_,value_:e};this.newest_?this.newest_.newer=i:this.oldest_=i,this.newest_=i,this.entries_[t]=i,++this.count_},e.prototype.setSize=function(t){this.highWaterMark=t},e.prototype.prune=function(){for(;this.canExpireCache();)this.pop()},e}(b),ws=[0,0,0,1],Is=[],Ls=[0,0,0,1],Os=[0,0,0,0],Ps=new Rs,bs={},Ms=null,Fs={},As=function(){var t,e,i=60,r=bs,n="32px ",o=["monospace","serif"],s=o.length,a="wmytzilWMYTZIL@#/&?$%10";function h(t){for(var i=Ns(),r=100;r<=700;r+=300){for(var h=r+" ",l=!0,u=0;uthis.maxCacheSize_){var t=0;for(var e in this.cache_){var i=this.cache_[e];0!=(3&t++)||i.hasListener()||(delete this.cache_[e],--this.cacheSize_)}}},zs.prototype.get=function(t,e,i){var r=Ws(t,e,i);return r in this.cache_?this.cache_[r]:null},zs.prototype.set=function(t,e,i,r){var n=Ws(t,e,i);this.cache_[n]=r,++this.cacheSize_},zs.prototype.setSize=function(t){this.maxCacheSize_=t,this.expire()};var Ks=new zs;function Hs(t,e){Ks.expire()}function Zs(t,e){return t.zIndex-e.zIndex}var qs=function(t){function e(e){t.call(this),this.map_=e,this.layerRenderers_={},this.layerRendererListeners_={},this.layerRendererConstructors_=[]}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.dispatchRenderEvent=function(t,e){r()},e.prototype.registerLayerRenderers=function(t){this.layerRendererConstructors_.push.apply(this.layerRendererConstructors_,t)},e.prototype.calculateMatrices2D=function(t){var e=t.viewState,i=t.coordinateToPixelTransform,r=t.pixelToCoordinateTransform;Ye(i,t.size[0]/2,t.size[1]/2,1/e.resolution,-1/e.resolution,-e.rotation,-e.center[0],-e.center[1]),Be(Ge(r,i))},e.prototype.removeLayerRenderers=function(){for(var t in this.layerRenderers_)this.removeLayerRendererByKey_(t).dispose()},e.prototype.forEachFeatureAtCoordinate=function(t,e,i,r,n,s,a){var h,l=e.viewState,u=l.resolution;function p(t,i){var s=e.layerStates[o(i)].managed;if(!(o(t)in e.skippedFeatureUids)||s)return r.call(n,t,s?i:null)}var c=l.projection,d=t;if(c.canWrapX()){var f=c.getExtent(),_=Ot(f),g=t[0];if(gf[2])d=[g+_*Math.ceil((f[0]-g)/_),t[1]]}var y,v=e.layerStatesArray;for(y=v.length-1;y>=0;--y){var m=v[y],x=m.layer;if(mo(m,u)&&s.call(a,x)){var E=this.getLayerRenderer(x),S=x.getSource();if(S&&(h=E.forEachFeatureAtCoordinate(S.getWrapX()?d:t,e,i,p)),h)return h}}},e.prototype.forEachLayerAtPixel=function(t,e,i,n,o,s,a){return r()},e.prototype.hasFeatureAtCoordinate=function(t,e,i,r,n){return void 0!==this.forEachFeatureAtCoordinate(t,e,i,R,this,r,n)},e.prototype.getLayerRenderer=function(t){var e=o(t);if(e in this.layerRenderers_)return this.layerRenderers_[e];for(var i,r=0,n=this.layerRendererConstructors_.length;r=0;--h){var d=u[h],f=d.layer;if(mo(d,l)&&o.call(s,f))if(a=this.getLayerRenderer(f).forEachLayerAtCoordinate(c,e,i,r,n))return a}},e.prototype.registerLayerRenderers=function(e){t.prototype.registerLayerRenderers.call(this,e);for(var i=0,r=e.length;i=.5&&p>=.5&&i.drawImage(r,0,0,+r.width,+r.height,Math.round(h),Math.round(l),Math.round(u),Math.round(p)),i.globalAlpha=a,o&&i.restore()}this.postCompose(i,t,e)},e.prototype.getImage=function(){return r()},e.prototype.getImageTransform=function(){return r()},e.prototype.forEachLayerAtCoordinate=function(t,e,i,r,n){if(this.getImage()){var o=De(this.coordinateToCanvasPixelTransform,t.slice());tr(o,e.viewState.resolution/this.renderedResolution),this.hitCanvasContext_||(this.hitCanvasContext_=Jn(1,1)),this.hitCanvasContext_.clearRect(0,0,1,1),this.hitCanvasContext_.drawImage(this.getImage(),o[0],o[1],1,1,0,0,1,1);var s=this.hitCanvasContext_.getImageData(0,0,1,1).data;return s[3]>0?r.call(n,this.getLayer(),s):void 0}},e}(ta),ia=function(t){function e(i){if(t.call(this,i),this.image_=null,this.imageTransform_=[1,0,0,1,0,0],this.skippedFeatures_=[],this.vectorRenderer_=null,i.getType()===Ss.VECTOR)for(var r=0,n=Js.length;rthis.maxX&&(this.maxX=t.maxX),t.minYthis.maxY&&(this.maxY=t.maxY)},na.prototype.getHeight=function(){return this.maxY-this.minY+1},na.prototype.getSize=function(){return[this.getWidth(),this.getHeight()]},na.prototype.getWidth=function(){return this.maxX-this.minX+1},na.prototype.intersects=function(t){return this.minX<=t.maxX&&this.maxX>=t.minX&&this.minY<=t.maxY&&this.maxY>=t.minY};var sa=na,aa=function(t){function e(e,i){t.call(this,e),this.context=i?null:Jn(),this.oversampling_,this.renderedExtent_=null,this.renderedRevision,this.renderedTiles=[],this.newTiles_=!1,this.tmpExtent=[1/0,1/0,-1/0,-1/0],this.tmpTileRange_=new sa(0,0,0,0),this.imageTransform_=[1,0,0,1,0,0],this.zDirection=0}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.isDrawableTile_=function(t){var e=this.getLayer(),i=t.getState(),r=e.getUseInterimTilesOnError();return i==On.LOADED||i==On.EMPTY||i==On.ERROR&&!r},e.prototype.getTile=function(t,e,i,r,n){var o=this.getLayer(),s=o.getSource().getTile(t,e,i,r,n);return s.getState()==On.ERROR&&(o.getUseInterimTilesOnError()?o.getPreload()>0&&(this.newTiles_=!0):s.setState(On.LOADED)),this.isDrawableTile_(s)||(s=s.getInterimTile()),s},e.prototype.prepareFrame=function(t,e){var i=t.pixelRatio,r=t.size,n=t.viewState,s=n.projection,a=n.resolution,h=n.center,l=this.getLayer(),u=l.getSource(),p=u.getRevision(),c=u.getTileGridForProjection(s),d=c.getZForResolution(a,this.zDirection),f=c.getResolution(d),_=Math.round(a/f)||1,g=t.extent;if(void 0!==e.extent&&(g=wt(g,e.extent)),bt(g))return!1;var y=c.getTileRangeForExtentAndZ(g,d),v=c.getTileRangeExtent(d,y),m=u.getTilePixelRatio(i),x={};x[d]={};var E,S,T,C=this.createLoadedTileFinder(u,s,x),R=t.viewHints,w=R[kn]||R[jn],I=this.tmpExtent,L=this.tmpTileRange_;for(this.newTiles_=!1,S=y.minX;S<=y.maxX;++S)for(T=y.minY;T<=y.maxY;++T)if(!(Date.now()-t.time>16&&w)){if(E=this.getTile(d,S,T,i,s),this.isDrawableTile_(E)){var O=o(this);if(E.getState()==On.LOADED){x[d][E.tileCoord.toString()]=E;var P=E.inTransition(O);this.newTiles_||!P&&-1!==this.renderedTiles.indexOf(E)||(this.newTiles_=!0)}if(1===E.getAlpha(O,t.time))continue}var b=c.getTileCoordChildTileRange(E.tileCoord,L,I),M=!1;b&&(M=C(d+1,b)),M||c.forEachTileCoordParentTileRange(E.tileCoord,C,null,L,I)}var F=f*i/m*_;if(!(this.renderedResolution&&Date.now()-t.time>16&&w)&&(this.newTiles_||!this.renderedExtent_||!ot(this.renderedExtent_,g)||this.renderedRevision!=p||_!=this.oversampling_||!w&&F!=this.renderedResolution)){var A=this.context;if(A){var N=u.getTilePixelSize(d,i,s),G=Math.round(y.getWidth()*N[0]/_),D=Math.round(y.getHeight()*N[1]/_),k=A.canvas;k.width!=G||k.height!=D?(this.oversampling_=_,k.width=G,k.height=D):(this.renderedExtent_&&!dt(v,this.renderedExtent_)&&A.clearRect(0,0,G,D),_=this.oversampling_)}this.renderedTiles.length=0;var j,U,Y,B,V,X,z,W,K,H,Z=Object.keys(x).map(Number);for(Z.sort(function(t,e){return t===d?1:e===d?-1:t>e?1:t0},e.prototype.drawTileImage=function(t,e,i,r,n,s,a,h,l){var u=this.getTileImage(t);if(u){var p=o(this),c=l?t.getAlpha(p,e.time):1,d=this.getLayer().getSource();1!==c||d.getOpaque(e.viewState.projection)||this.context.clearRect(r,n,s,a);var f=c!==this.context.globalAlpha;f&&(this.context.save(),this.context.globalAlpha=c),this.context.drawImage(u,h,h,u.width-2*h,u.height-2*h,r,n,s,a),f&&this.context.restore(),1!==c?e.animate=!0:l&&t.endTransition(p)}},e.prototype.getImage=function(){var t=this.context;return t?t.canvas:null},e.prototype.getImageTransform=function(){return this.imageTransform_},e.prototype.getTileImage=function(t){return t.getImage()},e}(ea);aa.handles=function(t){return t.getType()===Ss.TILE},aa.create=function(t,e){return new aa(e)},aa.prototype.getLayer;var ha=aa,la=i(0),ua=i.n(la),pa=function(){};pa.prototype.getReplay=function(t,e){return r()},pa.prototype.isEmpty=function(){return r()},pa.prototype.addDeclutter=function(t){return r()};var ca=pa,da={CIRCLE:"Circle",DEFAULT:"Default",IMAGE:"Image",LINE_STRING:"LineString",POLYGON:"Polygon",TEXT:"Text"};function fa(t,e,i,r,n,o,s,a){for(var h,l,u,p=[],c=t[e]>t[i-r],d=n.length,f=t[e],_=t[e+1],g=t[e+=r],y=t[e+1],v=0,m=Math.sqrt(Math.pow(g-f,2)+Math.pow(y-_,2)),x="",E=0,S=0;S0?-Math.PI:Math.PI),void 0!==u){var L=I-u;if(L+=L>Math.PI?-2*Math.PI:L<-Math.PI?2*Math.PI:0,Math.abs(L)>a)return null}var O=w/m,P=zt(f,g,O),b=zt(_,y,O);u==I?(c&&(h[0]=P,h[1]=b,h[2]=C/2),h[4]=x):(E=C,h=[P,b,C/2,I,x=T],c?p.unshift(h):p.push(h),u=I),s+=C}return p}var _a={BEGIN_GEOMETRY:0,BEGIN_PATH:1,CIRCLE:2,CLOSE_PATH:3,CUSTOM:4,DRAW_CHARS:5,DRAW_IMAGE:6,END_GEOMETRY:7,FILL:8,MOVE_TO_LINE_TO:9,SET_FILL_STYLE:10,SET_STROKE_STYLE:11,STROKE:12},ga=[_a.FILL],ya=[_a.STROKE],va=[_a.BEGIN_PATH],ma=[_a.CLOSE_PATH],xa=_a,Ea=[da.POLYGON,da.CIRCLE,da.LINE_STRING,da.IMAGE,da.TEXT,da.DEFAULT],Sa={left:0,end:0,center:.5,right:1,start:1,top:0,middle:.5,hanging:.2,alphabetic:.8,ideographic:.8,bottom:1},Ta=[1/0,1/0,-1/0,-1/0],Ca=[1,0,0,1,0,0],Ra=function(t){function e(e,i,r,n,o,s){t.call(this),this.declutterTree=s,this.tolerance=e,this.maxExtent=i,this.overlaps=o,this.pixelRatio=n,this.maxLineWidth=0,this.resolution=r,this.alignFill_,this.beginGeometryInstruction1_=null,this.beginGeometryInstruction2_=null,this.bufferedMaxExtent_=null,this.instructions=[],this.coordinates=[],this.coordinateCache_={},this.renderedTransform_=[1,0,0,1,0,0],this.hitDetectionInstructions=[],this.pixelCoordinates_=null,this.state={},this.viewRotation_=0}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.replayTextBackground_=function(t,e,i,r,n,o,s){t.beginPath(),t.moveTo.apply(t,e),t.lineTo.apply(t,i),t.lineTo.apply(t,r),t.lineTo.apply(t,n),t.lineTo.apply(t,e),o&&(this.alignFill_=o[2],this.fill_(t)),s&&(this.setStrokeStyle_(t,s),t.stroke())},e.prototype.replayImage_=function(t,e,i,r,n,o,s,a,h,l,u,p,c,d,f,_,g,y){var v=g||y;e-=n*=c,i-=o*=c;var m,x,E,S,T=f+l>r.width?r.width-l:f,C=a+u>r.height?r.height-u:a,R=_[3]+T*c+_[1],w=_[0]+C*c+_[2],I=e-_[3],L=i-_[0];(v||0!==p)&&(m=[I,L],x=[I+R,L],E=[I+R,L+w],S=[I,L+w]);var O=null;if(0!==p){var P=e+n,b=i+o;O=Ye(Ca,P,b,1,1,p,-P,-b),ut(Ta),_t(Ta,De(Ca,m)),_t(Ta,De(Ca,x)),_t(Ta,De(Ca,E)),_t(Ta,De(Ca,S))}else lt(I,L,I+R,L+w,Ta);var M=t.canvas,F=y?y[2]*c/2:0,A=Ta[0]-F<=M.width&&Ta[2]+F>=0&&Ta[1]-F<=M.height&&Ta[3]+F>=0;if(d&&(e=Math.round(e),i=Math.round(i)),s){if(!A&&1==s[4])return;ft(s,Ta);var N=A?[t,O?O.slice(0):null,h,r,l,u,T,C,e,i,c]:null;N&&v&&N.push(g,y,m,x,E,S),s.push(N)}else A&&(v&&this.replayTextBackground_(t,m,x,E,S,g,y),Us(t,O,h,r,l,u,T,C,e,i,c))},e.prototype.applyPixelRatio=function(t){var e=this.pixelRatio;return 1==e?t:t.map(function(t){return t*e})},e.prototype.appendFlatCoordinates=function(t,e,i,r,n,o){var s=this.coordinates.length,a=this.getBufferedMaxExtent();o&&(e+=r);var h,l,u,p=[t[e],t[e+1]],c=[NaN,NaN],d=!0;for(h=e+r;h5){var i=t[4];if(1==i||i==t.length-5){var r={minX:t[0],minY:t[1],maxX:t[2],maxY:t[3],value:e};if(!this.declutterTree.collides(r)){this.declutterTree.insert(r);for(var n=5,o=t.length;n11&&this.replayTextBackground_(s[0],s[13],s[14],s[15],s[16],s[11],s[12]),Us.apply(void 0,s))}}t.length=5,ut(t)}}},e.prototype.replay_=function(t,e,i,r,n,s,a){var h;this.pixelCoordinates_&&Z(e,this.renderedTransform_)?h=this.pixelCoordinates_:(this.pixelCoordinates_||(this.pixelCoordinates_=[]),h=Gt(this.coordinates,0,this.coordinates.length,2,e,this.pixelCoordinates_),Ge(this.renderedTransform_,e));for(var l,u,p,c,f,_,g,y,v,m,x,E,S=!d(i),T=0,C=r.length,R=0,w=0,I=0,L=null,O=null,P=this.coordinateCache_,b=this.viewRotation_,M={context:t,pixelRatio:this.pixelRatio,resolution:this.resolution,rotation:b},F=this.instructions!=r||this.overlaps?0:200;TF&&(this.fill_(t),w=0),I>F&&(t.stroke(),I=0),w||I||(t.beginPath(),c=f=NaN),++T;break;case xa.CIRCLE:var N=h[R=A[1]],G=h[R+1],D=h[R+2]-N,k=h[R+3]-G,j=Math.sqrt(D*D+k*k);t.moveTo(N+j,G),t.arc(N,G,j,0,2*Math.PI,!0),++T;break;case xa.CLOSE_PATH:t.closePath(),++T;break;case xa.CUSTOM:R=A[1],l=A[2];var U=A[3],Y=A[4],B=6==A.length?A[5]:void 0;M.geometry=U,M.feature=m,T in P||(P[T]=[]);var V=P[T];B?B(h,R,l,2,V):(V[0]=h[R],V[1]=h[R+1],V.length=2),Y(V,M),++T;break;case xa.DRAW_IMAGE:R=A[1],l=A[2],v=A[3],u=A[4],p=A[5],y=s?null:A[6];var X=A[7],z=A[8],W=A[9],K=A[10],H=A[11],q=A[12],J=A[13],Q=A[14],$=void 0,tt=void 0,et=void 0;for(A.length>16?($=A[15],tt=A[16],et=A[17]):($=Os,tt=et=!1),H&&(q+=b);Rthis.maxLineWidth&&(this.maxLineWidth=i.lineWidth,this.bufferedMaxExtent_=null)}else i.strokeStyle=void 0,i.lineCap=void 0,i.lineDash=null,i.lineDashOffset=void 0,i.lineJoin=void 0,i.lineWidth=void 0,i.miterLimit=void 0},e.prototype.createFill=function(t,e){var i=t.fillStyle,r=[xa.SET_FILL_STYLE,i];return"string"!=typeof i&&r.push(!0),r},e.prototype.applyStroke=function(t){this.instructions.push(this.createStroke(t))},e.prototype.createStroke=function(t){return[xa.SET_STROKE_STYLE,t.strokeStyle,t.lineWidth*this.pixelRatio,t.lineCap,t.lineJoin,t.miterLimit,this.applyPixelRatio(t.lineDash),t.lineDashOffset*this.pixelRatio]},e.prototype.updateFillStyle=function(t,e,i){var r=t.fillStyle;"string"==typeof r&&t.currentFillStyle==r||(void 0!==r&&this.instructions.push(e.call(this,t,i)),t.currentFillStyle=r)},e.prototype.updateStrokeStyle=function(t,e){var i=t.strokeStyle,r=t.lineCap,n=t.lineDash,o=t.lineDashOffset,s=t.lineJoin,a=t.lineWidth,h=t.miterLimit;(t.currentStrokeStyle!=i||t.currentLineCap!=r||n!=t.currentLineDash&&!Z(t.currentLineDash,n)||t.currentLineDashOffset!=o||t.currentLineJoin!=s||t.currentLineWidth!=a||t.currentMiterLimit!=h)&&(void 0!==i&&e.call(this,t),t.currentStrokeStyle=i,t.currentLineCap=r,t.currentLineDash=n,t.currentLineDashOffset=o,t.currentLineJoin=s,t.currentLineWidth=a,t.currentMiterLimit=h)},e.prototype.endGeometry=function(t,e){this.beginGeometryInstruction1_[2]=this.instructions.length,this.beginGeometryInstruction1_=null,this.beginGeometryInstruction2_[2]=this.hitDetectionInstructions.length,this.beginGeometryInstruction2_=null;var i=[xa.END_GEOMETRY,e];this.instructions.push(i),this.hitDetectionInstructions.push(i)},e.prototype.getBufferedMaxExtent=function(){if(!this.bufferedMaxExtent_&&(this.bufferedMaxExtent_=it(this.maxExtent),this.maxLineWidth>0)){var t=this.resolution*(this.maxLineWidth+1)/2;et(this.bufferedMaxExtent_,t,this.bufferedMaxExtent_)}return this.bufferedMaxExtent_},e}(Vs),wa=function(t){function e(e,i,r,n,o,s){t.call(this,e,i,r,n,o,s),this.declutterGroup_=null,this.hitDetectionImage_=null,this.image_=null,this.anchorX_=void 0,this.anchorY_=void 0,this.height_=void 0,this.opacity_=void 0,this.originX_=void 0,this.originY_=void 0,this.rotateWithView_=void 0,this.rotation_=void 0,this.scale_=void 0,this.width_=void 0}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.drawCoordinates_=function(t,e,i,r){return this.appendFlatCoordinates(t,e,i,r,!1,!1)},e.prototype.drawPoint=function(t,e){if(this.image_){this.beginGeometry(t,e);var i=t.getFlatCoordinates(),r=t.getStride(),n=this.coordinates.length,o=this.drawCoordinates_(i,0,i.length,r);this.instructions.push([xa.DRAW_IMAGE,n,o,this.image_,this.anchorX_,this.anchorY_,this.declutterGroup_,this.height_,this.opacity_,this.originX_,this.originY_,this.rotateWithView_,this.rotation_,this.scale_*this.pixelRatio,this.width_]),this.hitDetectionInstructions.push([xa.DRAW_IMAGE,n,o,this.hitDetectionImage_,this.anchorX_,this.anchorY_,this.declutterGroup_,this.height_,this.opacity_,this.originX_,this.originY_,this.rotateWithView_,this.rotation_,this.scale_,this.width_]),this.endGeometry(t,e)}},e.prototype.drawMultiPoint=function(t,e){if(this.image_){this.beginGeometry(t,e);var i=t.getFlatCoordinates(),r=t.getStride(),n=this.coordinates.length,o=this.drawCoordinates_(i,0,i.length,r);this.instructions.push([xa.DRAW_IMAGE,n,o,this.image_,this.anchorX_,this.anchorY_,this.declutterGroup_,this.height_,this.opacity_,this.originX_,this.originY_,this.rotateWithView_,this.rotation_,this.scale_*this.pixelRatio,this.width_]),this.hitDetectionInstructions.push([xa.DRAW_IMAGE,n,o,this.hitDetectionImage_,this.anchorX_,this.anchorY_,this.declutterGroup_,this.height_,this.opacity_,this.originX_,this.originY_,this.rotateWithView_,this.rotation_,this.scale_,this.width_]),this.endGeometry(t,e)}},e.prototype.finish=function(){this.reverseHitDetectionInstructions(),this.anchorX_=void 0,this.anchorY_=void 0,this.hitDetectionImage_=null,this.image_=null,this.height_=void 0,this.scale_=void 0,this.opacity_=void 0,this.originX_=void 0,this.originY_=void 0,this.rotateWithView_=void 0,this.rotation_=void 0,this.width_=void 0},e.prototype.setImageStyle=function(t,e){var i=t.getAnchor(),r=t.getSize(),n=t.getHitDetectionImage(1),o=t.getImage(1),s=t.getOrigin();this.anchorX_=i[0],this.anchorY_=i[1],this.declutterGroup_=e,this.hitDetectionImage_=n,this.image_=o,this.height_=r[1],this.opacity_=t.getOpacity(),this.originX_=s[0],this.originY_=s[1],this.rotateWithView_=t.getRotateWithView(),this.rotation_=t.getRotation(),this.scale_=t.getScale(),this.width_=r[0]},e}(Ra),Ia=function(t){function e(e,i,r,n,o,s){t.call(this,e,i,r,n,o,s)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.drawFlatCoordinates_=function(t,e,i,r){var n=this.coordinates.length,o=this.appendFlatCoordinates(t,e,i,r,!1,!1),s=[xa.MOVE_TO_LINE_TO,n,o];return this.instructions.push(s),this.hitDetectionInstructions.push(s),i},e.prototype.drawLineString=function(t,e){var i=this.state,r=i.strokeStyle,n=i.lineWidth;if(void 0!==r&&void 0!==n){this.updateStrokeStyle(i,this.applyStroke),this.beginGeometry(t,e),this.hitDetectionInstructions.push([xa.SET_STROKE_STYLE,i.strokeStyle,i.lineWidth,i.lineCap,i.lineJoin,i.miterLimit,i.lineDash,i.lineDashOffset],va);var o=t.getFlatCoordinates(),s=t.getStride();this.drawFlatCoordinates_(o,0,o.length,s),this.hitDetectionInstructions.push(ya),this.endGeometry(t,e)}},e.prototype.drawMultiLineString=function(t,e){var i=this.state,r=i.strokeStyle,n=i.lineWidth;if(void 0!==r&&void 0!==n){this.updateStrokeStyle(i,this.applyStroke),this.beginGeometry(t,e),this.hitDetectionInstructions.push([xa.SET_STROKE_STYLE,i.strokeStyle,i.lineWidth,i.lineCap,i.lineJoin,i.miterLimit,i.lineDash,i.lineDashOffset],va);for(var o=t.getEnds(),s=t.getFlatCoordinates(),a=t.getStride(),h=0,l=0,u=o.length;lt&&(y>g&&(g=y,f=v,_=o),y=0,v=o-n)),s=a,u=c,p=d),h=m,l=x}return(y+=a)>g?[v,o]:[f,_]}var Pa={Circle:La,Default:Ra,Image:wa,LineString:Ia,Polygon:La,Text:function(t){function e(e,i,r,n,o,s){t.call(this,e,i,r,n,o,s),this.declutterGroup_,this.labels_=null,this.text_="",this.textOffsetX_=0,this.textOffsetY_=0,this.textRotateWithView_=void 0,this.textRotation_=0,this.textFillState_=null,this.fillStates={},this.textStrokeState_=null,this.strokeStates={},this.textState_={},this.textStates={},this.textKey_="",this.fillKey_="",this.strokeKey_="",this.widths_={},Ps.prune()}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.drawText=function(t,e){var i=this.textFillState_,r=this.textStrokeState_,n=this.textState_;if(""!==this.text_&&n&&(i||r)){var o,s,a=this.coordinates.length,h=t.getType(),l=null,u=2,p=2;if(n.placement===Tr){if(!Pt(this.getBufferedMaxExtent(),t.getExtent()))return;var c;if(l=t.getFlatCoordinates(),p=t.getStride(),h==Nt.LINE_STRING)c=[l.length];else if(h==Nt.MULTI_LINE_STRING)c=t.getEnds();else if(h==Nt.POLYGON)c=t.getEnds().slice(0,1);else if(h==Nt.MULTI_POLYGON){var d=t.getEndss();for(c=[],o=0,s=d.length;o=E)&&l.push(S[o],S[o+1]);if(0==(u=l.length))return}u=this.appendFlatCoordinates(l,0,u,p,!1,!1),(n.backgroundFill||n.backgroundStroke)&&(this.setFillStrokeStyle(n.backgroundFill,n.backgroundStroke),n.backgroundFill&&(this.updateFillStyle(this.state,this.createFill,t),this.hitDetectionInstructions.push(this.createFill(this.state,t))),n.backgroundStroke&&(this.updateStrokeStyle(this.state,this.applyStroke),this.hitDetectionInstructions.push(this.createStroke(this.state)))),this.beginGeometry(t,e),this.drawTextImage_(x,a,u),this.endGeometry(t,e)}}},e.prototype.getImage=function(t,e,i,r){var n,o=r+e+t+i+this.pixelRatio;if(!Ps.containsKey(o)){var s=r?this.strokeStates[r]||this.textStrokeState_:null,a=i?this.fillStates[i]||this.textFillState_:null,h=this.textStates[e]||this.textState_,l=this.pixelRatio,u=h.scale*l,p=Sa[h.textAlign||"center"],c=r&&s.lineWidth?s.lineWidth:0,d=t.split("\n"),f=d.length,_=[],g=function(t,e,i){for(var r=e.length,n=0,o=0;o=o;)Fa(i,t+n,t+o),Fa(i,t+o,t+n),Fa(i,t-o,t+n),Fa(i,t-n,t+o),Fa(i,t-n,t-o),Fa(i,t-o,t-n),Fa(i,t+o,t-n),Fa(i,t+n,t-o),2*((s+=1+2*++o)-n)+1>0&&(s+=1-2*(n-=1));return Ma[t]=i,i}(r);function f(t){for(var e=u.getImageData(0,0,h,h).data,i=0;i0){var n=void 0;return(!p||c!=da.IMAGE&&c!=da.TEXT||-1!==p.indexOf(t))&&(n=o(t)),n||void u.clearRect(0,0,h,h)}}this.declutterTree_&&(p=this.declutterTree_.all().map(function(t){return t.value}));var _,g,y,v,m,x=Object.keys(this.replaysByZIndex_).map(Number);for(x.sort(V),_=x.length-1;_>=0;--_){var E=x[_].toString();for(y=this.replaysByZIndex_[E],g=Ea.length-1;g>=0;--g)if(void 0!==(v=y[c=Ea[g]]))if(!s||c!=da.IMAGE&&c!=da.TEXT){if(m=v.replayHitDetection(u,l,i,n,f,a))return m}else{var S=s[E];S?S.push(v,l.slice(0)):s[E]=[v,l.slice(0)]}}},e.prototype.getClipCoords=function(t){var e=this.maxExtent_,i=e[0],r=e[1],n=e[2],o=e[3],s=[i,r,i,o,n,o,n,r];return Gt(s,0,8,2,t,s),s},e.prototype.getReplay=function(t,e){var i=void 0!==t?t.toString():"0",r=this.replaysByZIndex_[i];void 0===r&&(r={},this.replaysByZIndex_[i]=r);var n=r[e];void 0===n&&(n=new(0,Pa[e])(this.tolerance_,this.maxExtent_,this.resolution_,this.pixelRatio_,this.overlaps_,this.declutterTree_),r[e]=n);return n},e.prototype.getReplays=function(){return this.replaysByZIndex_},e.prototype.isEmpty=function(){return d(this.replaysByZIndex_)},e.prototype.replay=function(t,e,i,r,n,o,s){var a=Object.keys(this.replaysByZIndex_).map(Number);a.sort(V),t.save(),this.clip(t,e);var h,l,u,p,c,d,f=o||Ea;for(h=0,l=a.length;h=n)for(r=n;rl[2];)O=b*++M,p=this.getTransform(e,O),f.replay(_,p,h,o,w),P-=b}if(ks(_,h,I/2,L/2),x&&this.dispatchRenderEvent(_,e,p),_!=t){if(m){var F=t.globalAlpha;t.globalAlpha=i.opacity,t.drawImage(_.canvas,-y,-v),t.globalAlpha=F}else t.drawImage(_.canvas,-y,-v);_.translate(-y,-v)}m||(_.globalAlpha=C)}d&&t.restore()},e.prototype.composeFrame=function(t,e,i){var r=this.getTransform(t,0);this.preCompose(i,t,r),this.compose(i,t,e),this.postCompose(i,t,e,r)},e.prototype.forEachFeatureAtCoordinate=function(t,e,i,r,n){if(this.replayGroup_){var s=e.viewState.resolution,a=e.viewState.rotation,h=this.getLayer(),l={};return this.replayGroup_.forEachFeatureAtCoordinate(t,s,a,i,{},function(t){var e=o(t);if(!(e in l))return l[e]=!0,r.call(n,t,h)},null)}},e.prototype.handleFontsChanged_=function(t){var e=this.getLayer();e.getVisible()&&this.replayGroup_&&e.changed()},e.prototype.handleStyleImageChange_=function(t){this.renderIfReadyAndVisible()},e.prototype.prepareFrame=function(t,e){var i=this.getLayer(),r=i.getSource(),n=t.viewHints[kn],o=t.viewHints[jn],s=i.getUpdateWhileAnimating(),a=i.getUpdateWhileInteracting();if(!this.dirty_&&!s&&n||!a&&o)return!0;var h=t.extent,l=t.viewState,u=l.projection,p=l.resolution,c=t.pixelRatio,d=i.getRevision(),f=i.getRenderBuffer(),_=i.getRenderOrder();void 0===_&&(_=Da);var g=et(h,f*p),y=l.projection.getExtent();if(r.getWrapX()&&l.projection.canWrapX()&&!ot(y,t.extent)){var v=Ot(y),m=Math.max(Ot(g)/2,v);g[0]=y[0]-m,g[2]=y[2]+m}if(!this.dirty_&&this.renderedResolution_==p&&this.renderedRevision_==d&&this.renderedRenderOrder_==_&&ot(this.renderedExtent_,g))return this.replayGroupChanged=!1,!0;this.replayGroup_=null,this.dirty_=!1;var x=new Aa(ja(p,c),g,p,c,r.getOverlaps(),this.declutterTree_,i.getRenderBuffer());r.loadFeatures(g,p,u);var E=function(t){var e,r=t.getStyleFunction()||i.getStyleFunction();if(r&&(e=r(t,p)),e){var n=this.renderFeature(t,p,c,e,x);this.dirty_=this.dirty_||n}}.bind(this);if(_){var S=[];r.forEachFeatureInExtent(g,function(t){S.push(t)}),S.sort(_);for(var T=0,C=S.length;T=0;--x){var E=g[x];if(E.getState()!=On.ABORT)for(var S=E.tileCoord,T=y.getTileCoordExtent(S,this.tmpExtent)[0]-E.extent[0],C=void 0,R=0,w=E.tileKeys.length;R radius + v_halfWidth) {\n if (u_strokeColor.a == 0.0) {\n gl_FragColor = u_fillColor;\n } else {\n gl_FragColor = u_strokeColor;\n }\n gl_FragColor.a = gl_FragColor.a - (dist - (radius + v_halfWidth));\n } else if (u_fillColor.a == 0.0) {\n // Hooray, no fill, just stroke. We can use real antialiasing.\n gl_FragColor = u_strokeColor;\n if (dist < radius - v_halfWidth) {\n gl_FragColor.a = gl_FragColor.a - (radius - v_halfWidth - dist);\n }\n } else {\n gl_FragColor = u_fillColor;\n float strokeDist = radius - v_halfWidth;\n float antialias = 2.0 * v_pixelRatio;\n if (dist > strokeDist) {\n gl_FragColor = u_strokeColor;\n } else if (dist >= strokeDist - antialias) {\n float step = smoothstep(strokeDist - antialias, strokeDist, dist);\n gl_FragColor = mix(u_fillColor, u_strokeColor, step);\n }\n }\n gl_FragColor.a = gl_FragColor.a * u_opacity;\n if (gl_FragColor.a <= 0.0) {\n discard;\n }\n}\n"),ch=new uh("varying vec2 v_center;\nvarying vec2 v_offset;\nvarying float v_halfWidth;\nvarying float v_pixelRatio;\n\n\nattribute vec2 a_position;\nattribute float a_instruction;\nattribute float a_radius;\n\nuniform mat4 u_projectionMatrix;\nuniform mat4 u_offsetScaleMatrix;\nuniform mat4 u_offsetRotateMatrix;\nuniform float u_lineWidth;\nuniform float u_pixelRatio;\n\nvoid main(void) {\n mat4 offsetMatrix = u_offsetScaleMatrix * u_offsetRotateMatrix;\n v_center = vec4(u_projectionMatrix * vec4(a_position, 0.0, 1.0)).xy;\n v_pixelRatio = u_pixelRatio;\n float lineWidth = u_lineWidth * u_pixelRatio;\n v_halfWidth = lineWidth / 2.0;\n if (lineWidth == 0.0) {\n lineWidth = 2.0 * u_pixelRatio;\n }\n vec2 offset;\n // Radius with anitaliasing (roughly).\n float radius = a_radius + 3.0 * u_pixelRatio;\n // Until we get gl_VertexID in WebGL, we store an instruction.\n if (a_instruction == 0.0) {\n // Offsetting the edges of the triangle by lineWidth / 2 is necessary, however\n // we should also leave some space for the antialiasing, thus we offset by lineWidth.\n offset = vec2(-1.0, 1.0);\n } else if (a_instruction == 1.0) {\n offset = vec2(-1.0, -1.0);\n } else if (a_instruction == 2.0) {\n offset = vec2(1.0, -1.0);\n } else {\n offset = vec2(1.0, 1.0);\n }\n\n gl_Position = u_projectionMatrix * vec4(a_position + offset * radius, 0.0, 1.0) +\n offsetMatrix * vec4(offset * lineWidth, 0.0, 0.0);\n v_offset = vec4(u_projectionMatrix * vec4(a_position.x + a_radius, a_position.y,\n 0.0, 1.0)).xy;\n\n if (distance(v_center, v_offset) > 20000.0) {\n gl_Position = vec4(v_center, 0.0, 1.0);\n }\n}\n\n\n"),dh=function(t,e){this.u_projectionMatrix=t.getUniformLocation(e,"u_projectionMatrix"),this.u_offsetScaleMatrix=t.getUniformLocation(e,"u_offsetScaleMatrix"),this.u_offsetRotateMatrix=t.getUniformLocation(e,"u_offsetRotateMatrix"),this.u_lineWidth=t.getUniformLocation(e,"u_lineWidth"),this.u_pixelRatio=t.getUniformLocation(e,"u_pixelRatio"),this.u_opacity=t.getUniformLocation(e,"u_opacity"),this.u_fillColor=t.getUniformLocation(e,"u_fillColor"),this.u_strokeColor=t.getUniformLocation(e,"u_strokeColor"),this.u_size=t.getUniformLocation(e,"u_size"),this.a_position=t.getAttribLocation(e,"a_position"),this.a_instruction=t.getAttribLocation(e,"a_instruction"),this.a_radius=t.getAttribLocation(e,"a_radius")};function fh(t,e){return t[0]=e[0],t[1]=e[1],t[4]=e[2],t[5]=e[3],t[12]=e[4],t[13]=e[5],t}var _h=function(t){function e(e,i){t.call(this),this.tolerance=e,this.maxExtent=i,this.origin=Tt(i),this.projectionMatrix_=[1,0,0,1,0,0],this.offsetRotateMatrix_=[1,0,0,1,0,0],this.offsetScaleMatrix_=[1,0,0,1,0,0],this.tmpMat4_=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1],this.indices=[],this.indicesBuffer=null,this.startIndices=[],this.startIndicesFeature=[],this.vertices=[],this.verticesBuffer=null,this.lineStringReplay=void 0}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.getDeleteResourcesFunction=function(t){return r()},e.prototype.finish=function(t){r()},e.prototype.setUpProgram=function(t,e,i,n){return r()},e.prototype.shutDownProgram=function(t,e){r()},e.prototype.drawReplay=function(t,e,i,n){r()},e.prototype.drawHitDetectionReplayOneByOne=function(t,e,i,n,o){return r()},e.prototype.drawHitDetectionReplay=function(t,e,i,r,n,o){return n?this.drawHitDetectionReplayOneByOne(t,e,i,r,o):this.drawHitDetectionReplayAll(t,e,i,r)},e.prototype.drawHitDetectionReplayAll=function(t,e,i,r){t.clear(t.COLOR_BUFFER_BIT|t.DEPTH_BUFFER_BIT),this.drawReplay(t,e,i,!0);var n=r(null);return n||void 0},e.prototype.replay=function(t,e,i,r,n,o,s,a,h,l,u){var p,c,d,f,_,g,y,v,m=t.getGL();this.lineStringReplay&&(p=m.isEnabled(m.STENCIL_TEST),c=m.getParameter(m.STENCIL_FUNC),d=m.getParameter(m.STENCIL_VALUE_MASK),f=m.getParameter(m.STENCIL_REF),_=m.getParameter(m.STENCIL_WRITEMASK),g=m.getParameter(m.STENCIL_FAIL),y=m.getParameter(m.STENCIL_PASS_DEPTH_PASS),v=m.getParameter(m.STENCIL_PASS_DEPTH_FAIL),m.enable(m.STENCIL_TEST),m.clear(m.STENCIL_BUFFER_BIT),m.stencilMask(255),m.stencilFunc(m.ALWAYS,1,255),m.stencilOp(m.KEEP,m.KEEP,m.REPLACE),this.lineStringReplay.replay(t,e,i,r,n,o,s,a,h,l,u),m.stencilMask(0),m.stencilFunc(m.NOTEQUAL,1,255)),t.bindBuffer(34962,this.verticesBuffer),t.bindBuffer(34963,this.indicesBuffer);var x=this.setUpProgram(m,t,n,o),E=Fe(this.projectionMatrix_);je(E,2/(i*n[0]),2/(i*n[1])),ke(E,-r),Ue(E,-(e[0]-this.origin[0]),-(e[1]-this.origin[1]));var S=Fe(this.offsetScaleMatrix_);je(S,2/n[0],2/n[1]);var T,C=Fe(this.offsetRotateMatrix_);return 0!==r&&ke(C,-r),m.uniformMatrix4fv(x.u_projectionMatrix,!1,fh(this.tmpMat4_,E)),m.uniformMatrix4fv(x.u_offsetScaleMatrix,!1,fh(this.tmpMat4_,S)),m.uniformMatrix4fv(x.u_offsetRotateMatrix,!1,fh(this.tmpMat4_,C)),m.uniform1f(x.u_opacity,s),void 0===h?this.drawReplay(m,t,a,!1):T=this.drawHitDetectionReplay(m,t,a,h,l,u),this.shutDownProgram(m,x),this.lineStringReplay&&(p||m.disable(m.STENCIL_TEST),m.clear(m.STENCIL_BUFFER_BIT),m.stencilFunc(c,f,d),m.stencilMask(_),m.stencilOp(g,v,y)),T},e.prototype.drawElements=function(t,e,i,r){var n=e.hasOESElementIndexUint?5125:5123,o=r-i,s=i*(e.hasOESElementIndexUint?4:2);t.drawElements(4,o,n,s)},e}(Vs),gh=[0,0,0,1],yh=[],vh=[0,0,0,1],mh=Number.EPSILON||2.220446049250313e-16,xh=function(t,e,i,r,n,o){var s=(i-t)*(o-e)-(n-t)*(r-e);return s<=mh&&s>=-mh?void 0:s>0},Eh=35044,Sh=function(t,e){this.arr_=void 0!==t?t:[],this.usage_=void 0!==e?e:Eh};Sh.prototype.getArray=function(){return this.arr_},Sh.prototype.getUsage=function(){return this.usage_};var Th=Sh,Ch=function(t){function e(e,i){t.call(this,e,i),this.defaultLocations_=null,this.styles_=[],this.styleIndices_=[],this.radius_=0,this.state_={fillColor:null,strokeColor:null,lineDash:null,lineDashOffset:void 0,lineWidth:void 0,changed:!1}}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.drawCoordinates_=function(t,e,i,r){var n,o,s=this.vertices.length,a=this.indices.length,h=s/4;for(n=e,o=i;n0&&(this.styles_=[]),this.vertices=null,this.indices=null},e.prototype.getDeleteResourcesFunction=function(t){var e=this.verticesBuffer,i=this.indicesBuffer;return function(){t.deleteBuffer(e),t.deleteBuffer(i)}},e.prototype.setUpProgram=function(t,e,i,r){var n,o=e.getProgram(ph,ch);return this.defaultLocations_?n=this.defaultLocations_:(n=new dh(t,o),this.defaultLocations_=n),e.useProgram(o),t.enableVertexAttribArray(n.a_position),t.vertexAttribPointer(n.a_position,2,5126,!1,16,0),t.enableVertexAttribArray(n.a_instruction),t.vertexAttribPointer(n.a_instruction,1,5126,!1,16,8),t.enableVertexAttribArray(n.a_radius),t.vertexAttribPointer(n.a_radius,1,5126,!1,16,12),t.uniform2fv(n.u_size,i),t.uniform1f(n.u_pixelRatio,r),n},e.prototype.shutDownProgram=function(t,e){t.disableVertexAttribArray(e.a_position),t.disableVertexAttribArray(e.a_instruction),t.disableVertexAttribArray(e.a_radius)},e.prototype.drawReplay=function(t,e,i,r){var n,o,s,a;if(d(i))for(s=this.startIndices[this.startIndices.length-1],n=this.styleIndices_.length-1;n>=0;--n)o=this.styleIndices_[n],a=this.styles_[n],this.setFillStyle_(t,a[0]),this.setStrokeStyle_(t,a[1],a[2]),this.drawElements(t,e,o,s),s=o;else this.drawReplaySkipping_(t,e,i)},e.prototype.drawHitDetectionReplayOneByOne=function(t,e,i,r,n){var s,a,h,l,u,p,c;for(c=this.startIndices.length-2,h=this.startIndices[c+1],s=this.styleIndices_.length-1;s>=0;--s)for(l=this.styles_[s],this.setFillStyle_(t,l[0]),this.setStrokeStyle_(t,l[1],l[2]),u=this.styleIndices_[s];c>=0&&this.startIndices[c]>=u;){if(a=this.startIndices[c],void 0===i[o(p=this.startIndicesFeature[c])]&&p.getGeometry()&&(void 0===n||Pt(n,p.getGeometry().getExtent()))){t.clear(t.COLOR_BUFFER_BIT|t.DEPTH_BUFFER_BIT),this.drawElements(t,e,a,h);var d=r(p);if(d)return d}c--,h=a}},e.prototype.drawReplaySkipping_=function(t,e,i){var r,n,s,a,h,l,u;for(l=this.startIndices.length-2,s=n=this.startIndices[l+1],r=this.styleIndices_.length-1;r>=0;--r){for(a=this.styles_[r],this.setFillStyle_(t,a[0]),this.setStrokeStyle_(t,a[1],a[2]),h=this.styleIndices_[r];l>=0&&this.startIndices[l]>=h;)u=this.startIndices[l],i[o(this.startIndicesFeature[l])]&&(n!==s&&this.drawElements(t,e,n,s),s=u),l--,n=u;n!==s&&this.drawElements(t,e,n,s),n=s=h}},e.prototype.setFillStyle_=function(t,e){t.uniform4fv(this.defaultLocations_.u_fillColor,e)},e.prototype.setStrokeStyle_=function(t,e,i){t.uniform4fv(this.defaultLocations_.u_strokeColor,e),t.uniform1f(this.defaultLocations_.u_lineWidth,i)},e.prototype.setFillStrokeStyle=function(t,e){var i,r;if(e){var n=e.getLineDash();this.state_.lineDash=n||yh;var o=e.getLineDashOffset();this.state_.lineDashOffset=o||0,i=(i=e.getColor())instanceof CanvasGradient||i instanceof CanvasPattern?vh:_r(i).map(function(t,e){return 3!=e?t/255:t})||vh,r=void 0!==(r=e.getWidth())?r:1}else i=[0,0,0,0],r=0;var s=t?t.getColor():[0,0,0,0];s=s instanceof CanvasGradient||s instanceof CanvasPattern?gh:_r(s).map(function(t,e){return 3!=e?t/255:t})||gh,this.state_.strokeColor&&Z(this.state_.strokeColor,i)&&this.state_.fillColor&&Z(this.state_.fillColor,s)&&this.state_.lineWidth===r||(this.state_.changed=!0,this.state_.fillColor=s,this.state_.strokeColor=i,this.state_.lineWidth=r,this.styles_.push([s,i,r]))},e}(_h),Rh=new lh("precision mediump float;\nvarying vec2 v_texCoord;\nvarying float v_opacity;\n\nuniform float u_opacity;\nuniform sampler2D u_image;\n\nvoid main(void) {\n vec4 texColor = texture2D(u_image, v_texCoord);\n gl_FragColor.rgb = texColor.rgb;\n float alpha = texColor.a * v_opacity * u_opacity;\n if (alpha == 0.0) {\n discard;\n }\n gl_FragColor.a = alpha;\n}\n"),wh=new uh("varying vec2 v_texCoord;\nvarying float v_opacity;\n\nattribute vec2 a_position;\nattribute vec2 a_texCoord;\nattribute vec2 a_offsets;\nattribute float a_opacity;\nattribute float a_rotateWithView;\n\nuniform mat4 u_projectionMatrix;\nuniform mat4 u_offsetScaleMatrix;\nuniform mat4 u_offsetRotateMatrix;\n\nvoid main(void) {\n mat4 offsetMatrix = u_offsetScaleMatrix;\n if (a_rotateWithView == 1.0) {\n offsetMatrix = u_offsetScaleMatrix * u_offsetRotateMatrix;\n }\n vec4 offsets = offsetMatrix * vec4(a_offsets, 0.0, 0.0);\n gl_Position = u_projectionMatrix * vec4(a_position, 0.0, 1.0) + offsets;\n v_texCoord = a_texCoord;\n v_opacity = a_opacity;\n}\n\n\n"),Ih=function(t,e){this.u_projectionMatrix=t.getUniformLocation(e,"u_projectionMatrix"),this.u_offsetScaleMatrix=t.getUniformLocation(e,"u_offsetScaleMatrix"),this.u_offsetRotateMatrix=t.getUniformLocation(e,"u_offsetRotateMatrix"),this.u_opacity=t.getUniformLocation(e,"u_opacity"),this.u_image=t.getUniformLocation(e,"u_image"),this.a_position=t.getAttribLocation(e,"a_position"),this.a_texCoord=t.getAttribLocation(e,"a_texCoord"),this.a_offsets=t.getAttribLocation(e,"a_offsets"),this.a_opacity=t.getAttribLocation(e,"a_opacity"),this.a_rotateWithView=t.getAttribLocation(e,"a_rotateWithView")},Lh={LOST:"webglcontextlost",RESTORED:"webglcontextrestored"};function Oh(t,e,i){var r=t.createTexture();return t.bindTexture(t.TEXTURE_2D,r),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MAG_FILTER,t.LINEAR),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MIN_FILTER,t.LINEAR),void 0!==e&&t.texParameteri(eh,$a,e),void 0!==i&&t.texParameteri(eh,th,i),r}function Ph(t,e,i,r,n){var o=Oh(t,r,n);return t.texImage2D(t.TEXTURE_2D,0,t.RGBA,e,i,0,t.RGBA,t.UNSIGNED_BYTE,null),o}function bh(t,e,i,r){var n=Oh(t,i,r);return t.texImage2D(t.TEXTURE_2D,0,t.RGBA,t.RGBA,t.UNSIGNED_BYTE,e),n}var Mh=function(t){function e(e,i){t.call(this),this.canvas_=e,this.gl_=i,this.bufferCache_={},this.shaderCache_={},this.programCache_={},this.currentProgram_=null,this.hitDetectionFramebuffer_=null,this.hitDetectionTexture_=null,this.hitDetectionRenderbuffer_=null,this.hasOESElementIndexUint=X(oh,"OES_element_index_uint"),this.hasOESElementIndexUint&&i.getExtension("OES_element_index_uint"),v(this.canvas_,Lh.LOST,this.handleWebGLContextLost,this),v(this.canvas_,Lh.RESTORED,this.handleWebGLContextRestored,this)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.bindBuffer=function(t,e){var i=this.getGL(),r=e.getArray(),n=o(e);if(n in this.bufferCache_){var s=this.bufferCache_[n];i.bindBuffer(t,s.buffer)}else{var a,h=i.createBuffer();i.bindBuffer(t,h),34962==t?a=new Float32Array(r):34963==t&&(a=this.hasOESElementIndexUint?new Uint32Array(r):new Uint16Array(r)),i.bufferData(t,a,e.getUsage()),this.bufferCache_[n]={buf:e,buffer:h}}},e.prototype.deleteBuffer=function(t){var e=this.getGL(),i=o(t),r=this.bufferCache_[i];e.isContextLost()||e.deleteBuffer(r.buffer),delete this.bufferCache_[i]},e.prototype.disposeInternal=function(){S(this.canvas_);var t=this.getGL();if(!t.isContextLost()){for(var e in this.bufferCache_)t.deleteBuffer(this.bufferCache_[e].buffer);for(var i in this.programCache_)t.deleteProgram(this.programCache_[i]);for(var r in this.shaderCache_)t.deleteShader(this.shaderCache_[r]);t.deleteFramebuffer(this.hitDetectionFramebuffer_),t.deleteRenderbuffer(this.hitDetectionRenderbuffer_),t.deleteTexture(this.hitDetectionTexture_)}},e.prototype.getCanvas=function(){return this.canvas_},e.prototype.getGL=function(){return this.gl_},e.prototype.getHitDetectionFramebuffer=function(){return this.hitDetectionFramebuffer_||this.initHitDetectionFramebuffer_(),this.hitDetectionFramebuffer_},e.prototype.getShader=function(t){var e=o(t);if(e in this.shaderCache_)return this.shaderCache_[e];var i=this.getGL(),r=i.createShader(t.getType());return i.shaderSource(r,t.getSource()),i.compileShader(r),this.shaderCache_[e]=r,r},e.prototype.getProgram=function(t,e){var i=o(t)+"/"+o(e);if(i in this.programCache_)return this.programCache_[i];var r=this.getGL(),n=r.createProgram();return r.attachShader(n,this.getShader(t)),r.attachShader(n,this.getShader(e)),r.linkProgram(n),this.programCache_[i]=n,n},e.prototype.handleWebGLContextLost=function(){p(this.bufferCache_),p(this.shaderCache_),p(this.programCache_),this.currentProgram_=null,this.hitDetectionFramebuffer_=null,this.hitDetectionTexture_=null,this.hitDetectionRenderbuffer_=null},e.prototype.handleWebGLContextRestored=function(){},e.prototype.initHitDetectionFramebuffer_=function(){var t=this.gl_,e=t.createFramebuffer();t.bindFramebuffer(t.FRAMEBUFFER,e);var i=Ph(t,1,1),r=t.createRenderbuffer();t.bindRenderbuffer(t.RENDERBUFFER,r),t.renderbufferStorage(t.RENDERBUFFER,t.DEPTH_COMPONENT16,1,1),t.framebufferTexture2D(t.FRAMEBUFFER,t.COLOR_ATTACHMENT0,t.TEXTURE_2D,i,0),t.framebufferRenderbuffer(t.FRAMEBUFFER,t.DEPTH_ATTACHMENT,t.RENDERBUFFER,r),t.bindTexture(t.TEXTURE_2D,null),t.bindRenderbuffer(t.RENDERBUFFER,null),t.bindFramebuffer(t.FRAMEBUFFER,null),this.hitDetectionFramebuffer_=e,this.hitDetectionTexture_=i,this.hitDetectionRenderbuffer_=r},e.prototype.useProgram=function(t){return t!=this.currentProgram_&&(this.getGL().useProgram(t),this.currentProgram_=t,!0)},e}(C),Fh=function(t){function e(e,i){t.call(this,e,i),this.anchorX=void 0,this.anchorY=void 0,this.groupIndices=[],this.hitDetectionGroupIndices=[],this.height=void 0,this.imageHeight=void 0,this.imageWidth=void 0,this.defaultLocations=null,this.opacity=void 0,this.originX=void 0,this.originY=void 0,this.rotateWithView=void 0,this.rotation=void 0,this.scale=void 0,this.width=void 0}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.getDeleteResourcesFunction=function(t){var e=this.verticesBuffer,i=this.indicesBuffer,r=this.getTextures(!0),n=t.getGL();return function(){var o,s;if(!n.isContextLost())for(o=0,s=r.length;o0?n[s-1]:0,u=n[s],p=l,c=l;h=0;--s)for(t.bindTexture(eh,c[s]),a=s>0?this.hitDetectionGroupIndices[s-1]:0,l=this.hitDetectionGroupIndices[s];p>=0&&this.startIndices[p]>=a;){if(h=this.startIndices[p],void 0===i[o(u=this.startIndicesFeature[p])]&&u.getGeometry()&&(void 0===n||Pt(n,u.getGeometry().getExtent()))){t.clear(t.COLOR_BUFFER_BIT|t.DEPTH_BUFFER_BIT),this.drawElements(t,e,h,l);var d=r(u);if(d)return d}l=h,p--}},e.prototype.finish=function(t){this.anchorX=void 0,this.anchorY=void 0,this.height=void 0,this.imageHeight=void 0,this.imageWidth=void 0,this.indices=null,this.opacity=void 0,this.originX=void 0,this.originY=void 0,this.rotateWithView=void 0,this.rotation=void 0,this.scale=void 0,this.vertices=null,this.width=void 0},e.prototype.getTextures=function(t){return r()},e.prototype.getHitDetectionTextures=function(){return r()},e}(_h),Ah=function(t){function e(e,i){t.call(this,e,i),this.images_=[],this.hitDetectionImages_=[],this.textures_=[],this.hitDetectionTextures_=[]}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.drawMultiPoint=function(t,e){this.startIndices.push(this.indices.length),this.startIndicesFeature.push(e);var i=t.getFlatCoordinates(),r=t.getStride();this.drawCoordinates(i,0,i.length,r)},e.prototype.drawPoint=function(t,e){this.startIndices.push(this.indices.length),this.startIndicesFeature.push(e);var i=t.getFlatCoordinates(),r=t.getStride();this.drawCoordinates(i,0,i.length,r)},e.prototype.finish=function(e){var i=e.getGL();this.groupIndices.push(this.indices.length),this.hitDetectionGroupIndices.push(this.indices.length),this.verticesBuffer=new Th(this.vertices);var r=this.indices;this.indicesBuffer=new Th(r);var n={};this.createTextures(this.textures_,this.images_,n,i),this.createTextures(this.hitDetectionTextures_,this.hitDetectionImages_,n,i),this.images_=null,this.hitDetectionImages_=null,t.prototype.finish.call(this,e)},e.prototype.setImageStyle=function(t){var e=t.getAnchor(),i=t.getImage(1),r=t.getImageSize(),n=t.getHitDetectionImage(1),s=t.getOpacity(),a=t.getOrigin(),h=t.getRotateWithView(),l=t.getRotation(),u=t.getSize(),p=t.getScale();0===this.images_.length?this.images_.push(i):o(this.images_[this.images_.length-1])!=o(i)&&(this.groupIndices.push(this.indices.length),this.images_.push(i)),0===this.hitDetectionImages_.length?this.hitDetectionImages_.push(n):o(this.hitDetectionImages_[this.hitDetectionImages_.length-1])!=o(n)&&(this.hitDetectionGroupIndices.push(this.indices.length),this.hitDetectionImages_.push(n)),this.anchorX=e[0],this.anchorY=e[1],this.height=u[1],this.imageHeight=r[1],this.imageWidth=r[0],this.opacity=s,this.originX=a[0],this.originY=a[1],this.rotation=l,this.rotateWithView=h,this.scale=p,this.width=u[0]},e.prototype.getTextures=function(t){return t?this.textures_.concat(this.hitDetectionTextures_):this.textures_},e.prototype.getHitDetectionTextures=function(){return this.hitDetectionTextures_},e}(Fh);function Nh(t,e,i,r){var n=i-r;return t[e]===t[n]&&t[e+1]===t[n+1]&&(i-e)/r>3&&!!Ke(t,e,i,r)}var Gh=new lh("precision mediump float;\nvarying float v_round;\nvarying vec2 v_roundVertex;\nvarying float v_halfWidth;\n\n\n\nuniform float u_opacity;\nuniform vec4 u_color;\nuniform vec2 u_size;\nuniform float u_pixelRatio;\n\nvoid main(void) {\n if (v_round > 0.0) {\n vec2 windowCoords = vec2((v_roundVertex.x + 1.0) / 2.0 * u_size.x * u_pixelRatio,\n (v_roundVertex.y + 1.0) / 2.0 * u_size.y * u_pixelRatio);\n if (length(windowCoords - gl_FragCoord.xy) > v_halfWidth * u_pixelRatio) {\n discard;\n }\n }\n gl_FragColor = u_color;\n float alpha = u_color.a * u_opacity;\n if (alpha == 0.0) {\n discard;\n }\n gl_FragColor.a = alpha;\n}\n"),Dh=new uh("varying float v_round;\nvarying vec2 v_roundVertex;\nvarying float v_halfWidth;\n\n\nattribute vec2 a_lastPos;\nattribute vec2 a_position;\nattribute vec2 a_nextPos;\nattribute float a_direction;\n\nuniform mat4 u_projectionMatrix;\nuniform mat4 u_offsetScaleMatrix;\nuniform mat4 u_offsetRotateMatrix;\nuniform float u_lineWidth;\nuniform float u_miterLimit;\n\nbool nearlyEquals(in float value, in float ref) {\n float epsilon = 0.000000000001;\n return value >= ref - epsilon && value <= ref + epsilon;\n}\n\nvoid alongNormal(out vec2 offset, in vec2 nextP, in float turnDir, in float direction) {\n vec2 dirVect = nextP - a_position;\n vec2 normal = normalize(vec2(-turnDir * dirVect.y, turnDir * dirVect.x));\n offset = u_lineWidth / 2.0 * normal * direction;\n}\n\nvoid miterUp(out vec2 offset, out float round, in bool isRound, in float direction) {\n float halfWidth = u_lineWidth / 2.0;\n vec2 tangent = normalize(normalize(a_nextPos - a_position) + normalize(a_position - a_lastPos));\n vec2 normal = vec2(-tangent.y, tangent.x);\n vec2 dirVect = a_nextPos - a_position;\n vec2 tmpNormal = normalize(vec2(-dirVect.y, dirVect.x));\n float miterLength = abs(halfWidth / dot(normal, tmpNormal));\n offset = normal * direction * miterLength;\n round = 0.0;\n if (isRound) {\n round = 1.0;\n } else if (miterLength > u_miterLimit + u_lineWidth) {\n offset = halfWidth * tmpNormal * direction;\n }\n}\n\nbool miterDown(out vec2 offset, in vec4 projPos, in mat4 offsetMatrix, in float direction) {\n bool degenerate = false;\n vec2 tangent = normalize(normalize(a_nextPos - a_position) + normalize(a_position - a_lastPos));\n vec2 normal = vec2(-tangent.y, tangent.x);\n vec2 dirVect = a_lastPos - a_position;\n vec2 tmpNormal = normalize(vec2(-dirVect.y, dirVect.x));\n vec2 longOffset, shortOffset, longVertex;\n vec4 shortProjVertex;\n float halfWidth = u_lineWidth / 2.0;\n if (length(a_nextPos - a_position) > length(a_lastPos - a_position)) {\n longOffset = tmpNormal * direction * halfWidth;\n shortOffset = normalize(vec2(dirVect.y, -dirVect.x)) * direction * halfWidth;\n longVertex = a_nextPos;\n shortProjVertex = u_projectionMatrix * vec4(a_lastPos, 0.0, 1.0);\n } else {\n shortOffset = tmpNormal * direction * halfWidth;\n longOffset = normalize(vec2(dirVect.y, -dirVect.x)) * direction * halfWidth;\n longVertex = a_lastPos;\n shortProjVertex = u_projectionMatrix * vec4(a_nextPos, 0.0, 1.0);\n }\n //Intersection algorithm based on theory by Paul Bourke (http://paulbourke.net/geometry/pointlineplane/).\n vec4 p1 = u_projectionMatrix * vec4(longVertex, 0.0, 1.0) + offsetMatrix * vec4(longOffset, 0.0, 0.0);\n vec4 p2 = projPos + offsetMatrix * vec4(longOffset, 0.0, 0.0);\n vec4 p3 = shortProjVertex + offsetMatrix * vec4(-shortOffset, 0.0, 0.0);\n vec4 p4 = shortProjVertex + offsetMatrix * vec4(shortOffset, 0.0, 0.0);\n float denom = (p4.y - p3.y) * (p2.x - p1.x) - (p4.x - p3.x) * (p2.y - p1.y);\n float firstU = ((p4.x - p3.x) * (p1.y - p3.y) - (p4.y - p3.y) * (p1.x - p3.x)) / denom;\n float secondU = ((p2.x - p1.x) * (p1.y - p3.y) - (p2.y - p1.y) * (p1.x - p3.x)) / denom;\n float epsilon = 0.000000000001;\n if (firstU > epsilon && firstU < 1.0 - epsilon && secondU > epsilon && secondU < 1.0 - epsilon) {\n shortProjVertex.x = p1.x + firstU * (p2.x - p1.x);\n shortProjVertex.y = p1.y + firstU * (p2.y - p1.y);\n offset = shortProjVertex.xy;\n degenerate = true;\n } else {\n float miterLength = abs(halfWidth / dot(normal, tmpNormal));\n offset = normal * direction * miterLength;\n }\n return degenerate;\n}\n\nvoid squareCap(out vec2 offset, out float round, in bool isRound, in vec2 nextP,\n in float turnDir, in float direction) {\n round = 0.0;\n vec2 dirVect = a_position - nextP;\n vec2 firstNormal = normalize(dirVect);\n vec2 secondNormal = vec2(turnDir * firstNormal.y * direction, -turnDir * firstNormal.x * direction);\n vec2 hypotenuse = normalize(firstNormal - secondNormal);\n vec2 normal = vec2(turnDir * hypotenuse.y * direction, -turnDir * hypotenuse.x * direction);\n float length = sqrt(v_halfWidth * v_halfWidth * 2.0);\n offset = normal * length;\n if (isRound) {\n round = 1.0;\n }\n}\n\nvoid main(void) {\n bool degenerate = false;\n float direction = float(sign(a_direction));\n mat4 offsetMatrix = u_offsetScaleMatrix * u_offsetRotateMatrix;\n vec2 offset;\n vec4 projPos = u_projectionMatrix * vec4(a_position, 0.0, 1.0);\n bool round = nearlyEquals(mod(a_direction, 2.0), 0.0);\n\n v_round = 0.0;\n v_halfWidth = u_lineWidth / 2.0;\n v_roundVertex = projPos.xy;\n\n if (nearlyEquals(mod(a_direction, 3.0), 0.0) || nearlyEquals(mod(a_direction, 17.0), 0.0)) {\n alongNormal(offset, a_nextPos, 1.0, direction);\n } else if (nearlyEquals(mod(a_direction, 5.0), 0.0) || nearlyEquals(mod(a_direction, 13.0), 0.0)) {\n alongNormal(offset, a_lastPos, -1.0, direction);\n } else if (nearlyEquals(mod(a_direction, 23.0), 0.0)) {\n miterUp(offset, v_round, round, direction);\n } else if (nearlyEquals(mod(a_direction, 19.0), 0.0)) {\n degenerate = miterDown(offset, projPos, offsetMatrix, direction);\n } else if (nearlyEquals(mod(a_direction, 7.0), 0.0)) {\n squareCap(offset, v_round, round, a_nextPos, 1.0, direction);\n } else if (nearlyEquals(mod(a_direction, 11.0), 0.0)) {\n squareCap(offset, v_round, round, a_lastPos, -1.0, direction);\n }\n if (!degenerate) {\n vec4 offsets = offsetMatrix * vec4(offset, 0.0, 0.0);\n gl_Position = projPos + offsets;\n } else {\n gl_Position = vec4(offset, 0.0, 1.0);\n }\n}\n\n\n"),kh=function(t,e){this.u_projectionMatrix=t.getUniformLocation(e,"u_projectionMatrix"),this.u_offsetScaleMatrix=t.getUniformLocation(e,"u_offsetScaleMatrix"),this.u_offsetRotateMatrix=t.getUniformLocation(e,"u_offsetRotateMatrix"),this.u_lineWidth=t.getUniformLocation(e,"u_lineWidth"),this.u_miterLimit=t.getUniformLocation(e,"u_miterLimit"),this.u_opacity=t.getUniformLocation(e,"u_opacity"),this.u_color=t.getUniformLocation(e,"u_color"),this.u_size=t.getUniformLocation(e,"u_size"),this.u_pixelRatio=t.getUniformLocation(e,"u_pixelRatio"),this.a_lastPos=t.getAttribLocation(e,"a_lastPos"),this.a_position=t.getAttribLocation(e,"a_position"),this.a_nextPos=t.getAttribLocation(e,"a_nextPos"),this.a_direction=t.getAttribLocation(e,"a_direction")},jh=3,Uh=5,Yh=7,Bh=11,Vh=13,Xh=17,zh=19,Wh=23,Kh=function(t){function e(e,i){t.call(this,e,i),this.defaultLocations_=null,this.styles_=[],this.styleIndices_=[],this.state_={strokeColor:null,lineCap:void 0,lineDash:null,lineDashOffset:void 0,lineJoin:void 0,lineWidth:void 0,miterLimit:void 0,changed:!1}}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.drawCoordinates_=function(t,e,i,r){var n,o,s,a,h,l,u,p,c=this.vertices.length,d=this.indices.length,f="bevel"===this.state_.lineJoin?0:"miter"===this.state_.lineJoin?1:2,_="butt"===this.state_.lineCap?0:"square"===this.state_.lineCap?1:2,g=Nh(t,e,i,r),y=d,v=1;for(n=e,o=i;ne&&(this.indices[d++]=h,this.indices[d++]=y-1,this.indices[d++]=y,this.indices[d++]=h+2,this.indices[d++]=h,this.indices[d++]=v*a>0?y:y-1),this.indices[d++]=h,this.indices[d++]=h+2,this.indices[d++]=h+1,y=h+2,v=a,f&&(c=this.addVertices_(l,u,p,a*Wh*f,c),this.indices[d++]=h+1,this.indices[d++]=h+3,this.indices[d++]=h)}g&&(h=h||c/7,a=Si([l[0],l[1],u[0],u[1],p[0],p[1]],0,6,2)?1:-1,c=this.addVertices_(l,u,p,a*Vh*(f||1),c),c=this.addVertices_(l,u,p,-a*zh*(f||1),c),this.indices[d++]=h,this.indices[d++]=y-1,this.indices[d++]=y,this.indices[d++]=h+1,this.indices[d++]=h,this.indices[d++]=v*a>0?y:y-1)},e.prototype.addVertices_=function(t,e,i,r,n){return this.vertices[n++]=t[0],this.vertices[n++]=t[1],this.vertices[n++]=e[0],this.vertices[n++]=e[1],this.vertices[n++]=i[0],this.vertices[n++]=i[1],this.vertices[n++]=r,n},e.prototype.isValid_=function(t,e,i,r){var n=i-e;return!(n<2*r)&&(n!==2*r||!Z([t[e],t[e+1]],[t[e+r],t[e+r+1]]))},e.prototype.drawLineString=function(t,e){var i=t.getFlatCoordinates(),r=t.getStride();this.isValid_(i,0,i.length,r)&&(i=Dt(i,0,i.length,r,-this.origin[0],-this.origin[1]),this.state_.changed&&(this.styleIndices_.push(this.indices.length),this.state_.changed=!1),this.startIndices.push(this.indices.length),this.startIndicesFeature.push(e),this.drawCoordinates_(i,0,i.length,r))},e.prototype.drawMultiLineString=function(t,e){var i=this.indices.length,r=t.getEnds();r.unshift(0);var n,o,s=t.getFlatCoordinates(),a=t.getStride();if(r.length>1)for(n=1,o=r.length;ni&&(this.startIndices.push(i),this.startIndicesFeature.push(e),this.state_.changed&&(this.styleIndices_.push(i),this.state_.changed=!1))},e.prototype.drawPolygonCoordinates=function(t,e,i){var r,n;if(Nh(t,0,t.length,i)||(t.push(t[0]),t.push(t[1])),this.drawCoordinates_(t,0,t.length,i),e.length)for(r=0,n=e.length;r0&&(this.styles_=[]),this.vertices=null,this.indices=null},e.prototype.getDeleteResourcesFunction=function(t){var e=this.verticesBuffer,i=this.indicesBuffer;return function(){t.deleteBuffer(e),t.deleteBuffer(i)}},e.prototype.setUpProgram=function(t,e,i,r){var n,o=e.getProgram(Gh,Dh);return this.defaultLocations_?n=this.defaultLocations_:(n=new kh(t,o),this.defaultLocations_=n),e.useProgram(o),t.enableVertexAttribArray(n.a_lastPos),t.vertexAttribPointer(n.a_lastPos,2,5126,!1,28,0),t.enableVertexAttribArray(n.a_position),t.vertexAttribPointer(n.a_position,2,5126,!1,28,8),t.enableVertexAttribArray(n.a_nextPos),t.vertexAttribPointer(n.a_nextPos,2,5126,!1,28,16),t.enableVertexAttribArray(n.a_direction),t.vertexAttribPointer(n.a_direction,1,5126,!1,28,24),t.uniform2fv(n.u_size,i),t.uniform1f(n.u_pixelRatio,r),n},e.prototype.shutDownProgram=function(t,e){t.disableVertexAttribArray(e.a_lastPos),t.disableVertexAttribArray(e.a_position),t.disableVertexAttribArray(e.a_nextPos),t.disableVertexAttribArray(e.a_direction)},e.prototype.drawReplay=function(t,e,i,r){var n,o,s,a,h=t.getParameter(t.DEPTH_FUNC),l=t.getParameter(t.DEPTH_WRITEMASK);if(r||(t.enable(t.DEPTH_TEST),t.depthMask(!0),t.depthFunc(t.NOTEQUAL)),d(i))for(s=this.startIndices[this.startIndices.length-1],n=this.styleIndices_.length-1;n>=0;--n)o=this.styleIndices_[n],a=this.styles_[n],this.setStrokeStyle_(t,a[0],a[1],a[2]),this.drawElements(t,e,o,s),t.clear(t.DEPTH_BUFFER_BIT),s=o;else this.drawReplaySkipping_(t,e,i);r||(t.disable(t.DEPTH_TEST),t.clear(t.DEPTH_BUFFER_BIT),t.depthMask(l),t.depthFunc(h))},e.prototype.drawReplaySkipping_=function(t,e,i){var r,n,s,a,h,l,u;for(l=this.startIndices.length-2,s=n=this.startIndices[l+1],r=this.styleIndices_.length-1;r>=0;--r){for(a=this.styles_[r],this.setStrokeStyle_(t,a[0],a[1],a[2]),h=this.styleIndices_[r];l>=0&&this.startIndices[l]>=h;)u=this.startIndices[l],i[o(this.startIndicesFeature[l])]&&(n!==s&&(this.drawElements(t,e,n,s),t.clear(t.DEPTH_BUFFER_BIT)),s=u),l--,n=u;n!==s&&(this.drawElements(t,e,n,s),t.clear(t.DEPTH_BUFFER_BIT)),n=s=h}},e.prototype.drawHitDetectionReplayOneByOne=function(t,e,i,r,n){var s,a,h,l,u,p,c;for(c=this.startIndices.length-2,h=this.startIndices[c+1],s=this.styleIndices_.length-1;s>=0;--s)for(l=this.styles_[s],this.setStrokeStyle_(t,l[0],l[1],l[2]),u=this.styleIndices_[s];c>=0&&this.startIndices[c]>=u;){if(a=this.startIndices[c],void 0===i[o(p=this.startIndicesFeature[c])]&&p.getGeometry()&&(void 0===n||Pt(n,p.getGeometry().getExtent()))){t.clear(t.COLOR_BUFFER_BIT|t.DEPTH_BUFFER_BIT),this.drawElements(t,e,a,h);var d=r(p);if(d)return d}c--,h=a}},e.prototype.setStrokeStyle_=function(t,e,i,r){t.uniform4fv(this.defaultLocations_.u_color,e),t.uniform1f(this.defaultLocations_.u_lineWidth,i),t.uniform1f(this.defaultLocations_.u_miterLimit,r)},e.prototype.setFillStrokeStyle=function(t,e){var i=e.getLineCap();this.state_.lineCap=void 0!==i?i:"round";var r=e.getLineDash();this.state_.lineDash=r||yh;var n=e.getLineDashOffset();this.state_.lineDashOffset=n||0;var o=e.getLineJoin();this.state_.lineJoin=void 0!==o?o:"round";var s=e.getColor();s=s instanceof CanvasGradient||s instanceof CanvasPattern?vh:_r(s).map(function(t,e){return 3!=e?t/255:t})||vh;var a=e.getWidth();a=void 0!==a?a:1;var h=e.getMiterLimit();h=void 0!==h?h:10,this.state_.strokeColor&&Z(this.state_.strokeColor,s)&&this.state_.lineWidth===a&&this.state_.miterLimit===h||(this.state_.changed=!0,this.state_.strokeColor=s,this.state_.lineWidth=a,this.state_.miterLimit=h,this.styles_.push([s,a,h]))},e}(_h),Hh=new lh("precision mediump float;\n\n\n\nuniform vec4 u_color;\nuniform float u_opacity;\n\nvoid main(void) {\n gl_FragColor = u_color;\n float alpha = u_color.a * u_opacity;\n if (alpha == 0.0) {\n discard;\n }\n gl_FragColor.a = alpha;\n}\n"),Zh=new uh("\n\nattribute vec2 a_position;\n\nuniform mat4 u_projectionMatrix;\nuniform mat4 u_offsetScaleMatrix;\nuniform mat4 u_offsetRotateMatrix;\n\nvoid main(void) {\n gl_Position = u_projectionMatrix * vec4(a_position, 0.0, 1.0);\n}\n\n\n"),qh=function(t,e){this.u_projectionMatrix=t.getUniformLocation(e,"u_projectionMatrix"),this.u_offsetScaleMatrix=t.getUniformLocation(e,"u_offsetScaleMatrix"),this.u_offsetRotateMatrix=t.getUniformLocation(e,"u_offsetRotateMatrix"),this.u_color=t.getUniformLocation(e,"u_color"),this.u_opacity=t.getUniformLocation(e,"u_opacity"),this.a_position=t.getAttribLocation(e,"a_position")},Jh=function(t){this.first_,this.last_,this.head_,this.circular_=void 0===t||t,this.length_=0};Jh.prototype.insertItem=function(t){var e={prev:void 0,next:void 0,data:t},i=this.head_;if(i){var r=i.next;e.prev=i,e.next=r,i.next=e,r&&(r.prev=e),i===this.last_&&(this.last_=e)}else this.first_=e,this.last_=e,this.circular_&&(e.next=e,e.prev=e);this.head_=e,this.length_++},Jh.prototype.removeItem=function(){var t=this.head_;if(t){var e=t.next,i=t.prev;e&&(e.prev=i),i&&(i.next=e),this.head_=e||i,this.first_===this.last_?(this.head_=void 0,this.first_=void 0,this.last_=void 0):this.first_===t?this.first_=this.head_:this.last_===t&&(this.last_=i?this.head_.prev:this.head_),this.length_--}},Jh.prototype.firstItem=function(){if(this.head_=this.first_,this.head_)return this.head_.data},Jh.prototype.lastItem=function(){if(this.head_=this.last_,this.head_)return this.head_.data},Jh.prototype.nextItem=function(){if(this.head_&&this.head_.next)return this.head_=this.head_.next,this.head_.data},Jh.prototype.getNextItem=function(){if(this.head_&&this.head_.next)return this.head_.next.data},Jh.prototype.prevItem=function(){if(this.head_&&this.head_.prev)return this.head_=this.head_.prev,this.head_.data},Jh.prototype.getPrevItem=function(){if(this.head_&&this.head_.prev)return this.head_.prev.data},Jh.prototype.getCurrItem=function(){if(this.head_)return this.head_.data},Jh.prototype.setFirstItem=function(){this.circular_&&this.head_&&(this.first_=this.head_,this.last_=this.head_.prev)},Jh.prototype.concat=function(t){if(t.head_){if(this.head_){var e=this.head_.next;this.head_.next=t.first_,t.first_.prev=this.head_,e.prev=t.last_,t.last_.next=e,this.length_+=t.length_}else this.head_=t.head_,this.first_=t.first_,this.last_=t.last_,this.length_=t.length_;t.head_=void 0,t.first_=void 0,t.last_=void 0,t.length_=0}},Jh.prototype.getLength=function(){return this.length_};var Qh=Jh,$h=function(t){this.rbush_=ua()(t,void 0),this.items_={}};$h.prototype.insert=function(t,e){var i={minX:t[0],minY:t[1],maxX:t[2],maxY:t[3],value:e};this.rbush_.insert(i),this.items_[o(e)]=i},$h.prototype.load=function(t,e){for(var i=new Array(e.length),r=0,n=e.length;r=s;o-=e)l=this.createPoint_(t[o],t[o+1],p++),d.push(this.insertItem_(h,l,i)),c.push([Math.min(h.x,l.x),Math.min(h.y,l.y),Math.max(h.x,l.x),Math.max(h.y,l.y)]),h=l;d.push(this.insertItem_(l,a,i)),c.push([Math.min(h.x,l.x),Math.min(h.y,l.y),Math.max(h.x,l.x),Math.max(h.y,l.y)])}r.load(c,d)},e.prototype.getMaxCoords_=function(t){var e=t.firstItem(),i=e,r=[i.p0.x,i.p0.y];do{(i=t.nextItem()).p0.x>r[0]&&(r=[i.p0.x,i.p0.y])}while(i!==e);return r},e.prototype.classifyPoints_=function(t,e,i){var r=t.firstItem(),n=r,o=t.nextItem(),s=!1;do{var a=i?xh(o.p1.x,o.p1.y,n.p1.x,n.p1.y,n.p0.x,n.p0.y):xh(n.p0.x,n.p0.y,n.p1.x,n.p1.y,o.p1.x,o.p1.y);void 0===a?(this.removeItem_(n,o,t,e),s=!0,o===r&&(r=t.getNextItem()),o=n,t.prevItem()):n.p1.reflex!==a&&(n.p1.reflex=a,s=!0),n=o,o=t.nextItem()}while(n!==r);return s},e.prototype.bridgeHole_=function(t,e,i,r,n){for(var o=t.firstItem();o.p1.x!==e;)o=t.nextItem();var s,a,h,l,u=o.p1,p={x:r,y:u.y,i:-1},c=1/0,d=this.getIntersections_({p0:u,p1:p},n,!0);for(s=0,a=d.length;s0){var y=this.getPointsInTriangle_(u,l,o.p1,n);if(y.length){var v=1/0;for(s=0,a=y.length;s3;)if(r){if(!this.clipEars_(t,e,r,i)&&!this.classifyPoints_(t,e,i)&&!this.resolveSelfIntersections_(t,e,!0))break}else if(!this.clipEars_(t,e,r,i)&&!this.classifyPoints_(t,e,i)&&!this.resolveSelfIntersections_(t,e)){if(!(r=this.isSimple_(t,e))){this.splitPolygon_(t,e);break}i=!this.isClockwise_(t),this.classifyPoints_(t,e,i)}if(3===t.getLength()){var n=this.indices.length;this.indices[n++]=t.getPrevItem().p0.i,this.indices[n++]=t.getCurrItem().p0.i,this.indices[n++]=t.getNextItem().p0.i}},e.prototype.clipEars_=function(t,e,i,r){var n,o,s,a=this.indices.length,h=t.firstItem(),l=t.getPrevItem(),u=h,p=t.nextItem(),c=t.getNextItem(),d=!1;do{if(n=u.p0,o=u.p1,s=p.p1,!1===o.reflex){var f=void 0;f=i?0===this.getPointsInTriangle_(n,o,s,e,!0).length:r?this.diagonalIsInside_(c.p1,s,o,n,l.p0):this.diagonalIsInside_(l.p0,n,o,s,c.p1),(i||0===this.getIntersections_({p0:n,p1:s},e).length)&&f&&(i||!1===n.reflex||!1===s.reflex||Si([l.p0.x,l.p0.y,n.x,n.y,o.x,o.y,s.x,s.y,c.p1.x,c.p1.y],0,10,2)===!r)&&(this.indices[a++]=n.i,this.indices[a++]=o.i,this.indices[a++]=s.i,this.removeItem_(u,p,t,e),p===h&&(h=c),d=!0)}l=t.getPrevItem(),u=t.getCurrItem(),p=t.nextItem(),c=t.getNextItem()}while(u!==h&&t.getLength()>3);return d},e.prototype.resolveSelfIntersections_=function(t,e,i){var r=t.firstItem();t.nextItem();var n=r,o=t.nextItem(),s=!1;do{var a=this.calculateIntersection_(n.p0,n.p1,o.p0,o.p1,i);if(a){var h=!1,l=this.vertices.length,u=this.indices.length,p=l/2,c=t.prevItem();t.removeItem(),e.remove(c),h=c===r;var d=void 0;if(i?(a[0]===n.p0.x&&a[1]===n.p0.y?(t.prevItem(),d=n.p0,o.p0=d,e.remove(n),h=h||n===r):(d=o.p1,n.p1=d,e.remove(o),h=h||o===r),t.removeItem()):(d=this.createPoint_(a[0],a[1],p),n.p1=d,o.p0=d,e.update([Math.min(n.p0.x,n.p1.x),Math.min(n.p0.y,n.p1.y),Math.max(n.p0.x,n.p1.x),Math.max(n.p0.y,n.p1.y)],n),e.update([Math.min(o.p0.x,o.p1.x),Math.min(o.p0.y,o.p1.y),Math.max(o.p0.x,o.p1.x),Math.max(o.p0.y,o.p1.y)],o)),this.indices[u++]=c.p0.i,this.indices[u++]=c.p1.i,this.indices[u++]=d.i,s=!0,h)break}n=t.getPrevItem(),o=t.nextItem()}while(n!==r);return s},e.prototype.isSimple_=function(t,e){var i=t.firstItem(),r=i;do{if(this.getIntersections_(r,e).length)return!1;r=t.nextItem()}while(r!==i);return!0},e.prototype.isClockwise_=function(t){var e=2*t.getLength(),i=new Array(e),r=t.firstItem(),n=r,o=0;do{i[o++]=n.p0.x,i[o++]=n.p0.y,n=t.nextItem()}while(n!==r);return Si(i,0,e,2)},e.prototype.splitPolygon_=function(t,e){var i=t.firstItem(),r=i;do{var n=this.getIntersections_(r,e);if(n.length){var o=n[0],s=this.vertices.length/2,a=this.calculateIntersection_(r.p0,r.p1,o.p0,o.p1),h=this.createPoint_(a[0],a[1],s),l=new Qh,u=new tl;this.insertItem_(h,r.p1,l,u),r.p1=h,e.update([Math.min(r.p0.x,h.x),Math.min(r.p0.y,h.y),Math.max(r.p0.x,h.x),Math.max(r.p0.y,h.y)],r);for(var p=t.nextItem();p!==o;)this.insertItem_(p.p0,p.p1,l,u),e.remove(p),t.removeItem(),p=t.getCurrItem();this.insertItem_(o.p0,h,l,u),o.p0=h,e.update([Math.min(o.p1.x,h.x),Math.min(o.p1.y,h.y),Math.max(o.p1.x,h.x),Math.max(o.p1.y,h.y)],o),this.classifyPoints_(t,e,!1),this.triangulate_(t,e),this.classifyPoints_(l,u,!1),this.triangulate_(l,u);break}r=t.nextItem()}while(r!==i)},e.prototype.createPoint_=function(t,e,i){var r=this.vertices.length;return this.vertices[r++]=t,this.vertices[r++]=e,{x:t,y:e,i:i,reflex:void 0}},e.prototype.insertItem_=function(t,e,i,r){var n={p0:t,p1:e};return i.insertItem(n),r&&r.insert([Math.min(t.x,e.x),Math.min(t.y,e.y),Math.max(t.x,e.x),Math.max(t.y,e.y)],n),n},e.prototype.removeItem_=function(t,e,i,r){i.getCurrItem()===e&&(i.removeItem(),t.p1=e.p1,r.remove(e),r.update([Math.min(t.p0.x,t.p1.x),Math.min(t.p0.y,t.p1.y),Math.max(t.p0.x,t.p1.x),Math.max(t.p0.y,t.p1.y)],t))},e.prototype.getPointsInTriangle_=function(t,e,i,r,n){for(var o=[],s=r.getInExtent([Math.min(t.x,e.x,i.x),Math.min(t.y,e.y,i.y),Math.max(t.x,e.x,i.x),Math.max(t.y,e.y,i.y)]),a=0,h=s.length;amh&&s<1-mh&&a>mh&&a<1-mh||n&&s>=0&&s<=1&&a>=0&&a<=1)return[t.x+s*(e.x-t.x),t.y+s*(e.y-t.y)]}},e.prototype.diagonalIsInside_=function(t,e,i,r,n){if(void 0===e.reflex||void 0===r.reflex)return!1;var o=(i.x-r.x)*(e.y-r.y)>(i.y-r.y)*(e.x-r.x),s=(n.x-r.x)*(e.y-r.y)<(n.y-r.y)*(e.x-r.x),a=(t.x-e.x)*(r.y-e.y)>(t.y-e.y)*(r.x-e.x),h=(i.x-e.x)*(r.y-e.y)<(i.y-e.y)*(r.x-e.x),l=r.reflex?s||o:s&&o,u=e.reflex?h||a:h&&a;return l&&u},e.prototype.drawMultiPolygon=function(t,e){var i,r,n,o,s=t.getEndss(),a=t.getStride(),h=this.indices.length,l=this.lineStringReplay.getCurrentIndex(),u=t.getFlatCoordinates(),p=0;for(i=0,r=s.length;i0){var d=Dt(u,p,c[0],a,-this.origin[0],-this.origin[1]);if(d.length){var f=[],_=void 0;for(n=1,o=c.length;nh&&(this.startIndices.push(h),this.startIndicesFeature.push(e),this.state_.changed&&(this.styleIndices_.push(h),this.state_.changed=!1)),this.lineStringReplay.getCurrentIndex()>l&&this.lineStringReplay.setPolygonStyle(e,l)},e.prototype.drawPolygon=function(t,e){var i=t.getEnds(),r=t.getStride();if(i.length>0){var n=t.getFlatCoordinates().map(Number),o=Dt(n,0,i[0],r,-this.origin[0],-this.origin[1]);if(o.length){var s,a,h,l=[];for(s=1,a=i.length;s0&&(this.styles_=[]),this.vertices=null,this.indices=null},e.prototype.getDeleteResourcesFunction=function(t){var e=this.verticesBuffer,i=this.indicesBuffer,r=this.lineStringReplay.getDeleteResourcesFunction(t);return function(){t.deleteBuffer(e),t.deleteBuffer(i),r()}},e.prototype.setUpProgram=function(t,e,i,r){var n,o=e.getProgram(Hh,Zh);return this.defaultLocations_?n=this.defaultLocations_:(n=new qh(t,o),this.defaultLocations_=n),e.useProgram(o),t.enableVertexAttribArray(n.a_position),t.vertexAttribPointer(n.a_position,2,5126,!1,8,0),n},e.prototype.shutDownProgram=function(t,e){t.disableVertexAttribArray(e.a_position)},e.prototype.drawReplay=function(t,e,i,r){var n,o,s,a,h=t.getParameter(t.DEPTH_FUNC),l=t.getParameter(t.DEPTH_WRITEMASK);if(r||(t.enable(t.DEPTH_TEST),t.depthMask(!0),t.depthFunc(t.NOTEQUAL)),d(i))for(s=this.startIndices[this.startIndices.length-1],n=this.styleIndices_.length-1;n>=0;--n)o=this.styleIndices_[n],a=this.styles_[n],this.setFillStyle_(t,a),this.drawElements(t,e,o,s),s=o;else this.drawReplaySkipping_(t,e,i);r||(t.disable(t.DEPTH_TEST),t.clear(t.DEPTH_BUFFER_BIT),t.depthMask(l),t.depthFunc(h))},e.prototype.drawHitDetectionReplayOneByOne=function(t,e,i,r,n){var s,a,h,l,u,p,c;for(c=this.startIndices.length-2,h=this.startIndices[c+1],s=this.styleIndices_.length-1;s>=0;--s)for(l=this.styles_[s],this.setFillStyle_(t,l),u=this.styleIndices_[s];c>=0&&this.startIndices[c]>=u;){if(a=this.startIndices[c],void 0===i[o(p=this.startIndicesFeature[c])]&&p.getGeometry()&&(void 0===n||Pt(n,p.getGeometry().getExtent()))){t.clear(t.COLOR_BUFFER_BIT|t.DEPTH_BUFFER_BIT),this.drawElements(t,e,a,h);var d=r(p);if(d)return d}c--,h=a}},e.prototype.drawReplaySkipping_=function(t,e,i){var r,n,s,a,h,l,u;for(l=this.startIndices.length-2,s=n=this.startIndices[l+1],r=this.styleIndices_.length-1;r>=0;--r){for(a=this.styles_[r],this.setFillStyle_(t,a),h=this.styleIndices_[r];l>=0&&this.startIndices[l]>=h;)u=this.startIndices[l],i[o(this.startIndicesFeature[l])]&&(n!==s&&(this.drawElements(t,e,n,s),t.clear(t.DEPTH_BUFFER_BIT)),s=u),l--,n=u;n!==s&&(this.drawElements(t,e,n,s),t.clear(t.DEPTH_BUFFER_BIT)),n=s=h}},e.prototype.setFillStyle_=function(t,e){t.uniform4fv(this.defaultLocations_.u_color,e)},e.prototype.setFillStrokeStyle=function(t,e){var i=t?t.getColor():[0,0,0,0];if(i=i instanceof CanvasGradient||i instanceof CanvasPattern?gh:_r(i).map(function(t,e){return 3!=e?t/255:t})||gh,this.state_.fillColor&&Z(i,this.state_.fillColor)||(this.state_.fillColor=i,this.state_.changed=!0,this.styles_.push(i)),e)this.lineStringReplay.setFillStrokeStyle(null,e);else{var r=new Er({color:[0,0,0,0],width:0});this.lineStringReplay.setFillStrokeStyle(null,r)}},e}(_h),il=function(t,e){this.space_=e,this.emptyBlocks_=[{x:0,y:0,width:t,height:t}],this.entries_={},this.context_=Jn(t,t),this.canvas_=this.context_.canvas};il.prototype.get=function(t){return this.entries_[t]||null},il.prototype.add=function(t,e,i,r,n){for(var o=0,s=this.emptyBlocks_.length;o=e+this.space_&&a.height>=i+this.space_){var h={offsetX:a.x+this.space_,offsetY:a.y+this.space_,image:this.canvas_};return this.entries_[t]=h,r.call(n,this.context_,a.x+this.space_,a.y+this.space_),this.split_(o,a,e+this.space_,i+this.space_),h}}return null},il.prototype.split_=function(t,e,i,r){var n,o;e.width-i>e.height-r?(n={x:e.x+i,y:e.y,width:e.width-i,height:e.height},o={x:e.x,y:e.y+r,width:i,height:e.height-r},this.updateBlocks_(t,n,o)):(n={x:e.x+i,y:e.y,width:e.width-i,height:r},o={x:e.x,y:e.y+r,width:e.width,height:e.height-r},this.updateBlocks_(t,n,o))},il.prototype.updateBlocks_=function(t,e,i){var r=[t,1];e.width>0&&e.height>0&&r.push(e),i.width>0&&i.height>0&&r.push(i),this.emptyBlocks_.splice.apply(this.emptyBlocks_,r)};var rl=il,nl=function(t){var e=t||{};this.currentSize_=void 0!==e.initialSize?e.initialSize:256,this.maxSize_=void 0!==e.maxSize?e.maxSize:void 0!==nh?nh:2048,this.space_=void 0!==e.space?e.space:1,this.atlases_=[new rl(this.currentSize_,this.space_)],this.currentHitSize_=this.currentSize_,this.hitAtlases_=[new rl(this.currentHitSize_,this.space_)]};nl.prototype.getInfo=function(t){var e=this.getInfo_(this.atlases_,t);if(!e)return null;var i=this.getInfo_(this.hitAtlases_,t);return this.mergeInfos_(e,i)},nl.prototype.getInfo_=function(t,e){for(var i=0,r=t.length;ithis.maxSize_||i+this.space_>this.maxSize_)return null;var s=this.add_(!1,t,e,i,r,o);if(!s)return null;var a=void 0!==n?n:I,h=this.add_(!0,t,e,i,a,o);return this.mergeInfos_(s,h)},nl.prototype.add_=function(t,e,i,r,n,o){var s,a,h,l,u=t?this.hitAtlases_:this.atlases_;for(h=0,l=u.length;h=0;--d)if(void 0!==(_=f[Ea[d]])&&(g=_.replay(t,e,i,r,n,o,s,a,h,l,u)))return g},e.prototype.forEachFeatureAtCoordinate=function(t,e,i,r,n,o,s,a,h,l){var u,p=e.getGL();return p.bindFramebuffer(p.FRAMEBUFFER,e.getHitDetectionFramebuffer()),void 0!==this.renderBuffer_&&(u=et(pt(t),r*this.renderBuffer_)),this.replayHitDetection_(e,t,r,n,al,s,a,h,function(t){var e=new Uint8Array(4);if(p.readPixels(0,0,1,1,p.RGBA,p.UNSIGNED_BYTE,e),e[3]>0){var i=l(t);if(i)return i}},!0,u)},e.prototype.hasFeatureAtCoordinate=function(t,e,i,r,n,o,s,a,h){var l=e.getGL();return l.bindFramebuffer(l.FRAMEBUFFER,e.getHitDetectionFramebuffer()),void 0!==this.replayHitDetection_(e,t,r,n,al,s,a,h,function(t){var e=new Uint8Array(4);return l.readPixels(0,0,1,1,l.RGBA,l.UNSIGNED_BYTE,e),e[3]>0},!1)},e}(ca),ul=function(t){function e(e,i,r,n,o,s,a){t.call(this),this.context_=e,this.center_=i,this.extent_=s,this.pixelRatio_=a,this.size_=o,this.rotation_=n,this.resolution_=r,this.imageStyle_=null,this.fillStyle_=null,this.strokeStyle_=null,this.textStyle_=null}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.drawText_=function(t,e){var i=this.context_,r=t.getReplay(0,da.TEXT);r.setTextStyle(this.textStyle_),r.drawText(e,null),r.finish(i);r.replay(this.context_,this.center_,this.resolution_,this.rotation_,this.size_,this.pixelRatio_,1,{},void 0,!1),r.getDeleteResourcesFunction(i)()},e.prototype.setStyle=function(t){this.setFillStrokeStyle(t.getFill(),t.getStroke()),this.setImageStyle(t.getImage()),this.setTextStyle(t.getText())},e.prototype.drawGeometry=function(t){switch(t.getType()){case Nt.POINT:this.drawPoint(t,null);break;case Nt.LINE_STRING:this.drawLineString(t,null);break;case Nt.POLYGON:this.drawPolygon(t,null);break;case Nt.MULTI_POINT:this.drawMultiPoint(t,null);break;case Nt.MULTI_LINE_STRING:this.drawMultiLineString(t,null);break;case Nt.MULTI_POLYGON:this.drawMultiPolygon(t,null);break;case Nt.GEOMETRY_COLLECTION:this.drawGeometryCollection(t,null);break;case Nt.CIRCLE:this.drawCircle(t,null)}},e.prototype.drawFeature=function(t,e){var i=e.getGeometryFunction()(t);i&&Pt(this.extent_,i.getExtent())&&(this.setStyle(e),this.drawGeometry(i))},e.prototype.drawGeometryCollection=function(t,e){var i,r,n=t.getGeometriesArray();for(i=0,r=n.length;in[0]||o[1]<0||o[1]>n[1])){this.hitCanvasContext_||(this.hitCanvasContext_=Jn(1,1)),this.hitCanvasContext_.clearRect(0,0,1,1),this.hitCanvasContext_.drawImage(this.image_.getImage(),o[0],o[1],1,1,0,0,1,1);var s=this.hitCanvasContext_.getImageData(0,0,1,1).data;return s[3]>0?i.call(r,this.getLayer(),s):void 0}}},e.prototype.getHitTransformationMatrix_=function(t,e){var i=[1,0,0,1,0,0];Ue(i,-1,-1),je(i,2/t[0],2/t[1]),Ue(i,0,t[1]),je(i,1,-1);var r=Be(this.projectionMatrix.slice()),n=[1,0,0,1,0,0];return Ue(n,0,e[1]),je(n,1,-1),je(n,e[0]/2,e[1]/2),Ue(n,1,1),Ae(n,r),Ae(n,i),n},e}(fl);_l.handles=function(t){return t.getType()===Ss.IMAGE},_l.create=function(t,e){return new _l(t,e)};var gl=_l,yl=function(t){function e(e){t.call(this,e);var i=e.getViewport();this.canvas_=document.createElement("canvas"),this.canvas_.style.width="100%",this.canvas_.style.height="100%",this.canvas_.style.display="block",this.canvas_.className=fo,i.insertBefore(this.canvas_,i.childNodes[0]||null),this.clipTileCanvasWidth_=0,this.clipTileCanvasHeight_=0,this.clipTileContext_=Jn(),this.renderedVisible_=!0,this.gl_=rh(this.canvas_,{antialias:!0,depth:!0,failIfMajorPerformanceCaveat:!0,preserveDrawingBuffer:!1,stencil:!0}),this.context_=new Mh(this.canvas_,this.gl_),v(this.canvas_,Lh.LOST,this.handleWebGLContextLost,this),v(this.canvas_,Lh.RESTORED,this.handleWebGLContextRestored,this),this.textureCache_=new Rs,this.focus_=null,this.tileTextureQueue_=new bn(function(t){var e=t[1],i=t[2],r=e[0]-this.focus_[0],n=e[1]-this.focus_[1];return 65536*Math.log(i)+Math.sqrt(r*r+n*n)/i}.bind(this),function(t){return t[0].getKey()}),this.loadNextTileTexture_=function(t,e){if(!this.tileTextureQueue_.isEmpty()){this.tileTextureQueue_.reprioritize();var i=this.tileTextureQueue_.dequeue(),r=i[0],n=i[3],o=i[4];this.bindTileTexture(r,n,o,Qa,Qa)}return!1}.bind(this),this.textureCacheFrameMarkerCount_=0,this.initializeGL_()}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.bindTileTexture=function(t,e,i,r,n){var o=this.getGL(),s=t.getKey();if(this.textureCache_.containsKey(s)){var a=this.textureCache_.get(s);o.bindTexture(eh,a.texture),a.magFilter!=r&&(o.texParameteri(eh,10240,r),a.magFilter=r),a.minFilter!=n&&(o.texParameteri(eh,10241,n),a.minFilter=n)}else{var h=o.createTexture(),l=t;if(o.bindTexture(eh,h),i>0){var u=this.clipTileContext_.canvas,p=this.clipTileContext_;this.clipTileCanvasWidth_!==e[0]||this.clipTileCanvasHeight_!==e[1]?(u.width=e[0],u.height=e[1],this.clipTileCanvasWidth_=e[0],this.clipTileCanvasHeight_=e[1]):p.clearRect(0,0,e[0],e[1]),p.drawImage(l.getImage(),i,i,e[0],e[1],0,0,e[0],e[1]),o.texImage2D(eh,0,6408,6408,5121,u)}else o.texImage2D(eh,0,6408,6408,5121,l.getImage());o.texParameteri(eh,10240,r),o.texParameteri(eh,10241,n),o.texParameteri(eh,$a,33071),o.texParameteri(eh,th,33071),this.textureCache_.set(s,{texture:h,magFilter:r,minFilter:n})}},e.prototype.dispatchRenderEvent=function(t,e){var i=this.getMap();if(i.hasListener(t)){var r=this.context_,n=e.extent,o=e.size,s=e.viewState,a=e.pixelRatio,h=s.resolution,l=s.center,u=s.rotation,p=new ul(r,l,h,u,o,n,a),c=new Cs(t,p,e,null,r);i.dispatchEvent(c)}},e.prototype.disposeInternal=function(){var e=this.getGL();e.isContextLost()||this.textureCache_.forEach(function(t){t&&e.deleteTexture(t.texture)}),this.context_.dispose(),t.prototype.disposeInternal.call(this)},e.prototype.expireCache_=function(t,e){for(var i,r=this.getGL();this.textureCache_.getCount()-this.textureCacheFrameMarkerCount_>1024;){if(i=this.textureCache_.peekLast())r.deleteTexture(i.texture);else{if(+this.textureCache_.peekLastKey()==e.index)break;--this.textureCacheFrameMarkerCount_}this.textureCache_.pop()}},e.prototype.getContext=function(){return this.context_},e.prototype.getGL=function(){return this.gl_},e.prototype.getTileTextureQueue=function(){return this.tileTextureQueue_},e.prototype.handleWebGLContextLost=function(t){t.preventDefault(),this.textureCache_.clear(),this.textureCacheFrameMarkerCount_=0;var e=this.getLayerRenderers();for(var i in e){e[i].handleWebGLContextLost()}},e.prototype.handleWebGLContextRestored=function(){this.initializeGL_(),this.getMap().render()},e.prototype.initializeGL_=function(){var t=this.gl_;t.activeTexture(33984),t.blendFuncSeparate(770,771,1,771),t.disable(2884),t.disable(2929),t.disable(3089),t.disable(2960)},e.prototype.isTileTextureLoaded=function(t){return this.textureCache_.containsKey(t.getKey())},e.prototype.renderFrame=function(t){var e=this.getContext(),i=this.getGL();if(i.isContextLost())return!1;if(!t)return this.renderedVisible_&&(this.canvas_.style.display="none",this.renderedVisible_=!1),!1;this.focus_=t.focus,this.textureCache_.set((-t.index).toString(),null),++this.textureCacheFrameMarkerCount_,this.dispatchRenderEvent(ur.PRECOMPOSE,t);var r=[],n=t.layerStatesArray;q(n,Zs);var o,s,a=t.viewState.resolution;for(o=0,s=n.length;o1024&&t.postRenderFunctions.push(this.expireCache_.bind(this)),this.tileTextureQueue_.isEmpty()||(t.postRenderFunctions.push(this.loadNextTileTexture_),t.animate=!0),this.dispatchRenderEvent(ur.POSTCOMPOSE,t),this.scheduleRemoveUnusedLayerRenderers(t),this.scheduleExpireIconCache(t)},e.prototype.forEachFeatureAtCoordinate=function(t,e,i,r,n,o,s){var a;if(this.getGL().isContextLost())return!1;var h,l=e.viewState,u=e.layerStatesArray;for(h=u.length-1;h>=0;--h){var p=u[h],c=p.layer;if(mo(p,l.resolution)&&o.call(s,c))if(a=this.getLayerRenderer(c).forEachFeatureAtCoordinate(t,e,i,r))return a}},e.prototype.hasFeatureAtCoordinate=function(t,e,i,r,n){var o=!1;if(this.getGL().isContextLost())return!1;var s,a=e.viewState,h=e.layerStatesArray;for(s=h.length-1;s>=0;--s){var l=h[s],u=l.layer;if(mo(l,a.resolution)&&r.call(n,u))if(o=this.getLayerRenderer(u).hasFeatureAtCoordinate(t,e))return!0}return o},e.prototype.forEachLayerAtPixel=function(t,e,i,r,n,o,s){if(this.getGL().isContextLost())return!1;var a,h,l=e.viewState,u=e.layerStatesArray;for(h=u.length-1;h>=0;--h){var p=u[h],c=p.layer;if(mo(p,l.resolution)&&o.call(n,c))if(a=this.getLayerRenderer(c).forEachLayerAtPixel(t,e,r,n))return a}},e}(qs),vl=function(t){function e(e,i,r){t.call(this);var n=r||{};this.tileCoord=e,this.state=i,this.interimTile=null,this.key="",this.transition_=void 0===n.transition?250:n.transition,this.transitionStarts_={}}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.changed=function(){this.dispatchEvent(M.CHANGE)},e.prototype.getKey=function(){return this.key+"/"+this.tileCoord},e.prototype.getInterimTile=function(){if(!this.interimTile)return this;var t=this.interimTile;do{if(t.getState()==On.LOADED)return t;t=t.interimTile}while(t);return this},e.prototype.refreshInterimChain=function(){if(this.interimTile){var t=this.interimTile,e=this;do{if(t.getState()==On.LOADED){t.interimTile=null;break}t.getState()==On.LOADING?e=t:t.getState()==On.IDLE?e.interimTile=t.interimTile:e=t,t=e.interimTile}while(t)}},e.prototype.getTileCoord=function(){return this.tileCoord},e.prototype.getState=function(){return this.state},e.prototype.setState=function(t){this.state=t,this.changed()},e.prototype.load=function(){},e.prototype.getAlpha=function(t,e){if(!this.transition_)return 1;var i=this.transitionStarts_[t];if(i){if(-1===i)return 1}else i=e,this.transitionStarts_[t]=i;var r=e-i+1e3/60;return r>=this.transition_?1:Vn(r/this.transition_)},e.prototype.inTransition=function(t){return!!this.transition_&&-1!==this.transitionStarts_[t]},e.prototype.endTransition=function(t){this.transition_&&(this.transitionStarts_[t]=-1)},e}(b);function ml(){var t=Jn(1,1);return t.fillStyle="rgba(0,0,0,0)",t.fillRect(0,0,1,1),t.canvas}var xl=function(t){function e(e,i,r,n,o,s){t.call(this,e,i,s),this.crossOrigin_=n,this.src_=r,this.image_=new Image,null!==n&&(this.image_.crossOrigin=n),this.imageListenerKeys_=null,this.tileLoadFunction_=o}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.disposeInternal=function(){this.state==On.LOADING&&(this.unlistenImage_(),this.image_=ml()),this.interimTile&&this.interimTile.dispose(),this.state=On.ABORT,this.changed(),t.prototype.disposeInternal.call(this)},e.prototype.getImage=function(){return this.image_},e.prototype.getKey=function(){return this.src_},e.prototype.handleImageError_=function(){this.state=On.ERROR,this.unlistenImage_(),this.image_=ml(),this.changed()},e.prototype.handleImageLoad_=function(){var t=this.image_;t.naturalWidth&&t.naturalHeight?this.state=On.LOADED:this.state=On.EMPTY,this.unlistenImage_(),this.changed()},e.prototype.load=function(){this.state==On.ERROR&&(this.state=On.IDLE,this.image_=new Image,null!==this.crossOrigin_&&(this.image_.crossOrigin=this.crossOrigin_)),this.state==On.IDLE&&(this.state=On.LOADING,this.changed(),this.imageListenerKeys_=[m(this.image_,M.ERROR,this.handleImageError_,this),m(this.image_,M.LOAD,this.handleImageLoad_,this)],this.tileLoadFunction_(this,this.src_))},e.prototype.unlistenImage_=function(){this.imageListenerKeys_.forEach(E),this.imageListenerKeys_=null},e}(vl);function El(t,e,i,r){return void 0!==r?(r[0]=t,r[1]=e,r[2]=i,r):[t,e,i]}function Sl(t,e,i){return t+"/"+e+"/"+i}function Tl(t){return Sl(t[0],t[1],t[2])}function Cl(t){return(t[1]<0||i&&0===o)})}(this.resolutions_,function(t,e){return e-t},!0),17),!t.origins)for(var i=0,r=this.resolutions_.length-1;i=this.minZoom;){if(o=2===this.zoomFactor_?oa(s=Math.floor(s/2),s,a=Math.floor(a/2),a,r):this.getTileRangeForExtentAndZ(h,l,r),e.call(i,l,o))return!0;--l}return!1},Ol.prototype.getExtent=function(){return this.extent_},Ol.prototype.getMaxZoom=function(){return this.maxZoom},Ol.prototype.getMinZoom=function(){return this.minZoom},Ol.prototype.getOrigin=function(t){return this.origin_?this.origin_:this.origins_[t]},Ol.prototype.getResolution=function(t){return this.resolutions_[t]},Ol.prototype.getResolutions=function(){return this.resolutions_},Ol.prototype.getTileCoordChildTileRange=function(t,e,i){if(t[0]i||i>e.getMaxZoom())return!1;var o,s=e.getExtent();return!(o=s?e.getTileRangeForExtentAndZ(s,i):e.getFullTileRange(i))||o.containsXY(r,n)}(t,r)?t:null},e.prototype.refresh=function(){this.tileCache.clear(),this.changed()},e.prototype.useTile=function(t,e,i,r){},e}(Il),kl=function(t){function e(e,i){t.call(this,e),this.tile=i}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e}(P),jl=Dl,Ul=new lh("precision mediump float;\nvarying vec2 v_texCoord;\n\n\nuniform sampler2D u_texture;\n\nvoid main(void) {\n gl_FragColor = texture2D(u_texture, v_texCoord);\n}\n"),Yl=new uh("varying vec2 v_texCoord;\n\n\nattribute vec2 a_position;\nattribute vec2 a_texCoord;\nuniform vec4 u_tileOffset;\n\nvoid main(void) {\n gl_Position = vec4(a_position * u_tileOffset.xy + u_tileOffset.zw, 0., 1.);\n v_texCoord = a_texCoord;\n}\n\n\n"),Bl=function(t,e){this.u_tileOffset=t.getUniformLocation(e,"u_tileOffset"),this.u_texture=t.getUniformLocation(e,"u_texture"),this.a_position=t.getAttribLocation(e,"a_position"),this.a_texCoord=t.getAttribLocation(e,"a_texCoord")},Vl=function(t){function e(e,i){t.call(this,e,i),this.fragmentShader_=Ul,this.vertexShader_=Yl,this.locations_=null,this.renderArrayBuffer_=new Th([0,0,0,1,1,0,1,1,0,1,0,0,1,1,1,0]),this.renderedTileRange_=null,this.renderedFramebufferExtent_=null,this.renderedRevision_=-1,this.tmpSize_=[0,0]}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.disposeInternal=function(){this.mapRenderer.getContext().deleteBuffer(this.renderArrayBuffer_),t.prototype.disposeInternal.call(this)},e.prototype.createLoadedTileFinder=function(t,e,i){var r=this.mapRenderer;return function(n,o){return t.forEachLoadedTile(e,n,o,function(t){var e=r.isTileTextureLoaded(t);return e&&(i[n]||(i[n]={}),i[n][t.tileCoord.toString()]=t),e})}},e.prototype.handleWebGLContextLost=function(){t.prototype.handleWebGLContextLost.call(this),this.locations_=null},e.prototype.prepareFrame=function(t,e,i){var r=this.mapRenderer,n=i.getGL(),o=t.viewState,s=o.projection,a=this.getLayer(),h=a.getSource();if(!(h instanceof jl))return!0;var l,u=h.getTileGridForProjection(s),p=u.getZForResolution(o.resolution),c=u.getResolution(p),d=h.getTilePixelSize(p,t.pixelRatio,s),f=d[0]/ho(u.getTileSize(p),this.tmpSize_)[0],_=c/f,g=h.getTilePixelRatio(f)*h.getGutterForProjection(s),y=o.center,v=t.extent,m=u.getTileRangeForExtentAndZ(v,p);if(this.renderedTileRange_&&this.renderedTileRange_.equals(m)&&this.renderedRevision_==h.getRevision())l=this.renderedFramebufferExtent_;else{var x=m.getSize(),E=function(t){return Y(00?i.call(r,this.getLayer(),h):void 0}},e}(fl);Vl.handles=function(t){return t.getType()===Ss.TILE},Vl.create=function(t,e){return new Vl(t,e)};var Xl=Vl,zl=function(t){function e(e,i){t.call(this,e,i),this.dirty_=!1,this.renderedRevision_=-1,this.renderedResolution_=NaN,this.renderedExtent_=[1/0,1/0,-1/0,-1/0],this.renderedRenderOrder_=null,this.replayGroup_=null,this.layerState_=null}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.composeFrame=function(t,e,i){this.layerState_=e;var r=t.viewState,n=this.replayGroup_,o=t.size,s=t.pixelRatio,a=this.mapRenderer.getGL();n&&!n.isEmpty()&&(a.enable(a.SCISSOR_TEST),a.scissor(0,0,o[0]*s,o[1]*s),n.replay(i,r.center,r.resolution,r.rotation,o,s,e.opacity,e.managed?t.skippedFeatureUids:{}),a.disable(a.SCISSOR_TEST))},e.prototype.disposeInternal=function(){var e=this.replayGroup_;if(e){var i=this.mapRenderer.getContext();e.getDeleteResourcesFunction(i)(),this.replayGroup_=null}t.prototype.disposeInternal.call(this)},e.prototype.forEachFeatureAtCoordinate=function(t,e,i,r,n){if(this.replayGroup_&&this.layerState_){var s=this.mapRenderer.getContext(),a=e.viewState,h=this.getLayer(),l=this.layerState_,u={};return this.replayGroup_.forEachFeatureAtCoordinate(t,s,a.center,a.resolution,a.rotation,e.size,e.pixelRatio,l.opacity,{},function(t){var e=o(t);if(!(e in u))return u[e]=!0,r.call(n,t,h)})}},e.prototype.hasFeatureAtCoordinate=function(t,e){if(this.replayGroup_&&this.layerState_){var i=this.mapRenderer.getContext(),r=e.viewState,n=this.layerState_;return this.replayGroup_.hasFeatureAtCoordinate(t,i,r.center,r.resolution,r.rotation,e.size,e.pixelRatio,n.opacity,e.skippedFeatureUids)}return!1},e.prototype.forEachLayerAtPixel=function(t,e,i,r){var n=De(e.pixelToCoordinateTransform,t.slice());return this.hasFeatureAtCoordinate(n,e)?i.call(r,this.getLayer(),null):void 0},e.prototype.handleStyleImageChange_=function(t){this.renderIfReadyAndVisible()},e.prototype.prepareFrame=function(t,e,i){var r=this.getLayer(),n=r.getSource(),o=t.viewHints[kn],s=t.viewHints[jn],a=r.getUpdateWhileAnimating(),h=r.getUpdateWhileInteracting();if(!this.dirty_&&!a&&o||!h&&s)return!0;var l=t.extent,u=t.viewState,p=u.projection,c=u.resolution,d=t.pixelRatio,f=r.getRevision(),_=r.getRenderBuffer(),g=r.getRenderOrder();void 0===g&&(g=Da);var y=et(l,_*c);if(!this.dirty_&&this.renderedResolution_==c&&this.renderedRevision_==f&&this.renderedRenderOrder_==g&&ot(this.renderedExtent_,y))return!0;this.replayGroup_&&t.postRenderFunctions.push(this.replayGroup_.getDeleteResourcesFunction(i)),this.dirty_=!1;var v=new ll(ja(c,d),y,r.getRenderBuffer());n.loadFeatures(y,c,p);var m=function(t){var e,i=t.getStyleFunction()||r.getStyleFunction();if(i&&(e=i(t,c)),e){var n=this.renderFeature(t,c,d,e,v);this.dirty_=this.dirty_||n}}.bind(this);if(g){var x=[];n.forEachFeatureInExtent(y,function(t){x.push(t)}),x.sort(g),x.forEach(m.bind(this))}else n.forEachFeatureInExtent(y,m);return v.finish(i),this.renderedResolution_=c,this.renderedRevision_=f,this.renderedRenderOrder_=g,this.renderedExtent_=y,this.replayGroup_=v,!0},e.prototype.renderFeature=function(t,e,i,r,n){if(!r)return!1;var o=!1;if(Array.isArray(r))for(var s=r.length-1;s>=0;--s)o=Ua(n,t,r[s],ka(e,i),this.handleStyleImageChange_,this)||o;else o=Ua(n,t,r,ka(e,i),this.handleStyleImageChange_,this)||o;return o},e}(fl);zl.handles=function(t){return t.getType()===Ss.VECTOR},zl.create=function(t,e){return new zl(t,e)};var Wl=zl,Kl=function(t){function e(e){(e=u({},e)).controls||(e.controls=wo()),e.interactions||(e.interactions=ys()),t.call(this,e)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.createRenderer=function(){var t=new yl(this);return t.registerLayerRenderers([gl,Xl,Wl]),t},e}(lo),Hl={ARRAY_BUFFER:"arraybuffer",JSON:"json",TEXT:"text",XML:"xml"};function Zl(t,e,i,r){return function(n,o,s){var a=new XMLHttpRequest;a.open("GET","function"==typeof t?t(n,o,s):t,!0),e.getType()==Hl.ARRAY_BUFFER&&(a.responseType="arraybuffer"),a.onload=function(t){if(!a.status||a.status>=200&&a.status<300){var n,o=e.getType();o==Hl.JSON||o==Hl.TEXT?n=a.responseText:o==Hl.XML?(n=a.responseXML)||(n=(new DOMParser).parseFromString(a.responseText,"application/xml")):o==Hl.ARRAY_BUFFER&&(n=a.response),n?i.call(this,e.readFeatures(n,{featureProjection:s}),e.readProjection(n),e.getLastExtent()):r.call(this)}else r.call(this)}.bind(this),a.onerror=function(){r.call(this)}.bind(this),a.send()}}function ql(t,e){return Zl(t,e,function(t,e){"function"==typeof this.addFeatures&&this.addFeatures(t)},I)}function Jl(t,e){return[[-1/0,-1/0,1/0,1/0]]}var Ql=document.implementation.createDocument("","",null),$l="http://www.w3.org/2001/XMLSchema-instance";function tu(t,e){return Ql.createElementNS(t,e)}function eu(t,e){return function t(e,i,r){if(e.nodeType==Node.CDATA_SECTION_NODE||e.nodeType==Node.TEXT_NODE)i?r.push(String(e.nodeValue).replace(/(\r\n|\r|\n)/g,"")):r.push(e.nodeValue);else{var n;for(n=e.firstChild;n;n=n.nextSibling)t(n,i,r)}return r}(t,e,[]).join("")}function iu(t){return"documentElement"in t}function ru(t){return(new DOMParser).parseFromString(t,"application/xml")}function nu(t,e){return function(i,r){var n=t.call(void 0!==e?e:this,i,r);void 0!==n&&K(r[r.length-1],n)}}function ou(t,e){return function(i,r){var n=t.call(void 0!==e?e:this,i,r);void 0!==n&&r[r.length-1].push(n)}}function su(t,e){return function(i,r){var n=t.call(void 0!==e?e:this,i,r);void 0!==n&&(r[r.length-1]=n)}}function au(t,e,i){return function(r,n){var o=t.call(void 0!==i?i:this,r,n);if(void 0!==o){var s=n[n.length-1],a=void 0!==e?e:r.localName;(a in s?s[a]:s[a]=[]).push(o)}}}function hu(t,e,i){return function(r,n){var o=t.call(void 0!==i?i:this,r,n);void 0!==o&&(n[n.length-1][void 0!==e?e:r.localName]=o)}}function lu(t,e){return function(i,r,n){t.call(void 0!==e?e:this,i,r,n),n[n.length-1].node.appendChild(i)}}function uu(t,e){var i,r;return function(e,n,o){if(void 0===i){i={};var s={};s[e.localName]=t,i[e.namespaceURI]=s,r=pu(e.localName)}yu(i,r,n,o)}}function pu(t,e){var i=t;return function(t,r,n){var o=r[r.length-1].node,s=i;return void 0===s&&(s=n),tu(void 0!==e?e:o.namespaceURI,s)}}var cu=pu();function du(t,e){for(var i=e.length,r=new Array(i),n=0;n0)||H(h,function(i){return e.Identifier==i.TileMatrix||-1===e.Identifier.indexOf(":")&&t.Identifier+":"+e.Identifier===i.TileMatrix})){n.push(e.Identifier);var i=28e-5*e.ScaleDenominator/p,l=e.TileWidth,u=e.TileHeight;c?o.push([e.TopLeftCorner[1],e.TopLeftCorner[0]]):o.push(e.TopLeftCorner),r.push(i),s.push(l==u?l:[l,u]),a.push([e.MatrixWidth,-e.MatrixHeight])}}),new mu({extent:e,origins:o,resolutions:r,matrixIds:n,tileSizes:s,sizes:a})}var Su=function(t){this.opacity_=t.opacity,this.rotateWithView_=t.rotateWithView,this.rotation_=t.rotation,this.scale_=t.scale};Su.prototype.clone=function(){return new Su({opacity:this.getOpacity(),scale:this.getScale(),rotation:this.getRotation(),rotateWithView:this.getRotateWithView()})},Su.prototype.getOpacity=function(){return this.opacity_},Su.prototype.getRotateWithView=function(){return this.rotateWithView_},Su.prototype.getRotation=function(){return this.rotation_},Su.prototype.getScale=function(){return this.scale_},Su.prototype.getSnapToPixel=function(){return!1},Su.prototype.getAnchor=function(){return r()},Su.prototype.getImage=function(t){return r()},Su.prototype.getHitDetectionImage=function(t){return r()},Su.prototype.getImageState=function(){return r()},Su.prototype.getImageSize=function(){return r()},Su.prototype.getHitDetectionImageSize=function(){return r()},Su.prototype.getOrigin=function(){return r()},Su.prototype.getSize=function(){return r()},Su.prototype.setOpacity=function(t){this.opacity_=t},Su.prototype.setRotateWithView=function(t){this.rotateWithView_=t},Su.prototype.setRotation=function(t){this.rotation_=t},Su.prototype.setScale=function(t){this.scale_=t},Su.prototype.setSnapToPixel=function(t){},Su.prototype.listenImageChange=function(t,e){return r()},Su.prototype.load=function(){r()},Su.prototype.unlistenImageChange=function(t,e){r()};var Tu=Su,Cu=function(t){function e(e){var i=void 0!==e.rotateWithView&&e.rotateWithView;t.call(this,{opacity:1,rotateWithView:i,rotation:void 0!==e.rotation?e.rotation:0,scale:1}),this.checksums_=null,this.canvas_=null,this.hitDetectionCanvas_=null,this.fill_=void 0!==e.fill?e.fill:null,this.origin_=[0,0],this.points_=e.points,this.radius_=void 0!==e.radius?e.radius:e.radius1,this.radius2_=e.radius2,this.angle_=void 0!==e.angle?e.angle:0,this.stroke_=void 0!==e.stroke?e.stroke:null,this.anchor_=null,this.size_=null,this.imageSize_=null,this.hitDetectionImageSize_=null,this.atlasManager_=e.atlasManager,this.render_(this.atlasManager_)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.clone=function(){var t=new e({fill:this.getFill()?this.getFill().clone():void 0,points:this.getPoints(),radius:this.getRadius(),radius2:this.getRadius2(),angle:this.getAngle(),stroke:this.getStroke()?this.getStroke().clone():void 0,rotation:this.getRotation(),rotateWithView:this.getRotateWithView(),atlasManager:this.atlasManager_});return t.setOpacity(this.getOpacity()),t.setScale(this.getScale()),t},e.prototype.getAnchor=function(){return this.anchor_},e.prototype.getAngle=function(){return this.angle_},e.prototype.getFill=function(){return this.fill_},e.prototype.getHitDetectionImage=function(t){return this.hitDetectionCanvas_},e.prototype.getImage=function(t){return this.canvas_},e.prototype.getImageSize=function(){return this.imageSize_},e.prototype.getHitDetectionImageSize=function(){return this.hitDetectionImageSize_},e.prototype.getImageState=function(){return xs.LOADED},e.prototype.getOrigin=function(){return this.origin_},e.prototype.getPoints=function(){return this.points_},e.prototype.getRadius=function(){return this.radius_},e.prototype.getRadius2=function(){return this.radius2_},e.prototype.getSize=function(){return this.size_},e.prototype.getStroke=function(){return this.stroke_},e.prototype.listenImageChange=function(t,e){},e.prototype.load=function(){},e.prototype.unlistenImageChange=function(t,e){},e.prototype.render_=function(t){var e,i,r="",n="",o=0,s=null,a=0,h=0;this.stroke_&&(null===(i=this.stroke_.getColor())&&(i=Ls),i=Ys(i),void 0===(h=this.stroke_.getWidth())&&(h=1),s=this.stroke_.getLineDash(),a=this.stroke_.getLineDashOffset(),ki||(s=null,a=0),void 0===(n=this.stroke_.getLineJoin())&&(n="round"),void 0===(r=this.stroke_.getLineCap())&&(r="round"),void 0===(o=this.stroke_.getMiterLimit())&&(o=10));var l=2*(this.radius_+h)+1,u={strokeStyle:i,strokeWidth:h,size:l,lineCap:r,lineDash:s,lineDashOffset:a,lineJoin:n,miterLimit:o};if(void 0===t){var p=Jn(l,l);this.canvas_=p.canvas,e=l=this.canvas_.width,this.draw_(u,p,0,0),this.createHitDetectionCanvas_(u)}else{l=Math.round(l);var c,d=!this.fill_;d&&(c=this.drawHitDetectionCanvas_.bind(this,u));var f=this.getChecksum(),_=t.add(f,l,l,this.draw_.bind(this,u),c);this.canvas_=_.image,this.origin_=[_.offsetX,_.offsetY],e=_.image.width,d?(this.hitDetectionCanvas_=_.hitImage,this.hitDetectionImageSize_=[_.hitImage.width,_.hitImage.height]):(this.hitDetectionCanvas_=this.canvas_,this.hitDetectionImageSize_=[e,e])}this.anchor_=[l/2,l/2],this.size_=[l,l],this.imageSize_=[e,e]},e.prototype.draw_=function(t,e,i,r){var n,o,s;e.setTransform(1,0,0,1,0,0),e.translate(i,r),e.beginPath();var a=this.points_;if(a===1/0)e.arc(t.size/2,t.size/2,this.radius_,0,2*Math.PI,!0);else{var h=void 0!==this.radius2_?this.radius2_:this.radius_;for(h!==this.radius_&&(a*=2),n=0;n<=a;n++)o=2*n*Math.PI/a-Math.PI/2+this.angle_,s=n%2==0?this.radius_:h,e.lineTo(t.size/2+s*Math.cos(o),t.size/2+s*Math.sin(o))}if(this.fill_){var l=this.fill_.getColor();null===l&&(l=ws),e.fillStyle=Ys(l),e.fill()}this.stroke_&&(e.strokeStyle=t.strokeStyle,e.lineWidth=t.strokeWidth,t.lineDash&&(e.setLineDash(t.lineDash),e.lineDashOffset=t.lineDashOffset),e.lineCap=t.lineCap,e.lineJoin=t.lineJoin,e.miterLimit=t.miterLimit,e.stroke()),e.closePath()},e.prototype.createHitDetectionCanvas_=function(t){if(this.hitDetectionImageSize_=[t.size,t.size],this.fill_)this.hitDetectionCanvas_=this.canvas_;else{var e=Jn(t.size,t.size);this.hitDetectionCanvas_=e.canvas,this.drawHitDetectionCanvas_(t,e,0,0)}},e.prototype.drawHitDetectionCanvas_=function(t,e,i,r){e.setTransform(1,0,0,1,0,0),e.translate(i,r),e.beginPath();var n=this.points_;if(n===1/0)e.arc(t.size/2,t.size/2,this.radius_,0,2*Math.PI,!0);else{var o,s,a,h=void 0!==this.radius2_?this.radius2_:this.radius_;for(h!==this.radius_&&(n*=2),o=0;o<=n;o++)a=2*o*Math.PI/n-Math.PI/2+this.angle_,s=o%2==0?this.radius_:h,e.lineTo(t.size/2+s*Math.cos(a),t.size/2+s*Math.sin(a))}e.fillStyle=dr(ws),e.fill(),this.stroke_&&(e.strokeStyle=t.strokeStyle,e.lineWidth=t.strokeWidth,t.lineDash&&(e.setLineDash(t.lineDash),e.lineDashOffset=t.lineDashOffset),e.stroke()),e.closePath()},e.prototype.getChecksum=function(){var t=this.stroke_?this.stroke_.getChecksum():"-",e=this.fill_?this.fill_.getChecksum():"-";if(!this.checksums_||t!=this.checksums_[1]||e!=this.checksums_[2]||this.radius_!=this.checksums_[3]||this.radius2_!=this.checksums_[4]||this.angle_!=this.checksums_[5]||this.points_!=this.checksums_[6]){var i="r"+t+e+(void 0!==this.radius_?this.radius_.toString():"-")+(void 0!==this.radius2_?this.radius2_.toString():"-")+(void 0!==this.angle_?this.angle_.toString():"-")+(void 0!==this.points_?this.points_.toString():"-");this.checksums_=[i,t,e,this.radius_,this.radius2_,this.angle_,this.points_]}return this.checksums_[0]},e}(Tu),Ru=function(t){function e(e){var i=e||{};t.call(this,{points:1/0,fill:i.fill,radius:i.radius,stroke:i.stroke,atlasManager:i.atlasManager})}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.clone=function(){var t=new e({fill:this.getFill()?this.getFill().clone():void 0,stroke:this.getStroke()?this.getStroke().clone():void 0,radius:this.getRadius(),atlasManager:this.atlasManager_});return t.setOpacity(this.getOpacity()),t.setScale(this.getScale()),t},e.prototype.setRadius=function(t){this.radius_=t,this.render_(this.atlasManager_)},e}(Cu),wu={FRACTION:"fraction",PIXELS:"pixels"},Iu=function(t){function e(e,i,r,n,o,s){t.call(this),this.hitDetectionImage_=null,this.image_=e||new Image,null!==n&&(this.image_.crossOrigin=n),this.canvas_=s?document.createElement("canvas"):null,this.color_=s,this.imageListenerKeys_=null,this.imageState_=o,this.size_=r,this.src_=i,this.tainted_}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.isTainted_=function(){if(void 0===this.tainted_&&this.imageState_===xs.LOADED){this.tainted_=!1;var t=Jn(1,1);try{t.drawImage(this.image_,0,0),t.getImageData(0,0,1,1)}catch(t){this.tainted_=!0}}return!0===this.tainted_},e.prototype.dispatchChangeEvent_=function(){this.dispatchEvent(M.CHANGE)},e.prototype.handleImageError_=function(){this.imageState_=xs.ERROR,this.unlistenImage_(),this.dispatchChangeEvent_()},e.prototype.handleImageLoad_=function(){this.imageState_=xs.LOADED,this.size_&&(this.image_.width=this.size_[0],this.image_.height=this.size_[1]),this.size_=[this.image_.width,this.image_.height],this.unlistenImage_(),this.replaceColor_(),this.dispatchChangeEvent_()},e.prototype.getImage=function(t){return this.canvas_?this.canvas_:this.image_},e.prototype.getImageState=function(){return this.imageState_},e.prototype.getHitDetectionImage=function(t){if(!this.hitDetectionImage_)if(this.isTainted_()){var e=this.size_[0],i=this.size_[1],r=Jn(e,i);r.fillRect(0,0,e,i),this.hitDetectionImage_=r.canvas}else this.hitDetectionImage_=this.image_;return this.hitDetectionImage_},e.prototype.getSize=function(){return this.size_},e.prototype.getSrc=function(){return this.src_},e.prototype.load=function(){if(this.imageState_==xs.IDLE){this.imageState_=xs.LOADING,this.imageListenerKeys_=[m(this.image_,M.ERROR,this.handleImageError_,this),m(this.image_,M.LOAD,this.handleImageLoad_,this)];try{this.image_.src=this.src_}catch(t){this.handleImageError_()}}},e.prototype.replaceColor_=function(){if(this.color_&&!this.isTainted_()){this.canvas_.width=this.image_.width,this.canvas_.height=this.image_.height;var t=this.canvas_.getContext("2d");t.drawImage(this.image_,0,0);for(var e=t.getImageData(0,0,this.image_.width,this.image_.height),i=e.data,r=this.color_[0]/255,n=this.color_[1]/255,o=this.color_[2]/255,s=0,a=i.length;s0,6);var p=void 0!==i.src?xs.IDLE:xs.LOADED;this.color_=void 0!==i.color?_r(i.color):null,this.iconImage_=function(t,e,i,r,n,o){var s=Ks.get(e,r,o);return s||(s=new Iu(t,e,i,r,n,o),Ks.set(e,r,o,s)),s}(h,u,l,this.crossOrigin_,p,this.color_),this.offset_=void 0!==i.offset?i.offset:[0,0],this.offsetOrigin_=void 0!==i.offsetOrigin?i.offsetOrigin:Lu.TOP_LEFT,this.origin_=null,this.size_=void 0!==i.size?i.size:null}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.clone=function(){return new e({anchor:this.anchor_.slice(),anchorOrigin:this.anchorOrigin_,anchorXUnits:this.anchorXUnits_,anchorYUnits:this.anchorYUnits_,crossOrigin:this.crossOrigin_,color:this.color_&&this.color_.slice?this.color_.slice():this.color_||void 0,src:this.getSrc(),offset:this.offset_.slice(),offsetOrigin:this.offsetOrigin_,size:null!==this.size_?this.size_.slice():void 0,opacity:this.getOpacity(),scale:this.getScale(),rotation:this.getRotation(),rotateWithView:this.getRotateWithView()})},e.prototype.getAnchor=function(){if(this.normalizedAnchor_)return this.normalizedAnchor_;var t=this.anchor_,e=this.getSize();if(this.anchorXUnits_==wu.FRACTION||this.anchorYUnits_==wu.FRACTION){if(!e)return null;t=this.anchor_.slice(),this.anchorXUnits_==wu.FRACTION&&(t[0]*=e[0]),this.anchorYUnits_==wu.FRACTION&&(t[1]*=e[1])}if(this.anchorOrigin_!=Lu.TOP_LEFT){if(!e)return null;t===this.anchor_&&(t=this.anchor_.slice()),this.anchorOrigin_!=Lu.TOP_RIGHT&&this.anchorOrigin_!=Lu.BOTTOM_RIGHT||(t[0]=-t[0]+e[0]),this.anchorOrigin_!=Lu.BOTTOM_LEFT&&this.anchorOrigin_!=Lu.BOTTOM_RIGHT||(t[1]=-t[1]+e[1])}return this.normalizedAnchor_=t,this.normalizedAnchor_},e.prototype.setAnchor=function(t){this.anchor_=t,this.normalizedAnchor_=null},e.prototype.getColor=function(){return this.color_},e.prototype.getImage=function(t){return this.iconImage_.getImage(t)},e.prototype.getImageSize=function(){return this.iconImage_.getSize()},e.prototype.getHitDetectionImageSize=function(){return this.getImageSize()},e.prototype.getImageState=function(){return this.iconImage_.getImageState()},e.prototype.getHitDetectionImage=function(t){return this.iconImage_.getHitDetectionImage(t)},e.prototype.getOrigin=function(){if(this.origin_)return this.origin_;var t=this.offset_;if(this.offsetOrigin_!=Lu.TOP_LEFT){var e=this.getSize(),i=this.iconImage_.getSize();if(!e||!i)return null;t=t.slice(),this.offsetOrigin_!=Lu.TOP_RIGHT&&this.offsetOrigin_!=Lu.BOTTOM_RIGHT||(t[0]=i[0]-e[0]-t[0]),this.offsetOrigin_!=Lu.BOTTOM_LEFT&&this.offsetOrigin_!=Lu.BOTTOM_RIGHT||(t[1]=i[1]-e[1]-t[1])}return this.origin_=t,this.origin_},e.prototype.getSrc=function(){return this.iconImage_.getSrc()},e.prototype.getSize=function(){return this.size_?this.size_:this.iconImage_.getSize()},e.prototype.listenImageChange=function(t,e){return v(this.iconImage_,M.CHANGE,t,e)},e.prototype.load=function(){this.iconImage_.load()},e.prototype.unlistenImageChange=function(t,e){x(this.iconImage_,M.CHANGE,t,e)},e}(Tu),Pu=function(t){var e=t||{};this.geometry_=null,this.geometryFunction_=Au,void 0!==e.geometry&&this.setGeometry(e.geometry),this.fill_=void 0!==e.fill?e.fill:null,this.image_=void 0!==e.image?e.image:null,this.renderer_=void 0!==e.renderer?e.renderer:null,this.stroke_=void 0!==e.stroke?e.stroke:null,this.text_=void 0!==e.text?e.text:null,this.zIndex_=e.zIndex};Pu.prototype.clone=function(){var t=this.getGeometry();return t&&"object"==typeof t&&(t=t.clone()),new Pu({geometry:t,fill:this.getFill()?this.getFill().clone():void 0,image:this.getImage()?this.getImage().clone():void 0,stroke:this.getStroke()?this.getStroke().clone():void 0,text:this.getText()?this.getText().clone():void 0,zIndex:this.getZIndex()})},Pu.prototype.getRenderer=function(){return this.renderer_},Pu.prototype.setRenderer=function(t){this.renderer_=t},Pu.prototype.getGeometry=function(){return this.geometry_},Pu.prototype.getGeometryFunction=function(){return this.geometryFunction_},Pu.prototype.getFill=function(){return this.fill_},Pu.prototype.setFill=function(t){this.fill_=t},Pu.prototype.getImage=function(){return this.image_},Pu.prototype.setImage=function(t){this.image_=t},Pu.prototype.getStroke=function(){return this.stroke_},Pu.prototype.setStroke=function(t){this.stroke_=t},Pu.prototype.getText=function(){return this.text_},Pu.prototype.setText=function(t){this.text_=t},Pu.prototype.getZIndex=function(){return this.zIndex_},Pu.prototype.setGeometry=function(t){"function"==typeof t?this.geometryFunction_=t:"string"==typeof t?this.geometryFunction_=function(e){return e.get(t)}:t?void 0!==t&&(this.geometryFunction_=function(){return t}):this.geometryFunction_=Au,this.geometry_=t},Pu.prototype.setZIndex=function(t){this.zIndex_=t};var bu=null;function Mu(t,e){if(!bu){var i=new mr({color:"rgba(255,255,255,0.4)"}),r=new Er({color:"#3399CC",width:1.25});bu=[new Pu({image:new Ru({fill:i,stroke:r,radius:5}),fill:i,stroke:r})]}return bu}function Fu(){var t={},e=[255,255,255,1],i=[0,153,255,1];return t[Nt.POLYGON]=[new Pu({fill:new mr({color:[255,255,255,.5]})})],t[Nt.MULTI_POLYGON]=t[Nt.POLYGON],t[Nt.LINE_STRING]=[new Pu({stroke:new Er({color:e,width:5})}),new Pu({stroke:new Er({color:i,width:3})})],t[Nt.MULTI_LINE_STRING]=t[Nt.LINE_STRING],t[Nt.CIRCLE]=t[Nt.POLYGON].concat(t[Nt.LINE_STRING]),t[Nt.POINT]=[new Pu({image:new Ru({radius:6,fill:new mr({color:i}),stroke:new Er({color:e,width:1.5})}),zIndex:1/0})],t[Nt.MULTI_POINT]=t[Nt.POINT],t[Nt.GEOMETRY_COLLECTION]=t[Nt.POLYGON].concat(t[Nt.LINE_STRING],t[Nt.POINT]),t}function Au(t){return t.getGeometry()}var Nu=Pu;function Gu(t,e){var i=/\{z\}/g,r=/\{x\}/g,n=/\{y\}/g,o=/\{-y\}/g;return function(s,a,h){return s?t.replace(i,s[0].toString()).replace(r,s[1].toString()).replace(n,function(){return(-s[2]-1).toString()}).replace(o,function(){var t=s[0],i=e.getFullTileRange(t);return Y(i,55),(i.getHeight()+s[2]).toString()}):void 0}}function Du(t,e){for(var i=t.length,r=new Array(i),n=0;n0&&(o/=l)}return o}function Vu(t,e,i,r){var n=i-t,o=r-e,s=Math.sqrt(n*n+o*o);return[Math.round(i+n/s),Math.round(r+o/s)]}function Xu(t,e,i,r,n,o,s,a,h,l,u){var p=Jn(Math.round(i*t),Math.round(i*e));if(0===h.length)return p.canvas;p.scale(i,i);var c=[1/0,1/0,-1/0,-1/0];h.forEach(function(t,e,i){ft(c,t.extent)});var d=Ot(c),f=Rt(c),_=Jn(Math.round(i*d/r),Math.round(i*f/r)),g=i/r;h.forEach(function(t,e,i){var r=t.extent[0]-c[0],n=-(t.extent[3]-c[3]),o=Ot(t.extent),s=Rt(t.extent);_.drawImage(t.image,l,l,t.image.width-2*l,t.image.height-2*l,r*g,n*g,o*g,s*g)});var y=It(s);return a.getTriangles().forEach(function(t,e,n){var s=t.source,a=t.target,h=s[0][0],l=s[0][1],u=s[1][0],d=s[1][1],f=s[2][0],g=s[2][1],v=(a[0][0]-y[0])/o,m=-(a[0][1]-y[1])/o,x=(a[1][0]-y[0])/o,E=-(a[1][1]-y[1])/o,S=(a[2][0]-y[0])/o,T=-(a[2][1]-y[1])/o,C=h,R=l;h=0,l=0;var w=function(t){for(var e=t.length,i=0;in&&(n=s,r=o)}if(0===n)return null;var a=t[r];t[r]=t[i],t[i]=a;for(var h=i+1;h=0;c--){p[c]=t[c][e]/t[c][c];for(var d=c-1;d>=0;d--)t[d][e]-=t[d][c]*p[c]}return p}([[u-=C,d-=R,0,0,x-v],[f-=C,g-=R,0,0,S-v],[0,0,u,d,E-m],[0,0,f,g,T-m]]);if(w){p.save(),p.beginPath();var I=(v+x+S)/3,L=(m+E+T)/3,O=Vu(I,L,v,m),P=Vu(I,L,x,E),b=Vu(I,L,S,T);p.moveTo(P[0],P[1]),p.lineTo(O[0],O[1]),p.lineTo(b[0],b[1]),p.clip(),p.transform(w[0],w[2],w[1],w[3],v,m),p.translate(c[0]-C,c[3]-R),p.scale(r/i,-r/i),p.drawImage(_.canvas,0,0),p.restore()}}),u&&(p.save(),p.strokeStyle="black",p.lineWidth=1,a.getTriangles().forEach(function(t,e,i){var r=t.target,n=(r[0][0]-y[0])/o,s=-(r[0][1]-y[1])/o,a=(r[1][0]-y[0])/o,h=-(r[1][1]-y[1])/o,l=(r[2][0]-y[0])/o,u=-(r[2][1]-y[1])/o;p.beginPath(),p.moveTo(a,h),p.lineTo(n,s),p.lineTo(l,u),p.closePath(),p.stroke()}),p.restore()),p.canvas}var zu=function(t,e,i,r,n){this.sourceProj_=t,this.targetProj_=e;var o={},s=Oe(this.targetProj_,this.sourceProj_);this.transformInv_=function(t){var e=t[0]+"/"+t[1];return o[e]||(o[e]=s(t)),o[e]},this.maxSourceExtent_=r,this.errorThresholdSquared_=n*n,this.triangles_=[],this.wrapsXInSource_=!1,this.canWrapXInSource_=this.sourceProj_.canWrapX()&&!!r&&!!this.sourceProj_.getExtent()&&Ot(r)==Ot(this.sourceProj_.getExtent()),this.sourceWorldWidth_=this.sourceProj_.getExtent()?Ot(this.sourceProj_.getExtent()):null,this.targetWorldWidth_=this.targetProj_.getExtent()?Ot(this.targetProj_.getExtent()):null;var a=It(i),h=Lt(i),l=St(i),u=Et(i),p=this.transformInv_(a),c=this.transformInv_(h),d=this.transformInv_(l),f=this.transformInv_(u);if(this.addQuad_(a,h,l,u,p,c,d,f,10),this.wrapsXInSource_){var _=1/0;this.triangles_.forEach(function(t,e,i){_=Math.min(_,t.source[0][0],t.source[1][0],t.source[2][0])}),this.triangles_.forEach(function(t){if(Math.max(t.source[0][0],t.source[1][0],t.source[2][0])-_>this.sourceWorldWidth_/2){var e=[[t.source[0][0],t.source[0][1]],[t.source[1][0],t.source[1][1]],[t.source[2][0],t.source[2][1]]];e[0][0]-_>this.sourceWorldWidth_/2&&(e[0][0]-=this.sourceWorldWidth_),e[1][0]-_>this.sourceWorldWidth_/2&&(e[1][0]-=this.sourceWorldWidth_),e[2][0]-_>this.sourceWorldWidth_/2&&(e[2][0]-=this.sourceWorldWidth_);var i=Math.min(e[0][0],e[1][0],e[2][0]);Math.max(e[0][0],e[1][0],e[2][0])-i.5&&u<1,d=!1;if(h>0){if(this.targetProj_.isGlobal()&&this.targetWorldWidth_)d=Ot(tt([t,e,i,r]))/this.targetWorldWidth_>.25||d;!c&&this.sourceProj_.isGlobal()&&u&&(d=u>.25||d)}if(d||!this.maxSourceExtent_||Pt(l,this.maxSourceExtent_)){if(!(d||isFinite(n[0])&&isFinite(n[1])&&isFinite(o[0])&&isFinite(o[1])&&isFinite(s[0])&&isFinite(s[1])&&isFinite(a[0])&&isFinite(a[1]))){if(!(h>0))return;d=!0}if(h>0){if(!d){var f,_=[(t[0]+i[0])/2,(t[1]+i[1])/2],g=this.transformInv_(_);if(c)f=(Xt(n[0],p)+Xt(s[0],p))/2-Xt(g[0],p);else f=(n[0]+s[0])/2-g[0];var y=(n[1]+s[1])/2-g[1];d=f*f+y*y>this.errorThresholdSquared_}if(d){if(Math.abs(t[0]-i[0])<=Math.abs(t[1]-i[1])){var v=[(e[0]+i[0])/2,(e[1]+i[1])/2],m=this.transformInv_(v),x=[(r[0]+t[0])/2,(r[1]+t[1])/2],E=this.transformInv_(x);this.addQuad_(t,e,v,x,n,o,m,E,h-1),this.addQuad_(x,v,i,r,E,m,s,a,h-1)}else{var S=[(t[0]+e[0])/2,(t[1]+e[1])/2],T=this.transformInv_(S),C=[(i[0]+r[0])/2,(i[1]+r[1])/2],R=this.transformInv_(C);this.addQuad_(t,S,C,r,n,T,R,a,h-1),this.addQuad_(S,e,i,C,T,o,s,R,h-1)}return}}if(c){if(!this.canWrapXInSource_)return;this.wrapsXInSource_=!0}this.addTriangle_(t,i,r,n,s,a),this.addTriangle_(t,e,i,n,o,s)}},zu.prototype.calculateSourceExtent=function(){var t=[1/0,1/0,-1/0,-1/0];return this.triangles_.forEach(function(e,i,r){var n=e.source;_t(t,n[0]),_t(t,n[1]),_t(t,n[2])}),t},zu.prototype.getTriangles=function(){return this.triangles_};var Wu=zu,Ku=function(t){function e(e,i,r,n,o,s,a,h,l,u,p){t.call(this,o,On.IDLE),this.renderEdges_=void 0!==p&&p,this.pixelRatio_=a,this.gutter_=h,this.canvas_=null,this.sourceTileGrid_=i,this.targetTileGrid_=n,this.wrappedTileCoord_=s||o,this.sourceTiles_=[],this.sourcesListenerKeys_=null,this.sourceZ_=0;var c=n.getTileCoordExtent(this.wrappedTileCoord_),d=this.targetTileGrid_.getExtent(),f=this.sourceTileGrid_.getExtent(),_=d?wt(c,d):c;if(0!==xt(_)){var g=e.getExtent();g&&(f=f?wt(f,g):g);var y=n.getResolution(this.wrappedTileCoord_[0]),v=Bu(e,r,Tt(_),y);if(!isFinite(v)||v<=0)this.state=On.EMPTY;else{var m=void 0!==u?u:vs;if(this.triangulation_=new Wu(e,r,_,f,v*m),0!==this.triangulation_.getTriangles().length){this.sourceZ_=i.getZForResolution(v);var x=this.triangulation_.calculateSourceExtent();if(f&&(e.canWrapX()?(x[1]=kt(x[1],f[1],f[3]),x[3]=kt(x[3],f[1],f[3])):x=wt(x,f)),xt(x)){for(var E=i.getTileRangeForExtentAndZ(x,this.sourceZ_),S=E.minX;S<=E.maxX;S++)for(var T=E.minY;T<=E.maxY;T++){var C=l(this.sourceZ_,S,T,a);C&&this.sourceTiles_.push(C)}0===this.sourceTiles_.length&&(this.state=On.EMPTY)}else this.state=On.EMPTY}else this.state=On.EMPTY}}else this.state=On.EMPTY}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.disposeInternal=function(){this.state==On.LOADING&&this.unlistenSources_(),t.prototype.disposeInternal.call(this)},e.prototype.getImage=function(){return this.canvas_},e.prototype.reproject_=function(){var t=[];if(this.sourceTiles_.forEach(function(e,i,r){e&&e.getState()==On.LOADED&&t.push({extent:this.sourceTileGrid_.getTileCoordExtent(e.tileCoord),image:e.getImage()})}.bind(this)),this.sourceTiles_.length=0,0===t.length)this.state=On.ERROR;else{var e=this.wrappedTileCoord_[0],i=this.targetTileGrid_.getTileSize(e),r="number"==typeof i?i:i[0],n="number"==typeof i?i:i[1],o=this.targetTileGrid_.getResolution(e),s=this.sourceTileGrid_.getResolution(this.sourceZ_),a=this.targetTileGrid_.getTileCoordExtent(this.wrappedTileCoord_);this.canvas_=Xu(r,n,this.pixelRatio_,s,this.sourceTileGrid_.getExtent(),o,a,this.triangulation_,t,this.gutter_,this.renderEdges_),this.state=On.LOADED}this.changed()},e.prototype.load=function(){if(this.state==On.IDLE){this.state=On.LOADING,this.changed();var t=0;this.sourcesListenerKeys_=[],this.sourceTiles_.forEach(function(e,i,r){var n=e.getState();if(n==On.IDLE||n==On.LOADING){t++;var o=v(e,M.CHANGE,function(i){var r=e.getState();r!=On.LOADED&&r!=On.ERROR&&r!=On.EMPTY||(E(o),0===--t&&(this.unlistenSources_(),this.reproject_()))},this);this.sourcesListenerKeys_.push(o)}}.bind(this)),this.sourceTiles_.forEach(function(t,e,i){t.getState()==On.IDLE&&t.load()}),0===t&&setTimeout(this.reproject_.bind(this),0)}},e.prototype.unlistenSources_=function(){this.sourcesListenerKeys_.forEach(E),this.sourcesListenerKeys_=null},e}(vl),Hu="tileloadstart",Zu="tileloadend",qu="tileloaderror",Ju=function(t){function e(e){t.call(this,{attributions:e.attributions,cacheSize:e.cacheSize,opaque:e.opaque,projection:e.projection,state:e.state,tileGrid:e.tileGrid,tilePixelRatio:e.tilePixelRatio,wrapX:e.wrapX,transition:e.transition,key:e.key,attributionsCollapsible:e.attributionsCollapsible}),this.generateTileUrlFunction_=!e.tileUrlFunction,this.tileLoadFunction=e.tileLoadFunction,this.tileUrlFunction=e.tileUrlFunction?e.tileUrlFunction.bind(this):ju,this.urls=null,e.urls?this.setUrls(e.urls):e.url&&this.setUrl(e.url),e.tileUrlFunction&&this.setTileUrlFunction(e.tileUrlFunction,this.key_),this.tileLoadingKeys_={}}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.getTileLoadFunction=function(){return this.tileLoadFunction},e.prototype.getTileUrlFunction=function(){return this.tileUrlFunction},e.prototype.getUrls=function(){return this.urls},e.prototype.handleTileChange=function(t){var e,i=t.target,r=o(i),n=i.getState();n==On.LOADING?(this.tileLoadingKeys_[r]=!0,e=Hu):r in this.tileLoadingKeys_&&(delete this.tileLoadingKeys_[r],e=n==On.ERROR?qu:n==On.LOADED||n==On.ABORT?Zu:void 0),void 0!=e&&this.dispatchEvent(new kl(e,i))},e.prototype.setTileLoadFunction=function(t){this.tileCache.clear(),this.tileLoadFunction=t,this.changed()},e.prototype.setTileUrlFunction=function(t,e){this.tileUrlFunction=t,this.tileCache.pruneExceptNewestZ(),void 0!==e?this.setKey(e):this.changed()},e.prototype.setUrl=function(t){var e=this.urls=Uu(t);this.setUrls(e)},e.prototype.setUrls=function(t){this.urls=t;var e=t.join("\n");this.generateTileUrlFunction_?this.setTileUrlFunction(Du(t,this.tileGrid),e):this.setKey(e)},e.prototype.useTile=function(t,e,i){var r=Sl(t,e,i);this.tileCache.containsKey(r)&&this.tileCache.get(r)},e}(jl);function Qu(t,e){t.getImage().src=e}var $u=function(t){function e(e){t.call(this,{attributions:e.attributions,cacheSize:e.cacheSize,opaque:e.opaque,projection:e.projection,state:e.state,tileGrid:e.tileGrid,tileLoadFunction:e.tileLoadFunction?e.tileLoadFunction:Qu,tilePixelRatio:e.tilePixelRatio,tileUrlFunction:e.tileUrlFunction,url:e.url,urls:e.urls,wrapX:e.wrapX,transition:e.transition,key:e.key,attributionsCollapsible:e.attributionsCollapsible}),this.crossOrigin=void 0!==e.crossOrigin?e.crossOrigin:null,this.tileClass=void 0!==e.tileClass?e.tileClass:xl,this.tileCacheForProjection={},this.tileGridForProjection={},this.reprojectionErrorThreshold_=e.reprojectionErrorThreshold,this.renderReprojectionEdges_=!1}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.canExpireCache=function(){if(this.tileCache.canExpireCache())return!0;for(var t in this.tileCacheForProjection)if(this.tileCacheForProjection[t].canExpireCache())return!0;return!1},e.prototype.expireCache=function(t,e){var i=this.getTileCacheForProjection(t);for(var r in this.tileCache.expireCache(this.tileCache==i?e:{}),this.tileCacheForProjection){var n=this.tileCacheForProjection[r];n.expireCache(n==i?e:{})}},e.prototype.getGutterForProjection=function(t){return this.getProjection()&&t&&!Ie(this.getProjection(),t)?0:this.getGutter()},e.prototype.getGutter=function(){return 0},e.prototype.getOpaque=function(e){return!(this.getProjection()&&e&&!Ie(this.getProjection(),e))&&t.prototype.getOpaque.call(this,e)},e.prototype.getTileGridForProjection=function(t){var e=this.getProjection();if(!this.tileGrid||e&&!Ie(e,t)){var i=o(t);return i in this.tileGridForProjection||(this.tileGridForProjection[i]=bl(t)),this.tileGridForProjection[i]}return this.tileGrid},e.prototype.getTileCacheForProjection=function(t){var e=this.getProjection();if(!e||Ie(e,t))return this.tileCache;var i=o(t);return i in this.tileCacheForProjection||(this.tileCacheForProjection[i]=new Rl(this.tileCache.highWaterMark)),this.tileCacheForProjection[i]},e.prototype.createTile_=function(t,e,i,r,n,o){var s=[t,e,i],a=this.getTileCoordForTileUrlFunction(s,n),h=a?this.tileUrlFunction(a,r,n):void 0,l=new this.tileClass(s,void 0!==h?On.IDLE:On.EMPTY,void 0!==h?h:"",this.crossOrigin,this.tileLoadFunction,this.tileOptions);return l.key=o,v(l,M.CHANGE,this.handleTileChange,this),l},e.prototype.getTile=function(t,e,i,r,n){var o=this.getProjection();if(o&&n&&!Ie(o,n)){var s,a=this.getTileCacheForProjection(n),h=[t,e,i],l=Tl(h);a.containsKey(l)&&(s=a.get(l));var u=this.getKey();if(s&&s.key==u)return s;var p=this.getTileGridForProjection(o),c=this.getTileGridForProjection(n),d=this.getTileCoordForTileUrlFunction(h,n),f=new Ku(o,p,n,c,h,d,this.getTilePixelRatio(r),this.getGutter(),function(t,e,i,r){return this.getTileInternal(t,e,i,r,o)}.bind(this),this.reprojectionErrorThreshold_,this.renderReprojectionEdges_);return f.key=u,s?(f.interimTile=s,f.refreshInterimChain(),a.replace(l,f)):a.set(l,f),f}return this.getTileInternal(t,e,i,r,o||n)},e.prototype.getTileInternal=function(t,e,i,r,n){var o=null,s=Sl(t,e,i),a=this.getKey();if(this.tileCache.containsKey(s)){if((o=this.tileCache.get(s)).key!=a){var h=o;o=this.createTile_(t,e,i,r,n,a),h.getState()==On.IDLE?o.interimTile=h.interimTile:o.interimTile=h,o.refreshInterimChain(),this.tileCache.replace(s,o)}}else o=this.createTile_(t,e,i,r,n,a),this.tileCache.set(s,o);return o},e.prototype.setRenderReprojectionEdges=function(t){if(this.renderReprojectionEdges_!=t){for(var e in this.renderReprojectionEdges_=t,this.tileCacheForProjection)this.tileCacheForProjection[e].clear();this.changed()}},e.prototype.setTileGridForProjection=function(t,e){var i=Ee(t);if(i){var r=o(i);r in this.tileGridForProjection||(this.tileGridForProjection[r]=e)}},e}(Ju),tp=function(t){function e(e){var i=void 0!==e.hidpi&&e.hidpi;t.call(this,{cacheSize:e.cacheSize,crossOrigin:"anonymous",opaque:!0,projection:Ee("EPSG:3857"),reprojectionErrorThreshold:e.reprojectionErrorThreshold,state:ro.LOADING,tileLoadFunction:e.tileLoadFunction,tilePixelRatio:i?2:1,wrapX:void 0===e.wrapX||e.wrapX,transition:e.transition}),this.hidpi_=i,this.culture_=void 0!==e.culture?e.culture:"en-us",this.maxZoom_=void 0!==e.maxZoom?e.maxZoom:-1,this.apiKey_=e.key,this.imagerySet_=e.imagerySet,Yu("https://dev.virtualearth.net/REST/v1/Imagery/Metadata/"+this.imagerySet_+"?uriScheme=https&include=ImageryProviders&key="+this.apiKey_+"&c="+this.culture_,this.handleImageryMetadataResponse.bind(this),void 0,"jsonp")}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.getApiKey=function(){return this.apiKey_},e.prototype.getImagerySet=function(){return this.imagerySet_},e.prototype.handleImageryMetadataResponse=function(t){if(200==t.statusCode&&"OK"==t.statusDescription&&"ValidCredentials"==t.authenticationResultCode&&1==t.resourceSets.length&&1==t.resourceSets[0].resources.length){var e=t.resourceSets[0].resources[0],i=-1==this.maxZoom_?e.zoomMax:this.maxZoom_,r=Gl(this.getProjection()),n=this.hidpi_?2:1,o=e.imageWidth==e.imageHeight?e.imageWidth/n:[e.imageWidth/n,e.imageHeight/n],s=Fl({extent:r,minZoom:e.zoomMin,maxZoom:i,tileSize:o});this.tileGrid=s;var a=this.culture_,h=this.hidpi_;if(this.tileUrlFunction=ku(e.imageUrlSubdomains.map(function(t){var i=[0,0,0],r=e.imageUrl.replace("{subdomain}",t).replace("{culture}",a);return function(t,e,n){if(t){El(t[0],t[1],-t[2]-1,i);var o=r;return h&&(o+="&dpi=d1&device=mobile"),o.replace("{quadkey}",function(t){var e,i,r=t[0],n=new Array(r),o=1<>=1;return n.join("")}(i))}}})),e.imageryProviders){var l=Le(Ee("EPSG:4326"),this.getProjection());this.setAttributions(function(t){var i=[],r=t.viewState,n=this.getTileGrid().getTileCoordForCoordAndResolution(r.center,r.resolution)[0];return e.imageryProviders.map(function(e){for(var r=!1,o=e.coverageAreas,s=0,a=o.length;s=h.zoomMin&&n<=h.zoomMax){var u=h.bbox;if(Pt(Ft([u[1],u[0],u[3],u[2]],l),t.extent)){r=!0;break}}}r&&i.push(e.attribution)}),i.push('Terms of Use'),i}.bind(this))}this.setState(ro.READY)}else this.setState(ro.ERROR)},e}($u),ep=function(t){function e(e){var i=e||{},r=void 0!==i.projection?i.projection:"EPSG:3857",n=void 0!==i.tileGrid?i.tileGrid:Fl({extent:Gl(r),maxZoom:i.maxZoom,minZoom:i.minZoom,tileSize:i.tileSize});t.call(this,{attributions:i.attributions,cacheSize:i.cacheSize,crossOrigin:i.crossOrigin,opaque:i.opaque,projection:r,reprojectionErrorThreshold:i.reprojectionErrorThreshold,tileGrid:n,tileLoadFunction:i.tileLoadFunction,tilePixelRatio:i.tilePixelRatio,tileUrlFunction:i.tileUrlFunction,url:i.url,urls:i.urls,wrapX:void 0===i.wrapX||i.wrapX,transition:i.transition,attributionsCollapsible:i.attributionsCollapsible})}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e}($u),ip=function(t){function e(e){t.call(this,{attributions:e.attributions,cacheSize:e.cacheSize,crossOrigin:e.crossOrigin,maxZoom:void 0!==e.maxZoom?e.maxZoom:18,minZoom:e.minZoom,projection:e.projection,wrapX:e.wrapX}),this.account_=e.account,this.mapId_=e.map||"",this.config_=e.config||{},this.templateCache_={},this.initializeMap_()}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.getConfig=function(){return this.config_},e.prototype.updateConfig=function(t){u(this.config_,t),this.initializeMap_()},e.prototype.setConfig=function(t){this.config_=t||{},this.initializeMap_()},e.prototype.initializeMap_=function(){var t=JSON.stringify(this.config_);if(this.templateCache_[t])this.applyTemplate_(this.templateCache_[t]);else{var e="https://"+this.account_+".carto.com/api/v1/map";this.mapId_&&(e+="/named/"+this.mapId_);var i=new XMLHttpRequest;i.addEventListener("load",this.handleInitResponse_.bind(this,t)),i.addEventListener("error",this.handleInitError_.bind(this)),i.open("POST",e),i.setRequestHeader("Content-type","application/json"),i.send(JSON.stringify(this.config_))}},e.prototype.handleInitResponse_=function(t,e){var i=e.target;if(!i.status||i.status>=200&&i.status<300){var r;try{r=JSON.parse(i.responseText)}catch(t){return void this.setState(ro.ERROR)}this.applyTemplate_(r),this.templateCache_[t]=r,this.setState(ro.READY)}else this.setState(ro.ERROR)},e.prototype.handleInitError_=function(t){this.setState(ro.ERROR)},e.prototype.applyTemplate_=function(t){var e="https://"+t.cdn_url.https+"/"+this.account_+"/api/v1/map/"+t.layergroupid+"/{z}/{x}/{y}.png";this.setUrl(e)},e}(ep),rp={ADDFEATURE:"addfeature",CHANGEFEATURE:"changefeature",CLEAR:"clear",REMOVEFEATURE:"removefeature"},np=function(t){function e(e,i){t.call(this,e),this.feature=i}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e}(P),op=function(t){function e(e){var i=e||{};t.call(this,{attributions:i.attributions,projection:void 0,state:ro.READY,wrapX:void 0===i.wrapX||i.wrapX}),this.loader_=I,this.format_=i.format,this.overlaps_=void 0==i.overlaps||i.overlaps,this.url_=i.url,void 0!==i.loader?this.loader_=i.loader:void 0!==this.url_&&(Y(this.format_,7),this.loader_=ql(this.url_,this.format_)),this.strategy_=void 0!==i.strategy?i.strategy:Jl;var r,n,o=void 0===i.useSpatialIndex||i.useSpatialIndex;this.featuresRtree_=o?new tl:null,this.loadedExtentsRtree_=new tl,this.nullGeometryFeatures_={},this.idIndex_={},this.undefIdIndex_={},this.featureChangeKeys_={},this.featuresCollection_=null,Array.isArray(i.features)?n=i.features:i.features&&(n=(r=i.features).getArray()),o||void 0!==r||(r=new U(n)),void 0!==n&&this.addFeaturesInternal(n),void 0!==r&&this.bindFeaturesCollection_(r)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.addFeature=function(t){this.addFeatureInternal(t),this.changed()},e.prototype.addFeatureInternal=function(t){var e=o(t);if(this.addToIndex_(e,t)){this.setupChangeEvents_(e,t);var i=t.getGeometry();if(i){var r=i.getExtent();this.featuresRtree_&&this.featuresRtree_.insert(r,t)}else this.nullGeometryFeatures_[e]=t;this.dispatchEvent(new np(rp.ADDFEATURE,t))}},e.prototype.setupChangeEvents_=function(t,e){this.featureChangeKeys_[t]=[v(e,M.CHANGE,this.handleFeatureChange_,this),v(e,l,this.handleFeatureChange_,this)]},e.prototype.addToIndex_=function(t,e){var i=!0,r=e.getId();return void 0!==r?r.toString()in this.idIndex_?i=!1:this.idIndex_[r.toString()]=e:(Y(!(t in this.undefIdIndex_),30),this.undefIdIndex_[t]=e),i},e.prototype.addFeatures=function(t){this.addFeaturesInternal(t),this.changed()},e.prototype.addFeaturesInternal=function(t){for(var e=[],i=[],r=[],n=0,s=t.length;n=0;--i){var r=this.geometryFunction(t[i]);r?Hi(e,r.getCoordinates()):t.splice(i,1)}tr(e,1/t.length);var n=new B(new ci(e));return n.set("features",t),n},e}(op),ap=function(t){function e(e,i,r,n,o,s){var a=e.getExtent(),h=i.getExtent(),l=h?wt(r,h):r,u=Bu(e,i,Tt(l),n),p=new Wu(e,i,l,a,u*vs),c=s(p.calculateSourceExtent(),u,o),d=xs.LOADED;c&&(d=xs.IDLE);var f=c?c.getPixelRatio():1;t.call(this,r,n,f,d),this.targetProj_=i,this.maxSourceExtent_=a,this.triangulation_=p,this.targetResolution_=n,this.targetExtent_=r,this.sourceImage_=c,this.sourcePixelRatio_=f,this.canvas_=null,this.sourceListenerKey_=null}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.disposeInternal=function(){this.state==xs.LOADING&&this.unlistenSource_(),t.prototype.disposeInternal.call(this)},e.prototype.getImage=function(){return this.canvas_},e.prototype.getProjection=function(){return this.targetProj_},e.prototype.reproject_=function(){var t=this.sourceImage_.getState();if(t==xs.LOADED){var e=Ot(this.targetExtent_)/this.targetResolution_,i=Rt(this.targetExtent_)/this.targetResolution_;this.canvas_=Xu(e,i,this.sourcePixelRatio_,this.sourceImage_.getResolution(),this.maxSourceExtent_,this.targetResolution_,this.targetExtent_,this.triangulation_,[{extent:this.sourceImage_.getExtent(),image:this.sourceImage_.getImage()}],0)}this.state=t,this.changed()},e.prototype.load=function(){if(this.state==xs.IDLE){this.state=xs.LOADING,this.changed();var t=this.sourceImage_.getState();t==xs.LOADED||t==xs.ERROR?this.reproject_():(this.sourceListenerKey_=v(this.sourceImage_,M.CHANGE,function(t){var e=this.sourceImage_.getState();e!=xs.LOADED&&e!=xs.ERROR||(this.unlistenSource_(),this.reproject_())},this),this.sourceImage_.load())}},e.prototype.unlistenSource_=function(){E(this.sourceListenerKey_),this.sourceListenerKey_=null},e}(ms),hp="imageloadstart",lp="imageloadend",up="imageloaderror",pp=function(t){function e(e,i){t.call(this,e),this.image=i}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e}(P);function cp(t,e){t.getImage().src=e}var dp=function(t){function e(e){t.call(this,{attributions:e.attributions,projection:e.projection,state:e.state}),this.resolutions_=void 0!==e.resolutions?e.resolutions:null,this.reprojectedImage_=null,this.reprojectedRevision_=0}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.getResolutions=function(){return this.resolutions_},e.prototype.findNearestResolution=function(t){if(this.resolutions_){var e=z(this.resolutions_,t,0);t=this.resolutions_[e]}return t},e.prototype.getImage=function(t,e,i,r){var n=this.getProjection();if(n&&r&&!Ie(n,r)){if(this.reprojectedImage_){if(this.reprojectedRevision_==this.getRevision()&&Ie(this.reprojectedImage_.getProjection(),r)&&this.reprojectedImage_.getResolution()==e&&dt(this.reprojectedImage_.getExtent(),t))return this.reprojectedImage_;this.reprojectedImage_.dispose(),this.reprojectedImage_=null}return this.reprojectedImage_=new ap(n,r,t,e,i,function(t,e,i){return this.getImageInternal(t,e,i,n)}.bind(this)),this.reprojectedRevision_=this.getRevision(),this.reprojectedImage_}return n&&(r=n),this.getImageInternal(t,e,i,r)},e.prototype.getImageInternal=function(t,e,i,n){return r()},e.prototype.handleImageChange=function(t){var e=t.target;switch(e.getState()){case xs.LOADING:this.loading=!0,this.dispatchEvent(new pp(hp,e));break;case xs.LOADED:this.loading=!1,this.dispatchEvent(new pp(lp,e));break;case xs.ERROR:this.loading=!1,this.dispatchEvent(new pp(up,e))}},e}(Il),fp=function(t){function e(e,i,r,n,o,s){t.call(this,e,i,r,xs.IDLE),this.src_=n,this.image_=new Image,null!==o&&(this.image_.crossOrigin=o),this.imageListenerKeys_=null,this.state=xs.IDLE,this.imageLoadFunction_=s}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.getImage=function(){return this.image_},e.prototype.handleImageError_=function(){this.state=xs.ERROR,this.unlistenImage_(),this.changed()},e.prototype.handleImageLoad_=function(){void 0===this.resolution&&(this.resolution=Rt(this.extent)/this.image_.height),this.state=xs.LOADED,this.unlistenImage_(),this.changed()},e.prototype.load=function(){this.state!=xs.IDLE&&this.state!=xs.ERROR||(this.state=xs.LOADING,this.changed(),this.imageListenerKeys_=[m(this.image_,M.ERROR,this.handleImageError_,this),m(this.image_,M.LOAD,this.handleImageLoad_,this)],this.imageLoadFunction_(this,this.src_))},e.prototype.setImage=function(t){this.image_=t},e.prototype.unlistenImage_=function(){this.imageListenerKeys_.forEach(E),this.imageListenerKeys_=null},e}(ms);function _p(t,e){var i=[];Object.keys(e).forEach(function(t){null!==e[t]&&void 0!==e[t]&&i.push(t+"="+encodeURIComponent(e[t]))});var r=i.join("&");return(t=-1===(t=t.replace(/[?&]$/,"")).indexOf("?")?t+"?":t+"&")+r}var gp=function(t){function e(e){var i=e||{};t.call(this,{attributions:i.attributions,projection:i.projection,resolutions:i.resolutions}),this.crossOrigin_=void 0!==i.crossOrigin?i.crossOrigin:null,this.hidpi_=void 0===i.hidpi||i.hidpi,this.url_=i.url,this.imageLoadFunction_=void 0!==i.imageLoadFunction?i.imageLoadFunction:cp,this.params_=i.params||{},this.image_=null,this.imageSize_=[0,0],this.renderedRevision_=0,this.ratio_=void 0!==i.ratio?i.ratio:1.5}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.getParams=function(){return this.params_},e.prototype.getImageInternal=function(t,e,i,r){if(void 0===this.url_)return null;e=this.findNearestResolution(e),i=this.hidpi_?i:1;var n=this.image_;if(n&&this.renderedRevision_==this.getRevision()&&n.getResolution()==e&&n.getPixelRatio()==i&&ot(n.getExtent(),t))return n;var o={F:"image",FORMAT:"PNG32",TRANSPARENT:!0};u(o,this.params_);var s=((t=t.slice())[0]+t[2])/2,a=(t[1]+t[3])/2;if(1!=this.ratio_){var h=this.ratio_*Ot(t)/2,l=this.ratio_*Rt(t)/2;t[0]=s-h,t[1]=a-l,t[2]=s+h,t[3]=a+l}var p=e/i,c=Math.ceil(Ot(t)/p),d=Math.ceil(Rt(t)/p);t[0]=s-p*c/2,t[2]=s+p*c/2,t[1]=a-p*d/2,t[3]=a+p*d/2,this.imageSize_[0]=c,this.imageSize_[1]=d;var f=this.getRequestUrl_(t,this.imageSize_,i,r,o);return this.image_=new fp(t,e,i,f,this.crossOrigin_,this.imageLoadFunction_),this.renderedRevision_=this.getRevision(),v(this.image_,M.CHANGE,this.handleImageChange,this),this.image_},e.prototype.getImageLoadFunction=function(){return this.imageLoadFunction_},e.prototype.getRequestUrl_=function(t,e,i,r,n){var o=r.getCode().split(":").pop();n.SIZE=e[0]+","+e[1],n.BBOX=t.join(","),n.BBOXSR=o,n.IMAGESR=o,n.DPI=Math.round(90*i);var s=this.url_,a=s.replace(/MapServer\/?$/,"MapServer/export").replace(/ImageServer\/?$/,"ImageServer/exportImage");return a==s&&Y(!1,50),_p(a,n)},e.prototype.getUrl=function(){return this.url_},e.prototype.setImageLoadFunction=function(t){this.image_=null,this.imageLoadFunction_=t,this.changed()},e.prototype.setUrl=function(t){t!=this.url_&&(this.url_=t,this.image_=null,this.changed())},e.prototype.updateParams=function(t){u(this.params_,t),this.image_=null,this.changed()},e}(dp),yp=function(t){function e(e){var i=e||{};t.call(this,{attributions:i.attributions,projection:i.projection,resolutions:i.resolutions,state:i.state}),this.canvasFunction_=i.canvasFunction,this.canvas_=null,this.renderedRevision_=0,this.ratio_=void 0!==i.ratio?i.ratio:1.5}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.getImageInternal=function(t,e,i,r){e=this.findNearestResolution(e);var n=this.canvas_;if(n&&this.renderedRevision_==this.getRevision()&&n.getResolution()==e&&n.getPixelRatio()==i&&ot(n.getExtent(),t))return n;Mt(t=t.slice(),this.ratio_);var o=[Ot(t)/e*i,Rt(t)/e*i],s=this.canvasFunction_.call(this,t,e,i,o,r);return s&&(n=new Es(t,e,i,s)),this.canvas_=n,this.renderedRevision_=this.getRevision(),n},e}(dp);var vp=function(t){function e(e){t.call(this,{projection:e.projection,resolutions:e.resolutions}),this.crossOrigin_=void 0!==e.crossOrigin?e.crossOrigin:null,this.displayDpi_=void 0!==e.displayDpi?e.displayDpi:96,this.params_=e.params||{},this.url_=e.url,this.imageLoadFunction_=void 0!==e.imageLoadFunction?e.imageLoadFunction:cp,this.hidpi_=void 0===e.hidpi||e.hidpi,this.metersPerUnit_=void 0!==e.metersPerUnit?e.metersPerUnit:1,this.ratio_=void 0!==e.ratio?e.ratio:1,this.useOverlay_=void 0!==e.useOverlay&&e.useOverlay,this.image_=null,this.renderedRevision_=0}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.getParams=function(){return this.params_},e.prototype.getImageInternal=function(t,e,i,r){e=this.findNearestResolution(e),i=this.hidpi_?i:1;var n=this.image_;if(n&&this.renderedRevision_==this.getRevision()&&n.getResolution()==e&&n.getPixelRatio()==i&&ot(n.getExtent(),t))return n;1!=this.ratio_&&Mt(t=t.slice(),this.ratio_);var o=[Ot(t)/e*i,Rt(t)/e*i];if(void 0!==this.url_){var s=this.getUrl(this.url_,this.params_,t,o,r);v(n=new fp(t,e,i,s,this.crossOrigin_,this.imageLoadFunction_),M.CHANGE,this.handleImageChange,this)}else n=null;return this.image_=n,this.renderedRevision_=this.getRevision(),n},e.prototype.getImageLoadFunction=function(){return this.imageLoadFunction_},e.prototype.updateParams=function(t){u(this.params_,t),this.changed()},e.prototype.getUrl=function(t,e,i,r,n){var o=function(t,e,i,r){var n=Ot(t),o=Rt(t),s=e[0],a=e[1],h=.0254/r;return a*n>s*o?n*i/(s*h):o*i/(a*h)}(i,r,this.metersPerUnit_,this.displayDpi_),s=Tt(i),a={OPERATION:this.useOverlay_?"GETDYNAMICMAPOVERLAYIMAGE":"GETMAPIMAGE",VERSION:"2.0.0",LOCALE:"en",CLIENTAGENT:"ol/source/ImageMapGuide source",CLIP:"1",SETDISPLAYDPI:this.displayDpi_,SETDISPLAYWIDTH:Math.round(r[0]),SETDISPLAYHEIGHT:Math.round(r[1]),SETVIEWSCALE:o,SETVIEWCENTERX:s[0],SETVIEWCENTERY:s[1]};return u(a,e),_p(t,a)},e.prototype.setImageLoadFunction=function(t){this.image_=null,this.imageLoadFunction_=t,this.changed()},e}(dp),mp=function(t){function e(e){var i=void 0!==e.crossOrigin?e.crossOrigin:null,r=void 0!==e.imageLoadFunction?e.imageLoadFunction:cp;t.call(this,{attributions:e.attributions,projection:Ee(e.projection)}),this.url_=e.url,this.imageExtent_=e.imageExtent,this.image_=new fp(this.imageExtent_,void 0,1,this.url_,i,r),this.imageSize_=e.imageSize?e.imageSize:null,v(this.image_,M.CHANGE,this.handleImageChange,this)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.getImageExtent=function(){return this.imageExtent_},e.prototype.getImageInternal=function(t,e,i,r){return Pt(t,this.image_.getExtent())?this.image_:null},e.prototype.getUrl=function(){return this.url_},e.prototype.handleImageChange=function(e){if(this.image_.getState()==xs.LOADED){var i,r,n=this.image_.getExtent(),o=this.image_.getImage();this.imageSize_?(i=this.imageSize_[0],r=this.imageSize_[1]):(i=o.width,r=o.height);var s=Rt(n)/r,a=Math.ceil(Ot(n)/s);if(a!=i){var h=Jn(a,r),l=h.canvas;h.drawImage(o,0,0,i,r,0,0,l.width,l.height),this.image_.setImage(l)}}t.prototype.handleImageChange.call(this,e)},e}(dp),xp="1.3.0",Ep="carmentaserver",Sp="geoserver",Tp="mapserver",Cp="qgis",Rp=[101,101],wp=function(t){function e(e){var i=e||{};t.call(this,{attributions:i.attributions,projection:i.projection,resolutions:i.resolutions}),this.crossOrigin_=void 0!==i.crossOrigin?i.crossOrigin:null,this.url_=i.url,this.imageLoadFunction_=void 0!==i.imageLoadFunction?i.imageLoadFunction:cp,this.params_=i.params||{},this.v13_=!0,this.updateV13_(),this.serverType_=i.serverType,this.hidpi_=void 0===i.hidpi||i.hidpi,this.image_=null,this.imageSize_=[0,0],this.renderedRevision_=0,this.ratio_=void 0!==i.ratio?i.ratio:1.5}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.getGetFeatureInfoUrl=function(t,e,i,r){if(void 0!==this.url_){var n=Ee(i),o=this.getProjection();o&&o!==n&&(e=Bu(o,n,t,e),t=Pe(t,n,o));var s=Ct(t,e,0,Rp),a={SERVICE:"WMS",VERSION:xp,REQUEST:"GetFeatureInfo",FORMAT:"image/png",TRANSPARENT:!0,QUERY_LAYERS:this.params_.LAYERS};u(a,this.params_,r);var h=Math.floor((t[0]-s[0])/e),l=Math.floor((s[3]-t[1])/e);return a[this.v13_?"I":"X"]=h,a[this.v13_?"J":"Y"]=l,this.getRequestUrl_(s,Rp,1,o||n,a)}},e.prototype.getParams=function(){return this.params_},e.prototype.getImageInternal=function(t,e,i,r){if(void 0===this.url_)return null;e=this.findNearestResolution(e),1==i||this.hidpi_&&void 0!==this.serverType_||(i=1);var n=e/i,o=Tt(t),s=Ct(o,n,0,[Math.ceil(Ot(t)/n),Math.ceil(Rt(t)/n)]),a=Ct(o,n,0,[Math.ceil(this.ratio_*Ot(t)/n),Math.ceil(this.ratio_*Rt(t)/n)]),h=this.image_;if(h&&this.renderedRevision_==this.getRevision()&&h.getResolution()==e&&h.getPixelRatio()==i&&ot(h.getExtent(),s))return h;var l={SERVICE:"WMS",VERSION:xp,REQUEST:"GetMap",FORMAT:"image/png",TRANSPARENT:!0};u(l,this.params_),this.imageSize_[0]=Math.round(Ot(a)/n),this.imageSize_[1]=Math.round(Rt(a)/n);var p=this.getRequestUrl_(a,this.imageSize_,i,r,l);return this.image_=new fp(a,e,i,p,this.crossOrigin_,this.imageLoadFunction_),this.renderedRevision_=this.getRevision(),v(this.image_,M.CHANGE,this.handleImageChange,this),this.image_},e.prototype.getImageLoadFunction=function(){return this.imageLoadFunction_},e.prototype.getRequestUrl_=function(t,e,i,r,n){if(Y(void 0!==this.url_,9),n[this.v13_?"CRS":"SRS"]=r.getCode(),"STYLES"in this.params_||(n.STYLES=""),1!=i)switch(this.serverType_){case Sp:var o=90*i+.5|0;"FORMAT_OPTIONS"in n?n.FORMAT_OPTIONS+=";dpi:"+o:n.FORMAT_OPTIONS="dpi:"+o;break;case Tp:n.MAP_RESOLUTION=90*i;break;case Ep:case Cp:n.DPI=90*i;break;default:Y(!1,8)}n.WIDTH=e[0],n.HEIGHT=e[1];var s,a=r.getAxisOrientation();return s=this.v13_&&"ne"==a.substr(0,2)?[t[1],t[0],t[3],t[2]]:t,n.BBOX=s.join(","),_p(this.url_,n)},e.prototype.getUrl=function(){return this.url_},e.prototype.setImageLoadFunction=function(t){this.image_=null,this.imageLoadFunction_=t,this.changed()},e.prototype.setUrl=function(t){t!=this.url_&&(this.url_=t,this.image_=null,this.changed())},e.prototype.updateParams=function(t){u(this.params_,t),this.updateV13_(),this.image_=null,this.changed()},e.prototype.updateV13_=function(){var t=this.params_.VERSION||xp;this.v13_=Ki(t,"1.3")>=0},e}(dp),Ip='© OpenStreetMap contributors.',Lp=function(t){function e(e){var i,r=e||{};i=void 0!==r.attributions?r.attributions:[Ip];var n=void 0!==r.crossOrigin?r.crossOrigin:"anonymous",o=void 0!==r.url?r.url:"https://{a-c}.tile.openstreetmap.org/{z}/{x}/{y}.png";t.call(this,{attributions:i,cacheSize:r.cacheSize,crossOrigin:n,opaque:void 0===r.opaque||r.opaque,maxZoom:void 0!==r.maxZoom?r.maxZoom:19,reprojectionErrorThreshold:r.reprojectionErrorThreshold,tileLoadFunction:r.tileLoadFunction,url:o,wrapX:r.wrapX,attributionsCollapsible:!1})}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e}(ep),Op=i(2),Pp=function(t){function e(e){var i=e||{};t.call(this,i),this.type=Ss.IMAGE}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e}(xo);Pp.prototype.getSource;var bp=Pp,Mp="preload",Fp="useInterimTilesOnError",Ap=function(t){function e(e){var i=e||{},r=u({},i);delete r.preload,delete r.useInterimTilesOnError,t.call(this,r),this.setPreload(void 0!==i.preload?i.preload:0),this.setUseInterimTilesOnError(void 0===i.useInterimTilesOnError||i.useInterimTilesOnError),this.type=Ss.TILE}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.getPreload=function(){return this.get(Mp)},e.prototype.setPreload=function(t){this.set(Mp,t)},e.prototype.getUseInterimTilesOnError=function(){return this.get(Fp)},e.prototype.setUseInterimTilesOnError=function(t){this.set(Fp,t)},e}(xo);Ap.prototype.getSource;var Np=Ap,Gp="beforeoperations",Dp="afteroperations",kp={PIXEL:"pixel",IMAGE:"image"},jp=function(t){function e(e,i,r){t.call(this,e),this.extent=i.extent,this.resolution=i.viewState.resolution/i.pixelRatio,this.data=r}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e}(P),Up=null;function Yp(t,e,i){if(!t.prepareFrame(e,i))return null;var r=e.size[0],n=e.size[1];if(Up){var o=Up.canvas;o.width!==r||o.height!==n?Up=Jn(r,n):Up.clearRect(0,0,r,n)}else Up=Jn(r,n);return t.composeFrame(e,i,Up),Up.getImageData(0,0,r,n)}function Bp(t){var e=t,i=t,r=t,n=null;return"function"==typeof e.getTile?n=function(t){var e=new Np({source:t});return new ha(e)}(e):"function"==typeof i.getImage?n=function(t){var e=new bp({source:t});return new ra(e)}(i):r.getType()===Ss.TILE?n=new ha(r):r.getType()!=Ss.IMAGE&&r.getType()!=Ss.VECTOR||(n=new ra(r)),n}var Vp=function(t){function e(e){t.call(this,{projection:null}),this.worker_=null,this.operationType_=void 0!==e.operationType?e.operationType:kp.PIXEL,this.threads_=void 0!==e.threads?e.threads:1,this.renderers_=function(t){for(var e=t.length,i=new Array(e),r=0;rStamen Design, under CC BY 3.0.',Ip],zp={terrain:{extension:"jpg",opaque:!0},"terrain-background":{extension:"jpg",opaque:!0},"terrain-labels":{extension:"png",opaque:!1},"terrain-lines":{extension:"png",opaque:!1},"toner-background":{extension:"png",opaque:!0},toner:{extension:"png",opaque:!0},"toner-hybrid":{extension:"png",opaque:!1},"toner-labels":{extension:"png",opaque:!1},"toner-lines":{extension:"png",opaque:!1},"toner-lite":{extension:"png",opaque:!0},watercolor:{extension:"jpg",opaque:!0}},Wp={terrain:{minZoom:4,maxZoom:18},toner:{minZoom:0,maxZoom:20},watercolor:{minZoom:1,maxZoom:16}},Kp=function(t){function e(e){var i=e.layer.indexOf("-"),r=-1==i?e.layer:e.layer.slice(0,i),n=Wp[r],o=zp[e.layer],s=void 0!==e.url?e.url:"https://stamen-tiles-{a-d}.a.ssl.fastly.net/"+e.layer+"/{z}/{x}/{y}."+o.extension;t.call(this,{attributions:Xp,cacheSize:e.cacheSize,crossOrigin:"anonymous",maxZoom:void 0!=e.maxZoom?e.maxZoom:n.maxZoom,minZoom:void 0!=e.minZoom?e.minZoom:n.minZoom,opaque:o.opaque,reprojectionErrorThreshold:e.reprojectionErrorThreshold,tileLoadFunction:e.tileLoadFunction,url:s,wrapX:e.wrapX})}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e}(ep);function Hp(t,e,i){var r=this.getTileGrid();if(r||(r=this.getTileGridForProjection(i)),!(r.getResolutions().length<=t[0])){var n=r.getTileCoordExtent(t,this.tmpExtent_),o=ho(r.getTileSize(t[0]),this.tmpSize);1!=e&&(o=ao(o,e,this.tmpSize));var s={F:"image",FORMAT:"PNG32",TRANSPARENT:!0};return u(s,this.params_),this.getRequestUrl_(t,o,n,e,i,s)}}var Zp=function(t){function e(e){var i=e||{};t.call(this,{attributions:i.attributions,cacheSize:i.cacheSize,crossOrigin:i.crossOrigin,projection:i.projection,reprojectionErrorThreshold:i.reprojectionErrorThreshold,tileGrid:i.tileGrid,tileLoadFunction:i.tileLoadFunction,tileUrlFunction:Hp,url:i.url,urls:i.urls,wrapX:void 0===i.wrapX||i.wrapX,transition:i.transition}),this.params_=i.params||{},this.tmpExtent_=[1/0,1/0,-1/0,-1/0],this.setKey(this.getKeyForParams_())}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.getKeyForParams_=function(){var t=0,e=[];for(var i in this.params_)e[t++]=i+"-"+this.params_[i];return e.join("/")},e.prototype.getParams=function(){return this.params_},e.prototype.getRequestUrl_=function(t,e,i,r,n,o){var s=this.urls;if(s){var a,h=n.getCode().split(":").pop();if(o.SIZE=e[0]+","+e[1],o.BBOX=i.join(","),o.BBOXSR=h,o.IMAGESR=h,o.DPI=Math.round(o.DPI?o.DPI*r:90*r),1==s.length)a=s[0];else a=s[Xt(Cl(t),s.length)];return _p(a.replace(/MapServer\/?$/,"MapServer/export").replace(/ImageServer\/?$/,"ImageServer/exportImage"),o)}},e.prototype.getTilePixelRatio=function(t){return t},e.prototype.updateParams=function(t){u(this.params_,t),this.setKey(this.getKeyForParams_())},e}($u),qp=function(t){function e(e,i,r){t.call(this,e,On.LOADED),this.tileSize_=i,this.text_=r,this.canvas_=null}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.getImage=function(){if(this.canvas_)return this.canvas_;var t=this.tileSize_,e=Jn(t[0],t[1]);return e.strokeStyle="black",e.strokeRect(.5,.5,t[0]+.5,t[1]+.5),e.fillStyle="black",e.textAlign="center",e.textBaseline="middle",e.font="24px sans-serif",e.fillText(this.text_,t[0]/2,t[1]/2),this.canvas_=e.canvas,e.canvas},e.prototype.load=function(){},e}(vl),Jp=function(t){function e(e){t.call(this,{opaque:!1,projection:e.projection,tileGrid:e.tileGrid,wrapX:void 0===e.wrapX||e.wrapX})}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.getTile=function(t,e,i){var r=Sl(t,e,i);if(this.tileCache.containsKey(r))return this.tileCache.get(r);var n=ho(this.tileGrid.getTileSize(t)),o=[t,e,i],s=this.getTileCoordForTileUrlFunction(o),a=s?this.getTileCoordForTileUrlFunction(s).toString():"",h=new qp(o,n,a);return this.tileCache.set(r,h),h},e}(jl),Qp=function(t){function e(e){if(t.call(this,{attributions:e.attributions,cacheSize:e.cacheSize,crossOrigin:e.crossOrigin,projection:Ee("EPSG:3857"),reprojectionErrorThreshold:e.reprojectionErrorThreshold,state:ro.LOADING,tileLoadFunction:e.tileLoadFunction,wrapX:void 0===e.wrapX||e.wrapX,transition:e.transition}),this.tileJSON_=null,e.url)if(e.jsonp)Yu(e.url,this.handleTileJSONResponse.bind(this),this.handleTileJSONError.bind(this));else{var i=new XMLHttpRequest;i.addEventListener("load",this.onXHRLoad_.bind(this)),i.addEventListener("error",this.onXHRError_.bind(this)),i.open("GET",e.url),i.send()}else e.tileJSON?this.handleTileJSONResponse(e.tileJSON):Y(!1,51)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.onXHRLoad_=function(t){var e=t.target;if(!e.status||e.status>=200&&e.status<300){var i;try{i=JSON.parse(e.responseText)}catch(t){return void this.handleTileJSONError()}this.handleTileJSONResponse(i)}else this.handleTileJSONError()},e.prototype.onXHRError_=function(t){this.handleTileJSONError()},e.prototype.getTileJSON=function(){return this.tileJSON_},e.prototype.handleTileJSONResponse=function(t){var e,i=Ee("EPSG:4326"),r=this.getProjection();if(void 0!==t.bounds){var n=Le(i,r);e=Ft(t.bounds,n)}var o=t.minzoom||0,s=t.maxzoom||22,a=Fl({extent:Gl(r),maxZoom:s,minZoom:o});if(this.tileGrid=a,this.tileUrlFunction=Du(t.tiles,a),void 0!==t.attribution&&!this.getAttributions()){var h=void 0!==e?e:i.getExtent();this.setAttributions(function(e){return Pt(h,e.extent)?[t.attribution]:null})}this.tileJSON_=t,this.setState(ro.READY)},e.prototype.handleTileJSONError=function(){this.setState(ro.ERROR)},e}($u);function $p(t,e,i){var r=this.getTileGrid();if(r||(r=this.getTileGridForProjection(i)),!(r.getResolutions().length<=t[0])){1==e||this.hidpi_&&void 0!==this.serverType_||(e=1);var n=r.getResolution(t[0]),o=r.getTileCoordExtent(t,this.tmpExtent_),s=ho(r.getTileSize(t[0]),this.tmpSize),a=this.gutter_;0!==a&&(s=so(s,a,this.tmpSize),o=et(o,n*a,o)),1!=e&&(s=ao(s,e,this.tmpSize));var h={SERVICE:"WMS",VERSION:xp,REQUEST:"GetMap",FORMAT:"image/png",TRANSPARENT:!0};return u(h,this.params_),this.getRequestUrl_(t,s,o,e,i,h)}}var tc=function(t){function e(e){var i=e||{},r=i.params||{},n=!("TRANSPARENT"in r)||r.TRANSPARENT;t.call(this,{attributions:i.attributions,cacheSize:i.cacheSize,crossOrigin:i.crossOrigin,opaque:!n,projection:i.projection,reprojectionErrorThreshold:i.reprojectionErrorThreshold,tileClass:i.tileClass,tileGrid:i.tileGrid,tileLoadFunction:i.tileLoadFunction,tileUrlFunction:$p,url:i.url,urls:i.urls,wrapX:void 0===i.wrapX||i.wrapX,transition:i.transition}),this.gutter_=void 0!==i.gutter?i.gutter:0,this.params_=r,this.v13_=!0,this.serverType_=i.serverType,this.hidpi_=void 0===i.hidpi||i.hidpi,this.tmpExtent_=[1/0,1/0,-1/0,-1/0],this.updateV13_(),this.setKey(this.getKeyForParams_())}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.getGetFeatureInfoUrl=function(t,e,i,r){var n=Ee(i),o=this.getProjection(),s=this.getTileGrid();s||(s=this.getTileGridForProjection(n));var a=s.getTileCoordForCoordAndResolution(t,e);if(!(s.getResolutions().length<=a[0])){var h=s.getResolution(a[0]),l=s.getTileCoordExtent(a,this.tmpExtent_),p=ho(s.getTileSize(a[0]),this.tmpSize),c=this.gutter_;0!==c&&(p=so(p,c,this.tmpSize),l=et(l,h*c,l)),o&&o!==n&&(h=Bu(o,n,t,h),l=be(l,n,o),t=Pe(t,n,o));var d={SERVICE:"WMS",VERSION:xp,REQUEST:"GetFeatureInfo",FORMAT:"image/png",TRANSPARENT:!0,QUERY_LAYERS:this.params_.LAYERS};u(d,this.params_,r);var f=Math.floor((t[0]-l[0])/h),_=Math.floor((l[3]-t[1])/h);return d[this.v13_?"I":"X"]=f,d[this.v13_?"J":"Y"]=_,this.getRequestUrl_(a,p,l,1,o||n,d)}},e.prototype.getGutter=function(){return this.gutter_},e.prototype.getParams=function(){return this.params_},e.prototype.getRequestUrl_=function(t,e,i,r,n,o){var s=this.urls;if(s){if(o.WIDTH=e[0],o.HEIGHT=e[1],o[this.v13_?"CRS":"SRS"]=n.getCode(),"STYLES"in this.params_||(o.STYLES=""),1!=r)switch(this.serverType_){case Sp:var a=90*r+.5|0;"FORMAT_OPTIONS"in o?o.FORMAT_OPTIONS+=";dpi:"+a:o.FORMAT_OPTIONS="dpi:"+a;break;case Tp:o.MAP_RESOLUTION=90*r;break;case Ep:case Cp:o.DPI=90*r;break;default:Y(!1,52)}var h,l,u=n.getAxisOrientation(),p=i;if(this.v13_&&"ne"==u.substr(0,2))h=i[0],p[0]=i[1],p[1]=h,h=i[2],p[2]=i[3],p[3]=h;if(o.BBOX=p.join(","),1==s.length)l=s[0];else l=s[Xt(Cl(t),s.length)];return _p(l,o)}},e.prototype.getTilePixelRatio=function(t){return this.hidpi_&&void 0!==this.serverType_?t:1},e.prototype.getKeyForParams_=function(){var t=0,e=[];for(var i in this.params_)e[t++]=i+"-"+this.params_[i];return e.join("/")},e.prototype.updateParams=function(t){u(this.params_,t),this.updateV13_(),this.setKey(this.getKeyForParams_())},e.prototype.updateV13_=function(){var t=this.params_.VERSION||xp;this.v13_=Ki(t,"1.3")>=0},e}($u),ec=function(t){function e(e,i,r,n,o,s){t.call(this,e,i),this.src_=r,this.extent_=n,this.preemptive_=o,this.grid_=null,this.keys_=null,this.data_=null,this.jsonp_=s}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.getImage=function(){return null},e.prototype.getData=function(t){if(!this.grid_||!this.keys_)return null;var e=(t[0]-this.extent_[0])/(this.extent_[2]-this.extent_[0]),i=(t[1]-this.extent_[1])/(this.extent_[3]-this.extent_[1]),r=this.grid_[Math.floor((1-i)*this.grid_.length)];if("string"!=typeof r)return null;var n=r.charCodeAt(Math.floor(e*r.length));n>=93&&n--,n>=35&&n--;var o=null;if((n-=32)in this.keys_){var s=this.keys_[n];o=this.data_&&s in this.data_?this.data_[s]:s}return o},e.prototype.forDataAtCoordinate=function(t,e,i,r){this.state==On.IDLE&&!0===r?(m(this,M.CHANGE,function(r){e.call(i,this.getData(t))},this),this.loadInternal_()):!0===r?setTimeout(function(){e.call(i,this.getData(t))}.bind(this),0):e.call(i,this.getData(t))},e.prototype.getKey=function(){return this.src_},e.prototype.handleError_=function(){this.state=On.ERROR,this.changed()},e.prototype.handleLoad_=function(t){this.grid_=t.grid,this.keys_=t.keys,this.data_=t.data,this.state=On.EMPTY,this.changed()},e.prototype.loadInternal_=function(){if(this.state==On.IDLE)if(this.state=On.LOADING,this.jsonp_)Yu(this.src_,this.handleLoad_.bind(this),this.handleError_.bind(this));else{var t=new XMLHttpRequest;t.addEventListener("load",this.onXHRLoad_.bind(this)),t.addEventListener("error",this.onXHRError_.bind(this)),t.open("GET",this.src_),t.send()}},e.prototype.onXHRLoad_=function(t){var e=t.target;if(!e.status||e.status>=200&&e.status<300){var i;try{i=JSON.parse(e.responseText)}catch(t){return void this.handleError_()}this.handleLoad_(i)}else this.handleError_()},e.prototype.onXHRError_=function(t){this.handleError_()},e.prototype.load=function(){this.preemptive_&&this.loadInternal_()},e}(vl),ic=function(t){function e(e){if(t.call(this,{projection:Ee("EPSG:3857"),state:ro.LOADING}),this.preemptive_=void 0===e.preemptive||e.preemptive,this.tileUrlFunction_=ju,this.template_=void 0,this.jsonp_=e.jsonp||!1,e.url)if(this.jsonp_)Yu(e.url,this.handleTileJSONResponse.bind(this),this.handleTileJSONError.bind(this));else{var i=new XMLHttpRequest;i.addEventListener("load",this.onXHRLoad_.bind(this)),i.addEventListener("error",this.onXHRError_.bind(this)),i.open("GET",e.url),i.send()}else e.tileJSON?this.handleTileJSONResponse(e.tileJSON):Y(!1,51)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.onXHRLoad_=function(t){var e=t.target;if(!e.status||e.status>=200&&e.status<300){var i;try{i=JSON.parse(e.responseText)}catch(t){return void this.handleTileJSONError()}this.handleTileJSONResponse(i)}else this.handleTileJSONError()},e.prototype.onXHRError_=function(t){this.handleTileJSONError()},e.prototype.getTemplate=function(){return this.template_},e.prototype.forDataAtCoordinateAndResolution=function(t,e,i,r){if(this.tileGrid){var n=this.tileGrid.getTileCoordForCoordAndResolution(t,e);this.getTile(n[0],n[1],n[2],1,this.getProjection()).forDataAtCoordinate(t,i,null,r)}else!0===r?setTimeout(function(){i(null)},0):i(null)},e.prototype.handleTileJSONError=function(){this.setState(ro.ERROR)},e.prototype.handleTileJSONResponse=function(t){var e,i=Ee("EPSG:4326"),r=this.getProjection();if(void 0!==t.bounds){var n=Le(i,r);e=Ft(t.bounds,n)}var o=t.minzoom||0,s=t.maxzoom||22,a=Fl({extent:Gl(r),maxZoom:s,minZoom:o});this.tileGrid=a,this.template_=t.template;var h=t.grids;if(h){if(this.tileUrlFunction_=Du(h,a),void 0!==t.attribution){var l=void 0!==e?e:i.getExtent();this.setAttributions(function(e){return Pt(l,e.extent)?[t.attribution]:null})}this.setState(ro.READY)}else this.setState(ro.ERROR)},e.prototype.getTile=function(t,e,i,r,n){var o=Sl(t,e,i);if(this.tileCache.containsKey(o))return this.tileCache.get(o);var s=[t,e,i],a=this.getTileCoordForTileUrlFunction(s,n),h=this.tileUrlFunction_(a,r,n),l=new ec(s,void 0!==h?On.IDLE:On.EMPTY,void 0!==h?h:"",this.tileGrid.getTileCoordExtent(s),this.preemptive_,this.jsonp_);return this.tileCache.set(o,l),l},e.prototype.useTile=function(t,e,i){var r=Sl(t,e,i);this.tileCache.containsKey(r)&&this.tileCache.get(r)},e}(jl),rc=function(t){function e(i,r,n,o,s,a,h,l,u,p,c,d,f,_,g){if(t.call(this,i,r,{transition:0}),this.context_={},this.loader_,this.replayState_={},this.sourceTiles_=p,this.tileKeys=[],this.extent=null,this.sourceRevision_=n,this.wrappedTileCoord=a,this.loadListenerKeys_=[],this.sourceTileListenerKeys_=[],a){var y=this.extent=u.getTileCoordExtent(a),m=u.getResolution(g),x=l.getZForResolution(m),E=g!=i[0],S=0;if(l.forEachTileCoord(y,x,function(t){var e=wt(y,l.getTileCoordExtent(t)),i=l.getExtent();if(i&&(e=wt(e,i,e)),Ot(e)/m>=.5&&Rt(e)/m>=.5){++S;var r=t.toString(),n=p[r];if(!n&&!E){var a=h(t,c,d);n=p[r]=new f(t,void 0==a?On.EMPTY:On.IDLE,void 0==a?"":a,o,s),this.sourceTileListenerKeys_.push(v(n,M.CHANGE,_))}!n||E&&n.getState()!=On.LOADED||(n.consumers++,this.tileKeys.push(r))}}.bind(this)),E&&S==this.tileKeys.length&&this.finishLoading_(),g<=i[0]&&this.state!=On.LOADED)for(;g>u.getMinZoom();){var T=new e(i,r,n,o,s,a,h,l,u,p,c,d,f,I,--g);if(T.state==On.LOADED){this.interimTile=T;break}}}}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.disposeInternal=function(){this.state=On.ABORT,this.changed(),this.interimTile&&this.interimTile.dispose();for(var e=0,i=this.tileKeys.length;e=0;--i){var r=this.getTile(this.tileKeys[i]).getState();r!=On.LOADED&&--t,r==On.EMPTY&&++e}t==this.tileKeys.length?(this.loadListenerKeys_.forEach(E),this.loadListenerKeys_.length=0,this.setState(On.LOADED)):this.setState(e==this.tileKeys.length?On.EMPTY:On.ERROR)},e}(vl);function nc(t,e){var i=Zl(e,t.getFormat(),t.onLoad.bind(t),t.onError.bind(t));t.setLoader(i)}var oc=[0,0,4096,4096],sc=function(t){function e(e,i,r,n,o,s){t.call(this,e,i,s),this.consumers=0,this.extent_=null,this.format_=n,this.features_=null,this.loader_,this.projection_=null,this.replayGroups_={},this.tileLoadFunction_=o,this.url_=r}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.disposeInternal=function(){this.features_=null,this.replayGroups_={},this.state=On.ABORT,this.changed(),t.prototype.disposeInternal.call(this)},e.prototype.getExtent=function(){return this.extent_||oc},e.prototype.getFormat=function(){return this.format_},e.prototype.getFeatures=function(){return this.features_},e.prototype.getKey=function(){return this.url_},e.prototype.getProjection=function(){return this.projection_},e.prototype.getReplayGroup=function(t,e){return this.replayGroups_[o(t)+","+e]},e.prototype.load=function(){this.state==On.IDLE&&(this.setState(On.LOADING),this.tileLoadFunction_(this,this.url_),this.loader_(null,NaN,null))},e.prototype.onLoad=function(t,e,i){this.setProjection(e),this.setFeatures(t),this.setExtent(i)},e.prototype.onError=function(){this.setState(On.ERROR)},e.prototype.setExtent=function(t){this.extent_=t},e.prototype.setFeatures=function(t){this.features_=t,this.setState(On.LOADED)},e.prototype.setProjection=function(t){this.projection_=t},e.prototype.setReplayGroup=function(t,e,i){this.replayGroups_[o(t)+","+e]=i},e.prototype.setLoader=function(t){this.loader_=t},e}(vl),ac=function(t){function e(e){var i=e.projection||"EPSG:3857",r=e.extent||Gl(i),n=e.tileGrid||Fl({extent:r,maxZoom:e.maxZoom||22,minZoom:e.minZoom,tileSize:e.tileSize||512});t.call(this,{attributions:e.attributions,cacheSize:void 0!==e.cacheSize?e.cacheSize:128,opaque:!1,projection:i,state:e.state,tileGrid:n,tileLoadFunction:e.tileLoadFunction?e.tileLoadFunction:nc,tileUrlFunction:e.tileUrlFunction,url:e.url,urls:e.urls,wrapX:void 0===e.wrapX||e.wrapX,transition:e.transition}),this.format_=e.format?e.format:null,this.sourceTiles_={},this.overlaps_=void 0==e.overlaps||e.overlaps,this.tileClass=e.tileClass?e.tileClass:sc,this.tileGrids_={}}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.getOverlaps=function(){return this.overlaps_},e.prototype.clear=function(){this.tileCache.clear(),this.sourceTiles_={}},e.prototype.getTile=function(t,e,i,r,n){var o=Sl(t,e,i);if(this.tileCache.containsKey(o))return this.tileCache.get(o);var s=[t,e,i],a=this.getTileCoordForTileUrlFunction(s,n),h=new rc(s,null!==a?On.IDLE:On.EMPTY,this.getRevision(),this.format_,this.tileLoadFunction,a,this.tileUrlFunction,this.tileGrid,this.getTileGridForProjection(n),this.sourceTiles_,r,n,this.tileClass,this.handleTileChange.bind(this),s[0]);return this.tileCache.set(o,h),h},e.prototype.getTileGridForProjection=function(t){var e=t.getCode(),i=this.tileGrids_[e];if(!i){var r=this.tileGrid;i=this.tileGrids_[e]=Nl(t,void 0,r?r.getTileSize(r.getMinZoom()):void 0)}return i},e.prototype.getTilePixelRatio=function(t){return t},e.prototype.getTilePixelSize=function(t,e,i){var r=ho(this.getTileGridForProjection(i).getTileSize(t),this.tmpSize);return[Math.round(r[0]*e),Math.round(r[1]*e)]},e}(Ju),hc={KVP:"KVP",REST:"REST"},lc=function(t){function e(e){var i=void 0!==e.requestEncoding?e.requestEncoding:hc.KVP,r=e.tileGrid,n=e.urls;void 0===n&&void 0!==e.url&&(n=Uu(e.url)),t.call(this,{attributions:e.attributions,cacheSize:e.cacheSize,crossOrigin:e.crossOrigin,projection:e.projection,reprojectionErrorThreshold:e.reprojectionErrorThreshold,tileClass:e.tileClass,tileGrid:r,tileLoadFunction:e.tileLoadFunction,tilePixelRatio:e.tilePixelRatio,tileUrlFunction:ju,urls:n,wrapX:void 0!==e.wrapX&&e.wrapX,transition:e.transition}),this.version_=void 0!==e.version?e.version:"1.0.0",this.format_=void 0!==e.format?e.format:"image/jpeg",this.dimensions_=void 0!==e.dimensions?e.dimensions:{},this.layer_=e.layer,this.matrixSet_=e.matrixSet,this.style_=e.style,this.requestEncoding_=i,this.setKey(this.getKeyForDimensions_()),n&&n.length>0&&(this.tileUrlFunction=ku(n.map(uc.bind(this))))}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.setUrls=function(t){this.urls=t;var e=t.join("\n");this.setTileUrlFunction(ku(t.map(uc.bind(this))),e)},e.prototype.getDimensions=function(){return this.dimensions_},e.prototype.getFormat=function(){return this.format_},e.prototype.getLayer=function(){return this.layer_},e.prototype.getMatrixSet=function(){return this.matrixSet_},e.prototype.getRequestEncoding=function(){return this.requestEncoding_},e.prototype.getStyle=function(){return this.style_},e.prototype.getVersion=function(){return this.version_},e.prototype.getKeyForDimensions_=function(){var t=0,e=[];for(var i in this.dimensions_)e[t++]=i+"-"+this.dimensions_[i];return e.join("/")},e.prototype.updateDimensions=function(t){u(this.dimensions_,t),this.setKey(this.getKeyForDimensions_())},e}($u);function uc(t){var e=this.requestEncoding_,i={layer:this.layer_,style:this.style_,tilematrixset:this.matrixSet_};e==hc.KVP&&u(i,{Service:"WMTS",Request:"GetTile",Version:this.version_,Format:this.format_}),t=e==hc.KVP?_p(t,i):t.replace(/\{(\w+?)\}/g,function(t,e){return e.toLowerCase()in i?i[e.toLowerCase()]:t});var r=this.tileGrid,n=this.dimensions_;return function(i,o,s){if(i){var a={TileMatrix:r.getMatrixId(i[0]),TileCol:i[1],TileRow:-i[2]-1};u(a,n);var h=t;return h=e==hc.KVP?_p(h,a):h.replace(/\{(\w+?)\}/g,function(t,e){return a[e]})}}}var pc={DEFAULT:"default",TRUNCATED:"truncated"},cc=function(t){function e(e,i,r,n,o,s,a){t.call(this,i,r,n,o,s,a),this.zoomifyImage_=null,this.tileSize_=ho(e.getTileSize(i[0]))}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.getImage=function(){if(this.zoomifyImage_)return this.zoomifyImage_;var e=t.prototype.getImage.call(this);if(this.state==On.LOADED){var i=this.tileSize_;if(e.width==i[0]&&e.height==i[1])return this.zoomifyImage_=e,e;var r=Jn(i[0],i[1]);return r.drawImage(e,0,0),this.zoomifyImage_=r.canvas,r.canvas}return e},e}(xl),dc=function(t){function e(e){var i=e||{},r=i.size,n=void 0!==i.tierSizeCalculation?i.tierSizeCalculation:pc.DEFAULT,o=r[0],s=r[1],a=i.extent||[0,-r[1],r[0],0],h=[],l=i.tileSize||An,u=l;switch(n){case pc.DEFAULT:for(;o>u||s>u;)h.push([Math.ceil(o/u),Math.ceil(s/u)]),u+=u;break;case pc.TRUNCATED:for(var p=o,c=s;p>u||c>u;)h.push([Math.ceil(p/u),Math.ceil(c/u)]),p>>=1,c>>=1;break;default:Y(!1,53)}h.push([1,1]),h.reverse();for(var d=[1],f=[0],_=1,g=h.length;_0)break}this.source_&&(this.source_.clear(),this.source_.addFeatures(s)),this.dispatchEvent(new Tc(Sc,t,s,n))},e.prototype.registerListeners_=function(){var t=this.getMap();if(t){var e=this.target?this.target:t.getViewport();this.dropListenKeys_=[v(e,M.DROP,Cc,this),v(e,M.DRAGENTER,Rc,this),v(e,M.DRAGOVER,Rc,this),v(e,M.DROP,Rc,this)]}},e.prototype.setActive=function(e){t.prototype.setActive.call(this,e),e?this.registerListeners_():this.unregisterListeners_()},e.prototype.setMap=function(e){this.unregisterListeners_(),t.prototype.setMap.call(this,e),this.getActive()&&this.registerListeners_()},e.prototype.tryReadFeatures_=function(t,e,i){try{return t.readFeatures(e,i)}catch(t){return null}},e.prototype.unregisterListeners_=function(){this.dropListenKeys_&&(this.dropListenKeys_.forEach(E),this.dropListenKeys_=null)},e}(Fo),Ic=function(t){function e(e){var i=e||{};t.call(this,i),this.condition_=i.condition?i.condition:zo,this.lastAngle_=void 0,this.lastMagnitude_=void 0,this.lastScaleDelta_=0,this.duration_=void 0!==i.duration?i.duration:400}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.handleDragEvent=function(t){if(Ko(t)){var e=t.map,i=e.getSize(),r=t.pixel,n=r[0]-i[0]/2,o=i[1]/2-r[1],s=Math.atan2(o,n),a=Math.sqrt(n*n+o*o),h=e.getView();if(h.getConstraints().rotation!==Gn&&void 0!==this.lastAngle_){var l=s-this.lastAngle_;Oo(h,h.getRotation()-l)}if(this.lastAngle_=s,void 0!==this.lastMagnitude_)Mo(h,this.lastMagnitude_*(h.getResolution()/a));void 0!==this.lastMagnitude_&&(this.lastScaleDelta_=this.lastMagnitude_/a),this.lastMagnitude_=a}},e.prototype.handleUpEvent=function(t){if(!Ko(t))return!0;var e=t.map.getView();e.setHint(jn,-1);var i=this.lastScaleDelta_-1;return Lo(e,e.getRotation()),Po(e,e.getResolution(),void 0,this.duration_,i),this.lastScaleDelta_=0,!1},e.prototype.handleDownEvent=function(t){return!!Ko(t)&&(!!this.condition_(t)&&(t.map.getView().setHint(jn,1),this.lastAngle_=void 0,this.lastMagnitude_=void 0,!0))},e}(qo),Lc=function(t){function e(e,i,r){if(t.call(this),void 0!==r&&void 0===i)this.setFlatCoordinates(r,e);else{var n=i||0;this.setCenterAndRadius(e,n,r)}}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.clone=function(){return new e(this.flatCoordinates.slice(),void 0,this.layout)},e.prototype.closestPointXY=function(t,e,i,r){var n=this.flatCoordinates,o=t-n[0],s=e-n[1],a=o*o+s*s;if(a=e[0]||(t[1]<=e[1]&&t[3]>=e[1]||mt(t,this.intersectsCoordinate,this))}return!1},e.prototype.setCenter=function(t){var e=this.stride,i=this.flatCoordinates[e]-this.flatCoordinates[0],r=t.slice();r[e]=r[0]+i;for(var n=1;n=this.dragVertexDelay_?(this.downPx_=e.pixel,this.shouldHandle_=!this.freehand_,i=!0):this.lastDragTime_=void 0,this.shouldHandle_&&void 0!==this.downTimeout_&&(clearTimeout(this.downTimeout_),this.downTimeout_=void 0));return this.freehand_&&e.type===Ar.POINTERDRAG&&null!==this.sketchFeature_?(this.addToDrawing_(e),r=!1):this.freehand_&&e.type===Ar.POINTERDOWN?r=!1:i?(r=e.type===Ar.POINTERMOVE)&&this.freehand_?r=this.handlePointerMove_(e):(e.pointerEvent.pointerType==Ur||e.type===Ar.POINTERDRAG&&void 0===this.downTimeout_)&&this.handlePointerMove_(e):e.type===Ar.DBLCLICK&&(r=!1),t.prototype.handleEvent.call(this,e)&&r},e.prototype.handleDownEvent=function(t){return this.shouldHandle_=!this.freehand_,this.freehand_?(this.downPx_=t.pixel,this.finishCoordinate_||this.startDrawing_(t),!0):!!this.condition_(t)&&(this.lastDragTime_=Date.now(),this.downTimeout_=setTimeout(function(){this.handlePointerMove_(new Nr(Ar.POINTERMOVE,t.map,t.pointerEvent,!1,t.frameState))}.bind(this),this.dragVertexDelay_),this.downPx_=t.pixel,!0)},e.prototype.handleUpEvent=function(t){var e=!0;this.downTimeout_&&(clearTimeout(this.downTimeout_),this.downTimeout_=void 0),this.handlePointerMove_(t);var i=this.mode_===Ac.CIRCLE;return this.shouldHandle_?(this.finishCoordinate_?this.freehand_||i?this.finishDrawing():this.atFinish_(t)?this.finishCondition_(t)&&this.finishDrawing():this.addToDrawing_(t):(this.startDrawing_(t),this.mode_===Ac.POINT&&this.finishDrawing()),e=!1):this.freehand_&&(this.finishCoordinate_=null,this.abortDrawing_()),!e&&this.stopClick_&&t.stopPropagation(),e},e.prototype.handlePointerMove_=function(t){if(this.downPx_&&(!this.freehand_&&this.shouldHandle_||this.freehand_&&!this.shouldHandle_)){var e=this.downPx_,i=t.pixel,r=e[0]-i[0],n=e[1]-i[1],o=r*r+n*n;if(this.shouldHandle_=this.freehand_?o>this.squaredClickTolerance_:o<=this.squaredClickTolerance_,!this.shouldHandle_)return!0}return this.finishCoordinate_?this.modifyDrawing_(t):this.createOrUpdateSketchPoint_(t),!0},e.prototype.atFinish_=function(t){var e=!1;if(this.sketchFeature_){var i=!1,r=[this.finishCoordinate_];if(this.mode_===Ac.LINE_STRING)i=this.sketchCoords_.length>this.minPoints_;else if(this.mode_===Ac.POLYGON){var n=this.sketchCoords_;i=n[0].length>this.minPoints_,r=[n[0][0],n[0][n[0].length-2]]}if(i)for(var o=t.map,s=0,a=r.length;s=this.maxPoints_&&(this.freehand_?i.pop():e=!0),i.push(r.slice()),this.geometryFunction_(i,n)):this.mode_===Ac.POLYGON&&((i=this.sketchCoords_[0]).length>=this.maxPoints_&&(this.freehand_?i.pop():e=!0),i.push(r.slice()),e&&(this.finishCoordinate_=i[0]),this.geometryFunction_(this.sketchCoords_,n)),this.updateSketchFeatures_(),e&&this.finishDrawing()},e.prototype.removeLastPoint=function(){if(this.sketchFeature_){var t,e=this.sketchFeature_.getGeometry();this.mode_===Ac.LINE_STRING?((t=this.sketchCoords_).splice(-2,1),this.geometryFunction_(t,e),t.length>=2&&(this.finishCoordinate_=t[t.length-2].slice())):this.mode_===Ac.POLYGON&&((t=this.sketchCoords_[0]).splice(-2,1),this.sketchLine_.getGeometry().setCoordinates(t),this.geometryFunction_(this.sketchCoords_,e)),0===t.length&&(this.finishCoordinate_=null),this.updateSketchFeatures_()}},e.prototype.finishDrawing=function(){var t=this.abortDrawing_();if(t){var e=this.sketchCoords_,i=t.getGeometry();this.mode_===Ac.LINE_STRING?(e.pop(),this.geometryFunction_(e,i)):this.mode_===Ac.POLYGON&&(e[0].pop(),this.geometryFunction_(e,i),e=i.getCoordinates()),this.type_===Nt.MULTI_POINT?t.setGeometry(new bc([e])):this.type_===Nt.MULTI_LINE_STRING?t.setGeometry(new Pc([e])):this.type_===Nt.MULTI_POLYGON&&t.setGeometry(new Fc([e])),this.dispatchEvent(new Dc(Gc,t)),this.features_&&this.features_.push(t),this.source_&&this.source_.addFeature(t)}},e.prototype.abortDrawing_=function(){this.finishCoordinate_=null;var t=this.sketchFeature_;return t&&(this.sketchFeature_=null,this.sketchPoint_=null,this.sketchLine_=null,this.overlay_.getSource().clear(!0)),t},e.prototype.extend=function(t){var e=t.getGeometry();this.sketchFeature_=t,this.sketchCoords_=e.getCoordinates();var i=this.sketchCoords_[this.sketchCoords_.length-1];this.finishCoordinate_=i.slice(),this.sketchCoords_.push(i.slice()),this.updateSketchFeatures_(),this.dispatchEvent(new Dc(Nc,this.sketchFeature_))},e.prototype.updateSketchFeatures_=function(){var t=[];this.sketchFeature_&&t.push(this.sketchFeature_),this.sketchLine_&&t.push(this.sketchLine_),this.sketchPoint_&&t.push(this.sketchPoint_);var e=this.overlay_.getSource();e.clear(!0),e.addFeatures(t)},e.prototype.updateState_=function(){var t=this.getMap(),e=this.getActive();t&&e||this.abortDrawing_(),this.overlay_.setMap(e?t:null)},e}(qo),jc={EXTENTCHANGED:"extentchanged"},Uc=function(t){function e(e){t.call(this,jc.EXTENTCHANGED),this.extent=e}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e}(P);function Yc(t){return function(e){return tt([t,e])}}function Bc(t,e){return t[0]==e[0]?function(i){return tt([t,[i[0],e[1]]])}:t[1]==e[1]?function(i){return tt([t,[e[0],i[1]]])}:null}var Vc=function(t){function e(e){var i=e||{};t.call(this,i),this.extent_=null,this.pointerHandler_=null,this.pixelTolerance_=void 0!==i.pixelTolerance?i.pixelTolerance:10,this.snappedToVertex_=!1,this.extentFeature_=null,this.vertexFeature_=null,e||(e={}),this.extentOverlay_=new gc({source:new op({useSpatialIndex:!1,wrapX:!!e.wrapX}),style:e.boxStyle?e.boxStyle:function(){var t=Fu();return function(e,i){return t[Nt.POLYGON]}}(),updateWhileAnimating:!0,updateWhileInteracting:!0}),this.vertexOverlay_=new gc({source:new op({useSpatialIndex:!1,wrapX:!!e.wrapX}),style:e.pointerStyle?e.pointerStyle:function(){var t=Fu();return function(e,i){return t[Nt.POINT]}}(),updateWhileAnimating:!0,updateWhileInteracting:!0}),e.extent&&this.setExtent(e.extent)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.snapToVertex_=function(t,e){var i=e.getCoordinateFromPixel(t),r=this.getExtent();if(r){var n=function(t){return[[[t[0],t[1]],[t[0],t[3]]],[[t[0],t[3]],[t[2],t[3]]],[[t[2],t[3]],[t[2],t[1]]],[[t[2],t[1]],[t[0],t[1]]]]}(r);n.sort(function(t,e){return rr(i,t)-rr(i,e)});var o=n[0],s=Zi(i,o),a=e.getPixelFromCoordinate(s);if(ir(t,a)<=this.pixelTolerance_){var h=e.getPixelFromCoordinate(o[0]),l=e.getPixelFromCoordinate(o[1]),u=er(a,h),p=er(a,l),c=Math.sqrt(Math.min(u,p));return this.snappedToVertex_=c<=this.pixelTolerance_,this.snappedToVertex_&&(s=u>p?o[1]:o[0]),s}}return null},e.prototype.handlePointerMove_=function(t){var e=t.pixel,i=t.map,r=this.snapToVertex_(e,i);r||(r=i.getCoordinateFromPixel(e)),this.createOrUpdatePointerFeature_(r)},e.prototype.createOrUpdateExtentFeature_=function(t){var e=this.extentFeature_;return e?t?e.setGeometry(Oi(t)):e.setGeometry(void 0):(e=new B(t?Oi(t):{}),this.extentFeature_=e,this.extentOverlay_.getSource().addFeature(e)),e},e.prototype.createOrUpdatePointerFeature_=function(t){var e=this.vertexFeature_;e?e.getGeometry().setCoordinates(t):(e=new B(new ci(t)),this.vertexFeature_=e,this.vertexOverlay_.getSource().addFeature(e));return e},e.prototype.handleEvent=function(e){return!e.pointerEvent||(e.type!=Ar.POINTERMOVE||this.handlingDownUpSequence||this.handlePointerMove_(e),t.prototype.handleEvent.call(this,e),!1)},e.prototype.handleDownEvent=function(t){var e=t.pixel,i=t.map,r=this.getExtent(),n=this.snapToVertex_(e,i),o=function(t){var e=null,i=null;return t[0]==r[0]?e=r[2]:t[0]==r[2]&&(e=r[0]),t[1]==r[1]?i=r[3]:t[1]==r[3]&&(i=r[1]),null!==e&&null!==i?[e,i]:null};if(n&&r){var s=n[0]==r[0]||n[0]==r[2]?n[0]:null,a=n[1]==r[1]||n[1]==r[3]?n[1]:null;null!==s&&null!==a?this.pointerHandler_=Yc(o(n)):null!==s?this.pointerHandler_=Bc(o([s,r[1]]),o([s,r[3]])):null!==a&&(this.pointerHandler_=Bc(o([r[0],a]),o([r[2],a])))}else n=i.getCoordinateFromPixel(e),this.setExtent([n[0],n[1],n[0],n[1]]),this.pointerHandler_=Yc(n);return!0},e.prototype.handleDragEvent=function(t){if(this.pointerHandler_){var e=t.coordinate;this.setExtent(this.pointerHandler_(e)),this.createOrUpdatePointerFeature_(e)}return!0},e.prototype.handleUpEvent=function(t){this.pointerHandler_=null;var e=this.getExtent();return e&&0!==xt(e)||this.setExtent(null),!1},e.prototype.setMap=function(e){this.extentOverlay_.setMap(e),this.vertexOverlay_.setMap(e),t.prototype.setMap.call(this,e)},e.prototype.getExtent=function(){return this.extent_},e.prototype.setExtent=function(t){this.extent_=t||null,this.createOrUpdateExtentFeature_(t),this.dispatchEvent(new Uc(this.extent_))},e}(qo),Xc=1,zc="modifystart",Wc="modifyend",Kc=function(t){function e(e,i,r){t.call(this,e),this.features=i,this.mapBrowserEvent=r}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e}(P);function Hc(t,e){return t.index-e.index}function Zc(t,e){var i=e.geometry;if(i.getType()===Nt.CIRCLE){var r=i;if(e.index===Xc){var n=er(r.getCenter(),t),o=Math.sqrt(n)-r.getRadius();return o*o}}return rr(t,e.segment)}function qc(t,e){var i=e.geometry;return i.getType()===Nt.CIRCLE&&e.index===Xc?i.getClosestPoint(t):Zi(t,e.segment)}var Jc=function(t){function e(e){var i;if(t.call(this,e),this.condition_=e.condition?e.condition:Ho,this.defaultDeleteCondition_=function(t){return Go(t)&&Vo(t)},this.deleteCondition_=e.deleteCondition?e.deleteCondition:this.defaultDeleteCondition_,this.insertVertexCondition_=e.insertVertexCondition?e.insertVertexCondition:jo,this.vertexFeature_=null,this.vertexSegments_=null,this.lastPixel_=[0,0],this.ignoreNextSingleClick_=!1,this.modified_=!1,this.rBush_=new tl,this.pixelTolerance_=void 0!==e.pixelTolerance?e.pixelTolerance:10,this.snappedToVertex_=!1,this.changingFeature_=!1,this.dragSegments_=[],this.overlay_=new gc({source:new op({useSpatialIndex:!1,wrapX:!!e.wrapX}),style:e.style?e.style:function(){var t=Fu();return function(e,i){return t[Nt.POINT]}}(),updateWhileAnimating:!0,updateWhileInteracting:!0}),this.SEGMENT_WRITERS_={Point:this.writePointGeometry_,LineString:this.writeLineStringGeometry_,LinearRing:this.writeLineStringGeometry_,Polygon:this.writePolygonGeometry_,MultiPoint:this.writeMultiPointGeometry_,MultiLineString:this.writeMultiLineStringGeometry_,MultiPolygon:this.writeMultiPolygonGeometry_,Circle:this.writeCircleGeometry_,GeometryCollection:this.writeGeometryCollectionGeometry_},this.source_=null,e.source?(this.source_=e.source,i=new U(this.source_.getFeatures()),v(this.source_,rp.ADDFEATURE,this.handleSourceAdd_,this),v(this.source_,rp.REMOVEFEATURE,this.handleSourceRemove_,this)):i=e.features,!i)throw new Error("The modify interaction requires features or a source");this.features_=i,this.features_.forEach(this.addFeature_.bind(this)),v(this.features_,h.ADD,this.handleFeatureAdd_,this),v(this.features_,h.REMOVE,this.handleFeatureRemove_,this),this.lastPointerEvent_=null}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.addFeature_=function(t){var e=t.getGeometry();e&&e.getType()in this.SEGMENT_WRITERS_&&this.SEGMENT_WRITERS_[e.getType()].call(this,t,e);var i=this.getMap();i&&i.isRendered()&&this.getActive()&&this.handlePointerAtPixel_(this.lastPixel_,i),v(t,M.CHANGE,this.handleFeatureChange_,this)},e.prototype.willModifyFeatures_=function(t){this.modified_||(this.modified_=!0,this.dispatchEvent(new Kc(zc,this.features_,t)))},e.prototype.removeFeature_=function(t){this.removeFeatureSegmentData_(t),this.vertexFeature_&&0===this.features_.getLength()&&(this.overlay_.getSource().removeFeature(this.vertexFeature_),this.vertexFeature_=null),x(t,M.CHANGE,this.handleFeatureChange_,this)},e.prototype.removeFeatureSegmentData_=function(t){var e=this.rBush_,i=[];e.forEach(function(e){t===e.feature&&i.push(e)});for(var r=i.length-1;r>=0;--r)e.remove(i[r])},e.prototype.setActive=function(e){this.vertexFeature_&&!e&&(this.overlay_.getSource().removeFeature(this.vertexFeature_),this.vertexFeature_=null),t.prototype.setActive.call(this,e)},e.prototype.setMap=function(e){this.overlay_.setMap(e),t.prototype.setMap.call(this,e)},e.prototype.getOverlay=function(){return this.overlay_},e.prototype.handleSourceAdd_=function(t){t.feature&&this.features_.push(t.feature)},e.prototype.handleSourceRemove_=function(t){t.feature&&this.features_.remove(t.feature)},e.prototype.handleFeatureAdd_=function(t){this.addFeature_(t.element)},e.prototype.handleFeatureChange_=function(t){if(!this.changingFeature_){var e=t.target;this.removeFeature_(e),this.addFeature_(e)}},e.prototype.handleFeatureRemove_=function(t){var e=t.element;this.removeFeature_(e)},e.prototype.writePointGeometry_=function(t,e){var i=e.getCoordinates(),r={feature:t,geometry:e,segment:[i,i]};this.rBush_.insert(e.getExtent(),r)},e.prototype.writeMultiPointGeometry_=function(t,e){for(var i=e.getCoordinates(),r=0,n=i.length;r=0;--_)this.insertVertex_.apply(this,r[_])}return!!this.vertexFeature_},e.prototype.handleUpEvent=function(t){for(var e=this.dragSegments_.length-1;e>=0;--e){var i=this.dragSegments_[e][0],r=i.geometry;if(r.getType()===Nt.CIRCLE){var n=r.getCenter(),o=i.featureSegments[0],s=i.featureSegments[1];o.segment[0]=o.segment[1]=n,s.segment[0]=s.segment[1]=n,this.rBush_.update(pt(n),o),this.rBush_.update(r.getExtent(),s)}else this.rBush_.update(tt(i.segment),i)}return this.modified_&&(this.dispatchEvent(new Kc(Wc,this.features_,t)),this.modified_=!1),!1},e.prototype.handlePointerMove_=function(t){this.lastPixel_=t.pixel,this.handlePointerAtPixel_(t.pixel,t.map)},e.prototype.handlePointerAtPixel_=function(t,e){var i=e.getCoordinateFromPixel(t),r=et(pt(i),e.getView().getResolution()*this.pixelTolerance_),n=this.rBush_.getInExtent(r);if(n.length>0){n.sort(function(t,e){return Zc(i,t)-Zc(i,e)});var s=n[0],a=s.segment,h=qc(i,s),l=e.getPixelFromCoordinate(h),u=ir(t,l);if(u<=this.pixelTolerance_){var p={};if(s.geometry.getType()===Nt.CIRCLE&&s.index===Xc)this.snappedToVertex_=!0,this.createOrUpdateVertexFeature_(h);else{var c=e.getPixelFromCoordinate(a[0]),d=e.getPixelFromCoordinate(a[1]),f=er(l,c),_=er(l,d);u=Math.sqrt(Math.min(f,_)),this.snappedToVertex_=u<=this.pixelTolerance_,this.snappedToVertex_&&(h=f>_?a[1]:a[0]),this.createOrUpdateVertexFeature_(h);for(var g=1,y=n.length;g=0;--n)p=o((u=(i=c[n])[0]).feature),u.depth&&(p+="-"+u.depth.join("-")),p in d||(d[p]={}),0===i[1]?(d[p].right=u,d[p].index=u.index):1==i[1]&&(d[p].left=u,d[p].index=u.index+1);for(p in d){switch(l=d[p].right,a=d[p].left,h=(s=d[p].index)-1,u=void 0!==a?a:l,h<0&&(h=0),t=e=(r=u.geometry).getCoordinates(),f=!1,r.getType()){case Nt.MULTI_LINE_STRING:e[u.depth[0]].length>2&&(e[u.depth[0]].splice(s,1),f=!0);break;case Nt.LINE_STRING:e.length>2&&(e.splice(s,1),f=!0);break;case Nt.MULTI_POLYGON:t=t[u.depth[1]];case Nt.POLYGON:(t=t[u.depth[0]]).length>4&&(s==t.length-1&&(s=0),t.splice(s,1),f=!0,0===s&&(t.pop(),t.push(t[0]),h=t.length-1))}if(f){this.setGeometryCoordinates_(r,e);var _=[];if(void 0!==a&&(this.rBush_.remove(a),_.push(a.segment[0])),void 0!==l&&(this.rBush_.remove(l),_.push(l.segment[1])),void 0!==a&&void 0!==l){var g={depth:u.depth,feature:u.feature,geometry:u.geometry,index:h,segment:_};this.rBush_.insert(tt(g.segment),g)}this.updateSegmentIndices_(r,s,u.depth,-1),this.vertexFeature_&&(this.overlay_.getSource().removeFeature(this.vertexFeature_),this.vertexFeature_=null),c.length=0}}return f},e.prototype.setGeometryCoordinates_=function(t,e){this.changingFeature_=!0,t.setCoordinates(e),this.changingFeature_=!1},e.prototype.updateSegmentIndices_=function(t,e,i,r){this.rBush_.forEachInExtent(t.getExtent(),function(n){n.geometry===t&&(void 0===i||void 0===n.depth||Z(n.depth,i))&&n.index>e&&(n.index+=r)})},e}(qo),Qc={SELECT:"select"},$c=function(t){function e(e,i,r,n){t.call(this,e),this.selected=i,this.deselected=r,this.mapBrowserEvent=n}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e}(P);function td(t){if(!this.condition_(t))return!0;var e=this.addCondition_(t),i=this.removeCondition_(t),r=this.toggleCondition_(t),n=!e&&!i&&!r,o=t.map,s=this.getFeatures(),a=[],h=[];if(n){p(this.featureLayerAssociation_),o.forEachFeatureAtPixel(t.pixel,function(t,e){if(this.filter_(t,e))return h.push(t),this.addFeatureLayerAssociation_(t,e),!this.multi_}.bind(this),{layerFilter:this.layerFilter_,hitTolerance:this.hitTolerance_});for(var l=s.getLength()-1;l>=0;--l){var u=s.item(l),c=h.indexOf(u);c>-1?h.splice(c,1):(s.remove(u),a.push(u))}0!==h.length&&s.extend(h)}else{o.forEachFeatureAtPixel(t.pixel,function(t,n){if(this.filter_(t,n))return!e&&!r||X(s.getArray(),t)?(i||r)&&X(s.getArray(),t)&&(a.push(t),this.removeFeatureLayerAssociation_(t)):(h.push(t),this.addFeatureLayerAssociation_(t,n)),!this.multi_}.bind(this),{layerFilter:this.layerFilter_,hitTolerance:this.hitTolerance_});for(var d=a.length-1;d>=0;--d)s.remove(a[d]);s.extend(h)}return(h.length>0||a.length>0)&&this.dispatchEvent(new $c(Qc.SELECT,h,a,t)),Bo(t)}var ed=function(t){function e(e){t.call(this,{handleEvent:td});var i=e||{};this.condition_=i.condition?i.condition:Vo,this.addCondition_=i.addCondition?i.addCondition:Yo,this.removeCondition_=i.removeCondition?i.removeCondition:Yo,this.toggleCondition_=i.toggleCondition?i.toggleCondition:zo,this.multi_=!!i.multi&&i.multi,this.filter_=i.filter?i.filter:R,this.hitTolerance_=i.hitTolerance?i.hitTolerance:0;var r,n=new gc({source:new op({useSpatialIndex:!1,features:i.features,wrapX:i.wrapX}),style:i.style?i.style:function(){var t=Fu();return K(t[Nt.POLYGON],t[Nt.LINE_STRING]),K(t[Nt.GEOMETRY_COLLECTION],t[Nt.LINE_STRING]),function(e,i){return e.getGeometry()?t[e.getGeometry().getType()]:null}}(),updateWhileAnimating:!0,updateWhileInteracting:!0});if(this.featureOverlay_=n,i.layers)if("function"==typeof i.layers)r=i.layers;else{var o=i.layers;r=function(t){return X(o,t)}}else r=R;this.layerFilter_=r,this.featureLayerAssociation_={};var s=this.getFeatures();v(s,h.ADD,this.addFeature_,this),v(s,h.REMOVE,this.removeFeature_,this)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.addFeatureLayerAssociation_=function(t,e){this.featureLayerAssociation_[o(t)]=e},e.prototype.getFeatures=function(){return this.featureOverlay_.getSource().getFeaturesCollection()},e.prototype.getHitTolerance=function(){return this.hitTolerance_},e.prototype.getLayer=function(t){return this.featureLayerAssociation_[o(t)]},e.prototype.getOverlay=function(){return this.featureOverlay_},e.prototype.setHitTolerance=function(t){this.hitTolerance_=t},e.prototype.setMap=function(e){var i=this.getMap(),r=this.getFeatures();i&&r.forEach(i.unskipFeature.bind(i)),t.prototype.setMap.call(this,e),this.featureOverlay_.setMap(e),e&&r.forEach(e.skipFeature.bind(e))},e.prototype.addFeature_=function(t){var e=this.getMap();e&&e.skipFeature(t.element)},e.prototype.removeFeature_=function(t){var e=this.getMap();e&&e.unskipFeature(t.element)},e.prototype.removeFeatureLayerAssociation_=function(t){delete this.featureLayerAssociation_[o(t)]},e}(Fo);function id(t){return t.feature?t.feature:t.element?t.element:void 0}var rd=function(t){function e(e){var i=e||{},r=i;r.handleDownEvent||(r.handleDownEvent=R),r.stopDown||(r.stopDown=w),t.call(this,r),this.source_=i.source?i.source:null,this.vertex_=void 0===i.vertex||i.vertex,this.edge_=void 0===i.edge||i.edge,this.features_=i.features?i.features:null,this.featuresListenerKeys_=[],this.featureChangeListenerKeys_={},this.indexedFeaturesExtents_={},this.pendingFeatures_={},this.pixelCoordinate_=null,this.pixelTolerance_=void 0!==i.pixelTolerance?i.pixelTolerance:10,this.sortByDistance_=function(t,e){var i=rr(this.pixelCoordinate_,t.segment),r=rr(this.pixelCoordinate_,e.segment);return i-r}.bind(this),this.rBush_=new tl,this.SEGMENT_WRITERS_={Point:this.writePointGeometry_,LineString:this.writeLineStringGeometry_,LinearRing:this.writeLineStringGeometry_,Polygon:this.writePolygonGeometry_,MultiPoint:this.writeMultiPointGeometry_,MultiLineString:this.writeMultiLineStringGeometry_,MultiPolygon:this.writeMultiPolygonGeometry_,GeometryCollection:this.writeGeometryCollectionGeometry_,Circle:this.writeCircleGeometry_}}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.addFeature=function(t,e){var i=void 0===e||e,r=o(t),n=t.getGeometry();if(n){var s=this.SEGMENT_WRITERS_[n.getType()];s&&(this.indexedFeaturesExtents_[r]=n.getExtent([1/0,1/0,-1/0,-1/0]),s.call(this,t,n))}i&&(this.featureChangeListenerKeys_[r]=v(t,M.CHANGE,this.handleFeatureChange_,this))},e.prototype.forEachFeatureAdd_=function(t){this.addFeature(t)},e.prototype.forEachFeatureRemove_=function(t){this.removeFeature(t)},e.prototype.getFeatures_=function(){var t;return this.features_?t=this.features_:this.source_&&(t=this.source_.getFeatures()),t},e.prototype.handleEvent=function(e){var i=this.snapTo(e.pixel,e.coordinate,e.map);return i.snapped&&(e.coordinate=i.vertex.slice(0,2),e.pixel=i.vertexPixel),t.prototype.handleEvent.call(this,e)},e.prototype.handleFeatureAdd_=function(t){var e=id(t);this.addFeature(e)},e.prototype.handleFeatureRemove_=function(t){var e=id(t);this.removeFeature(e)},e.prototype.handleFeatureChange_=function(t){var e=t.target;if(this.handlingDownUpSequence){var i=o(e);i in this.pendingFeatures_||(this.pendingFeatures_[i]=e)}else this.updateFeature_(e)},e.prototype.handleUpEvent=function(t){var e=c(this.pendingFeatures_);return e.length&&(e.forEach(this.updateFeature_.bind(this)),this.pendingFeatures_={}),!1},e.prototype.removeFeature=function(t,e){var i=void 0===e||e,r=o(t),n=this.indexedFeaturesExtents_[r];if(n){var s=this.rBush_,a=[];s.forEachInExtent(n,function(e){t===e.feature&&a.push(e)});for(var h=a.length-1;h>=0;--h)s.remove(a[h])}i&&(E(this.featureChangeListenerKeys_[r]),delete this.featureChangeListenerKeys_[r])},e.prototype.setMap=function(e){var i=this.getMap(),r=this.featuresListenerKeys_,n=this.getFeatures_();i&&(r.forEach(E),r.length=0,n.forEach(this.forEachFeatureRemove_.bind(this))),t.prototype.setMap.call(this,e),e&&(this.features_?r.push(v(this.features_,h.ADD,this.handleFeatureAdd_,this),v(this.features_,h.REMOVE,this.handleFeatureRemove_,this)):this.source_&&r.push(v(this.source_,rp.ADDFEATURE,this.handleFeatureAdd_,this),v(this.source_,rp.REMOVEFEATURE,this.handleFeatureRemove_,this)),n.forEach(this.forEachFeatureAdd_.bind(this)))},e.prototype.snapTo=function(t,e,i){var r=tt([i.getCoordinateFromPixel([t[0]-this.pixelTolerance_,t[1]+this.pixelTolerance_]),i.getCoordinateFromPixel([t[0]+this.pixelTolerance_,t[1]-this.pixelTolerance_])]),n=this.rBush_.getInExtent(r);this.vertex_&&!this.edge_&&(n=n.filter(function(t){return t.feature.getGeometry().getType()!==Nt.CIRCLE}));var o,s,a,h,l=!1,u=null,p=null;if(n.length>0){this.pixelCoordinate_=e,n.sort(this.sortByDistance_);var c=n[0].segment,d=n[0].feature.getGeometry().getType()===Nt.CIRCLE;this.vertex_&&!this.edge_?(o=i.getPixelFromCoordinate(c[0]),s=i.getPixelFromCoordinate(c[1]),a=er(t,o),h=er(t,s),Math.sqrt(Math.min(a,h))<=this.pixelTolerance_&&(l=!0,u=a>h?c[1]:c[0],p=i.getPixelFromCoordinate(u))):this.edge_&&(u=d?function(t,e){var i=e.getRadius(),r=e.getCenter(),n=r[0],o=r[1],s=t[0]-n,a=t[1]-o;0===s&&0===a&&(s=1);var h=Math.sqrt(s*s+a*a);return[n+i*s/h,o+i*a/h]}(e,n[0].feature.getGeometry()):Zi(e,c),ir(t,p=i.getPixelFromCoordinate(u))<=this.pixelTolerance_&&(l=!0,this.vertex_&&!d&&(o=i.getPixelFromCoordinate(c[0]),s=i.getPixelFromCoordinate(c[1]),a=er(p,o),h=er(p,s),Math.sqrt(Math.min(a,h))<=this.pixelTolerance_&&(u=a>h?c[1]:c[0],p=i.getPixelFromCoordinate(u))))),l&&(p=[Math.round(p[0]),Math.round(p[1])])}return{snapped:l,vertex:u,vertexPixel:p}},e.prototype.updateFeature_=function(t){this.removeFeature(t,!1),this.addFeature(t,!1)},e.prototype.writeCircleGeometry_=function(t,e){for(var i=Pi(e).getCoordinates()[0],r=0,n=i.length-1;r=0;i--){var u=o[i][0],p=ot(new pi(u).getExtent(),new pi(h).getExtent());if(p){o[i].push(h),l=!0;break}}l||o.push([h.reverse()])}return o}(r.rings,n);1===o.length?(i=Nt.POLYGON,t.rings=o[0]):(i=Nt.MULTI_POLYGON,t.rings=o)}return dd((0,gd[i])(t),!1,e)}function md(t){var e=At.XY;return!0===t.hasZ&&!0===t.hasM?e=At.XYZM:!0===t.hasZ?e=At.XYZ:!0===t.hasM&&(e=At.XYM),e}function xd(t){var e=t.getLayout();return{hasZ:e===At.XYZ||e===At.XYZM,hasM:e===At.XYM||e===At.XYZM}}function Ed(t,e){return(0,yd[t.getType()])(dd(t,!0,e),e)}yd[Nt.POINT]=function(t,e){var i,r=t.getCoordinates(),n=t.getLayout();n===At.XYZ?i={x:r[0],y:r[1],z:r[2]}:n===At.XYM?i={x:r[0],y:r[1],m:r[2]}:n===At.XYZM?i={x:r[0],y:r[1],z:r[2],m:r[3]}:n===At.XY?i={x:r[0],y:r[1]}:Y(!1,34);return i},yd[Nt.LINE_STRING]=function(t,e){var i=t,r=xd(i);return{hasZ:r.hasZ,hasM:r.hasM,paths:[i.getCoordinates()]}},yd[Nt.POLYGON]=function(t,e){var i=t,r=xd(i);return{hasZ:r.hasZ,hasM:r.hasM,rings:i.getCoordinates(!1)}},yd[Nt.MULTI_POINT]=function(t,e){var i=t,r=xd(i);return{hasZ:r.hasZ,hasM:r.hasM,points:i.getCoordinates()}},yd[Nt.MULTI_LINE_STRING]=function(t,e){var i=t,r=xd(i);return{hasZ:r.hasZ,hasM:r.hasM,paths:i.getCoordinates()}},yd[Nt.MULTI_POLYGON]=function(t,e){for(var i=xd(t),r=t.getCoordinates(!1),n=[],o=0;o=0;s--)n.push(r[o][s]);return{hasZ:i.hasZ,hasM:i.hasM,rings:n}};var Sd=function(t){function e(e){var i=e||{};t.call(this),this.geometryName_=i.geometryName}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.readFeatureFromObject=function(t,e){var i=t,r=vd(i.geometry,e),n=new B;return this.geometryName_&&n.setGeometryName(this.geometryName_),n.setGeometry(r),e&&e.idField&&i.attributes[e.idField]&&n.setId(i.attributes[e.idField]),i.attributes&&n.setProperties(i.attributes),n},e.prototype.readFeaturesFromObject=function(t,e){var i=e||{};if(t.features){var r=[],n=t.features;i.idField=t.objectIdFieldName;for(var o=0,s=n.length;o0?i[0]:null},e.prototype.readFeatureFromNode=function(t,e){return null},e.prototype.readFeatures=function(t,e){if(t){if("string"==typeof t){var i=ru(t);return this.readFeaturesFromDocument(i,e)}return iu(t)?this.readFeaturesFromDocument(t,e):this.readFeaturesFromNode(t,e)}return[]},e.prototype.readFeaturesFromDocument=function(t,e){for(var i=[],r=t.firstChild;r;r=r.nextSibling)r.nodeType==Node.ELEMENT_NODE&&K(i,this.readFeaturesFromNode(r,e));return i},e.prototype.readFeaturesFromNode=function(t,e){return r()},e.prototype.readGeometry=function(t,e){if(t){if("string"==typeof t){var i=ru(t);return this.readGeometryFromDocument(i,e)}return iu(t)?this.readGeometryFromDocument(t,e):this.readGeometryFromNode(t,e)}return null},e.prototype.readGeometryFromDocument=function(t,e){return null},e.prototype.readGeometryFromNode=function(t,e){return null},e.prototype.readProjection=function(t){if(t){if("string"==typeof t){var e=ru(t);return this.readProjectionFromDocument(e)}return iu(t)?this.readProjectionFromDocument(t):this.readProjectionFromNode(t)}return null},e.prototype.readProjectionFromDocument=function(t){return this.dataProjection},e.prototype.readProjectionFromNode=function(t){return this.dataProjection},e.prototype.writeFeature=function(t,e){var i=this.writeFeatureNode(t,e);return this.xmlSerializer_.serializeToString(i)},e.prototype.writeFeatureNode=function(t,e){return null},e.prototype.writeFeatures=function(t,e){var i=this.writeFeaturesNode(t,e);return this.xmlSerializer_.serializeToString(i)},e.prototype.writeFeaturesNode=function(t,e){return null},e.prototype.writeGeometry=function(t,e){var i=this.writeGeometryNode(t,e);return this.xmlSerializer_.serializeToString(i)},e.prototype.writeGeometryNode=function(t,e){return null},e}(cd),Cd="http://www.opengis.net/gml",Rd=/^[\s\xa0]*$/,wd=function(t){function e(e){t.call(this);var i=e||{};this.featureType=i.featureType,this.featureNS=i.featureNS,this.srsName=i.srsName,this.schemaLocation="",this.FEATURE_COLLECTION_PARSERS={},this.FEATURE_COLLECTION_PARSERS[this.namespace]={featureMember:ou(this.readFeaturesInternal),featureMembers:su(this.readFeaturesInternal)}}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.readFeaturesInternal=function(t,e){var i=t.localName,r=null;if("FeatureCollection"==i)r=gu([],this.FEATURE_COLLECTION_PARSERS,t,e,this);else if("featureMembers"==i||"featureMember"==i){var n=e[0],o=n.featureType,s=n.featureNS;if(!o&&t.childNodes){o=[],s={};for(var a=0,h=t.childNodes.length;a0){n[a]={_content_:n[a]};for(var l=0;l1?o.Document=t:1==t.length&&(o.Placemark=t[0]);var s=o_[i.namespaceURI],a=du(o,s);return vu(n,s_,cu,a,[e],s,this),i},e}(Td);function g_(t,e){var i=null,r=[0,0],n="start";if(t.getImage()){var o=t.getImage().getImageSize();if(null===o&&(o=Bf),2==o.length){var s=t.getImage().getScale();r[0]=s*o[0]/2,r[1]=-s*o[1]/2,n="left"}}if(null!==t.getText()){var a=t.getText();(i=a.clone()).setFont(a.getFont()||c_.getFont()),i.setScale(a.getScale()||c_.getScale()),i.setFill(a.getFill()||c_.getFill()),i.setStroke(a.getStroke()||u_)}else i=c_.clone();return i.setText(e),i.setOffsetX(r[0]),i.setOffsetY(r[1]),i.setTextAlign(n),new Nu({text:i})}function y_(t){var e=eu(t,!1),i=/^\s*#?\s*([0-9A-Fa-f]{8})\s*$/.exec(e);if(i){var r=i[1];return[parseInt(r.substr(6,2),16),parseInt(r.substr(4,2),16),parseInt(r.substr(2,2),16),parseInt(r.substr(0,2),16)/255]}}function v_(t){for(var e,i=eu(t,!1),r=[],n=/^\s*([+\-]?\d*\.?\d+(?:e[+\-]?\d+)?)\s*,\s*([+\-]?\d*\.?\d+(?:e[+\-]?\d+)?)(?:\s*,\s*([+\-]?\d*\.?\d+(?:e[+\-]?\d+)?))?\s*/i;e=n.exec(i);){var o=parseFloat(e[1]),s=parseFloat(e[2]),a=e[3]?parseFloat(e[3]):0;r.push(o,s,a),i=i.substr(e[0].length)}if(""===i)return r}function m_(t){var e=eu(t,!1).trim(),i=t.baseURI;return i&&"about:blank"!=i||(i=window.location.href),i?new URL(e,i).href:e}function x_(t){return bd(t)}var E_=fu($f,{Pair:function(t,e){var i=gu({},q_,t,e);if(!i)return;var r=i.key;if(r&&"normal"==r){var n=i.styleUrl;n&&(e[e.length-1]=n);var o=i.Style;o&&(e[e.length-1]=o)}}});function S_(t,e){return gu(void 0,E_,t,e)}var T_=fu($f,{Icon:hu(function(t,e){var i=gu({},M_,t,e);return i||null}),heading:hu(bd),hotSpot:hu(function(t){var e,i=t.getAttribute("xunits"),r=t.getAttribute("yunits");return e="insetPixels"!==i?"insetPixels"!==r?Lu.BOTTOM_LEFT:Lu.TOP_LEFT:"insetPixels"!==r?Lu.BOTTOM_RIGHT:Lu.TOP_RIGHT,{x:parseFloat(t.getAttribute("x")),xunits:t_[i],y:parseFloat(t.getAttribute("y")),yunits:t_[r],origin:e}}),scale:hu(x_)});var C_=fu($f,{color:hu(y_),scale:hu(x_)});var R_=fu($f,{color:hu(y_),width:hu(bd)});var w_=fu($f,{color:hu(y_),fill:hu(Ld),outline:hu(Ld)});var I_=fu($f,{coordinates:su(v_)});function L_(t,e){return gu(null,I_,t,e)}var O_=fu(Qf,{Track:ou(b_)});var P_=fu($f,{when:function(t,e){var i=e[e.length-1].whens,r=eu(t,!1),n=Date.parse(r);i.push(isNaN(n)?0:n)}},fu(Qf,{coord:function(t,e){var i=e[e.length-1].flatCoordinates,r=eu(t,!1),n=/^\s*([+\-]?\d+(?:\.\d*)?(?:e[+\-]?\d*)?)\s+([+\-]?\d+(?:\.\d*)?(?:e[+\-]?\d*)?)\s+([+\-]?\d+(?:\.\d*)?(?:e[+\-]?\d*)?)\s*$/i.exec(r);if(n){var o=parseFloat(n[1]),s=parseFloat(n[2]),a=parseFloat(n[3]);i.push(o,s,a,0)}else i.push(0,0,0,0)}}));function b_(t,e){var i=gu({flatCoordinates:[],whens:[]},P_,t,e);if(i){for(var r=i.flatCoordinates,n=i.whens,o=0,s=Math.min(r.length,n.length);o0,u=h.href;u?r=u:l&&(r=Vf);var p,c=Lu.BOTTOM_LEFT,d=i.hotSpot;d?(n=[d.x,d.y],o=d.xunits,s=d.yunits,c=d.origin):r===Vf?(n=jf,o=Uf,s=Yf):/^http:\/\/maps\.(?:google|gstatic)\.com\//.test(r)&&(n=[.5,0],o=wu.FRACTION,s=wu.FRACTION);var f,_=h.x,g=h.y;void 0!==_&&void 0!==g&&(p=[_,g]);var y,v=h.w,m=h.h;void 0!==v&&void 0!==m&&(f=[v,m]);var x=i.heading;void 0!==x&&(y=Vt(x));var E=i.scale;if(l){r==Vf&&(f=Bf,void 0===E&&(E=Xf));var S=new Ou({anchor:n,anchorOrigin:c,anchorXUnits:o,anchorYUnits:s,crossOrigin:"anonymous",offset:p,offsetOrigin:Lu.BOTTOM_LEFT,rotation:y,scale:E,size:f,src:r});a.imageStyle=S}else a.imageStyle=h_}},LabelStyle:function(t,e){var i=gu({},C_,t,e);if(i){var r=e[e.length-1],n=new Rr({fill:new mr({color:"color"in i?i.color:kf}),scale:i.scale});r.textStyle=n}},LineStyle:function(t,e){var i=gu({},R_,t,e);if(i){var r=e[e.length-1],n=new Er({color:"color"in i?i.color:kf,width:"width"in i?i.width:1});r.strokeStyle=n}},PolyStyle:function(t,e){var i=gu({},w_,t,e);if(i){var r=e[e.length-1],n=new mr({color:"color"in i?i.color:kf});r.fillStyle=n;var o=i.fill;void 0!==o&&(r.fill=o);var s=i.outline;void 0!==s&&(r.outline=s)}}});function X_(t,e){var i=gu({},V_,t,e);if(!i)return null;var r,n="fillStyle"in i?i.fillStyle:a_,o=i.fill;void 0===o||o||(n=null),"imageStyle"in i?i.imageStyle!=h_&&(r=i.imageStyle):r=l_;var s="textStyle"in i?i.textStyle:c_,a="strokeStyle"in i?i.strokeStyle:p_,h=i.outline;return void 0===h||h||(a=null),[new Nu({fill:n,image:r,stroke:a,text:s,zIndex:void 0})]}function z_(t,e){var i,r,n,o=e.length,s=new Array(e.length),a=new Array(e.length),h=new Array(e.length);i=r=n=!1;for(var l=0;l0){var a=du(n,s);vu(r,wg,Lg,[{names:s,values:a}],i)}var h=e.getStyleFunction();if(h){var l=h(e,0);if(l){var u=Array.isArray(l)?l[0]:l;this.writeStyles_&&(n.Style=u);var p=u.getText();p&&(n.name=p.getText())}}var c=i[i.length-1].node,d=Ig[c.namespaceURI],f=du(n,d);vu(r,wg,cu,f,i,d);var _=i[0],g=e.getGeometry();g&&(g=dd(g,!0,_)),vu(r,wg,yg,[g],i)}var Pg=fu($f,["extrude","tessellate","altitudeMode","coordinates"]),bg=fu($f,{extrude:lu(Gd),tessellate:lu(Gd),altitudeMode:lu(jd),coordinates:lu(function(t,e,i){var r,n=i[i.length-1],o=n.layout,s=n.stride;o==At.XY||o==At.XYM?r=2:o==At.XYZ||o==At.XYZM?r=3:Y(!1,34);var a=e.length,h="";if(a>0){h+=e[0];for(var l=1;l>3)?i.readString():2===t?i.readFloat():3===t?i.readDouble():4===t?i.readVarint64():5===t?i.readVarint():6===t?i.readSVarint():7===t?i.readBoolean():null;e.values.push(r)}}function qg(t,e,i){if(1==t)e.id=i.readVarint();else if(2==t)for(var r=i.readVarint()+i.pos;i.pos>3}s--,1===o||2===o?(a+=t.readSVarint(),h+=t.readSVarint(),1===o&&l>u&&(r.push(l),u=l),i.push(a,h),l+=2):7===o?l>u&&(i.push(i[u],i[u+1]),l+=2):Y(!1,59)}l>u&&(r.push(l),u=l)},e.prototype.createFeature_=function(t,e,i){var r,n=e.type;if(0===n)return null;var o=e.id,s=e.properties;s[this.layerName_]=e.layer.name;var a=[],h=[];this.readRawGeometry_(t,e,a,h);var l=function(t,e){var i;1===t?i=1===e?Nt.POINT:Nt.MULTI_POINT:2===t?i=1===e?Nt.LINE_STRING:Nt.MULTI_LINE_STRING:3===t&&(i=Nt.POLYGON);return i}(n,h.length);if(this.featureClass_===Kg)r=new this.featureClass_(l,a,h,s,o);else{var u;if(l==Nt.POLYGON){for(var p=[],c=0,d=0,f=0,_=h.length;f<_;++f){var g=h[f];Si(a,c,g,2)||(p.push(h.slice(d,f)),d=f),c=g}u=p.length>1?new Fc(a,At.XY,p):new Ii(a,At.XY,h)}else u=l===Nt.POINT?new ci(a,At.XY):l===Nt.LINE_STRING?new hr(a,At.XY):l===Nt.POLYGON?new Ii(a,At.XY,h):l===Nt.MULTI_POINT?new bc(a,At.XY):l===Nt.MULTI_LINE_STRING?new Pc(a,At.XY,h):null;r=new(0,this.featureClass_),this.geometryName_&&r.setGeometryName(this.geometryName_);var y=dd(u,!1,this.adaptOptions(i));r.setGeometry(y),r.setId(o),r.setProperties(s)}return r},e.prototype.getLastExtent=function(){return this.extent_},e.prototype.getType=function(){return Hl.ARRAY_BUFFER},e.prototype.readFeatures=function(t,e){var i=this.layers_,r=new Xg.a(t),n=r.readFields(Hg,{}),o=[];for(var s in n)if(!i||-1!=i.indexOf(s)){for(var a=n[s],h=0,l=a.length;h>1):n>>1}return e}(t),n=0,o=r.length;n=32;)e=63+(32|31&t),i+=String.fromCharCode(e),t>>=5;return e=t+63,i+=String.fromCharCode(e)}var cy=function(t){function e(e){t.call(this);var i=e||{};this.dataProjection=Ee("EPSG:4326"),this.factor_=i.factor?i.factor:1e5,this.geometryLayout_=i.geometryLayout?i.geometryLayout:At.XY}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.readFeatureFromText=function(t,e){var i=this.readGeometryFromText(t,e);return new B(i)},e.prototype.readFeaturesFromText=function(t,e){return[this.readFeatureFromText(t,e)]},e.prototype.readGeometryFromText=function(t,e){var i=ze(this.geometryLayout_),r=hy(t,i,this.factor_);sy(r,0,r.length,i,r);var n=ri(r,0,r.length,i);return dd(new hr(n,this.geometryLayout_),!1,this.adaptOptions(e))},e.prototype.writeFeatureText=function(t,e){var i=t.getGeometry();return i?this.writeGeometryText(i,e):(Y(!1,40),"")},e.prototype.writeFeaturesText=function(t,e){return this.writeFeatureText(t[0],e)},e.prototype.writeGeometryText=function(t,e){var i=(t=dd(t,!0,this.adaptOptions(e))).getFlatCoordinates(),r=t.getStride();return sy(i,0,i.length,r,i),ay(i,r,this.factor_)},e}(zf),dy={Point:function(t,e,i){var r=t.coordinates;e&&i&&vy(r,e,i);return new ci(r)},LineString:function(t,e){var i=fy(t.arcs,e);return new hr(i)},Polygon:function(t,e){for(var i=[],r=0,n=t.arcs.length;r0&&n.pop(),r=i>=0?e[i]:e[~i].slice().reverse(),n.push.apply(n,r);for(var a=0,h=n.length;a=2,57)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e}(Ey),Ty=function(t){function e(e){t.call(this,"And",Array.prototype.slice.call(arguments))}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e}(Sy),Cy=function(t){function e(e,i,r){t.call(this,"BBOX"),this.geometryName=e,this.extent=i,this.srsName=r}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e}(Ey),Ry=function(t){function e(e,i,r,n){t.call(this,e),this.geometryName=i||"the_geom",this.geometry=r,this.srsName=n}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e}(Ey),wy=function(t){function e(e,i,r){t.call(this,"Contains",e,i,r)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e}(Ry),Iy=function(t){function e(e,i){t.call(this,e),this.propertyName=i}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e}(Ey),Ly=function(t){function e(e,i,r){t.call(this,"During",e),this.begin=i,this.end=r}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e}(Iy),Oy=function(t){function e(e,i,r,n){t.call(this,e,i),this.expression=r,this.matchCase=n}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e}(Iy),Py=function(t){function e(e,i,r){t.call(this,"PropertyIsEqualTo",e,i,r)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e}(Oy),by=function(t){function e(e,i){t.call(this,"PropertyIsGreaterThan",e,i)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e}(Oy),My=function(t){function e(e,i){t.call(this,"PropertyIsGreaterThanOrEqualTo",e,i)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e}(Oy),Fy=function(t){function e(e,i,r){t.call(this,"Intersects",e,i,r)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e}(Ry),Ay=function(t){function e(e,i,r){t.call(this,"PropertyIsBetween",e),this.lowerBoundary=i,this.upperBoundary=r}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e}(Iy),Ny=function(t){function e(e,i,r,n,o,s){t.call(this,"PropertyIsLike",e),this.pattern=i,this.wildCard=void 0!==r?r:"*",this.singleChar=void 0!==n?n:".",this.escapeChar=void 0!==o?o:"!",this.matchCase=s}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e}(Iy),Gy=function(t){function e(e){t.call(this,"PropertyIsNull",e)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e}(Iy),Dy=function(t){function e(e,i){t.call(this,"PropertyIsLessThan",e,i)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e}(Oy),ky=function(t){function e(e,i){t.call(this,"PropertyIsLessThanOrEqualTo",e,i)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e}(Oy),jy=function(t){function e(e){t.call(this,"Not"),this.condition=e}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e}(Ey),Uy=function(t){function e(e,i,r){t.call(this,"PropertyIsNotEqualTo",e,i,r)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e}(Oy),Yy=function(t){function e(e){t.call(this,"Or",Array.prototype.slice.call(arguments))}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e}(Sy),By=function(t){function e(e,i,r){t.call(this,"Within",e,i,r)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e}(Ry);function Vy(t){var e=[null].concat(Array.prototype.slice.call(arguments));return new(Function.prototype.bind.apply(Ty,e))}function Xy(t,e,i){return new Cy(t,e,i)}var zy={"http://www.opengis.net/gml":{boundedBy:hu(Id.prototype.readGeometryElement,"bounds")}},Wy={"http://www.opengis.net/wfs":{totalInserted:hu(Fd),totalUpdated:hu(Fd),totalDeleted:hu(Fd)}},Ky={"http://www.opengis.net/wfs":{TransactionSummary:hu(function(t,e){return gu({},Wy,t,e)},"transactionSummary"),InsertResults:hu(function(t,e){return gu([],ov,t,e)},"insertIds")}},Hy={"http://www.opengis.net/wfs":{PropertyName:lu(jd)}},Zy={"http://www.opengis.net/wfs":{Insert:lu(function(t,e,i){var r=i[i.length-1],n=r.featureType,o=r.featureNS,s=r.gmlVersion,a=tu(o,n);t.appendChild(a),2===s?Zd.prototype.writeFeatureElement(a,e,i):Vd.prototype.writeFeatureElement(a,e,i)}),Update:lu(function(t,e,i){var r=i[i.length-1];Y(void 0!==e.getId(),27);var n=r.featureType,o=r.featurePrefix,s=r.featureNS,a=av(o,n),h=e.getGeometryName();t.setAttribute("typeName",a),t.setAttributeNS(Jy,"xmlns:"+o,s);var l=e.getId();if(void 0!==l){for(var u=e.getKeys(),p=[],c=0,d=u.length;c="a"&&t<="z"||t>="A"&&t<="Z"},Ov.prototype.isNumeric_=function(t,e){return t>="0"&&t<="9"||"."==t&&!(void 0!==e&&e)},Ov.prototype.isWhiteSpace_=function(t){return" "==t||"\t"==t||"\r"==t||"\n"==t},Ov.prototype.nextChar_=function(){return this.wkt.charAt(++this.index_)},Ov.prototype.nextToken=function(){var t,e=this.nextChar_(),i=this.index_,r=e;if("("==e)t=Sv;else if(","==e)t=Rv;else if(")"==e)t=Tv;else if(this.isNumeric_(e)||"-"==e)t=Cv,r=this.readNumber_();else if(this.isAlpha_(e))t=Ev,r=this.readText_();else{if(this.isWhiteSpace_(e))return this.nextToken();if(""!==e)throw new Error("Unexpected character: "+e);t=wv}return{position:i,value:r,type:t}},Ov.prototype.readNumber_=function(){var t,e=this.index_,i=!1,r=!1;do{"."==t?i=!0:"e"!=t&&"E"!=t||(r=!0),t=this.nextChar_()}while(this.isNumeric_(t,i)||!r&&("e"==t||"E"==t)||r&&("-"==t||"+"==t));return parseFloat(this.wkt.substring(e,this.index_--))},Ov.prototype.readText_=function(){var t,e=this.index_;do{t=this.nextChar_()}while(this.isAlpha_(t));return this.wkt.substring(e,this.index_--).toUpperCase()};var Pv=function(t){this.lexer_=t,this.token_,this.layout_=At.XY};function bv(t){var e=t.getCoordinates();return 0===e.length?"":e.join(" ")}function Mv(t){for(var e=t.getCoordinates(),i=[],r=0,n=e.length;r0&&(e+=" "+r)}return 0===i.length?e+" "+vv:e+"("+i+")"}var Gv=function(t){function e(e){t.call(this);var i=e||{};this.splitCollection_=void 0!==i.splitCollection&&i.splitCollection}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.parse_=function(t){var e=new Ov(t);return new Pv(e).parse()},e.prototype.readFeatureFromText=function(t,e){var i=this.readGeometryFromText(t,e);if(i){var r=new B;return r.setGeometry(i),r}return null},e.prototype.readFeaturesFromText=function(t,e){for(var i=[],r=this.readGeometryFromText(t,e),n=[],o=0,s=(i=this.splitCollection_&&r.getType()==Nt.GEOMETRY_COLLECTION?r.getGeometriesArray():[r]).length;o.75*u||l>.75*p?this.resetExtent_():ot(o,r)||this.recenter_()}},e.prototype.resetExtent_=function(){var t=this.getMap(),e=this.ovmap_,i=t.getSize(),r=t.getView().calculateExtent(i),n=e.getView(),o=Math.log(7.5)/Math.LN2;Mt(r,1/(.1*Math.pow(2,o/2))),n.fit(r)},e.prototype.recenter_=function(){var t=this.getMap(),e=this.ovmap_,i=t.getView();e.getView().setCenter(i.getCenter())},e.prototype.updateBox_=function(){var t=this.getMap(),e=this.ovmap_;if(t.isRendered()&&e.isRendered()){var i=t.getSize(),r=t.getView(),n=e.getView(),o=r.getRotation(),s=this.boxOverlay_,a=this.boxOverlay_.getElement(),h=r.calculateExtent(i),l=n.getResolution(),u=Et(h),p=Lt(h),c=this.calculateCoordinateRotate_(o,u);s.setPosition(c),a&&(a.style.width=Math.abs((u[0]-p[0])/l)+"px",a.style.height=Math.abs((p[1]-u[1])/l)+"px")}},e.prototype.calculateCoordinateRotate_=function(t,e){var i,r=this.getMap().getView().getCenter();return r&&($i(i=[e[0]-r[0],e[1]-r[1]],t),Hi(i,r)),i},e.prototype.handleClick_=function(t){t.preventDefault(),this.handleToggle_()},e.prototype.handleToggle_=function(){this.element.classList.toggle(yo),this.collapsed_?Qn(this.collapseLabel_,this.label_):Qn(this.label_,this.collapseLabel_),this.collapsed_=!this.collapsed_;var t=this.ovmap_;this.collapsed_||t.isRendered()||(t.updateSize(),this.resetExtent_(),m(t,Rn,function(t){this.updateBox_()},this))},e.prototype.getCollapsible=function(){return this.collapsible_},e.prototype.setCollapsible=function(t){this.collapsible_!==t&&(this.collapsible_=t,this.element.classList.toggle("ol-uncollapsible"),!t&&this.collapsed_&&this.handleToggle_())},e.prototype.setCollapsed=function(t){this.collapsible_&&this.collapsed_!==t&&this.handleToggle_()},e.prototype.getCollapsed=function(){return this.collapsed_},e.prototype.getOverviewMap=function(){return this.ovmap_},e}(uo),ex="units",ix={DEGREES:"degrees",IMPERIAL:"imperial",NAUTICAL:"nautical",METRIC:"metric",US:"us"},rx=[1,2,5];function nx(t){var e=t.frameState;this.viewState_=e?e.viewState:null,this.updateElement_()}var ox=function(t){function e(e){var i=e||{},r=void 0!==i.className?i.className:"ol-scale-line";t.call(this,{element:document.createElement("div"),render:i.render||nx,target:i.target}),this.innerElement_=document.createElement("div"),this.innerElement_.className=r+"-inner",this.element.className=r+" "+fo,this.element.appendChild(this.innerElement_),this.viewState_=null,this.minWidth_=void 0!==i.minWidth?i.minWidth:64,this.renderedVisible_=!1,this.renderedWidth_=void 0,this.renderedHTML_="",v(this,G(ex),this.handleUnitsChanged_,this),this.setUnits(i.units||ix.METRIC)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.getUnits=function(){return this.get(ex)},e.prototype.handleUnitsChanged_=function(){this.updateElement_()},e.prototype.setUnits=function(t){this.set(ex,t)},e.prototype.updateElement_=function(){var t=this.viewState_;if(t){var e=t.center,i=t.projection,r=this.getUnits(),n=r==ix.DEGREES?$t.DEGREES:$t.METERS,o=Se(i,t.resolution,e,n);i.getUnits()!=$t.DEGREES&&i.getMetersPerUnit()&&n==$t.METERS&&(o*=i.getMetersPerUnit());var s=this.minWidth_*o,a="";if(r==ix.DEGREES){var h=Qt[$t.DEGREES];i.getUnits()==$t.DEGREES?s*=h:o/=h,s=this.minWidth_)break;++p}var c=l+" "+a;this.renderedHTML_!=c&&(this.innerElement_.innerHTML=c,this.renderedHTML_=c),this.renderedWidth_!=u&&(this.innerElement_.style.width=u+"px",this.renderedWidth_=u),this.renderedVisible_||(this.element.style.display="",this.renderedVisible_=!0)}else this.renderedVisible_&&(this.element.style.display="none",this.renderedVisible_=!1)},e}(uo),sx={VERTICAL:0,HORIZONTAL:1};function ax(t){if(t.frameState){this.sliderInitialized_||this.initSlider_();var e=t.frameState.viewState.resolution;e!==this.currentResolution_&&(this.currentResolution_=e,this.setThumbPosition_(e))}}var hx=function(t){function e(e){var i=e||{};t.call(this,{element:document.createElement("div"),render:i.render||ax}),this.dragListenerKeys_=[],this.currentResolution_=void 0,this.direction_=sx.VERTICAL,this.dragging_,this.heightLimit_=0,this.widthLimit_=0,this.previousX_,this.previousY_,this.thumbSize_=null,this.sliderInitialized_=!1,this.duration_=void 0!==i.duration?i.duration:200;var r=void 0!==i.className?i.className:"ol-zoomslider",n=document.createElement("button");n.setAttribute("type","button"),n.className=r+"-thumb "+fo;var o=this.element;o.className=r+" "+fo+" "+go,o.appendChild(n),this.dragger_=new Tn(o),v(this.dragger_,Gr.POINTERDOWN,this.handleDraggerStart_,this),v(this.dragger_,Gr.POINTERMOVE,this.handleDraggerDrag_,this),v(this.dragger_,Gr.POINTERUP,this.handleDraggerEnd_,this),v(o,M.CLICK,this.handleContainerClick_,this),v(n,M.CLICK,O)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.disposeInternal=function(){this.dragger_.dispose(),t.prototype.disposeInternal.call(this)},e.prototype.setMap=function(e){t.prototype.setMap.call(this,e),e&&e.render()},e.prototype.initSlider_=function(){var t=this.element,e=t.offsetWidth,i=t.offsetHeight,r=t.firstElementChild,n=getComputedStyle(r),o=r.offsetWidth+parseFloat(n.marginRight)+parseFloat(n.marginLeft),s=r.offsetHeight+parseFloat(n.marginTop)+parseFloat(n.marginBottom);this.thumbSize_=[o,s],e>i?(this.direction_=sx.HORIZONTAL,this.widthLimit_=e-o):(this.direction_=sx.VERTICAL,this.heightLimit_=i-s),this.sliderInitialized_=!0},e.prototype.handleContainerClick_=function(t){var e=this.getMap().getView(),i=this.getRelativePosition_(t.offsetX-this.thumbSize_[0]/2,t.offsetY-this.thumbSize_[1]/2),r=this.getResolutionForPosition_(i);e.animate({resolution:e.constrainResolution(r),duration:this.duration_,easing:Xn})},e.prototype.handleDraggerStart_=function(t){if(!this.dragging_&&t.originalEvent.target===this.element.firstElementChild&&(this.getMap().getView().setHint(jn,1),this.previousX_=t.clientX,this.previousY_=t.clientY,this.dragging_=!0,0===this.dragListenerKeys_.length)){var e=this.handleDraggerDrag_,i=this.handleDraggerEnd_;this.dragListenerKeys_.push(v(document,M.MOUSEMOVE,e,this),v(document,Gr.POINTERMOVE,e,this),v(document,M.MOUSEUP,i,this),v(document,Gr.POINTERUP,i,this))}},e.prototype.handleDraggerDrag_=function(t){if(this.dragging_){var e=this.element.firstElementChild,i=t.clientX-this.previousX_+parseFloat(e.style.left),r=t.clientY-this.previousY_+parseFloat(e.style.top),n=this.getRelativePosition_(i,r);this.currentResolution_=this.getResolutionForPosition_(n),this.getMap().getView().setResolution(this.currentResolution_),this.setThumbPosition_(this.currentResolution_),this.previousX_=t.clientX,this.previousY_=t.clientY}},e.prototype.handleDraggerEnd_=function(t){if(this.dragging_){var e=this.getMap().getView();e.setHint(jn,-1),e.animate({resolution:e.constrainResolution(this.currentResolution_),duration:this.duration_,easing:Xn}),this.dragging_=!1,this.previousX_=void 0,this.previousY_=void 0,this.dragListenerKeys_.forEach(E),this.dragListenerKeys_.length=0}},e.prototype.setThumbPosition_=function(t){var e=this.getPositionForResolution_(t),i=this.element.firstElementChild;this.direction_==sx.HORIZONTAL?i.style.left=this.widthLimit_*e+"px":i.style.top=this.heightLimit_*e+"px"},e.prototype.getRelativePosition_=function(t,e){return kt(this.direction_===sx.HORIZONTAL?t/this.widthLimit_:e/this.heightLimit_,0,1)},e.prototype.getResolutionForPosition_=function(t){return this.getMap().getView().getResolutionForValueFunction()(1-t)},e.prototype.getPositionForResolution_=function(t){return 1-this.getMap().getView().getValueForResolutionFunction()(t)},e}(uo),lx=function(t){function e(e){var i=e||{};t.call(this,{element:document.createElement("div"),target:i.target}),this.extent=i.extent?i.extent:null;var r=void 0!==i.className?i.className:"ol-zoom-extent",n=void 0!==i.label?i.label:"E",o=void 0!==i.tipLabel?i.tipLabel:"Fit to extent",s=document.createElement("button");s.setAttribute("type","button"),s.title=o,s.appendChild("string"==typeof n?document.createTextNode(n):n),v(s,M.CLICK,this.handleClick_,this);var a=r+" "+fo+" "+go,h=this.element;h.className=a,h.appendChild(s)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.handleClick_=function(t){t.preventDefault(),this.handleZoomToExtent()},e.prototype.handleZoomToExtent=function(){var t=this.getMap().getView(),e=this.extent?this.extent:t.getProjection().getExtent();t.fit(e)},e}(uo),ux={array:{},color:{},colorlike:{},control:{},coordinate:{},easing:{},events:{}};ux.events.condition={},ux.extent={},ux.featureloader={},ux.format={},ux.format.filter={},ux.geom={},ux.has={},ux.interaction={},ux.layer={},ux.loadingstrategy={},ux.proj={},ux.proj.Units={},ux.proj.proj4={},ux.render={},ux.render.canvas={},ux.renderer={},ux.renderer.canvas={},ux.renderer.webgl={},ux.size={},ux.source={},ux.sphere={},ux.style={},ux.style.IconImageCache={},ux.tilegrid={},ux.xml={},ux.Collection=U,ux.Feature=B,ux.Geolocation=zi,ux.Graticule=Or,ux.Kinetic=br,ux.Map=Ha,ux.Object=D,ux.Observable=F,ux.Observable.unByKey=function(t){if(Array.isArray(t))for(var e=0,i=t.length;e180)&&(i[0]=Xt(r+180,360)-180),i},ux.proj.transform=Pe,ux.proj.transformExtent=be,ux.render.VectorContext=Vs,ux.render.canvas.labelCache=Ps,ux.render.toContext=function(t,e){var i=t.canvas,r=e||{},n=r.pixelRatio||Di,o=r.size;o&&(i.width=o[0]*n,i.height=o[1]*n,i.style.width=o[0]+"px",i.style.height=o[1]+"px");var s=[0,0,i.width,i.height],a=je([1,0,0,1,0,0],n,n);return new Xs(t,n,s,a,0)},ux.renderer.canvas.ImageLayer=ra,ux.renderer.canvas.Map=Qs,ux.renderer.canvas.TileLayer=ha,ux.renderer.canvas.VectorLayer=Ba,ux.renderer.canvas.VectorTileLayer=Ka,ux.renderer.webgl.ImageLayer=gl,ux.renderer.webgl.Map=yl,ux.renderer.webgl.TileLayer=Xl,ux.renderer.webgl.VectorLayer=Wl,ux.size.toSize=ho,ux.source.BingMaps=tp,ux.source.CartoDB=ip,ux.source.Cluster=sp,ux.source.Image=dp,ux.source.ImageArcGISRest=gp,ux.source.ImageCanvas=yp,ux.source.ImageMapGuide=vp,ux.source.ImageStatic=mp,ux.source.ImageWMS=wp,ux.source.OSM=Lp,ux.source.OSM.ATTRIBUTION=Ip,ux.source.Raster=Vp,ux.source.Source=Il,ux.source.Stamen=Kp,ux.source.Tile=jl,ux.source.TileArcGISRest=Zp,ux.source.TileDebug=Jp,ux.source.TileImage=$u,ux.source.TileJSON=Qp,ux.source.TileWMS=tc,ux.source.UTFGrid=ic,ux.source.Vector=op,ux.source.VectorTile=ac,ux.source.WMTS=lc,ux.source.WMTS.optionsFromCapabilities=function(t,e){var i=H(t.Contents.Layer,function(t,i,r){return t.Identifier==e.layer});if(null===i)return null;var r,n=t.Contents.TileMatrixSet;(r=i.TileMatrixSetLink.length>1?J(i.TileMatrixSetLink,"projection"in e?function(t,i,r){var o=H(n,function(e){return e.Identifier==t.TileMatrixSet}).SupportedCRS,s=Ee(o.replace(/urn:ogc:def:crs:(\w+):(.*:)?(\w+)$/,"$1:$3"))||Ee(o),a=Ee(e.projection);return s&&a?Ie(s,a):o==e.projection}:function(t,i,r){return t.TileMatrixSet==e.matrixSet}):0)<0&&(r=0);var o=i.TileMatrixSetLink[r].TileMatrixSet,s=i.TileMatrixSetLink[r].TileMatrixSetLimits,a=i.Format[0];"format"in e&&(a=e.format),(r=J(i.Style,function(t,i,r){return"style"in e?t.Title==e.style:t.isDefault}))<0&&(r=0);var h=i.Style[r].Identifier,l={};"Dimension"in i&&i.Dimension.forEach(function(t,e,i){var r=t.Identifier,n=t.Default;void 0===n&&(n=t.Value[0]),l[r]=n});var u,p=H(t.Contents.TileMatrixSet,function(t,e,i){return t.Identifier==o}),c=p.SupportedCRS;if(c&&(u=Ee(c.replace(/urn:ogc:def:crs:(\w+):(.*:)?(\w+)$/,"$1:$3"))||Ee(c)),"projection"in e){var d=Ee(e.projection);d&&(u&&!Ie(d,u)||(u=d))}var f,_,g=i.WGS84BoundingBox;if(void 0!==g){var y=Ee("EPSG:4326").getExtent();_=g[0]==y[0]&&g[2]==y[2],f=be(g,"EPSG:4326",u);var v=u.getExtent();v&&(ot(v,f)||(f=void 0))}var m=Eu(p,f,s),x=[],E=e.requestEncoding;if(E=void 0!==E?E:"","OperationsMetadata"in t&&"GetTile"in t.OperationsMetadata)for(var S=t.OperationsMetadata.GetTile.DCP.HTTP.Get,T=0,C=S.length;T has to be removed, as well as the just before the W3 validation box. Unfortunately this then forces 600px width even when the window is small — thus eliminating the margin altogether.... + +I use it for now only in Diary/edited/1097/13A, 13B, 13C.html; and /0404/19.html +*/ + background-color: #e6fffb ! important; + width: 600px; + margin-left: auto; + margin-right: auto; + margin-top: 3em; +} + +BODY.gazetteer { +/* + background-color: #bdffde ! important; + */ + background-color: #c0ffe0 ! important; + margin-top: 30px; +} + +BODY.gazetteer_links { + background-color: #c5ffe2 ! important; + margin-top: 30px; +} + +BODY.home { + background-color: #ffff66 ! important; + margin-top: 30px; +/* +background as long as the Russian attack on Ukraine continues: + */ + background-image: url("https://penelope.uchicago.edu/Thayer/Images/Utility/Backgrounds/Ukraine.gif") ! important; + background-repeat: repeat-y; +} + +BODY.Roman_archaic { + background-color: #ffddcc ! important; + margin-top: 30px; +} + +BODY.Roman_imperial { + background-color: #ffccff ! important; + margin-top: 30px; +} + +BODY.Roman_Republican { + background-color: #ccddff ! important; + margin-top: 30px; +} + +BODY.Late_Antique { + background-color: #ecdaff ! important; + margin-top: 30px; +} + +BODY.fixed { + background-attachment: fixed; + background-repeat: repeat; +} + +BODY.help { + background-color: #ffcccc ! important; + margin-top: 30px; +} + +BODY.resources { + background-color: #f5ffff ! important; + color: #006600 ! important; + margin-top: 30px; +} + +BODY.WP { + background-color: #000000 ! important; + color: #ffffff ! important; + margin-top: 30px; +} + +/*Greek TEST*/ + BODY.WP DIV.default1 { + margin-left: 5em; + margin-right: 5em; + color: #ffffff ! important; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + } + BODY.WP .source { + color: #99ff99 ! important; + } + BODY.WP A { + color: #ccccff ! important; + } + BODY.WP TD.upcell A { + color: #0000ff ! important; + } + BODY.WP TD.alsocell A { + color: #0000ff ! important; + } + BODY.WP TD.diarycell A { + color: #0000ff ! important; + } + BODY.WP TD.offcell A { + color: #0000ff ! important; + } + +DIV.spacious { + width: 65vw; + margin-left: auto; + margin-right: auto; + color: #000066 ! important; /*color must match the background*/ + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; +} + +/* + +▸ Use names of countries only to define country-related styles. +▸ Use names of languages only to define language-related styles. + +*/ + +/*languages/scripts: +source, archaic, aboriginal; +Latin, Greek, Hebrew (Aramaic, Syriac), Runic, Gothic/Vandalic [same color: plain/italic]; +Russian/Slavic [identical]; +Coptic, Arabic (Punic, Turkish, Persian), Indian/Sanskrit [same color: plain/italic], Chinese/Japanese [same color: plain/italic]; +Catalan, Dutch, French, German, Italian, Portuguese, Provencal, Spanish +*/ + +/* +UNUSABLE FONTS: + +BECAUSE OF GREEK [search: ▸Greek TEST◂] : + Georgia: old tonos (wedge) + Verdana: old tonos (stroke) + Atavyros: ῥ rendered as ῤ + Minion Pro: no spaces before Greek capitals with rough breathings + +FOR OTHER REASONS: + Aroania: nulls the command-hyphen +*/ + +/* +COLORS + are in + https://penelope.uchicago.edu/Thayer/Utility/Styles/colors.css +*/ + +.black_letter { + text-transform: none; + font-family: Canterbury, "Cloister Black", Cimbrian, Raubtier, Lancaster, Augusta, Rochester, PaladinFLF, "Kleukens-Fraktur", "Palatino Linotype", Palatino, "Arial Unicode Ms", "Titus Cyberbit Basic", "Lucida Sans Unicode", serif, sans-serif ! important; +} + +.invisible { + visibility: hidden ! important; +} + +.error .Greek { + color: #ff0000 ! important; + font-weight: bold; + font-size: 120%; +} + +/* for modern geographical names, etc.: */ +.modern { + color: #5ebf20 ! important; +} + +.aboriginal { + color: #ff8f33 ! important; + font-family: Verdana, sans-serif; + font-size: 90%; +} + +/* same as Persian: */ +.Arabic { + color: #336644 ! important; +} + .Arabic .emend { + color: #444400 ! important; + } + + A SPAN.Arabic { + color: #669966 ! important; + } + +.Aramaic { + color: #555500 ! important; +} + .Aramaic .emend { + color: #664400 ! important; + } + + A SPAN.Aramaic { + color: #669966 ! important; + } + +.archaic { + color: #666600 ! important; +} + .archaic .emend { + color: #cccc00 ! important; + } + + A SPAN.archaic { + color: #669966 ! important; + } + +.Armenian { + color: #660099 ! important; +} + +SPAN LANG.be /* Belarusian */ { + font-size: 108%; +} + +.Belarusian { + color: #990000 ! important; + font-size: 108%; +} + +.book_Belarusian { + color: #990000 ! important; + font-size: 108%; + font-variant: small-caps; +} + +.translit_Belarusian { + color: #990000 ! important; +} + +.bland_Belarusian { + color: inherit ! important; + font-size: 108%; + line-height: 1.00; /* Belarusian fonts have more line-height built‑in, force smaller */ +} + +.Catalan { + color: #cc2200 ! important; +} + + .Catalan .emend { + color: #ee6633 ! important; + } + +.Dutch { + color: #006600 ! important; +} + + .Dutch .Dutch { + color: #002200 ! important; + } + + .Dutch .source { + color: #002200 ! important; + } + +BODY.gazetteer .Dutch { + color: #003300 ! important; +} + +.Egyptian { + color: #ff6600 ! important; +} + +.English/* use only in pages in other languages */ { + color: #009933 ! important; +} + + .English .emend { + color: #80cc4c ! important; + } + + .English .English { + color: #002200 ! important; + } + + .English .source { + color: #002200 ! important; + } + +French { + color: #009933 ! important; +} + + .French .emend { + color: #119955 ! important; + } + + .French .French { + color: #002200 ! important; + } + + .French .source { + color: #002200 ! important; + } + + .mynote .French { + color: #666633 ! important; + } + + .mynoteWide .French { + color: #666633 ! important; + } + +.Georgian { + color: #cc0099 ! important; +} + +.German { + color: #339999 ! important; +} + + .German .German { + color: #002200 ! important; + } + + .German .source { + color: #002200 ! important; + } + +.Gothic { + color: #660099 ! important; +} + +/*Greek TEST (settled)*/ +/*what I want here is a nice flowing slightly Byzantine look:*/ +/*Avdira: nice if somewhat mannered*/ +/*Alfios: nice but too small*/ +/*Quivira: ok but mannered: accents and breathings shifted*/ +/*Times New Roman: ok but circumflexes and diereses smooshed*/ +.Greek { + font-family: "Avdira", "Titus Cyberbit Basic", serif ! important; + color: #996600 ! important; +} + .Greek I { + font-style: italic; + letter-spacing: .2em; + /* a compromise: the traditional wide spacing, but also true italics */ + } + + .Greek .emend { + color: #dd8833 ! important; + } + + .Greek .emphasis { + color: #cc6600 ! important; + } + + .Greek .italic { + font-style: italic; + letter-spacing: .2em; + /* a compromise: the traditional wide spacing, but also true italics */ + } + + .Greek .outquote { + color: #dd8833 ! important; /* same as .Greek .emend */ + } + + .mynote .Greek { + color: #996600 ! important; + } + + .mynoteWide .Greek { + color: #996600 ! important; + } + +/* for use in Eboxes: */ + .EboxGreek { + font-weight: bold; + color: #996600 ! important; + } + +.translit_Greek { + color: #996600 ! important; +} + .translit_Greek .emend { + color: #dd8833 ! important; + } + + .translit_Greek .emphasis { + color: #cc6600 ! important; + } + + .mynote .translit_Greek { + color: #996600 ! important; + } + + .mynoteWide .translit_Greek { + color: #996600 ! important; + } + +.Greek2 { + font-family: "Palatino Linotype", "Lucida Grande", "Arial Unicode Ms", "Titus Cyberbit Basic", "Lucida Sans Unicode", sans-serif ! important; + color: #663300 ! important; + font-size: 95%; +} + .Greek2 .emend { + color: #dd8833 ! important; + } + + .Greek2 .emphasis { + color: #cc6600 ! important; + } + +.Greek_title { +/* OLD, KEEP FOR NOW: + font-family: "Lucida Grande", "Palatino Linotype", "Arial Unicode Ms", "Titus Cyberbit Basic", "Lucida Sans Unicode", sans-serif ! important; + */ + font-style: italic; + letter-spacing: .08em; +/* OLD, KEEP FOR NOW: + font-size: 95%; + */ +} + +.Hebrew { + direction: rtl ! important; + color: #666600 ! important; +} + .Hebrew .emend { + color: #774400 ! important; + } + + A SPAN.Hebrew { + color: #669966 ! important; + } + +.translit_Hebrew { + color: #666600 ! important; +} + .translit_Hebrew .emend { + color: #774400 ! important; + } + + A SPAN.translit_Hebrew { + color: #669966 ! important; + } + +.Indian { + color: #ff8f33 ! important; + font-family: Verdana, sans-serif; + font-size: 90%; +} + +.Italian { + color: #006600 ! important; +} + + .Italian .Italian { + color: #002200 ! important; + } + + .Italian .source { + color: #002200 ! important; + } + + .mynote .Italian { + color: #00b300 ! important; + } + +BODY.gazetteer .Italian { + color: #009922 ! important; +} + +.Chinese { +/* + color: #dcbd75 ! important; /* OLD + */ + color: #b88e2e ! important; + font-family: Verdana, sans-serif; + font-size: 90%; +} + +.Japanese { + color: #da5300 ! important; + font-family: Verdana, sans-serif; + font-size: 90%; + font-style: italic; +} + +.Latin { + color: #990000 ! important; +} + + .Latin .emend { + color: #ee6633 ! important; + } + + .mynote .Latin { + color: #990000 ! important; + } + +/* for use in Eboxes: */ + .EboxLatin { + font-weight: bold; + color: #990000 ! important; + } + +.Latin_addendum { + color: #993399 ! important; +} + +.Latin_emend { + color: #ee6633 ! important; +} + +.Latin_pale { + color: #ff6666 ! important; +} + +/* same as Arabic: */ +.Persian { + color: #336644 ! important; +} + .Persian .emend { + color: #444400 ! important; + } + + A SPAN.Persian { + color: #669966 ! important; + } + +.Portuguese { + color: #006600 ! important; +} + + .Portuguese .Portuguese { + color: #002200 ! important; + } + + .Portuguese .source { + color: #002200 ! important; + } + +BODY.gazetteer .Portuguese { + color: #003300 ! important; +} + + +.Provencal { + color: #e65c00 ! important; +} + + .Provencal .emend { + color: #ee6633 ! important; + } + +.Punic { + color: #336644 ! important; +} + .Punic .emend { + color: #444400 ! important; + } + + A SPAN.Punic { + color: #669966 ! important; + } + +.Runic { + font-family: "Quivira", "Apple Symbols", "Geneva", serif ! important; + color: #339999 ! important; +} + +.RunicQuivira { + font-family: "Quivira" ! important; + color: #339999 ! important; +} + +.RunicGeneva { + font-family: "Geneva" ! important; + color: #339999 ! important; +} + +.RunicApple { + font-family: "Apple Symbols" ! important; + color: #339999 ! important; +} + +.Russian { +/* WAS: + color: #ff7e24 ! important; + */ + color: #ffa114 ! important; + font-size: 108%; +} + +.translit_Russian { + color: #ffa114 ! important; +} + +.Sanskrit { + color: #ff8f33 ! important; + font-family: Verdana, sans-serif; + font-size: 90%; + font-style: italic; +} + +.translit_Sanskrit { + color: #ff8f33 ! important; + font-family: Verdana, sans-serif; + font-size: 90%; + font-style: italic; +} + +.Scandinavian { + color: #660099 ! important; +} + +.Slavic { + color: #e73659 ! important; +} + +.Syriac { + color: #666600 ! important; +} + .Syriac .emend { + color: #774400 ! important; + } + + A SPAN.Syriac { + color: #669966 ! important; + } + +.Turkish { + color: #336644 ! important; +} + .Turkish .emend { + color: #444400 ! important; + } + + A SPAN.Turkish { + color: #669966 ! important; + } + +SPAN LANG.uk /* Ukrainian */ { + font-size: 108%; +} + +.Ukrainian { + color: #f7c708 ! important; + font-size: 108%; +} + +.book_Ukrainian { + color: #f7c708 ! important; + font-size: 108%; + font-variant: small-caps; +} + +.translit_Ukrainian { + color: #f7c708 ! important; +} + +.bland_Ukrainian { + color: inherit ! important; + font-size: 108%; + line-height: 1.00; /* Ukrainian fonts have more line-height built‑in, force smaller */ +} + +.Vandalic { + font-family: Atavyros, "Lucida Grande", "Palatino Linotype", "Arial Unicode Ms", "Titus Cyberbit Basic", "Lucida Sans Unicode", sans-serif ! important; + color: #660099 ! important; + font-size: 95%; + font-style: italic; +} + + TABLE TR.odd { + background-color: #ccffff ! important; + } + + TABLE TR TD.odd { + background-color: #ccffff ! important; + } + + TABLE TR.even { + background-color: #99ffff ! important; + } + + TABLE TR TD.even { + background-color: #99ffff ! important; + } + +.odd .emend { + color: #33ccff ! important; + } + +.even .emend { + color: #00ccff ! important; + } + +/* THIS DOESN'T SEEM TO WORK: */ +/* +COLGROUP COL.grisaille { + background-color: #ff0000 ! important; + } + + */ + + +TABLE.prompt { +/* DO NOT DELETE: */ +/* used in Ebox.js */ + margin-bottom: 0em; +} + +TABLE.Ptolemy { + width: 600px; + border: 1px solid; + background-color: #eeffff ! important; + padding-left: 4px; + padding-right: 4px; + vertical-align: bottom; +} +TABLE.Ptolemy TD { + padding-left: 2px; + padding-right: 2px; + vertical-align: bottom; +} +TABLE.Ptolemy TD.text { + width: 420px; +} +TABLE.Ptolemy TD.text P { + margin-left: 1em; + text-indent: -1em; +} +TABLE.Ptolemy TR.alternate { + background-color: #ccffff ! important; +} +TABLE.Ptolemy TD.numbers { + width: 90px; +} + +TABLE.flexible { + table-layout: auto; + width: 100%; +} + +/*TABLE.padded: for making the table readable, cells not jammed together*/ +TABLE.padded TD { + padding-left: 12px; + padding-right: 12px; +} + +/*TABLE.rowspadded: separates the rows as well*/ +TABLE.rowspadded TD { + padding-top: 12px; + padding-left: 12px; + padding-right: 12px; +} + +TD.padded { + padding-left: 12px; + padding-right: 12px; +} + +TABLE.preface { + width: 600px; +/* WAS : + width: 576px; + ▸ If there's a reason for it, revert. . . + */ + background-color: #e9e9e9 ! important; + margin-left: auto; + margin-right: auto; + margin-top: 5em; + border-collapse: separate; + border-spacing: 1px; + border: 4px ridge #f6f6f6; + line-height: 1.5; +} + +TABLE.imageTEST { + border: 1px solid; + margin-left: auto; + margin-right: auto; + margin-top: 1em; + text-align: center; +} + + .imageTEST TR { + text-align: justify; + } + +TABLE.justify TD { + text-align: justify; +} + +TABLE.rubric { + width: 600px; + font-size: 85%; + margin-top: 2em; + margin-left: auto; + margin-right: auto; +} + + TABLE.rubric P.summary { + font-size: 85%; + margin-top: 3em; + margin-left: 0; + margin-right: 0; + text-indent: 0; + text-align: right; + } + + TABLE.rubric P.postsummary { + font-size: 85%; + margin-top: -.5em; + margin-left: 0; + margin-right: 0; + text-indent: 0; + text-align: right; + } + +.artist_catalog { + text-align: center; + background-color: #ffff66 ! important; + color: #00aaff ! important; + font-size: 80%; +} + + .artist_catalog A:link { + font-weight: bold; + color: #9922ff ! important; + } + + .artist_catalog H1 { + margin-top: .5em; + margin-bottom: .5em; + font-size: 120%; + font-weight: normal; + font-style: italic; + } + + .artist_catalog P { + margin-top: 0em; + margin-bottom: .7em; + } + + .artist_catalog .town { + color: #0040ff ! important; + } + + .artist_catalog .separator { + color: #ff3366 ! important; + } + +/* the "spaced" styles can be used for SPAN, and they will be uncentered*/ +/* if inside a justified class, they will also be uncentered */ +.slightly_condensed { + text-align: center; + letter-spacing: .05em; +} + +.condensed1 { + text-align: center; + letter-spacing: -.25em; +} + +.condensed2 { + text-align: center; + letter-spacing: -.5em; +} + +.slightly_spaced { + text-align: center; + letter-spacing: .25em; +} + +.spaced1 { + text-align: center; + letter-spacing: .5em; +} + +.spaced2 { + text-align: center; + letter-spacing: 1.0em; +} + +.spaced3 { + text-align: center; + letter-spacing: 1.5em; +} + +.spaced4 { + text-align: center; + letter-spacing: 2.0em; +} + +/* +The following style ("skipped") is used when I've temporarily skipped part of what ought to be a full webpage: + */ +.skipped { + margin-top: 5em; + text-align: center; + letter-spacing: 1.0em; + font-weight: bold; +} + +/* +The following style ("interlinear") is used to format running text with an interlinear translation. + +For explanation, see: +http://www.crosswire.org/~dmsmith/interlinear/ + +For use, see: +E/Gazetteer/Places/Europe/Italy/_Texts/HODIHI/2d_edition/1/NoteC*.html +and +E/Journals/ArtBulletin/41/1/Theodosius_or_Justinian*.html +*/ + +SPAN.interlinear SPAN { + float: left; + padding: 0 0.5em 0.5em 0; + text-align: center; +} +SPAN.interlinear SPAN SPAN { + float: none; + padding: 0; + display: block; +} +SPAN.interlinear SPAN SPAN SPAN { + display: inline; +} + +.Coptic { +/* Unicode range from 2C80 */ + font-family: Analecta, Aegyptus ! important; + color: #ff6600 ! important; /* matches .hieroglyphic */ + font-size: 100%; +} + .Coptic .emend { + color: #dd8833 ! important; + } + + .Coptic .emphasis { + color: #cc6600 ! important; + } + +.translit_Coptic { + color: #ff6600 ! important; /* matches .hieroglyphic */ +} + .translit_Coptic .emend { + color: #dd8833 ! important; + } + + .translit_Coptic .emphasis { + color: #cc6600 ! important; + } + +/* +The following style ("hieroglyphic") is STILL IN TEST based on "interlinear". +The sandbox is in + Thayer/hieroglyphic_sandbox.htm +altho also (imperfect and commented out) on + E/Gazetteer/Places/Africa/Egypt/_Topics/history/home.html + */ +SPAN.hieroglyphic { + color: #ff6600 ! important; /* matches .Coptic */ +} +SPAN.hieroglyphic SPAN { + float: left; + padding: 0; + text-align: center; +} +SPAN.hieroglyphic SPAN SPAN { + float: none; + padding: 0; + display: block; + line-height: 70%; +} +SPAN.hieroglyphic SPAN SPAN SPAN { + display: inline-block; +} + +SPAN.hieroglyphic SPAN SPAN.half1 { + line-height: 50%; +} +SPAN.hieroglyphic SPAN SPAN.half1 SPAN { + display: inline-block; +} + +SPAN.hieroglyphic SPAN SPAN.half1 SPAN .up1 { + vertical-align: 10%; +} +SPAN.hieroglyphic SPAN SPAN.half1 SPAN .up2 { + vertical-align: 20%; +} +SPAN.hieroglyphic SPAN SPAN.half1 SPAN .up3 { + vertical-align: 30%; +} +SPAN.hieroglyphic SPAN SPAN.half1 SPAN .up4 { + vertical-align: 40%; +} + +SPAN.hieroglyphic SPAN SPAN.half2 { + line-height: 50%; +} +SPAN.hieroglyphic SPAN SPAN.half2 SPAN { + display: inline-block; +} + +SPAN.hieroglyphic SPAN SPAN.third { + line-height: 33%; +} +SPAN.hieroglyphic SPAN SPAN.third SPAN { + display: inline-block; + padding-bottom: 50px; +} + + +/* +inline_hieroglyphic is used only one page, + E/Roman/Texts/Manetho/History_of_Egypt/1*.html +but successfully + (5 times: notes 2, 6, 49, 67, 72) +It has the advantage of returning correct search results in Google and on the displayed page: + */ + +SPAN.inline_hieroglyphic { + color: #ff6600 ! important; /* matches .Coptic */ + font-weight: bolder ! important; /* VERY important, else unreadable! */ + line-height: 1px; /* forces line height */ +} +SPAN.inline_hieroglyphic .up1 { + vertical-align: 3px; +} +SPAN.inline_hieroglyphic .up2 { + vertical-align: 6px; +} +SPAN.inline_hieroglyphic .up3 { + vertical-align: 9px; +} +SPAN.inline_hieroglyphic .up4 { + vertical-align: 12px; +} +SPAN.inline_hieroglyphic .up5 { + vertical-align: 15px; +} +SPAN.inline_hieroglyphic .up6 { + vertical-align: 18px; +} + +SPAN.inline_hieroglyphic .right1 { + position: relative; + right: -.4em; +} +SPAN.inline_hieroglyphic .right2 { + position: relative; + right: -.6em; +} +SPAN.inline_hieroglyphic .right3 { + position: relative; + right: -.8em; +} +SPAN.inline_hieroglyphic .right4 { + position: relative; + right: -1.0em; +} +SPAN.inline_hieroglyphic .right5 { + position: relative; + right: -1.2em; +} +SPAN.inline_hieroglyphic .right6 { + position: relative; + right: -1.4em; +} +SPAN.inline_hieroglyphic .right7 { + position: relative; + right: -1.6em; +} +SPAN.inline_hieroglyphic .left1 { + position: relative; + left: -.4em; +} +SPAN.inline_hieroglyphic .left2 { + position: relative; + left: -.6em; +} +SPAN.inline_hieroglyphic .left3 { + position: relative; + left: -.8em; +} +SPAN.inline_hieroglyphic .left4 { + position: relative; + left: -1.0em; +} +SPAN.inline_hieroglyphic .left5 { + position: relative; + left: -1.2em; +} +SPAN.inline_hieroglyphic .left6 { + position: relative; + left: -1.4em; +} +SPAN.inline_hieroglyphic .left7 { + position: relative; + left: -1.6em; +} +SPAN.inline_hieroglyphic .left8 { + position: relative; + left: -1.8em; +} +SPAN.inline_hieroglyphic .left9 { + position: relative; + left: -2.0em; +} +SPAN.inline_hieroglyphic .left10 { + position: relative; + left: -2.2em; +} + +/* +The following "quadrat" forms have not yet been used anywhere: + */ +SPAN.inline_hieroglyphic .quadrat { + display: inline-block; + text-align: center; +} + +SPAN.inline_hieroglyphic .quadrat .top { + line-height: 0.5; + vertical-align: text-top; +} + +SPAN.inline_hieroglyphic .quadrat .bottom { + line-height: 0.5; + vertical-align: baseline; +} + + + +/* +Semi-workaround for hieroglyphic used for now only in +E/Gazetteer/Places/Africa/Egypt/_Topics/history/home.html + */ +.hiero2 { + color: #ff6600 ! important; /* matches .Coptic */ +} +.hiero2 .all { + vertical-align: 0em; +} +.hiero2 .mid { + vertical-align: +.2em; +} +.hiero2 .half1 { + line-height: 0.5; + vertical-align: +.65em; +} +.hiero2 .half2 { + line-height: 0.5; + vertical-align: 0em; + position: relative; +/* + left: -0.55em; + */ +} +.skitter1 { + left: -0.55em; +} +.skitter2 { + left: -1.1em; +} + +.skitter3 { + left: -5em; +} + +.asterisks { + color: #0066cc ! important; + text-align: center; + letter-spacing: .5em; +} + +TR.gazetteer { + background-color: #99ffcc ! important; +} + +SPAN.map_callout { + font-family: Verdana, sans-serif; + text-transform: none; + background-color: #3300ff ! important; + color: #ffffff ! important; +} + +SPAN.map_callout_red { + font-family: Verdana, sans-serif; + text-transform: none; + background-color: #ff0000 ! important; + color: #ffffff ! important; +} + +SPAN.small_map_callout { + font-size: 60%; + font-family: Verdana, sans-serif; + text-transform: none; + vertical-align: +.2em; + background-color: #3300ff ! important; + color: #ffffff ! important; +} + +SPAN.small_map_callout_red { + font-size: 60%; + font-family: Verdana, sans-serif; + text-transform: none; + vertical-align: +.2em; + background-color: #ff0000 ! important; + color: #ffffff ! important; +} + +A { + text-decoration: none; + -webkit-hyphens: none; + -ms-hyphens: none; + hyphens: none; +} + +.verse_speaker { + position: absolute; + top: auto; + margin-left: -8.5em; + margin-bottom: .1em; + margin-top: .1em; + height: 0em; + font-size: .8rem; + font-style: italic; + font-family: Verdana, Ariel, Helvetica, sans-serif; + text-align: right; +} + +.speaker { + position: absolute; + top: auto; + margin-left: -4em; + margin-bottom: .1em; + margin-top: .1em; + height: 0em; + width: 3em; + font-size: .8rem; + font-style: italic; + font-family: Verdana, Ariel, Helvetica, sans-serif; + text-align: right; +} + .m1 .speaker { + position: absolute; + top: auto; + margin-left: -5em; + } + +.obelus { + position: absolute; + top: auto; + margin-left: -3.7em; + margin-bottom: 0em; + margin-top: .1em; + height: 0em; + width: 3em; + font-size: .7rem; + font-family: Verdana, Ariel, Helvetica, sans-serif; + text-align: right; +} + +.box { + width: 60%; + margin-left: auto; + margin-right: auto; + border: 1px solid; + padding: 2em; +} + +/* "multiline" styles are for creating multi-line brackets, parens, integrals, etc. */ +.multiline2 { + position: relative; +} + .multiline2 .sub { + position: absolute; + left: 0em; + bottom: -.4em; +} + .multiline2 .sup { + position: absolute; + left: 0em; + bottom: +.4em; +} + +.multiline3 { + position: relative; +} + + .multiline3 .sub { + position: absolute; + left: 0em; + bottom: -1em; +} + + .multiline3 .sup { + position: absolute; + left: 0em; + bottom: +1em; +} + +.multiline4 { + position: relative; +} + + .multiline4 .sup1 { + position: absolute; + left: 0em; + bottom: +1.5em; +} + + .multiline4 .sup2 { + position: absolute; + left: 0em; + bottom: +.6em; +} + + .multiline4 .sub3 { + position: absolute; + left: 0em; + bottom: -.6em; +} + + .multiline4 .sub4 { + position: absolute; + left: 0em; + bottom: -1.5em; +} + +.translation_flag { + position: absolute; + top: auto; + } + +.line1 { + margin-top: 0em; + margin-bottom: 0em; + margin-left: 2em; + margin-right: 1em; + text-indent: -1em; +} + + .line1 .translation_flag { + margin-left: -4em; + } + +.line2 { + margin-top: 0em; + margin-bottom: 0em; + margin-left: 3em; + margin-right: 2em; + text-indent: -1em; +} + + .line2 .translation_flag { + margin-left: -5em; + } + + .line2 .linenum { + margin-left: -6.4em; +} + + .line2 .obelus { + margin-left: -5.2em; +} + +.line3 { + margin-top: 0em; + margin-bottom: 0em; + margin-left: 4em; + margin-right: 3em; + text-indent: -1em; +} + + .line3 .translation_flag { + margin-left: -6em; + } + + .line3 .linenum { + margin-left: -7.8em; +} + + .line3 .obelus { + margin-left: -6.2em; +} + +.line4 { + margin-top: 0em; + margin-bottom: 0em; + margin-left: 5em; + margin-right: 4em; + text-indent: -1em; +} + + .line4 .translation_flag { + margin-left: -7em; + } + + .line4 .linenum { + margin-left: -8.5em; +} + + .line4 .obelus { + margin-left: -7.2em; +} + +.line5 { + margin-top: 0em; + margin-bottom: 0em; + margin-left: 6em; + margin-right: 5em; + text-indent: -1em; +} + + .line5 .translation_flag { + margin-left: -8em; + } + + .line5 .linenum { + margin-left: -9.5em; +} + + .line5 .obelus { + margin-left: -8.2em; +} + +.line6 { + margin-top: 0em; + margin-bottom: 0em; + margin-left: 7em; + margin-right: 6em; + text-indent: -1em; +} + + .line6 .translation_flag { + margin-left: -9em; + } + + .line6 .linenum { + margin-left: -10.5em; +} + + .line6 .obelus { + margin-left: -9.2em; +} + +.line7 { + margin-top: 0em; + margin-bottom: 0em; + margin-left: 8em; + margin-right: 7em; + text-indent: -1em; +} + + .line7 .translation_flag { + margin-left: -10em; + } + + .line7 .linenum { + margin-left: -11.5em; +} + + .line7 .obelus { + margin-left: -10.2em; +} + +.line8 { + margin-top: 0em; + margin-bottom: 0em; + margin-left: 9em; + margin-right: 8em; + text-indent: -1em; +} + + .line8 .translation_flag { + margin-left: -11em; + } + + .line8 .linenum { + margin-left: -12.5em; +} + + .line8 .obelus { + margin-left: -11.2em; +} + +.line9 { + margin-top: 0em; + margin-bottom: 0em; + margin-left: 10em; + margin-right: 9em; + text-indent: -1em; +} + + .line9 .translation_flag { + margin-left: -12em; + } + + .line9 .linenum { + margin-left: -13.5em; +} + + .line9 .obelus { + margin-left: -12.2em; +} + +.line10 { + margin-top: 0em; + margin-bottom: 0em; + margin-left: 11em; + margin-right: 10em; + text-indent: -1em; +} + + .line10 .translation_flag { + margin-left: -13em; + } + + .line10 .linenum { + margin-left: -14.5em; +} + + .line10 .obelus { + margin-left: -13.2em; +} + +.startline1 { + margin-top: 1.5em; + margin-bottom: 0em; + margin-left: 2em; + margin-right: 1em; + text-indent: -1em; +} + + .startline1 .translation_flag { + margin-left: -4em; + } + +.startline2 { + margin-top: 1.5em; + margin-bottom: 0em; + margin-left: 3em; + margin-right: 2em; + text-indent: -1em; +} + + .startline2 .translation_flag { + margin-left: -5em; + } + + .startline2 .linenum { + margin-left: -6.5em; +} + + .startline2 .obelus { + margin-left: -5.2em; +} + +.alert { + background-color: #ffff66 ! important; + color: #ff0000 ! important; + font-style: italic; +} + .alert A:link { + font-weight: bold; + color: #0000ff ! important; + } + .alert A:visited { + font-weight: bold; + color: #0000ff ! important; + } + .alert A:hover { + font-weight: bold; + color: #0000ff ! important; + } + .alert A:active { + font-weight: bold; + color: #0000ff ! important; + } + +.apparatus { + font-style: italic; +} + + .apparatus I { + font-style: normal; + font-size: 90%; + } + + .apparatus .Latin { + font-style: normal; + font-size: 95%; + } + + .apparatus .Greek { + font-style: normal; + } + + .apparatus .manuscript { + font-style: normal; + } + +.attention { + color: #ff0000 ! important; + font-style: italic; +} + +.center { + text-align: center; +} + +.crux { + background-color: #ffff66 ! important; + color: #ff0000 ! important; + vertical-align: top; + font-size: 80%; + font-style: normal; +} + .crux A:link { + font-weight: bold; + color: #0000ff ! important; + } + .crux A:visited { + font-weight: bold; + color: #0000ff ! important; + } + .crux A:hover { + font-weight: bold; + color: #0000ff ! important; + } + .crux A:active { + font-weight: bold; + color: #0000ff ! important; + } + + +.disordered_section { + text-align: center; + font-size: 85%; + font-style: italic; + background-color: #ccffff ! important; +} + +/* +syntax: 12 + */ +.stacked_fraction { + display: inline-block; + text-align: center; + font-size: 40%; + padding-left: 4px; +} + +.stacked_fraction .top { + padding-left: 4px; + text-decoration: underline; +} + +.stacked_fraction .bottom { + padding-left: 4px; + line-height: 0.6; + display: block; +} + +/* +syntax: 1/2 + */ +.fraction { + font-size: 60%; + vertical-align: middle; +} + +.fraction .top { + vertical-align: 25%; +} + +.fraction .bottom { + vertical-align: -10%; +} + +.inscription { + font-family: Verdana, sans-serif; + font-size: 80%; + line-height: 1.875; /* normal line height of 1.5 × (100%/80%) */ + -webkit-hyphens: none; + -ms-hyphens: none; + hyphens: none; +} + + .inscription .superscript { + font-size: 50%; + vertical-align: top; + } + +.kaput { + color: #666666 ! important; +} + +.lapis { + font-family: Verdana, sans-serif; + font-size: 80%; + color: #990000 ! important; + line-height: 1.5; +} + + .lapis .superscript { + font-size: 50%; + vertical-align: top; + } + + .lapis .emend { + color: #ee6633 ! important; + } + +.ligature { + color: #006666 ! important; +} + +.manuscript { + color: #000066 ! important; + font-family: Arial, sans-serif; + font-style: normal; + font-weight: bold; + font-size: 75%; +} + +.notice { + color: #003300 ! important; +} + +.offlinks { + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-size: 112%; + font-weight: bold; +} + +.Old_English { + text-transform: none; + font-family: Canterbury, "Cloister Black", Cimbrian, Raubtier, Lancaster, Augusta, Rochester, PaladinFLF, "Kleukens-Fraktur", "Palatino Linotype", Palatino, "Arial Unicode Ms", "Titus Cyberbit Basic", "Lucida Sans Unicode", serif, sans-serif ! important; +} + +.override_link { + color: #99ffff ! important; +} + +.overstrike { + text-decoration: line-through; +} + +.Palatino10 { + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-size: 69%; +} + +.bypass { +/* +same color as: poor_reading + */ + color: #999999 ! important; +} + + .Greek .bypass { + color: #ddc085 ! important; + } + + .Latin .bypass { + color: #999999 ! important; + } + +.poor_reading { +/* +same color as: bypass + */ + color: #999999 ! important; + text-decoration: line-through; +} + + .Greek .poor_reading { + color: #ddc085 ! important; + } + + .Latin .poor_reading { + color: #999999 ! important; + } + +.Roman { + color: #ff40c5 ! important; +} + +.site_summary { + font-family: sans-serif; + font-weight: normal; + font-size: 56%; +} + +.source { + color: #006600 ! important; +} + + .source .emend { + color: #119955 ! important; + } + + .source .Italian { + color: #002200 ! important; + } + + .source .source { + color: #002200 ! important; + } + +.Spanish { + color: #778800 ! important; +} + + .Spanish .emend { + color: #119955 ! important; + } + + .Spanish .source { + color: #002200 ! important; + } + +.superheading { + margin-top: 5em; + font-weight: bold; + text-transform: uppercase; + color: #009900 ! important; +} + +.two_links { +/* +for format, see +E/Gazetteer/Places/America/United_States/_Topics/history/_Texts/LESUSC/Bibliography*.html + */ + background-color: #f5d6e9 !important; + border-radius: 10% !important; + padding-top: 3px !important; + padding-bottom: 1px !important; + padding-left: 5px !important; + padding-right: 5px !important; + display: inline; + overflow: hidden; + white-space: nowrap; + + color: #00ff00 !important; + font-size: .6rem !important; + vertical-align: 1px; +} + .two_links A:link { + font-weight: bold; + color: #0000ff ! important; + } + .two_links A:visited { + font-weight: bold; + color: #ff0000 ! important; + } + .two_links A:hover { + font-weight: bold; + color: #ff00ff ! important; + } + +.whole { + -webkit-hyphens: none; + -ms-hyphens: none; + hyphens: none; +} + +.xURL { + font-family: Monaco, Consolas; +} + +.disclaimer_bar { + margin-top: 0em; + margin-bottom: 0em; + font-family: Verdana, Ariel, Helvetica, sans-serif; + font-size: 60%; + text-align: center; + background-color: #000000 ! important; + color: #ffff33 ! important; +} + + .disclaimer_bar P { + margin-top: 0em; + margin-bottom: 0em; + } + +.help_bar { + margin-top: 0em; + margin-bottom: 0em; + font-family: Verdana, Ariel, Helvetica, sans-serif; + font-size: 60%; + text-align: center; + background-color: #478acc ! important; + color: #ffffff ! important; +} + + .help_bar P { + margin-bottom: 1.5em; + } + + .help_bar A:link { + color: #ffff00 ! important; + font-style: italic; + font-weight: bold; + } + + .help_bar A:visited { + color: #ff6600 ! important; + font-style: italic; + font-weight: bold; + } + + .help_bar I { + line-height: .6; + font-size: 120%; + font-style: normal; + font-weight: bold; + color: #ff99cc ! important; + } + + .help_bar .asterisk { + line-height: .7; + font-size: 140%; + font-style: normal; + font-weight: bold; + color: #ff99cc ! important; + vertical-align: bottom; + } + +.high_alert { + background-color: #ffff33 ! important; + color: #ff0000 ! important; +} + +.left { + text-align: left; +} + +.right { + text-align: right; +} + +.a0 { + margin-bottom: 0em; +} + +.a1 { + margin-bottom: 1em; +} + +.a2 { + margin-bottom: 5em; +} + +.reduced_leading { + margin-top: -.7em; +} + +/* Jun 2017: used only in HALAHS */ +.strip { + margin-bottom: .3em; +} + +.b0 { + margin-top: 0em; +} + +.b1 { + margin-top: 1em; +} + +.nudge { + margin-top: 0.25em; +} + +.halfstart { + margin-top: 1.5em; +} + +.minirubric { + margin-top: 1.85em; +} + +.start { + margin-top: 3em; +} + +.start2 { + margin-top: 5em; +} + +.start3 { + margin-top: 7em; +} + +.halfafter { + margin-bottom: 1.5em; +} + +.after { + margin-bottom: 3em; +} + +.after2 { + margin-bottom: 5em; +} + +.after3 { + margin-bottom: 7em; +} + +.drop5 { + margin-top: 5px; +} + +.critical_note { + text-align: justify; + font-style: italic; +} + + .critical_note I { + font-style: normal; /*(don't italicize)*/ + } + + .critical_note .Latin { + font-style: normal; + color: #990000 ! important; + } + + .critical_note .Greek { + font-style: normal; + } + + .critical_note .manuscript { + font-style: normal; + } + +A.left_margin_ref { + position: absolute; + top: auto; + left: +6em; + text-align: right; + font-family: Verdana, sans-serif; + font-style: normal; + font-size: .58rem; + font-weight: bold; + text-transform: none; + color: #0000ff ! important; + vertical-align: super; +} +A.left_margin_ref:link { + text-decoration: none; + color: #0077cc ! important; +} +A.left_margin_ref:visited { + text-decoration: none; + color: #ff0000 ! important; +} +A.left_margin_ref:hover { + text-decoration: none; + color: #ff0000 ! important; + background-color: #ffff00 ! important; +} + +.running_title { + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + position: absolute; + top: auto; + width: 90px; + left: +65px; + text-align: center; + font-style: normal; + font-weight: normal; + text-transform: none; + font-variant: normal; + font-size: 15px; + line-height: 1.2; +} + +.my_running_title { + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + position: absolute; + top: auto; + width: 90px; + left: +65px; + text-align: center; + font-size: .60rem; + font-style: italic; + font-weight: normal; + text-transform: none; + font-variant: normal; + line-height: 1.4; + +/* + color matches .emend + */ + +/* +Inside the style, open with a command-space in style "larger", like this: +  +which drops the title down for appearance + */ +} + +.scribal_heading { + margin-top: 3.5em; + margin-left: 3em; + text-indent: -3em; + text-align: justify; + font-size: 90%; + font-style: italic; +} + +.i1 { + text-indent: 1em; +} + +.i1 .running_title { + text-indent: 0; +} + +.i2 { + text-indent: 2em; +} + +.i3 { + text-indent: 3em; +} + +.i4 { + text-indent: 4em; +} + +.i5 { + text-indent: 5em; +} + +.i6 { + text-indent: 6em; +} + +.i7 { + text-indent: 7em; +} + +.i8 { + text-indent: 8em; +} + +.i9 { + text-indent: 9em; +} + +.i10 { + text-indent: 10em; +} + +.i11 { + text-indent: 11em; +} + +.i12 { + text-indent: 12em; +} + +.i13 { + text-indent: 13em; +} + +.i14 { + text-indent: 14em; +} + +.i15 { + text-indent: 15em; +} + +.i16 { + text-indent: 16em; +} + +.i17 { + text-indent: 17em; +} + +.i18 { + text-indent: 18em; +} + +.justify { + text-align: justify; +} + +.justified { + text-align: justify; +} + +.L1 { + margin-left: 1em; +} + +.L2 { + margin-left: 2em; +} + +.L3 { + margin-left: 3em; +} + +.L4 { + margin-left: 4em; +} + +.L5 { + margin-left: 5em; +} + +.L6 { + margin-left: 6em; +} + +.L7 { + margin-left: 7em; +} + +.L8 { + margin-left: 8em; +} + +.L9 { + margin-left: 9em; +} + +.L10 { + margin-left: 10em; +} + +.L11 { + margin-left: 11em; +} + +.L12 { + margin-left: 12em; +} + +.L13 { + margin-left: 13em; +} + +.L14 { + margin-left: 14em; +} + +.L15 { + margin-left: 15em; +} + +.L16 { + margin-left: 16em; +} + +.L17 { + margin-left: 17em; +} + +.L18 { + margin-left: 18em; +} + +.L19 { + margin-left: 19em; +} + +.L20 { + margin-left: 20em; +} + +.r1 { + margin-right: 1em; + text-align: right; +} + +.r2 { + margin-right: 2em; + text-align: right; +} + +.r3 { + margin-right: 3em; + text-align: right; +} + +.r4 { + margin-right: 4em; + text-align: right; +} + +.r5 { + margin-right: 5em; + text-align: right; +} + +.r6 { + margin-right: 6em; + text-align: right; +} + +.r7 { + margin-right: 7em; + text-align: right; +} + +.r8 { + margin-right: 8em; + text-align: right; +} + +.r9 { + margin-right: 9em; + text-align: right; +} + +.r10 { + margin-right: 10em; + text-align: right; +} + +.r11 { + margin-right: 11em; + text-align: right; +} + +.r12 { + margin-right: 12em; + text-align: right; +} + +.r13 { + margin-right: 13em; + text-align: right; +} + +.r14 { + margin-right: 14em; + text-align: right; +} + +.r15 { + margin-right: 15em; + text-align: right; +} + +.r16 { + margin-right: 16em; + text-align: right; +} + +.r17 { + margin-right: 17em; + text-align: right; +} + +.r18 { + margin-right: 18em; + text-align: right; +} + +.r19 { + margin-right: 19em; + text-align: right; +} + +.r20 { + margin-right: 20em; + text-align: right; +} + +.pushright1j { + margin-left: 1em; + text-align: justify; +} + +.pushright2j { + margin-left: 2em; + text-align: justify; +} + +.pushright3j { + margin-left: 3em; + text-align: justify; +} + +.pushright4j { + margin-left: 4em; + text-align: justify; +} + +.pushright5j { + margin-left: 5em; + text-align: justify; +} + +.pushright6j { + margin-left: 6em; + text-align: justify; +} + +.pushright7j { + margin-left: 7em; + text-align: justify; +} + +.pushright8j { + margin-left: 8em; + text-align: justify; +} + +.m1 { + margin-left: 1em; + margin-right: 1em; +} + +.b0m1j { +/* used for "b0 m1 justify" inside overLib boxes where quotes can't be used, as in the signatures of Britannica articles. +The other workaround is to use quotes, calling them " */ + margin-top: 0em; + margin-left: 1em; + margin-right: 1em; + text-align: justify; +} + +.m2 { + margin-left: 2em; + margin-right: 2em; +} + +.m3 { + margin-left: 3em; + margin-right: 3em; +} + +.m4 { + margin-left: 4em; + margin-right: 4em; +} + +.m5 { + margin-left: 5em; + margin-right: 5em; +} + +.m6 { + margin-left: 6em; + margin-right: 6em; +} + +.m7 { + margin-left: 7em; + margin-right: 7em; +} + +.m8 { + margin-left: 8em; + margin-right: 8em; +} + +.m9 { + margin-left: 9em; + margin-right: 9em; +} + +.m10 { + margin-left: 10em; + margin-right: 10em; +} + +.m11 { + margin-left: 11em; + margin-right: 11em; +} + +.m12 { + margin-left: 12em; + margin-right: 12em; +} + +.m13 { + margin-left: 13em; + margin-right: 13em; +} + +.m14 { + margin-left: 14em; + margin-right: 14em; +} + +.m15 { + margin-left: 15em; + margin-right: 15em; +} + +.m16 { + margin-left: 16em; + margin-right: 16em; +} + +.m17 { + margin-left: 17em; + margin-right: 17em; +} + +.m18 { + margin-left: 18em; + margin-right: 18em; +} + +.m19 { + margin-left: 19em; + margin-right: 19em; +} + +.m20 { + margin-left: 20em; + margin-right: 20em; +} + +.x1 { + margin-left: 1em; + text-indent: -1em; +} + +.x2 { + margin-left: 2em; + text-indent: -2em; +} + +.x3 { + margin-left: 3em; + text-indent: -3em; +} + +.x4 { + margin-left: 4em; + text-indent: -4em; +} + +.x5 { + margin-left: 5em; + text-indent: -5em; +} + +.x6 { + margin-left: 6em; + text-indent: -6em; +} + +.x7 { + margin-left: 7em; + text-indent: -7em; +} + +.x8 { + margin-left: 8em; + text-indent: -8em; +} + +.x9 { + margin-left: 9em; + text-indent: -9em; +} + +.x10 { + margin-left: 10em; + text-indent: -10em; +} + +.m1x1 { + margin-left: 2em; + margin-right: 1em; + text-indent: -1em; +} + +.m1x2 { + margin-left: 3em; + margin-right: 1em; + text-indent: -2em; +} + +.m1x3 { + margin-left: 4em; + margin-right: 1em; + text-indent: -3em; +} + +.m1x4 { + margin-left: 5em; + margin-right: 1em; + text-indent: -4em; +} + +.m1x5 { + margin-left: 6em; + margin-right: 1em; + text-indent: -5em; +} + +.m1x6 { + margin-left: 7em; + margin-right: 1em; + text-indent: -6em; +} + +.m1x7 { + margin-left: 8em; + margin-right: 1em; + text-indent: -7em; +} + +.m1x8 { + margin-left: 8em; + margin-right: 1em; + text-indent: -9em; +} + +.m2x1 { + margin-left: 3em; + margin-right: 2em; + text-indent: -1em; +} + +.m2x2 { + margin-left: 4em; + margin-right: 2em; + text-indent: -2em; +} + +.m2x3 { + margin-left: 5em; + margin-right: 2em; + text-indent: -3em; +} + +.m2x4 { + margin-left: 6em; + margin-right: 2em; + text-indent: -4em; +} + +.m3x1 { + margin-left: 4em; + margin-right: 2em; + text-indent: -1em; +} + +.m3x2 { + margin-left: 5em; + margin-right: 2em; + text-indent: -2em; +} + +.m3x3 { + margin-left: 6em; + margin-right: 2em; + text-indent: -3em; +} + +.m3x4 { + margin-left: 7em; + margin-right: 2em; + text-indent: -4em; +} + +.m4x1 { + margin-left: 5em; + margin-right: 2em; + text-indent: -1em; +} + +.m4x2 { + margin-left: 6em; + margin-right: 2em; + text-indent: -2em; +} + +.m4x3 { + margin-left: 7em; + margin-right: 2em; + text-indent: -3em; +} + +.m4x4 { + margin-left: 8em; + margin-right: 2em; + text-indent: -4em; +} + +.m5x1 { + margin-left: 6em; + margin-right: 2em; + text-indent: -1em; +} + +.m5x2 { + margin-left: 7em; + margin-right: 2em; + text-indent: -2em; +} + +.m5x3 { + margin-left: 8em; + margin-right: 2em; + text-indent: -3em; +} + +.m6x1 { + margin-left: 7em; + margin-right: 2em; + text-indent: -1em; +} + +.m6x2 { + margin-left: 8em; + margin-right: 2em; + text-indent: -2em; +} + +.m6x3 { + margin-left: 9em; + margin-right: 2em; + text-indent: -3em; +} + +.m7x1 { + margin-left: 8em; + margin-right: 2em; + text-indent: -1em; +} + +.m7x2 { + margin-left: 9em; + margin-right: 2em; + text-indent: -2em; +} + +.m7x3 { + margin-left: 10em; + margin-right: 2em; + text-indent: -3em; +} + +.m8x1 { + margin-left: 9em; + margin-right: 2em; + text-indent: -1em; +} + +.m8x2 { + margin-left: 10em; + margin-right: 2em; + text-indent: -2em; +} + +.m8x3 { + margin-left: 11em; + margin-right: 2em; + text-indent: -3em; +} + +.m9x1 { + margin-left: 10em; + margin-right: 2em; + text-indent: -1em; +} + +.m9x2 { + margin-left: 11em; + margin-right: 2em; + text-indent: -2em; +} + +.m9x3 { + margin-left: 12em; + margin-right: 2em; + text-indent: -3em; +} + +.m10x1 { + margin-left: 11em; + margin-right: 2em; + text-indent: -1em; +} + +.m10x2 { + margin-left: 12em; + margin-right: 2em; + text-indent: -2em; +} + +.m10x3 { + margin-left: 13em; + margin-right: 2em; + text-indent: -3em; +} + +.m11x1 { + margin-left: 12em; + margin-right: 2em; + text-indent: -1em; +} + +.m11x2 { + margin-left: 13em; + margin-right: 2em; + text-indent: -2em; +} + +.m11x3 { + margin-left: 14em; + margin-right: 2em; + text-indent: -3em; +} + +.m12x1 { + margin-left: 13em; + margin-right: 2em; + text-indent: -1em; +} + +.m12x2 { + margin-left: 14em; + margin-right: 2em; + text-indent: -2em; +} + +.m12x3 { + margin-left: 15em; + margin-right: 2em; + text-indent: -3em; +} + +.m13x1 { + margin-left: 14em; + margin-right: 2em; + text-indent: -1em; +} + +.m13x2 { + margin-left: 15em; + margin-right: 2em; + text-indent: -2em; +} + +.m13x3 { + margin-left: 16em; + margin-right: 2em; + text-indent: -3em; +} + +.m14x1 { + margin-left: 15em; + margin-right: 2em; + text-indent: -1em; +} + +.m14x2 { + margin-left: 16em; + margin-right: 2em; + text-indent: -2em; +} + +.m14x3 { + margin-left: 17em; + margin-right: 2em; + text-indent: -3em; +} + +.m15x1 { + margin-left: 16em; + margin-right: 2em; + text-indent: -1em; +} + +.m15x2 { + margin-left: 17em; + margin-right: 2em; + text-indent: -2em; +} + +.m15x3 { + margin-left: 18em; + margin-right: 2em; + text-indent: -3em; +} + +.linenum0 { + font-size: 70%; + font-family: Verdana, Ariel, Helvetica, sans-serif; +} + +.linenum { + position: absolute; + top: auto; + margin-left: -5em; + margin-bottom: 0em; + margin-top: .1em; + height: 0em; + width: 3em; + font-size: .70rem; + font-family: Verdana, Ariel, Helvetica, sans-serif; + text-align: right; +} + +.verse1 { + margin-top: 0em; + margin-bottom: 0em; + margin-left: 2em; + text-indent: -2em; +} + +.verse2 { + margin-top: 0em; + margin-bottom: 0em; + margin-left: 4em; + text-indent: -2em; +} + +.verse3 { + margin-top: 0em; + margin-bottom: 0em; + margin-left: 6em; + text-indent: -2em; +} + +.verse4 { + margin-top: 0em; + margin-bottom: 0em; + margin-left: 8em; + text-indent: -2em; +} + +.verse5 { + margin-top: 0em; + margin-bottom: 0em; + margin-left: 10em; + text-indent: -2em; +} + +.verse6 { + margin-top: 0em; + margin-bottom: 0em; + margin-left: 12em; + text-indent: -2em; +} + +.verse7 { + margin-top: 0em; + margin-bottom: 0em; + margin-left: 14em; + text-indent: -2em; +} + +.verse8 { + margin-top: 0em; + margin-bottom: 0em; + margin-left: 16em; + text-indent: -2em; +} + +.verse9 { + margin-top: 0em; + margin-bottom: 0em; + margin-left: 18em; + text-indent: -2em; +} + +.verse10 { + margin-top: 0em; + margin-bottom: 0em; + margin-left: 20em; + text-indent: -2em; +} + +.verse11 { + margin-top: 0em; + margin-bottom: 0em; + margin-left: 22em; + text-indent: -2em; +} + +.verse12 { + margin-top: 0em; + margin-bottom: 0em; + margin-left: 24em; + text-indent: -2em; +} + +.bland { + color: #000066 ! important; +} + + .mynote .bland { + color: #000066 ! important; + } + +.bland I { + color: #000066 ! important; +} + +.bland A I { + color: #ff0000 ! important; +} + +.blank { + border-bottom: 1px solid; + white-space:pre; +} + +.blank1 { + width: 20px; + height: 15px; + border-bottom: 1px solid; + white-space:pre; +} + +.blank2 { + width: 50px; + height: 15px; + border-bottom: 1px solid; + white-space:pre; +} + +.empty { + white-space:pre; +} + +.caps { + text-transform: uppercase; +} + +.lowcaps { + font-size: 85%; + text-transform: uppercase; +} + .prose .lowcaps { + word-spacing: 5px; + } + +.lowercase { + text-transform: lowercase; +} + +.no_transform { + text-transform: none; +} + +.telegram { + font-family: Verdana, sans-serif; + font-size: 80%; + line-height: 1.875; /* normal line-height (1.5) divided by font-size 80%: this keeps the line spacing even */ + text-transform: uppercase; +} + .telegram .outquote { + text-transform: none; + } + +.constrained { + line-height: 100%; +} + +.constrained110 { + line-height: 110%; +} + +.constrained90 { + line-height: 90%; +} + +.constrained80 { + line-height: 80%; +} + +.bold { + font-weight: bold; +} + +.italic { + font-style: italic; +} + + .italic I { + font-style: normal; + font-size: 90%; + } + +.normal { + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-size: 100%; + font-style: normal; + font-weight: normal; + text-transform: none; + font-variant: normal; +} + +.thin { + font-weight: normal; +} + +.usual { + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; +} + +.exergue { + margin-top: 6em; + margin-bottom: 3em; + margin-left: 200px; + font-size: 85%; + text-align: justify; +} + +.exergue_left { + margin-top: 6em; + margin-bottom: 3em; + margin-right: 300px; + font-size: 85%; + text-align: justify; +} + +.synopsis { + margin-top: -1.5em; + margin-bottom: 3em; + font-size: 85%; + font-style: italic; + text-align: justify; +} + +/* After the signature block, insert

: See +E/Gazetteer/People/Holden_Evans/Fight_for_a_Better_Navy/2/8*.html#signature_block_example + */ +.signature_block { + float: right; +/* + margin-right: 0px; + */ +} + +.no_float { + clear: both; +} + +.signature_nonce { /* used on only 2 pages */ + position: absolute; + width: 20em; + right: +7em; +} + +/*the "pagenum" styles are linked to the style "poppy"*/ +.pagenum { + position: absolute; +/* +It is positioned relative to the ancestor block, so for style "verse/exquotemark" it requires "PAGENUM WORKAROUND", below. +*/ + top: auto; + right: +1.5em; + width: 70px; + text-align: right; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-style: normal; + font-weight: normal; + text-transform: none; + font-variant: normal; + letter-spacing: normal; + font-size: small; + color: #ff3300 ! important; +} + + .pagenum .Latin { + color: #990000 ! important; + } + + +/* +"pagenum_right" is identical with "pagenum"; Cullum's "pagenum" defaults to LEFT +*/ +.pagenum_right { + position: absolute; + top: auto; + right: +1.5em; + text-align: right; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-style: normal; + font-weight: normal; + text-transform: none; + font-variant: normal; + font-size: small; + color: #ff3300 ! important; +} + +.pagenum_left { + position: absolute; + top: auto; + left: +4.5em; + text-align: left; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-style: normal; + font-weight: normal; + text-transform: none; + font-variant: normal; + font-size: small; + color: #ff3300 ! important; +} + +.i1 .pagenum_left { + left: +3.5em; +} + +.pagenum1 { + position: absolute; + top: auto; + right: +1.5em; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-style: italic; + font-weight: normal; + text-transform: none; + font-variant: normal; + font-size: small; + color: #ff3300 ! important; +} + +.pagenumPassed { + position: absolute; + top: auto; + right: +1.5em; + width: 70px; + text-align: right; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-style: normal; + font-weight: normal; + text-transform: none; + font-variant: normal; + font-size: .75rem; + color: #ff3300 ! important; +} + +/*the color of "poppy" style should be the same as that of the main "pagenum" styles*/ +.poppy { + color: #ff3300 ! important; +} + +.pagenum_doc { + position: absolute; + top: auto; + left: +1.5em; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-style: italic; + font-weight: normal; + text-transform: none; + font-variant: normal; + font-size: .81rem; + color: #ff6666 ! important; +} + +.blankpage { + position: absolute; + top: auto; + right: +1.5em; + width: 120px; + text-align: right; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-size: 60%; + font-style: normal; + font-weight: normal; + text-transform: none; + font-variant: normal; + letter-spacing: normal; + font-size: small; + color: #ff3300 ! important; +} + +.versenum { + position: absolute; + top: auto; + right: 25%; + text-align: right; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-style: normal; + font-variant: normal; + font-size: .70rem; + text-transform: none; + font-weight: normal; + letter-spacing: normal; + color: #bf0000 ! important; +} + +.sourceverse { + line-height: 1.5; + margin-left: 2em; + margin-right: 2em; +} + +.sourceverse P { + margin-top: 0em; + margin-bottom: 0em; + margin-left: 3em; + margin-right: 3em; + text-indent: -3em; +} + +.sourceverse P.i1 { + margin-left: 4em; +} + +.question { + margin-top: 2em; + text-align: justify; + font-style: italic; +} + +.answer { + text-align: justify; + margin-left: 3em; +} + +.searchand { + color: #006600 ! important; + font-weight: bold; +} + +.searchandGreek { + font-family: "Lucida Grande", "Palatino Linotype", "Arial Unicode Ms", "Titus Cyberbit Basic", "Lucida Sans Unicode", sans-serif ! important; + color: #996600 ! important; + font-weight: bold; +} + +.searchandLatin { + color: #990000 ! important; + font-weight: bold; +} + +.citation { + font-family: Verdana, sans-serif; + font-size: 75%; + font-variant: normal; +} + +.editor { + color: #000066 ! important; + font-family: Arial, sans-serif; + font-style: normal; + font-weight: bold; + font-size: 75%; + font-variant: small-caps; +} + +.editor_comment { + color: #000066 ! important; + font-family: Arial, sans-serif; + font-style: italic; +} + +.error { + color: #ff0000 ! important; + font-weight: bold; +} + +.entry { + font-weight: bold; + font-variant: small-caps; +} + +P.excerptor { + margin-top:-1.3em; + margin-bottom:2em; + text-align: right; + font-size: 75%; +} + +/* keep LVHA order: */ +/* A:link, A:visited, A:hover, A:active */ +A.fort:link { + color: #5555cc !important; + border-bottom: dotted #ffff99; +} + +A.fort:visited { + color: #CC4400 !important; + border-bottom: dotted #edddcc; +} + .mynote A.fort:visited { + color: #990000 ! important; + border-bottom: dotted #990000; + } + .mynoteWide A.fort:visited { + color: #990000 ! important; + border-bottom: dotted #990000; + } + +A.fort:hover { + color: #edddcc !important; + border-bottom: dotted #edddcc; +} + .mynote A.fort:hover { + color: #edddcc ! important; + border-bottom: dotted #edddcc; + } + .mynoteWide A.fort:hover { + color: #edddcc ! important; + border-bottom: dotted #edddcc; + } + +A.fort:active { + color: #edddcc !important; + border-bottom: dotted #edddcc; +} + .mynote A.fort:active { + color: #edddcc ! important; + border-bottom: dotted #edddcc; + } + .mynoteWide A.fort:active { + color: #edddcc ! important; + border-bottom: dotted #edddcc; + } + +.Greek_entry { + font-family: "Avdira", "Titus Cyberbit Basic", serif ! important; + font-weight: bold; +} + +.entry0 { +/* used only in NEW */ + text-align: justify; + font-size: 120%; + font-weight: bold; +} + + .entry0 .start { +/* THIS DOESN'T WORK. "start" only works because the style is defined elsewhere, as I can see if I rename it. Renaming "entry0" to something without the terminal number doesn't help. The CSS checked out at W3C. + + THIS IS WHY I HAVE THE STYLE "entry00", which does work. +*/ + color: #339900 ! important; + margin-top: 3em; + } + +.entry00 { +/* used only in NEW */ + text-align: justify; + font-size: 120%; + font-weight: bold; + color: #339900 ! important; + margin-top: 3em; +} + .entry00 A { + color: #00FF00 ! important; /* THIS DOESN'T WORK. */ + } + +.entry1 { + color: #cc6633 ! important; + font-weight: bold; + font-family: Verdana, Ariel, Helvetica, sans-serif; +} + +.goof { + color: #ff0000 ! important; + font-weight: bold; +} + +.nocaps { + font-variant: normal; +} + +.railroad_symbol { + color: #990000 ! important; + font-family: Arial, sans-serif; + font-style: normal; + font-weight: bold; +} + +.smallcaps { + font-variant: small-caps; +} + +.larger .smallcaps { + font-variant: normal; + text-transform: uppercase; +} + +.prose .smallcaps { + font-family: Fontin_Sans_SC, sans-serif; + letter-spacing: .06em; +/* FOR DEBUG, TOGGLE THE NEXT LINE ON/OFF: */ + +/* color: #ff6600 ! important; */ +} + +/* used rather little so far: see for example +E/Gazetteer/Places/Europe/Italy/Umbria/Terni/Acquasparta/Acquasparta/home.html*/ +.gazetteer_link { + font-variant: small-caps; +} + +.WebRef { + font-family: Verdana, sans-serif; + font-size: 90%; + color: #ff6600 ! important; +} + +/* keep LVHA order: */ +/* A:link, A:visited, A:hover, A:active */ +A:link { + color: #0000ff ! important; +} +/* + A:link I { + color: #0000ff ! important; + } + */ + + A:link IMG { + border-width: 1px; + } + +A:visited { + color: #cc0000 ! important; +} + +A:hover { + color: #ff00ff ! important; +} + +A:active { + color: #ff00ff ! important; +} + +A:link IMG.alias0 { + border-width: 1px; + border-style: dotted; + width: 279px; + height: 186px; + margin: 5px; +} + +A:link IMG.alias1 { + border-width: 1px; + border-style: solid; + width: 279px; + height: 186px; + margin: 5px; +} + +A:link IMG.alias2 { + border-width: 2px; + border-style: solid; + width: 279px; + height: 186px; + margin: 4px; +} + +A:link IMG.alias4 { + border-width: 4px; + border-style: solid; + width: 279px; + height: 186px; + margin: 2px; +} + +A:link IMG.icon0 { + border-width: 1px; + border-style: dotted; + width: 132px; + height: 88px; + margin-top: 10px; + margin-bottom: 5px; + margin-left: 5px; + margin-right: 5px; +} + +A:link IMG.icon1 { + border-width: 1px; + border-style: solid; + width: 132px; + height: 88px; + margin-top: 10px; + margin-bottom: 5px; + margin-left: 5px; + margin-right: 5px; +} + +A:link IMG.icon2 { + border-width: 2px; + border-style: solid; + width: 132px; + height: 88px; + margin-top: 11px; + margin-bottom: 4px; + margin-left: 4px; + margin-right: 4px; +} + +A:link IMG.icon4 { + border-width: 4px; + border-style: solid; + width: 132px; + height: 88px; + margin-top: 13px; + margin-bottom: 2px; + margin-left: 2px; + margin-right: 2px; +} + +A:link IMG.rubric0 { + border-width: 1px; + border-style: dotted; + width: 132px; + height: 88px; + margin-left: 15px; + margin-right: 15px; +} + +A:link IMG.rubric1 { + border-width: 1px; + border-style: solid; + width: 132px; + height: 88px; + margin-left: 15px; + margin-right: 15px; +} + +A:link IMG.rubric2 { + border-width: 2px; + border-style: solid; + width: 132px; + height: 88px; + margin-left: 14px; + margin-right: 14px; +} + +A:link IMG.rubric4 { + border-width: 4px; + border-style: solid; + width: 132px; + height: 88px; + margin-left: 12px; + margin-right: 12px; +} + +A:link IMG.minirubric1 { + border-width: 1px; + border-style: solid; + width: 60px; + height: 40px; + margin-left: 87px; + margin-right: 15px; +} + +A:link IMG.minirubric2 { + border-width: 2px; + border-style: solid; + width: 60px; + height: 40px; + margin-left: 86px; + margin-right: 14px; +} + +A:link IMG.minirubric4 { + border-width: 4px; + border-style: solid; + width: 60px; + height: 40px; + margin-left: 84px; + margin-right: 12px; +} + +A:link IMG.thumb0 { + border-width: 1px; + border-style: dotted; + width: 60px; + height: 40px; + margin-top: 5px; + margin-bottom: 5px; +} + +A:link IMG.thumb1 { + border-width: 1px; + border-style: solid; + width: 60px; + height: 40px; + margin-top: 5px; + margin-bottom: 5px; +} + +A:link IMG.thumb2 { + border-width: 2px; + border-style: solid; + width: 60px; + height: 40px; + margin-top: 4px; + margin-bottom: 4px; +} + +A:link IMG.thumb4 { + border-width: 4px; + border-style: solid; + width: 60px; + height: 40px; + margin-top: 2px; + margin-bottom: 2px; +} + +A.help:hover { + text-decoration: none; + color: #0000ff ! important; + cursor: help; +} + +.added_link { + font-size: 80%; + font-weight: bold; + text-decoration: none; + font-style: italic; + color: #666666 ! important; +} + + .added_link A:link { + color: #5555ff ! important; + } + +A.added_link { + color: #ff6666 ! important; +} + +A.added_link:link { + color: #5555ff ! important; +} + + A .manuscript { + color: #0000ff ! important; +} + + A:hover .manuscript { + color: #ff00ff ! important; +} + +BODY.default A.Cullum { + color: #998500 ! important; + background-color: transparent ! important; /*must match BODY*/ +} + +A.Cullum { + color: #ffdd00 ! important; + background-color: transparent ! important; /*must match BODY*/ + -webkit-hyphens: none; + -ms-hyphens: none; + hyphens: none; /* their names are not to be hyphenated */ +} + + A.Cullum .normal { + color: #0000ff ! important; +} + A.Cullum .emend { + color: #fff199 ! important; +} + A.Cullum .keep { + display: inline; + white-space: nowrap; +} + +A.discreet { + color: #5555cc ! important; +} + + A.discreet:visited { + text-decoration: none; + color: #cc5555 ! important; + } + + A.discreet:hover { + text-decoration: none; + color: #cc55cc ! important; + } + +A:link SPAN.discreet { + color: #7777cc ! important; +} + +A:visited SPAN.discreet { + text-decoration: none; + color: #cc7777 ! important; +} + +A:hover SPAN.discreet { + text-decoration: none; + color: #cc77cc ! important; +} + +A.quiet { + color: inherit ! important; +} + +A.quiet:hover { + text-decoration: none; + color: #0077cc ! important; + background-color: #ffff00 ! important; +} + +.offsite_link { + text-decoration: none; + font-style: italic; + color: #0000ff ! important; +} + +A.offsite_link { + font-weight: bold; + text-decoration: none; + font-style: italic; + color: #0000ff ! important; +} + +A.offsite_link:link { + color: #0000ff ! important; +} + +A.sec { + font-family: "Palatino Linotype", Palatino, "Arial Unicode Ms", "Titus Cyberbit Basic", "Lucida Sans Unicode", serif ! important; + font-size: 70%; + text-transform: none; + font-weight: normal; + color: #bf0000 ! important; + vertical-align: 10%; +} + +A.sec_for_proofing { + font-family: "Palatino Linotype", Palatino, "Arial Unicode Ms", "Titus Cyberbit Basic", "Lucida Sans Unicode", serif ! important; + font-size: 200%; + text-transform: none; + font-weight: normal; + color: #00aa00 ! important; + vertical-align: 10%; +} + +A/* keep the space that follows*/ .Latin { + color: #0066cc ! important; +} + +A:hover/* keep the space that follows*/ .Latin { + color: #ff00ff ! important; +} + +A/* keep the space that follows*/ .Greek { + color: #0066cc ! important; +} + +A:hover/* keep the space that follows*/ .Greek { + color: #ff00ff ! important; +} + +A.chapter { + font-size: 1.3em; + color: #bf0000 ! important; + text-decoration: none; + font-style: normal; + line-height: .5; +} + +A.GridRef:link { + font-family: Verdana, sans-serif; + color: #ff6600 ! important; +} + +A.GridRef:visited { + font-family: Verdana, sans-serif; + color: #cc0000 ! important; +} + +A.GridRef:hover { + font-family: Verdana, sans-serif; + color: #ff00ff ! important; +} + +A.GridRef:active { + font-family: Verdana, sans-serif; + color: #ff00ff ! important; +} + +A.Britannica_signature { + cursor: crosshair; + font-weight: normal; + color: #0000ff ! important; + vertical-align: top; +} + + A.Britannica_signature:link { + text-decoration: none; + color: #0000ff ! important; + } + +A.comment { + cursor: crosshair; + font-family: Verdana, sans-serif; + font-size: 53%; + font-style: normal; + font-weight: normal; + color: #0000ff ! important; + vertical-align: top; +} + + A.comment:link { + text-decoration: none; + color: #0000ff ! important; + } + + A.comment .center { + margin-top: 0em; + margin-bottom: 0em; + } + + A.comment SPAN.source { + font-weight: bold; + color: #006600! important; + } + +SPAN.promptsource { + font-weight: bold; + color: #009900 ! important; +} + +.correction { + cursor: crosshair; + font-family: Verdana, sans-serif; + font-size: 53%; + font-style: normal; + font-weight: normal; + color: #ff0000 ! important; + vertical-align: top; +} + + A.correction:link { + text-decoration: none; + color: #ff0000 ! important; + } + +SPAN.conversion { + color: #0099ff ! important; +} + +.white A.conversion { + color: #00ccff ! important; + vertical-align: super; + line-height: .3; +} + +.white .outquote { + color: #8533ad ! important; +} + +A.conversion { + cursor: crosshair; + font-family: Verdana, sans-serif; + font-size: 100%; + font-weight: normal; + color: #0099ff ! important; + vertical-align: super; + line-height: .3; +} + + A.conversion:link { + text-decoration: none; + color: #0099ff ! important; + } + +A.glossary { + cursor: crosshair; + font-family: Verdana, sans-serif; + font-size: 100%; + font-weight: normal; + color: #ff3366 ! important; + vertical-align: super; + line-height: .3; +} + +A.glossary:link { + text-decoration: none; + color: #ff3366 ! important; +} + +A.offpage { + font-size: 100%; + font-weight: normal; + color: #009900 ! important; + vertical-align: super; + line-height: .3; +} + +A.offpage:link { + text-decoration: none; + color: #009900 ! important; +} + +A.note { + font-family: Verdana, sans-serif; + font-style: normal; + font-size: 58%; + font-weight: bold; + text-transform: none; + color: #0000ff ! important; + vertical-align: super; +} +A.note:link { + text-decoration: none; + color: #0077cc ! important; +} +A.note:visited { + text-decoration: none; + color: #ff0000 ! important; +} +A.note:hover { + font-size: 81%; + text-decoration: none; + color: #ff0000 ! important; + background-color: #ffff00 ! important; +} + + A.note .Greek { + font-family: "Avdira", "Titus Cyberbit Basic", serif ! important; + color: #ff0000 ! important; + } + +A.guest_note { + font-family: "Avdira", "Titus Cyberbit Basic", serif ! important; + font-style: normal; + font-size: 58%; + font-weight: bold; + text-transform: none; + color: #0000ff ! important; + vertical-align: super; +} +A.guest_note:link { + text-decoration: none; + color: #0077cc ! important; +} +A.guest_note:visited { + text-decoration: none; + color: #ff0000 ! important; +} +A.guest_note:hover { + font-size: 81%; + text-decoration: none; + color: #ff0000 ! important; + background-color: #ffff00 ! important; +} + +A.note_for_proofing { + font-family: Verdana, sans-serif; + font-style: normal; + font-size: 200%; + font-weight: bold; + text-transform: none; + color: #0000ff ! important; + vertical-align: super; +} + +A.note_for_proofing:hover { + font-family: Verdana, sans-serif; + font-style: normal; + font-size: 200%; + font-weight: bold; + text-transform: none; + color: #ff0000 ! important; + background-color: #ffff00 ! important; + vertical-align: super; +} + +A.note_for_proofing:visited { + text-decoration: none; + color: #ff0000 ! important; +} + +.paragraph_summary { + position: absolute; + top: auto; + text-align: right; + left: +10px; + width: 70px; + font-family: "Palatino Linotype", Palatino, "Arial Unicode Ms", "Titus Cyberbit Basic", "Lucida Sans Unicode", serif ! important; + font-size: .60rem; + text-transform: none; + font-weight: normal; + color: #660000 ! important; +} + +A.ref { + font-family: Verdana, sans-serif; + font-style: normal; + font-size: 58%; + font-weight: bold; + font-variant: normal; + padding: .2em; + text-transform: none; + color: #0000ff ! important; + vertical-align: super; +} +A.ref:link { + text-decoration: none; + color: #0077cc ! important; +} +A.ref:visited { + text-decoration: none; + color: #ff0000 ! important; +} +A.ref:hover { + text-decoration: none; + color: #ff0000 ! important; + background-color: #ffff00 ! important; +} + + A.ref .Greek { + font-family: "Avdira", "Titus Cyberbit Basic", serif ! important; + color: #ff0000 ! important; + } + +H1 H2 H3 A.ref { + font-size: 75%; +} + +H3.apparatus { + margin-top: 2em; + margin-bottom: 1em; + font-weight: normal; + font-style: italic; + /* font-size: 70%; DOESN'T SEEM TO WORK? */ +} + +A.ref_for_proofing { + font-family: Verdana, sans-serif; + font-style: normal; + font-size: 200%; + font-weight: bold; + text-transform: none; + color: #0000ff ! important; + vertical-align: super; +} + +A.ref_for_proofing:hover { + font-family: Verdana, sans-serif; + font-style: normal; + font-size: 200%; + font-weight: bold; + text-transform: none; + color: #ff0000 ! important; + background-color: #ffff00 ! important; + vertical-align: super; +} +A.ref_for_proofing:visited { + text-decoration: none; + color: #ff0000 ! important; +} + +A.ref1 { + font-family: Verdana, sans-serif; + font-style: normal; + font-size: 58%; + font-weight: bold; + text-transform: none; + color: #0099ff ! important; + vertical-align: super; +} + +A.ref_in_text { + font-family: Verdana, sans-serif; + font-style: italic; + font-size: 62%; + font-weight: bold; + text-transform: none; + color: #5555ff ! important; +} + +A.ref_in_text:link { + text-decoration: none; + color: #5555ff ! important; +} + +A.ref_in_text:visited { + text-decoration: none; + color: #ff0000 ! important; +} + +A.ref_in_text:hover { + text-decoration: none; + color: #0077cc ! important; + background-color: #ffff00 ! important; +} + +A.guest_ref { + font-family: "Avdira", "Titus Cyberbit Basic", serif ! important; + font-style: normal; + font-size: 58%; + font-weight: bold; + font-variant: normal; + padding: .2em; + text-transform: none; + color: #0000ff ! important; + vertical-align: super; +} +A.guest_ref:link { + text-decoration: none; + color: #0077cc ! important; +} +A.guest_ref:visited { + text-decoration: none; + color: #ff0000 ! important; +} +A.guest_ref:hover { + text-decoration: none; + color: #ff0000 ! important; + background-color: #ffff00 ! important; +} + +.inline_note { + font-style: italic; + color: #cc0000 ! important; + font-family: Verdana, sans-serif; + font-size: 90%; +} + +INS.slip { + cursor: crosshair; + text-decoration: none; + border-bottom: dotted green; + border-bottom-width: thin; +} +/* +INS.slip1 { + cursor: URL(https://penelope.uchicago.edu/Thayer/Images/Utility/Cursors/arrowleft3.png), auto; + text-decoration: none; + border-bottom: dotted green; + border-bottom-width: thin; +} + */ + +INS.divergence { + cursor: crosshair; + text-decoration: none; + border-bottom: dotted red; + border-bottom-width: medium; +} + +.TextHas { + color: #009900 ! important; + font-weight: bold; +} + +SPAN.ref { + font-family: Verdana, sans-serif; + text-transform: none; + color: #000066 ! important; + font-weight: bold; + font-size: 58%; + vertical-align: super; +} + +SPAN.ref_for_proofing { + font-family: Verdana, sans-serif; + text-transform: none; + font-weight: bold; + font-size: 200%; + vertical-align: super; +} + +/* +The purpose of the following styles (quotemark, exquotemark) is to put the initial quotation mark outside the centered quote (verse). The CSS standards explicitly state that the following box is calculated as though the preceding box were not offset + (https://www.w3.org/TR/REC-CSS2/visuren.html#propdef-position) +thus requiring the "exquotemark" workaround. + +PAGENUM WORKAROUND: +To get pagenums to insert correctly at a line in the middle of a poem, follow this format: +

 p585  +

+ +To get pagenums to insert correctly at the beginning of a poem that starts a page, follow the same format (but if "start" is needed, "start" goes in BOTH

declarations), as for example: +

 p383  +

+ +Sometimes this latter workaround doesn't seem to work, either, as in p156 and p158 of +▸ E/Gazetteer/Places/America/United_States/Navy/_Texts/MERLIF/30*.html#Lament +where I substitute another method, not altogether satisfactorily. + +*/ +.quotemark { + position: relative; + left: -.1em; + text-transform: none; + font-weight: normal; +} + +P.exquotemark { + position: relative; + left:.2em; + text-transform: none; + font-weight: normal; +} + +.verse .quoted P { + position: relative; + left: .2em; + text-transform: none; + font-weight: normal; +} + +.verse .quoted P.first { + position: relative; + left: 0em; + text-transform: none; + font-weight: normal; +} + + +/* +.verse A.sec { + position: absolute; + top: auto; + left: +12.5em; + text-align: left; +} + */ + +A.subsec { + font-size: 70%; + font-weight: normal; + font-style: normal; + text-transform: uppercase; + color: #bf0000 ! important; + vertical-align: 20%; +} + +/*The following 2 are completely synonymous, for convenience:*/ +.underscore { + text-decoration: underline; +} +.underline { + text-decoration: underline; +} + +A.Tsec { + position: absolute; + top: auto; + left: +2em; + text-align: right; + font-family: Courier, serif ! important; + font-size: .70rem; + text-transform: uppercase; + font-style: normal; + font-weight: normal; + font-variant: normal; + color: #006600 ! important; +} + +TABLE.verse A.Tsec { + position: absolute; + top: auto; + left: +3.8em; /* basic margin + 1.8 */ + text-align: right; + font-family: Courier, serif ! important; + font-size: .70rem; + text-transform: uppercase; + font-style: normal; + font-weight: normal; + font-variant: normal; + color: #006600 ! important; +} + +A.Tsubsec { + position: absolute; + top: auto; + left: +3.85em; + font-family: Courier, serif ! important; + font-size: .70rem; + text-transform: uppercase; + font-style: normal; + font-weight: normal; + font-variant: normal; + color: #006600 ! important; +} + +A.Tsubsec_correction { + position: absolute; + top: auto; + left: +5.8em; + font-family: Verdana, sans-serif; + font-size: .53rem; + font-weight: normal; + font-style: normal; + color: #ff0000 ! important; + vertical-align: top; +} + + A.correction:link { + text-decoration: none; + color: #ff0000 ! important; + } + +/* used at first only in E/Roman/Texts/secondary/journals/TAPA/43/The_Ferentinum_of_Horace*.html +It must be used OUTSIDE any */ +.citation_left { + position: absolute; + top: auto; + left: +7.5em; + font-size: .70rem; + font-weight: normal; + font-style: normal; + color: #000066 ! important; +} + +TABLE.verse A.Tsubsec { + left: +8.85em; /* basic margin +5.0 */ +} + +P.stars { + margin-top: 1.5em; + font-size: 140%; + letter-spacing: 1.0em; + text-align: center; +} + +P.topstars { + text-align: center; + margin-top: 1.5em; + margin-bottom: 0em; +} + +P.bottomstars { + text-align: center; + margin-top: -1em; +} + +P.verse A.Tsubsec { + left: +7.4em; /* basic margin +3.3 */ +} + +P.verse1 A.Tsubsec { + left: +3.85em; /* basic margin +3.3 -2+2+ adjustment 3.9 */ +} + +P.verse2 A.Tsubsec { + left: +1.65em; /* basic margin +3.3 -4+2 */ +} + +P.verse3 A.Tsubsec { + left: -0.7em; /* basic margin +3.3 -6+2 */ +} + +P.verse4 A.Tsubsec { + left: -2.95em; /* basic margin +3.3 -8+2 */ +} + +P.verse5 A.Tsubsec { + left: -5.2em; /* basic margin +3.3 -10+2 */ +} + +P.verse6 A.Tsubsec { + left: -7.5em; /* basic margin +3.3 -12+2 */ +} + +P.verse7 A.Tsubsec { + left: -9.75em; /* basic margin +3.3 -14+2 */ +} + +P.verse8 A.Tsubsec { + left: -12em; /* basic margin +3.3 -14+2 */ +} + +A.Latin { + color: #cc6633 ! important; +} + +A.entry1 { + color: #3366ff ! important; + font-variant: normal; + font-weight: bold; + font-size: 90%; + font-family: Verdana, Ariel, Helvetica, sans-serif; +} + +DIV.further { + position: absolute; + top: auto; + font-size: .50rem; /* necessary to produce correct right margin*/ + right: +4em; +} + +DIV.default { + color: #000066 ! important; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; +} + +DIV.default1 { /* has now been replaced thruout by DIV.spacious */ + margin-left: 5em; + margin-right: 5em; + color: #000066 ! important; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; +} + +DIV.alert { /* mynote with background-color and color changed */ + background-color: #ffff66 ! important; + text-align: justify; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-size: 85%; + color: #ff0000 ! important; + margin-top: 1.6em; + margin-left: 100px; + margin-right: 100px; + padding-top: 0.4em; + padding-bottom: 0.4em; + padding-left: 1.3em; + padding-right: 1.3em; + border-style: double +} + +DIV.alert400 { /* mynoteNarrow with background-color and color changed */ + background-color: #ffff66 ! important; + text-align: justify; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-size: 85%; + color: #ff0000 ! important; + margin-top: 1.6em; + margin-bottom: 1.6em; + width: 400px; + margin-left: auto; + margin-right: auto; + padding-top: 0.4em; + padding-bottom: 0.4em; + padding-left: 1.3em; + padding-right: 1.3em; + border-style: double +} + +DIV.alert600 { +/* +mynote with background-color and color changed, +WIDTH matches TABLE.headerbox +*/ + background-color: #ffff66 ! important; + text-align: justify; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-size: 85%; + color: #ff0000 ! important; + font-style: italic; + margin-top: 10em; + margin-bottom: 1.6em; + width: 600px; + margin-left: auto; + margin-right: auto; + padding-top: 0.4em; + padding-bottom: 0.4em; + padding-left: 1.3em; + padding-right: 1.3em; + border-style: double +} + +DIV.slimBox { + background-color: #ccffff ! important; + text-align: justify; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-size: 85%; + color: #000066 ! important; +/* + margin-top: 1.6em; + */ + margin-left: 100px; + margin-right: 100px; +/* + padding-top: 0.4em; + padding-bottom: 0.4em; + */ + padding-left: 1.3em; + padding-right: 1.3em; + border-style: double +} + + .slimBox A:link { + color: #0000ff ! important; + } + .slimBox A:visited { + color: #ff0000 ! important; + } + .slimBox A:hover { + color: #ff00ff ! important; + } + .slimBox A:active { + color: #ff00ff ! important; + } + .slimBox P { + margin-bottom: 0em; + margin-top: 0em; + } + +DIV.mynote { + background-color: #ccffff ! important; + text-align: justify; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-size: 85%; + color: #000066 ! important; + margin-top: 1.6em; + margin-left: 100px; + margin-right: 100px; + padding-top: 0.4em; + padding-bottom: 0.4em; + padding-left: 1.3em; + padding-right: 1.3em; + border-style: double +} + + .mynote A:link { + font-weight: bold; + color: #0000ff ! important; + } + .mynote A:visited { + font-weight: bold; + color: #ff0000 ! important; + } + .mynote A:hover { + font-weight: bold; + color: #ff00ff ! important; + } + .mynote A:active { + font-weight: bold; + color: #ff00ff ! important; + } + .mynoteWide A:link { + font-weight: bold; + color: #0000ff ! important; + } + .mynoteWide A:visited { + font-weight: bold; + color: #ff0000 ! important; + } + .mynoteWide A:hover { + font-weight: bold; + color: #ff00ff ! important; + } + .mynoteWide A:active { + font-weight: bold; + color: #ff00ff ! important; + } + .mynoteNarrow A:link { + font-weight: bold; + color: #0000ff ! important; + } + .mynoteNarrow A:visited { + font-weight: bold; + color: #ff0000 ! important; + } + .mynoteNarrow A:hover { + font-weight: bold; + color: #ff00ff ! important; + } + .mynoteNarrow A:active { + font-weight: bold; + color: #ff00ff ! important; + } + .mynoteNarrowest A:link { + font-weight: bold; + color: #0000ff ! important; + } + .mynoteNarrowest A:visited { + font-weight: bold; + color: #ff0000 ! important; + } + .mynoteNarrowest A:hover { + font-weight: bold; + color: #ff00ff ! important; + } + .mynoteNarrowest A:active { + font-weight: bold; + color: #ff00ff ! important; + } + + DIV.mynote .Latin { + color: #990000 ! important; + } + + .mynote .source { + color: #00AA00 ! important; + } + + .mynote .outquote { + color: #7700b3 ! important; + } + + +DIV.mynote0 { + background-color: #ccffff ! important; + text-align: justify; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-size: 85%; + color: #000066 ! important; + margin-top: 0em; + margin-left: 100px; + margin-right: 100px; + padding-top: 0.4em; + padding-bottom: 0.4em; + padding-left: 1.3em; + padding-right: 1.3em; + border-style: double +} + .mynote0 .outquote { + color: #7700b3 ! important; + } + + +.mynote A.Cullum { + color: #907d45 ! important; + background-color: #ccffff ! important; +} +.mynoteWide A.Cullum { + color: #907d45 ! important; + background-color: #ccffff ! important; +} + +DIV.mynoteNarrow { + background-color: #ccffff ! important; + text-align: justify; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-size: 85%; + color: #000066 ! important; + margin-top: 1.6em; + margin-bottom: 1.6em; + width: 50%; + margin-left: auto; + margin-right: auto; + padding-top: 0.4em; + padding-bottom: 0.4em; + padding-left: 1.3em; + padding-right: 1.3em; + border-style: double +} + .mynoteNarrow .outquote { + color: #7700b3 ! important; + } + +DIV.mynoteNarrowest { + background-color: #ccffff ! important; + text-align: justify; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-size: 85%; + color: #000066 ! important; + margin-top: 1.6em; + margin-bottom: 1.6em; + width: 30%; + margin-left: auto; + margin-right: auto; + padding-top: 0.4em; + padding-bottom: 0.4em; + padding-left: 1.3em; + padding-right: 1.3em; + border-style: double +} + .mynoteNarrowest .outquote { + color: #7700b3 ! important; + } + +DIV.mynoteWide { + background-color: #ccffff ! important; + text-align: justify; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-size: 85%; + color: #000066 ! important; + margin-top: 1.6em; + margin-bottom: 1.6em; + width: 85%; + margin-left: auto; + margin-right: auto; + padding-top: 0.4em; + padding-bottom: 0.4em; + padding-left: 1.3em; + padding-right: 1.3em; + border-style: double +} + DIV.mynoteWide .Latin { + color: #990000 ! important; + } + + +DIV.mynoteBasicH { + background-color: #ccffff ! important; + text-align: justify; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-size: 85%; + color: #000066 ! important; + margin-top: 1.6em; + margin-bottom: 1.6em; + width: 574px; + margin-left: auto; + margin-right: auto; + padding-top: 0.4em; + padding-bottom: 0.4em; + padding-left: 1.3em; + padding-right: 1.3em; + border-style: double +} + +DIV.mynoteBasicH1 { + background-color: #ccffff ! important; + text-align: justify; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-size: 85%; + color: #000066 ! important; + margin-top: 1.6em; + margin-bottom: 1.6em; + width: 574px; + margin-left: auto; + margin-right: auto; + padding-top: 0.4em; + padding-bottom: 0.4em; + border-style: double +} + +DIV.specialBox { +/* Omit + background-color: #ccffff ! important; + color: #000066 ! important; +so that the font+background combination can be further specified (colors stylesheet) +*/ + text-align: justify; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-size: 85%; + margin-top: 1.6em; + margin-left: 100px; + margin-right: 100px; + padding-top: 0.4em; + padding-bottom: 0.4em; + padding-left: 1.3em; + padding-right: 1.3em; + border-style: double +} + +DIV.caption-centered { + margin: .35em; + font-size: 85%; + text-align: center; +} + +DIV.margin2 { + margin-left: 65px; + margin-right: 65px; + font-size: 90%; +} + +DIV.padall { + margin: 10px; +} + +.padall { + margin: 10px; +} + +DIV.reference { + color: #660066 ! important; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-size: 75%; + font-weight: bold; + text-align: center; +} + +DIV.diary_summary { + margin-left: .6em; + margin-right: 1.2em; + text-align: justify; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-size: 85%; +} + +DIV.diary_summary_date { + margin-right: 0.4em; + text-align: right; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-size: 85%; +} + +DIV.no_diary { + margin-left: .6em; + margin-right: 1.2em; + text-align: justify; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-size: 85%; + color: #666666 ! important; +} + +DIV.no_diary_date { + margin-right: 0.4em; + text-align: right; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-size: 85%; + color: #666666 ! important; +} + +.noScript { + text-align: center; + font-family: Verdana, sans-serif; + font-size: 112%; + font-weight: bold; + color: #ff0000 ! important; +} + +.PlaceDescriptor { /* used in GoogleMaps.js*/ + margin-top: 1.5em; + text-align: justify; +} + +DIV.MapBubble { /* used in GoogleMaps.js*/ + width: 200px; /* I'd like it smaller, but Google doesn't allow it, setting a purported minimum width of 204, but in fact it's about 250. */ + margin-top: 0; + margin-left: 0; + margin-right: 0; + font-family: Verdana, sans-serif; + font-style: normal; + text-transform: none; + font-variant: normal; + text-align: justify; + font-size: 50%; + font-weight: normal; +} + +DIV.MapBubbleHeading { /* used in GoogleMaps.js*/ + width: 200px; /* I'd like it smaller, but Google doesn't allow it, setting a purported minimum width of 204, but in fact it's about 250. */ + margin-left: 0; + margin-right: 0; + font-family: Verdana, sans-serif; + font-style: normal; + text-transform: none; + font-variant: normal; + text-align: left; + font-size: 60%; + font-weight: bold; +} + +.map_blue { + color: #7eb3ff ! important; +} + +.map_green { + color: #8cff77 ! important; +} + +.map_orange { + color: #ffa82c ! important; +} + +.map_pink { + color: #ffb4b1 ! important; +} + +.map_purple { + color: #df87ff ! important; +} + +.map_red { + color: #ff7a78 ! important; +} + +.map_yellow { + color: #fdff78 ! important; +} + +.emphasis { + color: #003399 ! important; +} + +.emend { + color: #0066cc ! important; +} + + A:hover .emend { + color: #ff00ff ! important; + } + + .emend .Greek { + color: #dd8833 ! important; + } + + .emend .Latin { + color: #cc3399 ! important; + } + .emend:lang(la) { + color: #cc3399 ! important; + } + +.transcription .emend { + color: #ff6699 ! important; +} + +/* used to render digammas better: */ +.Geneva { + font-family: Geneva; +} + +.Courier { + font-family: Courier, monospace; +} + +I I { /* i.e., within */ + font-style: normal; + font-size: 90%; +} + +SPAN.star { + font-family: Verdana, Ariel, Helvetica, sans-serif; + font-size: 90%; + color: #8800cc ! important; + font-style: italic; +} + + A SPAN.star { + color: #3366ff ! important; + } + + A:hover SPAN.star { + color: #ff00ff ! important; + } + +.fondbleu { + border-top: 0px !important; + border-bottom: 0px !important; + border-left: 0px !important; + border-right: 0px !important; + background-color: #ccffff ! important; + color: #555555 ! important; + border-radius: 8px; + padding-top: 2px !important; + padding-left: 5px !important; + padding-right: 5px !important; + display: inline; + overflow: hidden; + white-space: nowrap; +} + +.fondrose { + border-top: 0px !important; + border-bottom: 0px !important; + border-left: 0px !important; + border-right: 0px !important; + background-color: #ffcccc ! important; + color: #555555 ! important; + border-radius: 8px; + padding-top: 2px !important; + padding-left: 5px !important; + padding-right: 5px !important; + display: inline; + overflow: hidden; + white-space: nowrap; +} + +.fondviolet { + border-top: 0px !important; + border-bottom: 0px !important; + border-left: 0px !important; + border-right: 0px !important; + background-color: #d9e6ff ! important; + color: #555555 ! important; + border-radius: 8px; + padding-top: 2px !important; + padding-left: 5px !important; + padding-right: 5px !important; + display: inline; + overflow: hidden; + white-space: nowrap; +} + +.fondjaune { + border-top: 0px !important; + border-bottom: 0px !important; + border-left: 0px !important; + border-right: 0px !important; + background-color: #ffffcc ! important; + color: #555555 ! important; + border-radius: 8px; + padding-top: 2px !important; + padding-left: 5px !important; + padding-right: 5px !important; + display: inline; + overflow: hidden; + white-space: nowrap; +} + +SPAN.proofread { + color: #28cccc ! important; +} + +SPAN.unproofread { + color: #ff6666 ! important; +} + +SPAN.proof { + color: #009933 ! important; + font-weight: bold; +} + +SPAN.GridRef { + font-family: Verdana, sans-serif; + color: #ff6600 ! important; +} + +.overline { + text-decoration: overline; +} + +.Fraktur { + font-family: TypographerFraktur, "Lucida Blackletter", serif; +} + +.sanserif { + font-family: Verdana, Ariel, Helvetica, sans-serif; +} + +.double { + font-size: 200%; +} + +.large { + font-size: 120%; +} + +.larger { + font-size: 140%; +} + +.largest { + font-size: 160%; +} + +.small { + font-size: 85%; +} + + .small .smaller { + font-size: 88%; + } + +.smaller { + font-size: 75%; +} + +.smallest { + font-size: 60%; +} + +.minuscule { + font-size: 50%; +} + +.sourcecode { + font-family: Courier, monospace; + color: #006600 ! important; + font-size: 85%; +} + +.primary_source { + color: #339900 ! important; +} + +.up215 { + margin-top: -2.15em; +} + +SPAN.subscript { + font-family: Verdana, Ariel, Helvetica, sans-serif; + font-size: 65%; + vertical-align: bottom; +} + +SPAN.superscript { + font-family: Verdana, Ariel, Helvetica, sans-serif; + font-size: 60%; + vertical-align: top; +} + +SPAN.ordinal { + font-family: Verdana, Ariel, Helvetica, sans-serif; + font-size: 60%; + vertical-align: top; + font-variant: none; +} + +SPAN.raised { + vertical-align: 10%; + line-height: 100%; +} + +SPAN.manuscript .superscript { + font-family: Verdana, Ariel, Helvetica, sans-serif; + font-size: 60%; + vertical-align: 70%; +} + +.midalign { + vertical-align: middle; +} + +.ten { + font-size: 62%; +} + +.eleven { + font-size: 69%; +} + +.twelve { + font-size: 75%; +} + +.teensy { + font-size: 37%; +} + +H1 { + font-size: 150%; + text-align: center; + hyphens: none; +} + +H2 { + font-size: 120%; + text-align: center; + hyphens: none; +} + +H3 { + margin-top: 3.5em; + margin-bottom: 2em; + font-size: 100%; + text-align: left; + hyphens: none; +} + +H4 { + font-size: 85%; + hyphens: none; +} + +H5 { + font-size: 60%; + hyphens: none; +} + +H6 { + hyphens: none; +} + +H1, H2, H4.default { + margin-top: 3.5em; + margin-bottom: 2em; +} + +H1.small { + font-size: 120%; + text-align: center; +} + +H1.small_default { + font-size: 120%; + text-align: center; + margin-top: 3.5em; + margin-bottom: 2em; +} + +H2.large_default { + font-size: 150%; + text-align: center; + margin-top: 3.5em; + margin-bottom: 2em; +} + +H2.left { + margin-left: -50px; + font-size: 120%; + text-align: left; +} + +H2.diary { + margin-left: -50px; + margin-top: 6em; + margin-bottom: 2em; + font-size: 120%; + text-align: left; +} + +H3.boxed { + margin-top: 1em; + margin-bottom: 1.5em; + text-align: center; +} + +H3.center { +/* + font-size: 100%; + */ + text-align: center; +} + +H3.start { + margin-top: 3.5em; + margin-bottom: 2em; +} + +H3.start2 { + margin-top: 7.5em; + margin-bottom: 2em; +} + +H3.center-start { + text-align: center; + margin-top: 3.5em; + margin-bottom: 2em; +} + +H4.lowcaps { + font-size: 72%; + text-transform: uppercase; +} + +H4.halfstart { + margin-top: 2.7em; + margin-bottom: 2em; +} + +H4.start { + margin-top: 3.5em; + margin-bottom: 2em; +} + +H5.start { + margin-top: 3.5em; + margin-bottom: 2em; +} + +H6.start { + margin-top: 3.5em; + margin-bottom: 2em; +} + +H4.center-start { + text-align: center; + margin-top: 3.5em; + margin-bottom: 2em; +} + +H3.document { + font-size: 90%; + text-align: center; + font-weight: 300; + font-style: italic; +} + +H4.center { + font-size: 85%; + text-align: center; +} + +H4.interTitle { + margin-top:0; + font-size: 85%; + text-align: center; +} + +H5.center { + font-size: 60%; + text-align: center; +} + +HR { + text-align: center; +} + +HR.endnotes { + text-align: center; + width: 60%; + margin-top:4em; + margin-bottom:2.5em; +} + +HR.default { + text-align: center; + width: 60%; + margin-top:2.5em; + margin-bottom:2.5em; +} + +HR.small { + text-align: center; + width: 15%; + margin-top:2.5em; + margin-bottom:2.5em; +} + +HR.blip { + text-align: center; + width: 50px; + margin-top:.5em; + margin-bottom:.5em; +} + +HR.left { + text-align: left; + margin-top: 0.5em; + margin-bottom: 0.5em; +} + +IMG { + border-width: 0; +/* The hyphenation and alignment specs are for the ALTs, to prevent hyphenation and justify them: */ + text-align: justify; + -webkit-hyphens: none; + -ms-hyphens: none; + hyphens: none; +} + +IMG.setPageWidth { + width: 608px; + height: 20px; +} + +IMG.hedera { + width: 15px; + height: 13px; + margin-top: 1.3em; + margin-bottom: 0.3em; +} + +IMG.rue { + width: 24px; + height: 24px; + margin-top: 1.3em; + margin-bottom: 0.3em; +} + +IMG.WP_grad { + width: 15px; + height: 13px; + border-width: 0; + vertical-align: top; +} + +/* the following is required to make "TR.topBorder" (etc.) work: */ +TABLE.noBorders { + border-collapse: collapse; + border-left: 0px; + border-right: 0px; +} + +TABLE TR.topBorder{ + border-collapse: collapse; + border-top: 1px solid; +} + +TABLE TR.bottomBorder{ + border-collapse: collapse; + border-bottom: 1px solid; +} + +TABLE TR.topandbottomBorder{ + border-collapse: collapse; + border-top: 1px solid; + border-bottom: 1px solid; +} + +TABLE TR.topBorderBold{ + border-collapse: collapse; + border-top: 2px solid; +} + +.leftBorder{ + border-collapse: collapse; + border-left: 1px solid; +} + +.rightBorder{ + border-collapse: collapse; + border-right: 1px solid; +} + +TABLE TR.discreetly_separated{ + border: 3px; + border-style: solid none none; +} + +TABLE.TOC TR.discreetly_separated{ + border-color: #ffffff; +} + +TABLE TR.bottomBorderBold{ + border-collapse: collapse; + border-bottom: 2px solid; +} + +TABLE.columnBorders { + border-collapse: collapse; + border-left: 1px solid; + border-right: 1px solid; +} + + TABLE.columnBorders TR TD { + border-left: 1px solid; + border-right: 1px solid; + } + +TABLE.basicH { + width: 567px; +} + +IMG.basicH { + width: 567px; + height: 378px; +} + +TABLE.iPhoneLargeH { + width: 800px; +} + +IMG.iPhoneLargeH { + width: 800px; + height: 600px; +} + +TABLE.iPhoneH { + width: 567px; +} + +IMG.iPhoneH { + width: 567px; + height: 425px; +} + +TABLE.basicV { + width: 252px; +} + +IMG.basicV { + width: 252px; + height: 378px; +} + +IMG.largeV { + width: 378px; + height: 567px; +} + +IMG.largeS { + width: 567px; + height: 567px; +} + +IMG.H320 { + width: 567px; + height: 320px; +} + +TABLE.V270 { + width: 270px; +} + +IMG.V270 { + width: 270px; + height: 378px; +} + +TABLE.V280 { + width: 280px; +} + +IMG.V280 { + width: 280px; + height: 378px; +} + +TABLE.V300 { + width: 300px; +} + +IMG.V300 { + width: 300px; + height: 378px; +} + +IMG.GoogleLogo { + width: 64px; + height: 26px; +} + +TABLE.leadoff { + border-style: outset; + border-color: #cccccc; + border-width: 12px; + margin-top: 5em; + margin-left: auto; + margin-right: auto; + font-size: 80%; +} + +TABLE.leadoff P{ + margin-left: 15px; + margin-right: 15px; +} + +P.photocredit { + text-align: right; + font-size: 69%; +} + +TABLE.photocreditX { +/* for odd widths; the table width should be set at the photo width + 23 */ + border: 0; + margin: auto; + text-align: right; + font-size: 69%; +} + +TABLE.photocreditH { + width: 590px; /* 567 + 23 */ + border: 0; + margin: auto; + text-align: right; + font-size: 69%; +} + +TABLE.photocreditV { + width: 275px; /* 252 + 23 */ + border: 0; + margin: auto; + text-align: right; + font-size: 69%; +} + +TABLE.photocreditS { + width: 401px; /* 378 + 23 */ + border: 0; + margin: auto; + text-align: right; + font-size: 69%; +} + +/* THIS IS JUST A TEMP PATCH TO PREVENT THE OPERATION OF "contents" INSIDE "leadoff" WHILE I REMOVE THE HUNDREDS OF INSTANCES: */ +TABLE.leadoff .contents{ + font-size: 100%; +} + +IMG.aliasS { + width: 279px; + height: 279px; +} + +TABLE.aliasS { + width: 279px; +} + +IMG.smallS { + width: 252px; + height: 252px; +} + +TABLE.smallS { + width: 252px; +} + +IMG.basicS { + width: 378px; + height: 378px; +} + +TABLE.basicS { + width: 378px; +} + +IMG.b1 { + margin-top: 0; + border-width: 1px; + border-style: solid; +} + +IMG.b2 { + border-width: 2px; + border-style: solid; +} + +IMG.b4 { + border-width: 4px; + border-style: solid; +} + +IMG.flag { + border-width: 1px; + border-style: solid; + width: 30px; + height: 20px; + margin-top: 2px; + margin-bottom: 2px; +} + +TABLE.verse A.flag { + float: left; + margin-left: -4em; +} + +.verse A.sec { + position: relative; + float: left; + left: -2.5em; + vertical-align: 10%; +} + +IMG.map_marker { + width: .6em; + height: .9em; +} + +IMG.miniflag { + border-width: 1px; + border-style: solid; + width: 12px; + height: 8px; +} + +IMG.small_flag { + border-width: 1px; + border-style: solid; + width: 18px; + height: 12px; +} + +IMG.small_flag_in_margin { + border-width: 0; + width: 18px; + height: 20px; +} + +IMG.inline { + margin-right: 2px; +} + +/* Jun 2017: not yet used */ +IMG.behind { + position: absolute; + z-index: -1; +} + +.caduceus { + text-align: center; + font-size: 187%; +} + +.ivy { + text-align: center; + font-size: 137%; + font-style: normal; + color: #008400 ! important; +} + +.ivy1 { + text-align: center; + font-size: 137%; + font-style: normal; + color: #008400 ! important; + margin-top: 2em; +} + +IMG.badge { + width: 16px; + height: 16px; + vertical-align: -2px; +} + +IMG.image0 { + border-width: 1px; + border-style: dotted; +} + +IMG.image1 { + border-width: 1px; + border-style: solid; +} + +IMG.image2 { + border-width: 2px; + border-style: solid; +} + +IMG.image4 { + border-width: 4px; + border-style: solid; +} + +IMG.alias0 { + border-width: 1px; + border-style: dotted; + width: 279px; + height: 186px; + margin: 5px; +} + +IMG.alias1 { + border-width: 1px; + border-style: solid; + width: 279px; + height: 186px; + margin: 5px; +} + +IMG.alias2 { + border-width: 2px; + border-style: solid; + width: 279px; + height: 186px; + margin: 4px; +} + +IMG.alias4 { + border-width: 4px; + border-style: solid; + width: 279px; + height: 186px; + margin: 2px; +} + +IMG.icon { + border-width: 0; + width: 132px; + height: 88px; +} + +IMG.icon0 { + border-width: 1px; + border-style: dotted; + width: 132px; + height: 88px; + margin-top: 10px; + margin-bottom: 5px; + margin-left: 5px; + margin-right: 5px; +} + +IMG.icon1 { + border-width: 1px; + border-style: solid; + width: 132px; + height: 88px; + margin-top: 10px; + margin-bottom: 5px; + margin-left: 5px; + margin-right: 5px; +} + +IMG.icon2 { + border-width: 2px; + border-style: solid; + width: 132px; + height: 88px; + margin-top: 11px; + margin-bottom: 4px; + margin-left: 4px; + margin-right: 4px; +} + +IMG.icon4 { + border-width: 4px; + border-style: solid; + width: 132px; + height: 88px; + margin-top: 13px; + margin-bottom: 2px; + margin-left: 2px; + margin-right: 2px; +} + +IMG.rubric0 { + border-width: 1px; + border-style: dotted; + width: 132px; + height: 88px; + margin-left: 15px; + margin-right: 15px; +} + +IMG.rubric1 { + border-width: 1px; + border-style: solid; + width: 132px; + height: 88px; + margin-left: 15px; + margin-right: 15px; +} + +IMG.rubric2 { + border-width: 2px; + border-style: solid; + width: 132px; + height: 88px; + margin-left: 14px; + margin-right: 14px; +} + +IMG.rubric4 { + border-width: 4px; + border-style: solid; + width: 132px; + height: 88px; + margin-left: 12px; + margin-right: 12px; +} + +IMG.minirubric1 { + border-width: 1px; + border-style: solid; + width: 60px; + height: 40px; + margin-left: 87px; + margin-right: 15px; +} + +IMG.minirubric2 { + border-width: 2px; + border-style: solid; + width: 60px; + height: 40px; + margin-left: 86px; + margin-right: 14px; +} + +IMG.minirubric4 { + border-width: 4px; + border-style: solid; + width: 60px; + height: 40px; + margin-left: 84px; + margin-right: 12px; +} + +IMG.start { + margin-top: 1.5em; +} + +IMG.thumb { + border-width:0; + width: 60px; + height: 40px; + margin-top: 6px; + margin-bottom: 6px; +} + +IMG.thumb0 { + border-width: 1px; + border-style: dotted; + width: 60px; + height: 40px; + margin-top: 5px; + margin-bottom: 5px; +} + +IMG.thumb1 { + border-width: 1px; + border-style: solid; + width: 60px; + height: 40px; + margin-top: 5px; + margin-bottom: 5px; +} + +IMG.thumb2 { + border-width: 2px; + border-style: solid; + width: 60px; + height: 40px; + margin-top: 4px; + margin-bottom: 4px; +} + +IMG.thumb4 { + border-width: 4px; + border-style: solid; + width: 60px; + height: 40px; + margin-top: 2px; + margin-bottom: 2px; +} + +IMG.W3C { + border-width: 0; + width: 88px; + height: 31px; +} + +P.W3C { + margin-top: 36em; + margin-right: 1em; + text-align: right; +} + +P.UCFooter { + margin-top: 3em; + margin-bottom: 0em; + background-color: #403f3f; + color: #d6d6cf; + font-family: Verdana, Arial, Helvetica, sans-serif; + font-size: 70%; + text-align: center; +} + .UCFooter A:link { + border-style: dotted; + border-top-width: 0px; + border-bottom-width: 1px; + border-left-width: 0px; + border-right-width: 0px; + color: #d6d6cf ! important; + } + .UCFooter A:visited { + color: #d6d6cf ! important; + } + .UCFooter A:hover { + color: #d6d6cf ! important; + } + .UCFooter A:active { + color: #d6d6cf ! important; + } + +LI.default { + margin-top: 1em; + margin-bottom: 1em; + text-align: justify; +} + +SPAN.default { + color: #000066 ! important; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; +} + +P.photo_credits { + text-align: right; + font-size: 75%; + margin-top: 0em; +} + +P.photo_credits_center { + text-align: center; + font-size: 75%; + margin-top: 0em; +} + +P.further { + text-align: center; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-style: normal; + font-weight: normal; + text-transform: none; + font-variant: normal; + font-size: 50%; + color: #cc00ff ! important; +} + +P.signature { + position: relative; + top: auto; + right: -6em; + text-align: right; + font-size: 85%; + color: #000066 ! important; +} + +P.default { + color: #000066 ! important; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; +} + +P.closing50 { + text-align: left; + margin-left: 50%; + margin-top: 0em; + margin-bottom: 0em; +} + +P.closing60 { + text-align: left; + margin-left: 60%; + margin-top: 0em; + margin-bottom: 0em; +} + +P.closing-b0-a0 { + text-align: right; + margin-right: 8em; + margin-top: 0em; + margin-bottom: 0em; +} + +P.closing-b1-a0 { + text-align: right; + margin-right: 8em; + margin-top: 3em; + margin-bottom: 0em; +} + +P.closing-b0-a1 { + text-align: right; + margin-right: 8em; + margin-top: 0em; + margin-bottom: 3em; +} + +P.closing-b1-a1 { + text-align: right; + margin-right: 8em; + margin-top: 3em; + margin-bottom: 3em; +} + +P.biblio1 { + margin-top: 0em; + margin-bottom: .5em; + text-align: right; + font-family: Verdana, sans-serif; + font-size: 69%; +} + +P.biblio { + margin-top: 0em; + margin-bottom: 3em; + text-align: right; + font-family: Verdana, sans-serif; + font-size: 69%; +} + +P.biblioA { + margin-top: 0em; + margin-bottom: 0em; + text-align: right; + font-family: Verdana, sans-serif; + font-size: 69%; +} + +P.biblio_intro { + margin-top: 0em; + margin-bottom: 0em; + text-align: right; + font-size: 69%; +} + +P.default { + color: #000066 ! important; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; +} + +P.summary { + font-size: 85%; + margin-top: 3em; + margin-left: 2em; + margin-right: 1em; + text-indent: -1em; + text-align: justify; +} + +P.postsummary { + font-size: 85%; + margin-top: .5em; + margin-left: 2em; + margin-right: 1em; + text-indent: -1em; + text-align: justify; +} + +P.summary_item { + font-size: 85%; + margin-top: 0em; + margin-bottom: 0em; + margin-left: 2em; + margin-right: 1em; + text-indent: -1em; + text-align: justify; +} + +.x1-b0-a0 { + text-align: justify; + margin-left: 30px; + text-indent: -30px; + margin-top: 0em; + margin-bottom: 0em; +} +.x2-b0-a0 { + text-align: justify; + margin-left: 60px; + text-indent: -60px; + margin-top: 0em; + margin-bottom: 0em; +} + +P.justify_indent { + text-align: justify; + margin-top: 0em; + margin-bottom: 0em; + text-indent: 1em; +} + +P.omitted_article { + text-align: justify; + font-weight: bold; + text-transform: uppercase; + color: #999999 ! important; +} + P.omitted_article .Greek { + text-align: justify; + font-weight: bold; + text-transform: none; + color: #999999 ! important; + } + +P.riassunto { + text-align: right; + font-family: Verdana, sans-serif; + font-size: 85%; + color: #ff9900 ! important; + margin-bottom: 40px; + font-weight: bold; +} + +P.riassunto0 { + text-align: right; + font-family: Verdana, sans-serif; + font-size: 85%; + color: #ff9900 ! important; + margin-bottom: 0em; +} + +P.temporarily_omitted { + margin-top: 3em; + text-align: center; + font-size: 160%; + font-weight: bold; + color: #009900 ! important; +} + +TABLE { + margin-bottom: 1em; +} + +TABLE.bodyheight { + line-height: 1.5; +} + +TABLE.GoogleMap { + color: #000099 ! important; + background-color: #ffffff ! important; + font-size: 80%; + margin-bottom: 2em; +} + + TABLE.GoogleMap P { + margin-top: 1em; + margin-bottom: 0em; + margin-left: 10px; + margin-right: 10px; + } + +TABLE.standard { + background-color: #ffffff ! important; + color: #000066 ! important; + font-size: 80%; +} + + TABLE.standard .outquote { + color: #8533ad ! important; + } + + TABLE.standard .bland { + color: #000066 ! important; + } + + TABLE.standard TR.neutral { + background-color: #b2ffff ! important; + } + + TABLE.standard TR TD.neutral { + background-color: #b2ffff ! important; + } + + TABLE.standard P { + margin-top: 0em; + margin-bottom: 0em; + margin-left: 20px; + margin-right: 10px; + text-indent: -10px; + } + + TABLE.standard P.nodent { + text-indent: 0px; + } + + TABLE.standard P.indent { + text-indent: 20px; + } + + TABLE.standard P.start { + margin-top: 1em; + } + + TABLE.standard P.halfstart { + margin-top: .5em; + } + + TABLE.standard A:link { + color: #0000ff ! important; + } + TABLE.standard A:visited { + color: #cc0000 ! important; + } + TABLE.standard A:hover { + color: #ff00ff ! important; + } + TABLE.standard A:active { + color: #ff00ff ! important; + } + + TABLE.standard .Latin { + color: #990000 ! important; + } + TABLE.standard .Latin .emend { + color: #ee6633 ! important; + } + + TABLE.standard .Greek { +/* + color: #994d00 ! important; + */ + color: #8d5c00 ! important; + } + +TR TD.grisaille { + background-color: #eeeeee ! important; + } +TR.odd TD.grisaille { + background-color: #c2f2f2 ! important; + } +TR.even TD.grisaille { + background-color: #92f2f2 ! important; + } + + +/*TABLE.rowspadded: separates the rows as well*/ +TABLE.rowspadded TD { + padding-top: 6px; + padding-bottom: 6px; + padding-left: 12px; + padding-right: 12px; +} + +TABLE.stats { + border-collapse: collapse; +} + + TABLE.stats TD.left { + border-left: 1px; + } + + TABLE.stats TD.right { + border-right: 1px; + } + +TD.b1 { + margin-top: 0; + border-width: 1px; + border-style: solid; +} + +TABLE.b1 { + border-width: 1px; + border-style: solid; +} + +TABLE.b2 { + border-collapse: separate; + border-spacing: 1px; + border: 4px ridge #f6f6f6; +} + + TABLE.b2 TD { + border: 1px solid gray; + } + + TABLE.b2 TD TD { + border: 0; + } + +TABLE.header { + margin: auto; + border-collapse: separate; + border-spacing: 2px; + width: 500px; + border: 0; +} + + TABLE.header TR { + vertical-align: bottom; + } + +/* If the width of headerbox is changed, change also the width of DIV.alert600: */ +TABLE.headerbox { + margin: auto; + border-collapse: separate; + border-spacing: 2px; + width: 600px; + border: 4px ridge #eeeeee; + background-color: #ffffff ! important; + line-height: 1.5; + -webkit-hyphens: none; + -ms-hyphens: none; + hyphens: none; +} + + TABLE.headerbox TD { + border: 1px solid gray; + } + + TABLE.headerbox TD TD { + border: 0; + } + + TABLE.headerbox A:link { + color: #0000ff ! important; + } + TABLE.headerbox A:visited { + color: #cc0000 ! important; + } + TABLE.headerbox A:hover { + color: #ff00ff ! important; + } + TABLE.headerbox A:active { + color: #ff00ff ! important; + } + +/*keep superchapter immediately after headerbox:*/ +H3.superchapter { + width: 588px; /*headerbox minus 12*/ + margin-top: 8em; + margin-left: auto; + margin-right: auto; + font-size: 85%; + text-transform: uppercase; + text-align: center; + font-weight: bold; + letter-spacing: .5em; + border-style: solid; + border-top-width: 1px; + border-bottom-width: 1px; + border-left-width: 0px; + border-right-width: 0px; +} + +TABLE.start { + margin-top: 2.5em; +} + +TABLE.footer { + margin: auto; + margin-top: 5em; + width: 576px; + table-layout: fixed ! important; + column-width: 78px ! important; + padding: 0; + border: 0em; + border-spacing: 0; + empty-cells: show; + background-color: #ffffcc ! important; + -webkit-hyphens: none; + -ms-hyphens: none; + hyphens: none; +} + +TABLE.transparent_image { + margin-left: auto; + margin-right: auto; + margin-top: 1em; + background-color: transparent ! important; +} + +TD.transparent { + background-color: transparent ! important; +} + + + +/* 4/14/11: Used only on homepages for MassaMartana, Monteleone di Spoleto, Trevi, Cannaiola */ +/* NOTE: Their own .js states that modification and hosting are allowed, in case I want to have a stab at my own better formatting */ +TABLE.TweetFeed { + margin: auto; + margin-top: 4em; + margin-bottom: -5em; + width: 576px; + padding: 0; + border: 0em; + border-spacing: 0; + background-color: transparent ! important; +} + +TABLE.twitter { + margin: auto; + margin-top: 5em; + margin-bottom: -5em; + width: 576px; + padding: 0; + border: 0em; + border-spacing: 0; + background-color: transparent ! important; +} + +TABLE.photo { + margin-top: 40px; +} + +TABLE.vertical_pair { + width: 567px; + margin-left: auto; + margin-right: auto; + border-collapse: separate; + border-spacing: 2px; +} + + TABLE.vertical_pair TR { + text-align: justify; + } + + TABLE.vertical_pair TD { + padding: 15px; + } + +TABLE.odd_vertical_pair { + margin-left: auto; + margin-right: auto; + border-collapse: separate; + border-spacing: 2px; +} + + TABLE.odd_vertical_pair TR { + text-align: justify; + } + + TABLE.odd_vertical_pair TD { + vertical-align: middle; + padding: 15px; + } + +TABLE.text_and_vertical { + margin: auto; + border-collapse: separate; + border-spacing: 2px; + width: 581px; +} + + TABLE.text_and_vertical TR { + text-align: justify; + } + + TABLE.text_and_vertical TD { + vertical-align: middle; + padding: 15px; + } + + TABLE.text_and_vertical TD.squeeze { + vertical-align: middle; + padding: 3px; + } + +TABLE.text_and_vertical0 { + margin: auto; + border-collapse: separate; + border-spacing: 0; + width: 573px; +} + + TABLE.text_and_vertical0 TR { + text-align: justify; + } + + TABLE.text_and_vertical0 TD { + vertical-align: middle; + } + + TABLE.text_and_vertical0 TD.squeeze { + vertical-align: middle; + padding: 3px; + } + +TABLE.center { + width: auto; + margin-left: auto; + margin-right: auto; +} + +TABLE.imageF { + border-collapse: separate; + border-spacing: 1px; + border: 4px ridge #f6f6f6; + margin-left: auto; + margin-right: auto; + margin-top: 1em; +} + + TABLE.imageF TD { + border: 1px solid gray; + margin-left: 10px; + margin-right: 10px; + text-align: justify; + font-size: 80%; + } + + TABLE.imageF TD TD { + border: 0; + } + +TABLE.image { + border: 1px solid; + margin-left: auto; + margin-right: auto; + margin-top: 1em; +} + +TABLE.image0 { + border: 1px solid; + margin-top: .30em; + margin-left: auto; + margin-right: auto; +} + +TABLE.startimage { + border: 1px solid; + margin-left: auto; + margin-right: auto; + margin-top: 3em; +} + +TABLE.logo { + border: 0; + margin-left: auto; + margin-right: auto; + width: 132px; +} + +TABLE.embed_left { + border: 1px solid; + float: left; + margin-top: 8px; + margin-right: 8px; +} + +.prose TABLE.embed_left { + border: 1px solid; + float: left; + margin-top: 8px; + margin-right: 16px; +} + +TABLE.embed_left_noborder { + border: 0; + float: left; + margin-top: 8px; + margin-right: 8px; +} + +.prose TABLE.embed_left_noborder { + border: 0; + float: left; + margin-top: 8px; + margin-right: 16px; +} + +TABLE.embed_right { + border: 1px solid; + float: right; + margin-top: 8px; + margin-left: 8px; +} + +.prose TABLE.embed_right { + border: 1px solid; + float: left; + margin-top: 8px; + margin-left: 16px; +} + +TABLE.embed_right_noborder { + border: 0; + float: right; + margin-top: 8px; + margin-left: 8px; +} + +.prose TABLE.embed_right_noborder { + border: 0; + float: left; + margin-top: 8px; + margin-left: 16px; +} + +/* THE FOLLOWING ALIGNMENTS DON'T WORK IN SAFARI OR EXPLORER: */ + +/* TD.decimal { */ +/* text-align: "."; */ +/* } */ + +/* TD.middot { */ +/* text-align: "°§"; */ +/* } */ + +TD.sidepadded { + padding: 0 1em; +} + +.sidebar { + margin-left: 2em; + margin-right: 2em; + font-size: 85%; + font-style: italic; + padding: 0 .5em; + border-style: solid; + border-top-width: 1px; + border-bottom-width: 1px; + border-left-width: 0; + border-right-width: 0; +} + +.arithmetic { + font-family: Courier, monospace; + padding: 0 .5em; + text-align: right; + margin-top: 0em; + margin-bottom: 0em; +} + +.arithmetic .underscore { + color: #ff0000 ! important; + border-style: solid; + border-bottom-width: 1px; +} + +TD.lineunder { + font-family: Courier, monospace; + padding: 0 .5em; + text-align: right; + border-style: solid; + border-top-width: 0px; + border-bottom-width: 1px; + border-left-width: 0px; + border-right-width: 0px; + margin-top: 0em; + margin-bottom: 0em; +} + +.total { + font-family: Courier, monospace; + padding: 0 .5em; + text-align: right; + border-style: solid; + border-top-width: 1px; + border-bottom-width: 0px; + border-left-width: 0px; + border-right-width: 0px; + margin-top: 0em; + margin-bottom: 0em; +} + +.totalwithleftBorder { + font-family: Courier, monospace; + padding: 0 .5em; + text-align: right; + border-style: solid; + border-top-width: 1px; + border-bottom-width: 0px; + border-left-width: 1px; + border-right-width: 0px; + margin-top: 0em; + margin-bottom: 0em; +} + +.totalwithrightBorder { + font-family: Courier, monospace; + padding: 0 .5em; + text-align: right; + border-style: solid; + border-top-width: 1px; + border-bottom-width: 0px; + border-left-width: 0px; + border-right-width: 1px; + margin-top: 0em; + margin-bottom: 0em; +} + +/* +double underscores, see: +E/Gazetteer/Places/Europe/Italy/_Texts/HODIHI/2d_edition/6/NoteF*.html + */ +.double_underscored_total { + font-family: Courier, monospace; + padding: 0 .5em; + text-align: right; + border-style: double; + border-top-width: 0px; + border-bottom-width: 4px; + border-left-width: 0px; + border-right-width: 0px; + margin-top: 0em; + margin-bottom: 0em; +} + +.doubleunder { + border-bottom-style: double; + border-bottom-width: 3px; +} + +.top_border { + border-style: solid; + border-top-width: 1px; +} + +.top_and_bottom_border { + border-style: solid; + border-top-width: 1px; + border-bottom-width: 1px; + border-left-width: 0px; + border-right-width: 0px; +} + +TD.alias { + width: 292px; + text-align: center; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-weight: bold; +} + +TD.quietalias { + width: 292px; + font-size: 80%; +} + +TD.right { + text-align: right; +} + +TD.cell { + text-align: center; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-size: 50%; +/* font-size was originally 9.1px */ +} + +TD.midcell { + vertical-align: middle; + text-align: center; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-size: 50%; +} + +TD.upcell1 { + width: 78px; + vertical-align: middle; + text-align: center; + font-family: Verdana, sans-serif; + font-size: 55%; + font-weight: bold; + color: #0000ff ! important; + background-color: #ffffcc ! important; +} + +TD.upcell { + width: 78px; + text-align: center; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-size: 50%; + background-color: #ffffcc ! important; + color: #cccccc ! important; /* grey only if no link; otherwise, overridden*/ +} + +/* The following is used for upcells, etc. that are just a text anchor, in order to line them up right. See examples in AOG Reunions. */ +.no_image { + vertical-align: middle; + margin-top: 24px; + margin-bottom: 24px; +} + +TD.alsocell1 { + vertical-align: middle; + text-align: center; + font-family: Verdana, sans-serif; + font-size: 55%; + font-weight: bold; + color: #0000ff ! important; + background-color: #ffff99 ! important; +} + +TD.alsocell { + width: 78px; + text-align: center; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-size: 50%; + background-color: #ffff99 ! important; + color: #cccccc ! important; /* grey only if no link; otherwise, overridden*/ +} + +TD.alsocell2 { + width: 156px; + text-align: center; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-size: 50%; + background-color: #ffff99 ! important; +} + +TD.offcell1 { + vertical-align: middle; + text-align: center; + font-family: Verdana, sans-serif; + font-size: 55%; + font-weight: bold; + color: #0000ff ! important; + background-color: #ffff66 ! important; +} + +TD.offcell { + width: 78px; + text-align: center; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-size: 50%; + color: #0000ff ! important; + background-color: #ffff66 ! important; +} + +TD.previouscell { + width: 100px; + vertical-align: middle; + text-align: center; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-size: 50%; +} + +TD.nextcell { + width: 100px; + vertical-align: middle; + text-align: center; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-size: 50%; +} + +TD.pinkcell { + width: 78px; + text-align: center; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-size: 50%; + background-color: #ffcccc ! important; +} + +TD.toughcell { + width: 78px; + text-align: center; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-size: 50%; + background-color: #ffff33 ! important; +} + +TD.churchcell { + width: 78px; + text-align: center; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-size: 50%; + background-color: #ecdaff ! important; +} + +TD.churchcell1 { + vertical-align: middle; + text-align: center; + font-family: Verdana, sans-serif; + font-size: 55%; + font-weight: bold; + color: #0000ff ! important; + background-color: #ecdaff ! important; +} + +TD.diarycell { + width: 78px; + text-align: center; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-size: 50%; + background-color: #99ffcc ! important; +} + +TD.diarycell1 { + vertical-align: middle; + text-align: center; + font-family: Verdana, sans-serif; + font-size: 55%; + font-weight: bold; + color: #0000ff ! important; + background-color: #99ffcc ! important; +} + +.transcription { + font-family: Verdana, sans-serif; + font-size: 90%; + color: #990000 ! important; + background-color: #ffffff ! important; +} + +.expansion { + font-family: Verdana, sans-serif; + font-size: 90%; + color: #990000 ! important; + background-color: #ffffcc ! important; +} + +.interpretation { + font-family: Verdana, sans-serif; + font-size: 90%; + color: #000033 ! important; + background-color: #ffcccc ! important; +} + +/* + the widths of "flag" and "mail" work together to add to 100%: + [1* the width of "mailN"] + [(N-1) * the width of "flagN"] add to 100% + + where "100%" is the width of TABLE.header or TABLE.headerbox +*/ + +TD.USMA_flag { + text-align: right; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-size: 50%; +} + +TD.flag { + text-align: center; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-size: 80%; +} + +TD.flagcell { + vertical-align: bottom; + text-align: center; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; +} + +TD.flagcell .Greek { + font-size: 95%; + line-height: 1.15; /* Greek fonts have more line-height built‑in, force smaller */ +} + +TD.flagcell .Ukrainian { + line-height: 1.00; /* Ukrainian fonts have more line-height built‑in, force smaller */ + color: #000066; /* to prevent Ukrainian-language color */ +} + +TD.mailcell { + vertical-align: bottom; + text-align: center; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; +} + +TR.header2 { + font-size: 80%; +} + TR.header2 .mailcell { + width: 75%; + } + TR.header2 .flagcell { + width: 25%; + } + +TR.header3 { + font-size: 80%; +} + TR.header3 .mailcell { + width: 40%; + } + TR.header3 .flagcell { + width: 30%; + } + +TR.header4 { + font-size: 80%; +} + TR.header4 .mailcell { + width: 28%; + } + TR.header4 .flagcell { + width: 24%; + } + +TR.header5 { + font-size: 80%; +} + TR.header5 .mailcell { + width: 28%; + } + TR.header5 .flagcell { + width: 18%; + } + +TR.header6 { + font-size: 75%; +} + TR.header6 .mailcell { + width: 20%; + } + + TR.header6 .flagcell { + width: 16%; + } + +TR.header7 { + font-size: 70%; +} + TR.header7 .mailcell { + width: 16%; + } + TR.header7 .flagcell { + width: 14%; + } + +TR.header7 { + font-size: 70%; +} + TR.header8 .mailcell { + font-size: 70%; + width: 16%; + } + TR.header8 .flagcell { + font-size: 70%; + width: 12%; + } + +TD.flag4 { + text-align: center; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-size: 80%; + width: 24%; +} + +TD.flag5 { + text-align: center; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-size: 80%; + width: 18%; +} + +TD.flag6 { + text-align: center; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-size: 75%; + width: 16%; +} + +TD.flag7 { + text-align: center; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-size: 70%; + width: 14%; +} + +TD.flag8 { + text-align: center; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-size: 70%; + width: 12%; +} + +TD.incipit { + text-align: center; + font-family: "Times New Roman", serif; + font-size: 85%; +} + +TD.mail { + width: 100px; + vertical-align: bottom; + text-align: center; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-size: 80%; +} + +TD.mail4 { + vertical-align: bottom; + text-align: center; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-size: 80%; + width: 28%; +} + +TD.mail5 { + vertical-align: bottom; + text-align: center; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-size: 80%; + width: 28%; +} + +TD.mail6 { + vertical-align: bottom; + text-align: center; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-size: 75%; + width: 20%; +} + +TD.mail7 { + vertical-align: bottom; + text-align: center; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-size: 70%; + width: 16%; +} + +TD.mail8 { + vertical-align: bottom; + text-align: center; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-size: 70%; + width: 16%; +} + +TD.icon { + width: 146px; + text-align: center; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-size: 69%; +} + TD.icon IMG.icon0 { + margin-top: 16px; + } + TD.icon IMG.icon1 { + margin-top: 16px; + } + TD.icon IMG.icon2 { + margin-top: 15px; + } + +/* PHASE OUT "TD.rubric": From now on, use TABLE.rubric (which specifies the 85% font); and each time, immediately delete all TD class attributes "CLASS="rubric" — leaving, however, any "TD CLASS="rubricB". When all "rubric" tables have been switched over, delete this style: it isn't needed at all. The model page is the main Umbertide page. */ +TD.rubric { + text-align: justify; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + margin-left: 10px; + margin-right: 10px; + font-size: 85%; +} + +TD.rubricTEMP { + text-align: justify; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + margin-left: 10px; + margin-right: 10px; +} + +TD.rubricB { + text-align: justify; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + margin-left: 10px; + margin-right: 10px; + vertical-align: bottom; +} + +TD.rubricT { + text-align: justify; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + margin-left: 10px; + margin-right: 10px; + vertical-align: top; +} + +TD.banner { + background-color: #ccffff ! important; + text-align: center; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-size: 100%; + color: #cc0066 ! important; + font-weight: bold; +} + +TD.update { + text-align: center; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + color: #cc0066 ! important; +} + +TR { + vertical-align: top; +} + +TR.down { + vertical-align: bottom; +} + +TR.middle { + vertical-align: middle; +} + +TR.up { + background-color: #ffffcc ! important; + empty-cells: show; + vertical-align: top; +} + +TR.also { + background-color: #ffff99 ! important; + empty-cells: show; + vertical-align: top; +} + +TR.church { + background-color: #ecdaff ! important; + empty-cells: show; + vertical-align: top; +} + +TR.diary { + background-color: #99ffcc ! important; + empty-cells: show; + vertical-align: top; +} + +TR.off { + background-color: #ffff66 ! important; + empty-cells: show; + vertical-align: top; +} + +TR.lapidary { + font-family: Verdana, sans-serif; + font-size: 90%; + color: #990000 ! important; + background-color: #ffffff ! important; +} + +.translation { + font-family: Verdana, sans-serif; + font-size: 90%; + color: #000066 ! important; + background-color: #ffff99 ! important; +} + +.sandstone .translation { + color: #000066 ! important; + background-color: #f0d9c7 ! important; +} + +TR.interpretation { + font-family: Verdana, sans-serif; + font-size: 90%; + color: #000033 ! important; + background-color: #ffcccc ! important; +} + +TABLE P.x1 { + margin-top: 0em; + margin-bottom: 0em; + margin-left: 20px; + margin-right: 10px; + text-indent: -10px; + } + +TABLE P.x2 { + margin-top: 0em; + margin-bottom: 0em; + margin-left: 30px; + margin-right: 30px; + text-indent: -30px; + } + +DIV.TOCbox { + width: 527px ! important; /* TOC minus 49 */ + background-color: #ccffff ! important; + text-align: justify; + font-size: 85%; + color: #000066 ! important; + margin: auto; + padding-top: 0.4em; + padding-bottom: 0.4em; + padding-left: 1.3em; + padding-right: 1.3em; + border-style: ridge +} + + .TOCbox H3 { + margin-top: 1.5em; /* same as halfstart */ + } + +TABLE.TOC { + background-color: #ffffff ! important; + color: #000066 ! important; + border-width: 5px; + border-collapse: collapse; + border-style: double; + font-size: 80%; +} + +TABLE.with_dividers { + border-collapse: collapse; +} + +TABLE.with_dividers TR.discreetly_separated{ + border-color: #ffffff; +} + + .TOC A { + color: #0000ff ! important; + } + .TOC A:link { + color: #0077cc ! important; + } + .TOC A:visited { + color: #ff0000 ! important; + } + .TOC A:hover { + color: #ff00ff ! important; + } + .TOC TD { + vertical-align: middle; + } + + .TOC P { + margin-top: 0em; + margin-bottom: 0em; + margin-left: 20px; + margin-right: 10px; + text-indent: -10px; + } + + .TOC P.center { + text-align: center; + margin-top: 0em; + margin-bottom: 0em; + margin-left: 0em; + margin-right: 0em; + text-indent: 0; + } + + .TOC P.white { + color: #000066; + } + + .TOC P.m1 { + margin-top: 0em; + margin-bottom: 0em; + margin-left: 30px; + margin-right: 20px; + text-indent: 0; + } + + .TOC P.m1x1 { + margin-top: 0em; + margin-bottom: 0em; + margin-left: 2em; + margin-right: 1em; + text-indent: -1em; + } + + .TOC P.m1x2 { + margin-top: 0em; + margin-bottom: 0em; + margin-left: 3em; + margin-right: 1em; + text-indent: -2em; + } + + .TOC P.m2 { + margin-top: 0em; + margin-bottom: 0em; + margin-left: 2em; + margin-right: 2em; + text-indent: 0; + } + + .TOC P.m2x1 { + margin-top: 0em; + margin-bottom: 0em; + margin-left: 3em; + margin-right: 2em; + text-indent: -1em; + } + + .TOC P.m2x2 { + margin-top: 0em; + margin-bottom: 0em; + margin-left: 4em; + margin-right: 2em; + text-indent: -2em; + } + + .TOC P.m3 { + margin-top: 0em; + margin-bottom: 0em; + margin-left: 3em; + margin-right: 3em; + text-indent: 0; + } + + .TOC P.m3x1 { + margin-top: 0em; + margin-bottom: 0em; + margin-left: 4em; + margin-right: 2em; + text-indent: -1em; + } + + .TOC P.m3x2 { + margin-top: 0em; + margin-bottom: 0em; + margin-left: 5em; + margin-right: 2em; + text-indent: -2em; + } + + .TOC P.m4 { + margin-top: 0em; + margin-bottom: 0em; + margin-left: 4em; + margin-right: 4em; + text-indent: 0; + } + + .TOC P.x2 { + margin-left: 50px; + text-indent: -40px; + } + +TABLE.TOC1 { + background-color: #ffffff ! important; + border-width: 5px; + border-style: double; + font-size: 80%; +} + + .TOC1 TD { + vertical-align: middle; + } + + .TOC1 P { + margin-top: 0.24em; + margin-bottom: 0.24em; + margin-left: 20px; + margin-right: 10px; + text-indent: -10px; + } + + .TOC1 .m1 { + margin-left: 30px; + margin-right: 30px; +} + +TABLE.newpages { + margin-top: 5em; + font-size: 85%; +} + + TABLE.newpages .m2x1 { + margin-left: 4em; + margin-right: 2em; + text-indent: -1em; + } + + TABLE.newpages .m3x1 { + margin-left: 5em; + margin-right: 3em; + text-indent: -1em; + } + + TABLE.newpages B { + color: #444444 ! important; + } + TABLE.newpages .bold { + color: #444444 ! important; + } + TABLE.newpages A.bold { + color: #0000ff ! important; + } + TABLE.newpages A:link { + color: #0000ff ! important; + } + TABLE.newpages A:visited { + color: #cc0000 ! important; + } + TABLE.newpages A:hover { + color: #ff00ff ! important; + } + TABLE.newpages A:active { + color: #ff00ff ! important; + } + +TABLE.dotpoints { + width: 90%; + margin: auto; + line-height: 1.5; + text-align: justify; +} + + TABLE.dotpoints TD { + padding-left: 10px; + padding-right: 10px; + } + +.TOCitem { + text-align: justify; + font-size: 80%; + margin-left: 2em; + margin-right: 1em; + text-indent: -1em; +} + +.TOCpagenum { + vertical-align: middle; + font-family: Courier, monospace; + text-align: right; + padding-right: 10px; + margin-left: 10px; +} + +.TOCchapnum { + vertical-align: middle; + text-align: center; + font-weight: bold; + font-size: 190%; +} + +TD.leadoff_summary { + background-color: #ccffff ! important; + font-family: Verdana, Arial, Helvetica, sans-serif; + font-size: 53%; + color: #000066 ! important; + text-align: center; + border-style: solid; + border-color: #990000; + border-width: 1px; +} + +TD.Roman_summary { + background-color: #ff99ff ! important; + font-family: Verdana, Arial, Helvetica, sans-serif; + font-size: 53%; + text-align: center; +} + +.big_caption { + text-align: center; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-weight: bold; +} + +.caption { + text-align: center; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + font-size: 80%; +} + + .caption .photo_credits { + margin-top: .5em; + margin-right: 0; +} + +.low_caption { + text-align: center; + font-size: 85%; + text-transform: uppercase; + margin-bottom: 0; +} + +.image_title { + text-align: center; + margin-top: 0.5em; + hyphens: none; +} + +TD.contents { + margin-left: 10px; + margin-right: 10px; + font-size: 80%; +} + +.contents { + margin-left: 10px; + margin-right: 10px; + font-size: 80%; +} + + .contents .inscription { + font-family: Verdana, sans-serif; + font-size: 80%; + line-height: 1.2; /* line-height of ".inscription" (1.5) multiplied by font-size of ".contents" */ +} + + .contents .small_inscription { + font-family: Verdana, sans-serif; + font-size: 80%; +} + + .contents .Ukrainian { + font-size: 80%; + line-height: 1.08; +} + + .contents .lapis { + font-family: Verdana, sans-serif; + font-size: 80%; + line-height: 1.2; +} + + .contents .nummus { + color: #990000 ! important; + font-family: Verdana, sans-serif; + font-size: 80%; + text-transform: uppercase; + line-height: 1.2; +} + + .contents P { + margin-left: 10px; + margin-right: 10px; +} + +.ecru1 { + background-color: #ffffcc ! important; +} + +.ecru2 { + background-color: #ffff99 ! important; +} + +.ecru3 { + background-color: #ffff66 ! important; +} + +.ex { + text-align: justify; + margin-left: 30px; + text-indent: -30px; +} + +.exdent { + text-align: justify; + margin-left: 30px; + text-indent: -30px; + font-family: Verdana, sans-serif; + font-size: 75%; + line-height: 120%; +} + +.exdent_quote { + text-align: justify; + margin-top: 0em; + margin-bottom: 0em; + margin-left: 30px; + text-indent: -30px; + font-family: Verdana, sans-serif; + font-size: 85%; + color: #990000 ! important; + line-height: 100%; +} + +.index { + text-align: justify; + margin-left: 30px; + text-indent: -30px; + font-size: 75%; +} + +.index-start { + margin-top: 3em; + text-align: justify; + margin-left: 30px; + text-indent: -30px; + font-size: 75%; +} + +.margin { + margin-left: 40px; + margin-right: 40px; +} + +.nomargin { + margin-left: -40px; + margin-right: -40px; +} + +.not_online1 { + background-color: #e0e0e0 ! important; + font-size: 90%; + color: #666666 ! important; +} + +.not_online2 { + background-color: #d0d0d0 ! important; + font-size: 90%; + color: #555555 ! important; +} + +.offsite1 { + background-color: #ccffe5 ! important; +} + +.offsite2 { + background-color: #99ffcc ! important; +} + +.pad { + margin-left: 10px; + margin-right: 10px; +} + +TABLE.padsides TD { + padding-left: 10px; + padding-right: 10px; + font-size: 90%; +} + +.proofread0 { + background-color: #b2ffff ! important; +} + +.proofread1 { /* 90% white */ + background-color: #ccffff ! important; +} + TR.proofread1 TD.not_online { + background-color: #e0e0e0 ! important; + font-size: 90%; + color: #555555 ! important; + } + + .proofread1 .comment { + font-weight: bold; + color: #990099! important; + } + + .proofread1 .emend { + color: #339933 ! important; + } + + .proofread1 .primary_source { + color: #2AA22A ! important; + } + + .proofread1 .source { + font-weight: bold; + color: #006600! important; + } + + TR.proofread1 TD A { + color: #0000ff! important; + } + TR.proofread1 TD A:link { + color: #0000ff ! important; + } + TR.proofread1 TD A:visited { + color: #ff0000 ! important; + } + TR.proofread1 TD A:hover { + color: #ff00ff ! important; + } + TR.proofread1 TD A:active { + color: #ff00ff ! important; + } + +.proofread2 { /* 80% white */ + background-color: #99ffff ! important; +} + TR.proofread2 TD.not_online { + background-color: #d0d0d0 ! important; + font-size: 90%; + color: #555555 ! important; + } + + .proofread2 .comment { + font-weight: bold; + color: #990099! important; + } + + .proofread2 .emend { + color: #339933 ! important; + } + + .proofread2 .source { + font-weight: bold; + color: #006600! important; + } + + TR.proofread2 TD A { + color: #0000ff! important; + } + + TR.proofread2 TD A:link { + color: #0000ff ! important; + } + TR.proofread2 TD A:visited { + color: #ff0000 ! important; + } + TR.proofread2 TD A:hover { + color: #ff00ff ! important; + } + TR.proofread2 TD A:active { + color: #ff00ff ! important; + } + +.needs_images0 { + background-color: #c6d9ff ! important; +} + +.needs_images1 { /* 90% white, and closer to proofread1 than to unproofread1 */ + background-color: #ccddff ! important; +} + TR.needs_images1 TD A { + color: #0000ff! important; + } + + TR.needs_images1 TD A:link { + color: #0000ff ! important; + } + TR.needs_images1 TD A:visited { + color: #ff0000 ! important; + } + TR.needs_images1 TD A:hover { + color: #ff00ff ! important; + } + TR.needs_images1 TD A:active { + color: #ff00ff ! important; + } + +.needs_images2 { /* 85% white, and closer to proofread2 than to unproofread2 */ + background-color: #b2ccff ! important; +} + TR.needs_images2 TD A { + color: #0000ff! important; + } + + TR.needs_images2 TD A:link { + color: #0000ff ! important; + } + TR.needs_images2 TD A:visited { + color: #ff0000 ! important; + } + TR.needs_images2 TD A:hover { + color: #ff00ff ! important; + } + TR.needs_images2 TD A:active { + color: #ff00ff ! important; + } + + +.gloss { + font-family: Verdana, sans-serif; + font-size: 90%; + color: #660099 ! important; + } + +/* An imperfect workaround used for pulling text up one line in order to superimpose two lines: the second line is the one that gets the style. */ +/* +Used in +E/Gazetteer/People/Robert_Edward_Coontz/From_the_Mississippi_to_the_Sea/Appendices/C*.html + */ +.up1line { + margin-top: -2.5em; +} + +.unindented_prose { + font-family: "Myriad Web Pro", Helvetica, Geneva, "Lucida Grande", sans-serif; + line-height: 1.5; + font-size: 85%; + text-align: justify; +} + +.allcaps { + text-transform: uppercase; + letter-spacing: .05em; +} + +.prose { + font-family: "Myriad Web Pro", Helvetica, Geneva, "Lucida Grande", sans-serif; + line-height: 1.5; + font-size: 85%; + margin-left: 2em; + margin-right: 2em; + text-align: justify; +} + + .prose .normal { + font-family: Verdana, sans-serif; + font-size: 90%; + color: #660099 ! important; + } + + .prose .citation { + font-weight: bold; + font-size: 85%; + font-variant: normal; + } + + .prose .manuscript { + font-size: 90%; + } + + .prose .Greek { + color: #996600 ! important; + font-family: "Lucida Grande", "Palatino Linotype", "Arial Unicode Ms", "Titus Cyberbit Basic", "Lucida Sans Unicode", sans-serif ! important; + font-size: 95%; + } + + .prose TABLE { + font-family: "Myriad Web Pro", Helvetica, Geneva, "Lucida Grande", sans-serif; + margin-left: -.2em; + margin-right: -.2em; + line-height: 1.5; + font-size: 100%; + text-align: justify; + } + +.outquote { + color: #7700b3 ! important; +} + +.quote { + font-family: Verdana, sans-serif; + font-size: 85%; +} + +.quote1 { + font-family: Verdana, sans-serif; + font-size: 85%; + margin-left: 2em; + margin-right: 2em; +} + + .quote1 P { + margin-top: 0em; + margin-bottom: 0em; + text-indent: 1em; + text-align: justify; + } + + .quote1 P.right { + margin-top: 0em; + margin-bottom: 0em; + text-align: right; + } + + .quote1 P.center { + margin-top: 0em; + margin-bottom: 0em; + text-align: center; + } + + .quote1 P.in{ + margin-top: 0em; + margin-bottom: 0em; + text-indent: 0em; + text-align: justify; + } + +.verseTEST { + font-family: Verdana, sans-serif; + font-size: 85%; + position: relative; + margin: auto; + height: 50%; + top: 25%; +} + +.verseTEST P { + margin: auto; + margin-top: 0em; + margin-bottom: 0em; + margin-left: 3em; + text-indent: -3em; +} + +/*Greek TEST (settled)*/ +.verse { + font-family: "Myriad Web Pro", Helvetica, Geneva, "Lucida Grande", sans-serif; + line-height: 1.5; + font-size: 85%; + letter-spacing: .06em; + margin-left: 2em; + margin-right: 2em; +} + + .mynote .verse { + color: #000066 ! important; + } + + .mynoteWide .verse { + color: #000066 ! important; + } + + +.verse .right { + font-family: "Myriad Web Pro", Helvetica, Geneva, "Lucida Grande", sans-serif; + font-size: 85%; + margin-left: 2em; + margin-right: 2em; +} + +.verse P { + margin-top: 0em; + margin-bottom: 0em; + margin-left: 3em; + margin-right: 3em; + text-indent: -3em; +} + +.verse P.nopad { + margin-top: 0em; + margin-bottom: 0em; + margin-left: 0em; + margin-right: 0em; + color: #ff6600 ! important;} + +/* +TABLE.verse P.center { + margin-top: 0em; + margin-bottom: 0em; + margin-left: 3em; + margin-right: 3em; +} +*/ + +.verse P.start { + margin-top: 1em; + margin-bottom: 0em; +} + +.verse P.start2 { + margin-top: 5em; + margin-bottom: 0em; +} + +.verse .verse { + font-size: 100%; + text-indent: -2em; +} + +.verse .verse1 { + text-indent: 0em; +} + +.verse .verse2 { + text-indent: 2em; +} + +.verse .verse3 { + text-indent: 4em; +} + +.verse .verse4 { + text-indent:6em; +} + +.verse .verse5 { + text-indent: 8em; +} + +.verse .verse6 { + text-indent: 10em; +} + +.verse .verse7 { + text-indent: 12em; +} + +.verse .verse8 { + text-indent: 14em; +} + +.verse .verse9 { + text-indent: 16em; +} + +.verse .verse10 { + text-indent: 18em; +} + +.verse .verse11 { + text-indent: 20em; +} + +.verse .verse12 { + text-indent: 22em; +} + +.unproofread0 { + background-color: #ffb2b2 ! important; +} + +.unproofread1 { /* 90% white */ + background-color: #ffcccc ! important; +} + TR.unproofread1 TD.not_online { + background-color: #e0e0e0 ! important; + font-size: 90%; + color: #555555 ! important; + } + + TR.unproofread1 TD A { + color: #0000ff! important; + } + + TR.unproofread1 TD A:link { + color: #0000ff ! important; + } + TR.unproofread1 TD A:visited { + color: #ff0000 ! important; + } + TR.unproofread1 TD A:hover { + color: #ff00ff ! important; + } + TR.unproofread1 TD A:active { + color: #ff00ff ! important; + } + +.unproofread2 { /* 80% white */ + background-color: #ff9999 ! important; +} + TR.unproofread2 TD.not_online { + background-color: #d0d0d0 ! important; + font-size: 90%; + color: #555555 ! important; + } + + TR.unproofread2 TD A { + color: #0000ff! important; + } + + TR.unproofread2 TD A:link { + color: #0000ff ! important; + } + TR.unproofread2 TD A:visited { + color: #ff0000 ! important; + } + TR.unproofread2 TD A:hover { + color: #ff00ff ! important; + } + TR.unproofread2 TD A:active { + color: #ff00ff ! important; + } + + +.unproofread3 { + background-color: #ff6666 ! important; +} + +.unproofread4 { + background-color: #ff3333 ! important; +} + +TR.thanks { + background-color: #ccffff ! important; +} + +.thanks { + margin-left: 10em; + font-size: 85%; + background-color: #ccffff ! important; + vertical-align: middle; + text-align: center; + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + color: #cc3300 ! important; +} + +.thanks A:visited { + color: #00ff00 ! important; /* THIS DOESN'T WORK. */ +} + +.thanks A { + font-weight: bold; + font-size: 120%; + color: #0000ff ! important; +} + +P.thanks { + margin: 1em; +} + +/* COMPOUND SCHEMES: */ + +.callout1 { + font-family: sans-serif; + color: #8800cc ! important; +} + +.sans { + font-family: sans-serif; +} + +.callout-red { + font-family: sans-serif; + color: #cc0033 ! important; +} + +.callout-orange { + font-family: sans-serif; + color: #cc9900 ! important; +} + +.epitome { + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + color: #660066 ! important; +} + +.Tzetzes { + font-family: "Palatino Linotype", Palatino, "Gentium Plus", serif; + color: #003333 ! important; +} + +.nummus { + color: #990000 ! important; + font-family: Verdana, sans-serif ! important; + font-size: 80% ! important; + text-transform: uppercase ! important; +} + + .nummus .emend { + color: #ee6633 ! important; + } + + .nummus .superscript { + font-size: 50%; + vertical-align: top; + } + +.Tiny { + font-family: Tiny, sans-serif; + font-size: 62%; +} + +/* THIS SEEMS NOT TO BE USED. I COMMENTED IT OUT BECAUSE IT CONFLICTS WITH TR.up, CAUSING A MINOR BUT UNAESTHETIC GLITCH IN FOOTERS. IF IT NEEDS TO BE RESTORED, RENAME IT. +.up { + position: relative; + top: -4px; +} + */ + +.Verdana { + font-family: Verdana, sans-serif; + font-size: 85%; +} + +/* COLOR SCHEMES:*/ + /* for table columns and rows:*/ + +.green1 { + background-color: #ccffcc ! important; +} + +.green2 { + background-color: #99ff99 ! important; +} + +.beige1 { + background-color: #fff7f2 ! important; +} + +.beige2 { + background-color: #ffe7d9 ! important; +} + +.blue1 { + background-color: #ccffff ! important; +} + +.blue2 { + background-color: #99ffff ! important; +} + +.purple1 { + background-color: #ffddff ! important; +} + +.purple2 { + background-color: #ffaaff ! important; +} + +.red1 { + background-color: #ffbbbb ! important; +} + +.red2 { + background-color: #ff8888 ! important; +} + +.orange1 { + background-color: #ffddbb ! important; +} + +.orange2 { + background-color: #ffbb88 ! important; +} + +.yellow1 { + background-color: #ffffaa ! important; +} + +.yellow2 { + background-color: #ffff55 ! important; +} + +.grey0 { + background-color: #f6f6f6 ! important; +} + +.grey1 { + background-color: #e9e9e9 ! important; +} + +.grey2 { + background-color: #e3e3e3 ! important; +} + +.road1 { + background-color: #ffffcc ! important; +} + +.road2 { + background-color: #ffff99 ! important; +} + +.land1 { + background-color: #ccffcc ! important; +} + +.land2 { + background-color: #99ff99 ! important; +} + +.sandstone1 { + background-color: #ffeedd ! important; +} + +.sandstone2 { + background-color: #eeddcc ! important; +} + +.sea1 { + background-color: #ccffff ! important; +} + +.sea2 { + background-color: #99ffff ! important; +} + +.row1cell1 { + background-color: #ffffcc ! important; +} + +.row1cell2 { + background-color: #ccffff ! important; +} + +.row2cell1 { + background-color: #ffff99 ! important; +} + +.row2cell2 { + background-color: #99ffff ! important; +} + +.addendum { + color: #003399 ! important; +} + +.callout { + color: #8800cc ! important; +} + + +DIV.boxlinksprompt { + background-color: #E8E8E8 !important; + text-align: center; + font-size: 65%; + color: #061CBE !important; + width: 42em; + margin-left: auto; + margin-right: auto; + margin-top: 3em; + padding-top: 0.4em; + padding-bottom: 0.4em; + padding-left: 0.6em; + padding-right: 0.6em; + border: .25em ridge #ffffff !important; +} + +.GazetteerPrompt { + background-color: #ebebff ! important; + color: #0066ff ! important; +} + + .GazetteerPrompt .title { + margin-bottom: 0em; + text-align: center; + color: #0000ff ! important; +} + + .GazetteerPrompt P { + margin-top: 0em; +} + +.HistoryPrompt { + background-color: #ffebeb ! important; + color: #993333 ! important; +} + + .HistoryPrompt .title { + margin-bottom: 0em; + text-align: center; + color: #ff0000 ! important; +} + + .HistoryPrompt P { + margin-top: 0em; +} + +.MixedPrompt { + background-color: #ffe5ff ! important; + color: #663399 ! important; +} + + .MixedPrompt .title { + margin-bottom: 0em; + text-align: center; + color: #cc00ff ! important; +} + + .MixedPrompt P { + margin-top: 0em; +} + +.recommended { + background-color: #ccffcc ! important; +} + +.not_recommended { + background-color: #ffeedd ! important; +} + +/* +TABLE COLORS: use country name nouns, reserving adjectives for font styles +*/ +.France { + color: #001099 ! important; + border: 1px solid #cc0000 ! important; +} + +.Italy { + color: #309900 ! important; + border: 1px solid #cc0000 ! important; +} + +.Symbola{ + font-family: Symbola; +} diff --git a/sources/book_4c_files/up.gif b/sources/book_4c_files/up.gif new file mode 100644 index 0000000..526a178 Binary files /dev/null and b/sources/book_4c_files/up.gif differ diff --git a/sources/cover.png b/sources/cover.png new file mode 100644 index 0000000..ed811e5 Binary files /dev/null and b/sources/cover.png differ