To start the day in fitting manner Cecil and I had three sets of ping pong. The day was cloudy and my sightseeing excursion soon began to look like a wet proposition. Cecil stayed in to do some writing and I went down to Motomachi St. to buy this book and two more—Buddhism and Buddhists in Japan by Robert Cornell Armstrong and a small History of China by W. E. Soothill.
As expected, the rain was not long in coming. Suddenly the street came to life with Japanese parasols of all colors and designs.
Went to see the Shipping Board agent. As I said before, a boat left yesterday afternoon. There will be a boat the middle of next month, possibly two. The William Penn is a fast one, not sure of calling at Honolulu, but calling at Panama, a couple of Central American ports, Havana, then probably New York. The second is slower, leaves about the same time, calling at Honolulu and Panama but not certain of any other ports in that vicinity. At present the William Penn seems the best if I can get accommodations. It will reach New York about the middle of December, but of course I would leave it at Havana or in the West Indies.
Spent the afternoon at writing and the evening at ping pong. Still raining.
Last night I saw the first trained canary birds I have ever seen. Down on Motomachi Street in the evenings stands a man who has a queer performance to offer. There are two small cages in which are two birds that are very similar to canaries but I think they are of another family. One places a five sen piece on a small pedestal before the cage. The man calls the bird's attention to it, then opens the cage door. Out hops Mr. Bird, picks up the coin with his bill, hops along a sort of bridge of cross rungs to a small box. Dropping the coin through a slot in the lid, it continues its way to a temple, pulls a string which rings a bell, then opens the door and disappears within a moment later to reappear with a tiny paper, folded, and bound with a red band. This he drops into your open hand and sometimes breaks the seal, then returns to its cage. The paper tells your fortune—but in Chinese.


text:
WASHINGTON, Aug 21 (AP) — Capping their history-making week, the first female soldiers to complete the Army's rigorous Ranger School are graduating Friday, putting a spotlight on the debate over opening all combat roles to women.
First Lt. Shaye Haver of Copperas Cove, Texas, and Capt. Kristen Griest of Orange, Connecticut, are pinning on the black-and-gold Ranger tab at a graduation ceremony, along with 94 male soldiers, at Fort Benning, Georgia. Defense Secretary Ash Carter called the women Thursday to congratulate them for finishing the nine-week training program.
Their success casts new attention on the obstacles that remain to women who aspire to join all-male combat units, including the 75th Ranger Regiment. Although Haver and Griest are now Ranger-qualified, no women are eligible for the elite regiment, although officials say it is among special operations units likely to eventually be opened to women.
Griest, 26, is a military police officer and has served one tour in Afghanistan. Haver, 25, is a pilot of Apache helicopters. Both are graduates of the U.S. Military Academy at West Point. Of 19 women who began the Ranger course, Haver and Griest are the only two to finish so far; one is repeating a prior phase of training in hopes of graduating soon.
The Army opened Ranger School to female soldiers for the first time this year as service leaders weighed opening more combat jobs to women. How far the military is willing to go toward ending gender restrictions will be evident soon.
Carter said Thursday he will decide by December whether to accept any recommended exceptions to an order, signed by one of his predecessors, Leon Panetta, nearly three years ago that said all positions must be open to qualified women unless service leaders can justify keeping any closed. Any recommended exceptions are due to Carter in October.
Griest told reporters Thursday she hopes her success shows that women "can deal with the same stresses and training that men can."
Some current and former military members feel strongly that the Pentagon is going too far to accommodate women.
James Lechner, a retired Army lieutenant colonel and former Ranger, said he questions whether the Ranger course adequately tested the female candidates under combat-simulated conditions and whether it makes sense to open all combat units to women.
"American women certainly serve with honor and distinction, provide some capabilities that males may not be able to provide," Lechner said in a telephone interview. "But when you talk about your fighting units, your combat arms units, especially the infantry, ... you don't need to just have the minimum standards. You need to have as good as you possibly can get."
Janine Davidson, a defense policy analyst at the Council on Foreign Relations and a former Air Force cargo plane pilot, said the success of Griest and Haver and the prospect of the Army fully integrating women into its ground combat force is "policy catching up with reality," given the extensive combat experience women had in Iraq and Afghanistan. It also reflects generational change, she said, which she has heard in conversations with high school students.
"They actually are shocked when they learn that women aren't already doing this kind of stuff - the idea that they themselves would not be allowed to do it," Davidson told reporters Tuesday.
Rangers call themselves "masters of special light infantry operations" such as seizing key terrain and infiltrating hostile territory by land, sea or air. They are an arm of Army Special Operations Command and U.S. Special Operations Command.
The Ranger School, which began during the Korean War as the "Ranger Training Command," fails most who enter. For the period between 2010 and 2014, 58 percent of candidates washed out - most of those within the first four days, a phase that includes tests of physical stamina, a land navigation course, and a 12-mile foot march, according to the Ranger training website.
Ranger history pre-dates to the Revolutionary War and includes prominent roles in the War of 1812 and the Civil War. In the June 6, 1944 D-Day landings on the beaches of Normandy, Rangers famously scaled the sheer cliffs of Pointe Du Hoc overlooking Omaha Beach.

redpajama_set_name: RedPajamaCommonCrawl


text:
Mayor seeking state assembly seat slain in southern Mexico
By | Associated Press
MEXICO CITY – A mayor who was running for a state assembly seat in southern Mexico has been killed by unidentified assailants, the latest in a recent spate of killings of candidates.
The leader of the governing Institutional Revolutionary Party "strongly condemned" the killing of Abel Montufar.
Montufar was on leave from his post as mayor of the city of Coyuca de Catalan in the southern state of Guerrero.
Guerrero Gov. Hector Astudillo wrote in his Twitter account Tuesday that Montufar "died in a cowardly and condemnable act."
Last week, a contender for the mayorship of the resort city of Zihuatanejo was killed in the same part of Guerrero state, and a town council candidate in northern Chihuahua state was among a group of people shot to death in an attack by gunmen.


Go #plasticfree with this cute Twin Set.
The affordable way to get our famous Stainless Steel Straws.
1 x bent PLUS 1 x straight stainless steel straw.
Choose from Original Steel, Black, Rainbow, Rose Gold or Gold straws.
Available in 6mm standard or 8mm smoothie width.


Only a few months left before my Spring In The Mountains painting will be published in a new book by Linea Editorial company.
It does take a long time to see an editorial illustration in publication. The process of the publishing involves not only artist's painting, but the work of whole team of editors, signing contracts, finalizing details.
I am blessed that this artwork was editorial choice; and soon, it will be on pages of a great book. I am also glad that I have an opportunity to paint editorial illustrations for different publications such magazines, books, and newspapers.


Last week we looked at an interesting topic that answered some of the misconceptions about when believers should exercise their authority. We learnt that although all Christians have been given authority over demons, only very few even understand it, much less use it. There are those who believe we can't exercise any authority until the millennium reign; they think Satan is the one running everything down here and that we cannot do anything about it! We also emphasized one of the greatest tricks the devil ever pulled was convincing the world he didn't exist. Because there are even sincere Christians who believe that demons or the devil do not really exist, but are metaphors for serious human problems. But we know better and in today's study we will be looking at how to "deal" with the Devil.
Once the issue of unbelief is dealt with then you can handle the devil and put him where he belongs!
• COUNTER TEMPTATION WITH THE WORD OF GOD!
Just as Jesus countered his temptations with the Word. See Matthew 4:1-11 and Luke 4. Also John 8:32 says: "You shall know the truth and the truth shall make you free."
"No temptation has overtaken you except what is common to mankind. And God is faithful; he will not let you be tempted beyond what you can bear. But when you are tempted, he will also provide a way out so that you can endure it." There may be a way of escape for temptation but not for sin!
• TAKE AUTHORITY OVER THEM!
Peter at the Gate Beautiful demanded that the lame man be healed (Acts 3:6).
When you make the demand, it is not from God; but from the devil. You are exercising your God-given rights when you do. When Jesus made this statement in John 14: "And whatsoever ye shall ask in my name, that will I do... If ye shall ask any thing in my name, I will do it" (vv. 13, 14). He was not talking about prayer. The Greek word here is "demand," not "ask." The Greek actually reads, "Whatever you demand as your rights and privileges." You don't have to stand there all day long and command devils to come out. All you need to do is to speak the word of faith. They will obey when you tell them to if you know your authority. They have to go once the command is given in faith.
• GIVE NO ROOM FOR THE WORKS OF THE FLESH!
Pride is usually one of the reasons we are unable to let go and forgive and therefore unable to submit to God. Also, sin in general (when harboured) renders us powerless!
Romans 13:14 says: "But put on the Lord Jesus Christ, and make no provision for the flesh, to gratify its desires."
• Where and when, are you usually tempted?
• Is there a particular space that often is harder?
Prepare for that time, remove opportunity for temptation. Avoid situations before you even get in them.
You don't get any brownie points for hanging around sin!
• REFUSE TO BE DISCOURAGED!
For every battle, we need courage. So the devil comes with discouragement - a loss of confidence or enthusiasm; dispiritedness. Especially by making people focus on their sins, weaknesses and failures because he knows that it's impossible for him to defeat you as long as you keep on fighting, so he tries to persuade you that you're a hopeless case, so you might as well surrender and give up. Deut. 31:8 says: "Do not be afraid or discouraged, for the LORD will personally go ahead of you. He will be with you; he will neither fail you nor abandon you."
As long as you are submitted to God, the devil is no match for you!
To deal with the devil, you have to be adequately equipped. Ephesians 6:13 says: "Therefore take up the whole armour of God that you may be able to withstand in the evil day, and having done all, to stand firm." In verse 17b of the same chapter, the Bible talks of the one offensive weapon in the entire armour; "the sword of the Spirit, which is the Word of God"!
The Word of God as a matter of fact, is "Quick (alive) & powerful, and sharper than any two-edged sword!" (Hebrews 4:12).
Finally, don't engage the devil in his territory (the arena of reason); but if he dares come into your territory, ensure your lifestyle (the word of your testimony) is right and because we have been made more than conquerors, your victory is sure!


text:
package org.apache.camel.component.timer;

import org.apache.camel.CamelContext;
import org.apache.camel.ComponentConfiguration;
import org.apache.camel.ContextTestSupport;
import org.apache.camel.EndpointConfiguration;
import org.apache.camel.impl.DefaultCamelContext;
import org.junit.Test;

public class TimerComponentConfigurationAndDocumentationTest extends ContextTestSupport {

    @Override
    public boolean isUseRouteBuilder() {
        return false;
    }

    @Test
    public void testComponentConfiguration() throws Exception {
        TimerComponent comp = context.getComponent("timer", TimerComponent.class);
        EndpointConfiguration conf = comp.createConfiguration("timer:foo?period=2000");

        assertEquals("2000", conf.getParameter("period"));

        ComponentConfiguration compConf = comp.createComponentConfiguration();
        String json = compConf.createParameterJsonSchema();
        assertNotNull(json);

        assertTrue(json.contains("\"timerName\": { \"kind\": \"path\", \"type\": \"string\", \"javaType\": \"java.lang.String\""
                + ", \"deprecated\": \"false\", \"description\": \"The name of the timer\" }"));
        assertTrue(json.contains("\"delay\": { \"kind\": \"parameter\", \"type\": \"integer\""));
    }

    @Test
    public void testComponentDocumentation() throws Exception {
        CamelContext context = new DefaultCamelContext();
        String html = context.getComponentDocumentation("timer");
        assertNotNull("Should have found some auto-generated HTML", html);
    }

}

redpajama_set_name: RedPajamaGithub


text:
package com.github.joshholl.intellij.csharp.lang.psi.impl;

import java.util.List;
import org.jetbrains.annotations.*;
import com.intellij.lang.ASTNode;
import com.intellij.psi.PsiElement;
import com.intellij.psi.PsiElementVisitor;
import com.intellij.psi.util.PsiTreeUtil;
import static com.github.joshholl.intellij.csharp.lang.lexer.CSharpTokenTypes.*;
import com.intellij.extapi.psi.ASTWrapperPsiElement;
import com.github.joshholl.intellij.csharp.lang.psi.*;

public class CSharpThisAccessImpl extends ASTWrapperPsiElement implements CSharpThisAccess {

  public CSharpThisAccessImpl(ASTNode node) {
    super(node);
  }

  public void accept(@NotNull PsiElementVisitor visitor) {
    if (visitor instanceof CSharpVisitor) ((CSharpVisitor)visitor).visitThisAccess(this);
    else super.accept(visitor);
  }

}


text:
April 10, 2021 By Suzanne Leave a Comment
Song of the Day: It Never Was You
The song of the day for Sunday, April 11, 2021, is "It Never Was You."
"It Never Was You" was written by Kurt Weill and Maxwell Anderson for the 1938 Broadway musical Knickerbocker Holiday, the score of which also included "September Song."
Tony Bennett recorded It Never Was You" in 1961 for the album My Heart Sings. Ralph Burns wrote the arrangement.
It Never Was You
Listen to It Never Was You on Spotify. Tony Bennett · Song · 1961.
"It Never Was You," as well as My Heart Sings, is available from Apple Music.
Filed Under: Song of the Day Tagged With: Kurt Weill, Maxwell Anderson, My Heart Sings, Ralph Burns, Tony Bennett
January 11, 2021 By Suzanne Leave a Comment
Song of the Day: Lost in the Stars
The song of the day for Tuesday, January 12, 2021, is "Lost in the Stars."
"Lost in the Stars" is from the 1949 musical of the same name, based on the 1948 novel by Alan Paton, Cry, the Beloved Country. Kurt Weill wrote the score, with lyrics by Maxwell Anderson. Set in South Africa in an era when apartheid seemed as if it would never end, the plot concerns a black priest whose son, in a robbery attempt, kills a white man who is a friend of his father. The priest sings this song at the end of the first act, in a complete crisis of faith.
Tony Bennett recorded "Lost in the Stars" for his second album, Tony, released in 1957. The very fine arrangement was written by Percy Faith.
Lost In the Stars
Listen to Lost In the Stars on Spotify. Tony Bennett · Song · 1957.
"Lost in the Stars," as well as Tony, is available from Apple Music.
Filed Under: Song of the Day Tagged With: Kurt Weill, Maxwell Anderson, Percy Faith, Tony, Tony Bennett
June 3, 2020 By Suzanne Leave a Comment
The song of the day for Thursday, June 4, 2020, is "Lost in the Stars."
"Lost in the Stars" was written by Kurt Weill and Maxwell Anderson for the 1949 musical of the same name, based on the 1948 novel by Alan Paton, Cry, the Beloved Country. Set in South Africa in an era when apartheid seemed as if it would never end, the plot concerns a black priest whose son, in a robbery attempt, kills a white man who is a friend of his father. The priest sings this song at the end of the first act, in a complete crisis of faith.
Tony Bennett recorded "Lost in the Stars" for the first time in 1956 for his second album, Tony. The arrangement was written by Percy Faith.
"Lost in the Stars," as well as Tony, is available from iTunes.
March 29, 2020 By Suzanne Leave a Comment
The song of the day for Monday, March 30, 2020, is "Lost in the Stars."
"Lost in the Stars" was written by Kurt Weill and Maxwell Anderson for the 1949 musical of the same name, based on the 1948 novel by Alan Paton, Cry, the Beloved Country. It was set in South Africa in an era when apartheid seemed as if it would never end.
Tony Bennett recorded "Lost in the Stars" in 1958 with Count Basie and His Orchestra for the 1958 album, In Person!. Ralph Sharon wrote the very effective arrangement.
"Lost in the Stars," as well as In Person!, is available from iTunes.
Filed Under: Song of the Day Tagged With: Alan Paton, Count Basie and His Orchestra, Cry the Beloved Country, In Person!, Kurt Weill, Maxwell Anderson, Ralph Sharon, Tony Bennett
May 5, 2019 By Suzanne Leave a Comment
The song of the day for Monday, May 6, 2019, is "Lost in the Stars."
"Lost in the Stars" was written by Kurt Weill, with lyrics by Maxwell Anderson, for the 1949 musical of the same name. Lost in the Stars was based on the 1948 novel by Alan Paton, Cry, the Beloved Country, set in South Africa during apartheid.
Today we're featuring Tony Bennett's first recording of "Lost in the Stars," recorded for his 1957 album Tony. It features an arrangement by Percy Faith.
Lost In the Stars – 2011 Remaster
Lost In the Stars – 2011 Remaster, a song by Tony Bennett on Spotify


text:
You are in [Themes] [Markets and Fairs]
Hungerford has developed from its earliest days as a market town, supplying the needs of the local residents and those of adjacent villages.
The earliest record of a market in Hungerford was in 1248, and later records show that there were two fairs, and three annual markets, for cattle, for wool, and for sheep. There are frequent references to the associated occupations of tanners, saddlers, fellmongers (dealing with fleeces and hides), mercers, dyers and weavers.
This article is split into a number of sections:
- The early town and first market
- The annual St Lawrence fair in August
- The Market Cross
- The Market stalls and Stall holders
- Traders' Occupations
- The 1573 Town Hall
- The market and fairs in the 18th and 19th centuries
- The Wool Fairs
- Peter Wyatt's recollections Recollections of a Country Fair - a fascinating account of "when the fair came to town".
Some of Hungerford's historic markets and fairs:
The range of markets and fairs has changed over the centuries, as have the days on which some were held. In the early medieval period there were no shops as we know them. All trade was carried out at market stalls in the market place. Shops began to be created in the 16th century, but were not in widespread use in small towns like Hungerford until the 19th century..
- Weekly Wednesday market (and later also in Corn Exchange) (from 1248)
- Annual Spring Cattle fair - various Wednesdays in April or May (from 1739)
- Annual Summer Wool fair - last week in June (pre 1873)
- Annual St Lawrence Statute (hiring) fair - 10 August (18th century)
- Sheep fair - 17 August (from c.1820)
By the 19th century the markets and fairs included:
- Weekly Wednesday market (and later also in Corn Exchange)
- Annual Spring Cattle fair - last Wednesdays in April
- Annual Summer Wool fair - last week in June
- Annual Sheep fair - 17 August
- Statute (hiring or "mop") fair - Wednesday before 10 October
- Statute (hiring or "mop") fair - Wednesday after 10 October (later becoming a "pleasure" or "fun" fair)
Hungerford Market, June 2009
tolls 1890
Hungerford Tolls Tarriff, 1890
tolls collected 1880
First page of Hungerford Tolls Record, 1890
tolls collected...
tolls record 1890-1956
Hungerford Tolls Record, 1890-1956
tolls record 18...
uhs-011
Street market outside the Town Hall, c1910
176-fair_02 oct 1950
Hungerford Fair, 2nd October 1950 showing Edwards' Golden Gallopers. Both before and after the Second World War the well known Swindon showman, Robert Edwards, who always claimed to have been born in (a caravan in) Hungerford High Street, regularly brought his gallopers to Hungerford and other local towns. His first roundabout had been bought second-hand in 1916 for eighty sovereigns! When this photograph from 1950 was taken they had brought 'Chariot Racer', 'Arcade', 'Joy Cars' as well as 'Shooter' and other supporting side stalls. They were a great attraction, nearly filling the High Street.
176-fair_02 oct...
people_08 Stop me and buy one
Stop me and Buy One, 1938. Bill Watts is seen here with his T. Wall & Sons Ltd. "Stop me and Buy One" tricycle. The photograph is taken in the market place, where Edwards' 'Monte Carlo Rally' ride was erected for the fair. You can just see that the front of the ride is over the white line – a necessity because the ride had to be built around the lime tree. It must have been the only fairground ride in the country with a tree growing out of the centre!
people_08 Stop ...
fair 02 oct 1950
Hungerford Fair, Oct 1950.
fair 02 oct 195...
Hungerford Market, Apr 2009
18200918 Reading Mercury - Hungerford markets
18200918 Readin...
20210825 11.14.31 (Medium)
Hungerford market, 25 Aug 2021.
20210825 11.14....
- Reading Mercury 18 Sep 1820 - advert for pitched market and new sheep fair
- Hungerford Market, June 2009
- Hungerford Tolls Record, 1890-1956
- Hungerford Tolls Tarriff, 1890
- First page of Hungerford Tolls Record, 1890
- Street market outside the Town Hall, c1910
- Hungerford Fair, 2nd October 1950 showing Edwards' Golden Gallopers. Both before and after the Second World War the well known Swindon showman, Robert Edwards, who always claimed to have been born in (a caravan in) Hungerford High Street, regularly brought his gallopers to Hungerford and other local towns. His first roundabout had been bought second-hand in 1916 for eighty sovereigns! When this photograph from 1950 was taken they had brought 'Chariot Racer', 'Arcade', 'Joy Cars' as well as 'Shooter' and other supporting side stalls. They were a great attraction, nearly filling the High Street.
- Stop me and Buy One, 1938. Bill Watts is seen here with his T. Wall & Sons Ltd. "Stop me and Buy One" tricycle. The photograph is taken in the market place, where Edwards' 'Monte Carlo Rally' ride was erected for the fair. You can just see that the front of the ride is over the white line – a necessity because the ride had to be built around the lime tree. It must have been the only fairground ride in the country with a tree growing out of the centre!
- Hungerford Market, Apr 2009
- Hungerford market, 25 Aug 2021.
The early town and first market:
Whilst the original vill of Hungerford developed around the church and the area now know as The Croft, a new medieval planned town was laid out, sometime between 1120 and 1250. (For more on the new town layout, see the Manorial History section).
The new town was established around the north-south (Oxford to Salisbury) road (now High Street), and the ancient east-west road (now Park Street and Church Street). At the intersection of these two roads, a market and market cross were set up.
In the 12th century markets sprung up throughout the kingdom, and local merchants benefited from the protection afforded by the lords, and the weekly market brought in locals from the surrounding villages.
The earliest record of a market in Hungerford was in 1248, in the time of king Henry III, when it was mentioned in a court case.
The case is recorded in the Berkshire Eyre (the King's court of itinerant justices) (MT Clancy, The Berkshire Eyre of 1248, Selden Society, vol 90, 1973, p 27). William, son of Henry, is alleged to have dug two dikes (fossa) in Shefford, which impeded Geoffrey of Oakhanger from going to Hungerford market as conveniently as he had been wont to. Geoffrey clearly regarded such an obstruction to his market-going as a serious matter, and so did the justices, who ordered the dikes to be destroyed and awarded Geoffrey damages. This illustrates the importance of the Hungerford market to villagers in Shefford.
Two members of the jury of this Eyre, who came from Hungerford, were named Mercator, (i.e. Merchant). This was a period in history when names were occupations and occupations became names, so clearly the merchant influence was strong even in such an otherwise basically rural society. Wealthy merchants may have travelled some considerable distance to do business or even settle in such a thriving small market town. In his history The Jews of Oxford (Oxford Historical Society, new series IX, 1951) Cecile Roth describes this enterprising community as extending its activities along the Thames and Kennet valleys, and quotes instances of these Oxford traders in Hungerford in 1244 and 1253. Indeed, in 1278 there is a reference in the Close Rolls (Chancery Records, C54 Close Rolls, 1278) to one of them as a local man 'Meyr de Hongreford'.
The weekly market in Hungerford appears always to have been held on Wednesdays.
In 1296, in the reign of Edward I, an inquisition post mortem shows that the tolls of the market belonged to the Earl of Lancaster, overlord of the manor of Hungerford (Victoria County History, Berkshire, iv p187).
In 1341 these market tolls were estimated by local jurors to be worth 40 shillings per annum. By 1394, however, their value had dropped to 23s 10½d. (TNA DL29/683/11061)
The annual St Lawrence fair in August:
By 1361 an annual fair in August was established on the feast day of St Lawrence (10th Aug), patron saint of the parish church. The tolls for this annual fair also went to the lord of the manor (TNA, Chan Inq pm Ed III pt 1, 122).
It was in 1361 that Maud (of Lancaster) inherited the huge Lancastrian estates, but she herself died childless the following year, on 10 Apr 1362. The Lancastrian estates passed to her sister Blanche, who was married to Edward III's fourth son, John of Gaunt, who was thus, at the age of 22 years, created 2nd Duke of Lancaster. John of Gaunt is reputed to have granted so many rights and privileges to the inhabitants of Hungerford, although firm evidence of this in the form of written charters was said to have been lost.
The importance of the local fishing rights has been much emphasised, but perhaps just as important were the rights to market tolls. In the Ministers' Accounts of 1431/2 and again in 1487/8 the townsmen had to reiterate their claims to exemption from rendering market tolls to the Duchy of Lancaster, 'inasmuch as they allege themselves excused by charter' (TNA DL29/691/11193, DL29/728/11981). By 1487/8 it was not so much the market toll receipts which concerned the townsmen but the wider freedom which the lost charter had given them.
The Market Cross:
The centre of the market was marked by a cross (also called the "high cross" or the "holy cross").
At some date a market house (also called the "Cross House" and "Court House") was erected there and this was where the tolls were collected.
The soil of the roadway where the tolls were collected belonged to the lord and therefore a rent was payable to him for this particular use. In the Ministers' Accounts for 1431/2 (and subsequently) an item shows 1d rent paid to the lord from 'the site of the Cross in the middle of the market there' (TNA DL 29/728/11981).
The market stalls and stall holders:
Around the Cross house and along both sides of the wide High Street, both to the north and to the south of the cross, were the market stalls and stall holders. The remaining records of these, containing reference to empty and abandoned stalls, suggests that they date from a period when the market was no longer in its heyday.
In 1431 the list was as follows (TNA DL 29/683/11061):
- a group of 3 stalls leased by the tanners,
- one stall leased to Richard Bocher,
- 3 stalls 'demised to divers men for market days',
- one vacant site demised for a stall to be built thereon,
- one stall 'of new rent' demised to Robert Fisher,
- one stall to John Baron, butcher,
- one to Thomas Knoll,
- one to Ralph Draper,
- one to Will Home and another plot or site,
- one stall to John Draper,
- an empty site demised to William Webbe 'lying opposite the tenement of John Blache on the west side, for making of one stall',
- one empty stall site to John Smith,
- another empty plot for a stall 'opposite the tenement of the rector',
- one site to John Wamewell,
- one plot of ground in the market to Walter Wygmore,
- another to William Wynde,
- a plot for a stall to Ralph Tanner,
- a stall to Simon Wygmore 'next to the stall of Walter Wygmore'.
This is a total of 14 stalls and 9 sites. Rents for individual stallholders were 4d, except for Robert Fisher and Walter Wygmore whose rent in each case was 6d. Stalls varied in size from 8 feet x 3 feet to 10 feet x 8 feet. Although the sites 'for a stall to be built thereon' suggest that the market was in a period of expansion, some of the sites may have been granted some time previously and remained undeveloped. This is suggested by the fact that some stalls still standing may have been abandoned, for the section of the accounts which deals with 'decayed' (uncollectable) rents includes a separate entry for the 3 stalls in the market place next to the Cross (the rent corresponds to that for the 3 stalls 'demised to divers men for market days') and also for the stall of Robert Fisher.
Stalls at first are likely to have been temporary structures - the word used for them 'shamell' meaning literally a 'bench'. It is possible that later references in the accounts to 'stalls' may refer to more permanent structures, whereas 'sites' may indicate removable stalls. Thus, for example, in 1431/2 Richard Bocher has 'one stall of new building' and Walter Webbe is granted a site 'for one stall to be built thereon.' The quit rent paid, of course, was for the site rather than for the stall itself. Where a stall prospered in business, year after year, there would be an inevitable tendency to erect a more permanent structure and to set up booths or to convert a street-facing room in a house into a shop. Thomas Dighton's 'little shop standing in the street' in 1573 is very likely a late relic of these booths (BRO H/M5).
More on the leases of market stalls:
The Accounts also provide a record of the dates on which the leases were granted (usually to last for a term of lives). The earliest of the leases thus granted or regranted in 1431 would seem to have been Richard Bocher's in 1395. Later accounts show that the holdings might continue within a family for several generations. In such cases the name of the original holder remains in the series of accounts. Thus as late as 1509/10 some of the 1431 rental names still appear, even though circa 1470 their stalls were said to be 'in decay'. Where there are stall-holding changes, these are to new holders of different surnames, and such changes indicate a 'tenable' stall rather than one 'in decay'. Most stalls still paid a uniform annual rent of 4d, but exceptions to this were the three stalls near the market cross let to 'diverse men' (a total rent of 16d) and the stalls of the tanners (3s 6d).
The traders' occupations:
Ministers' Accounts do not usually record the occupations of the stall holders, though we have reference to (anonymous) tanners and to John Baron the 'bocher' (or butcher), whose stall had previously been held by John Bocher ("John the butcher").
Indeed the surnames of the 1431 stall holders may give us a fair indication of some of the trades flourishing - fisher, butcher, draper, weaver (Webbe), tanner are among them.
One of the most interesting entries is that which relates to 'le travers' - a word which would seem to mean 'the workshop'. It is first found in a manorial court roll for 1480 (DL 29/683/11061) where it is recorded that Thomas Bukland alias Smith paid 2d. quit rent for a 'travers' 8 foot by 3 foot in the High Street for shoeing horses (ad equos ferrandum). The site was 'facing the lord's hospice' and had been granted to Thomas in 1466. In 1552 this was one of Nicholas Baker's two stalls.
More from the Duchy of Lancaster rentals and surveys:
In a town rental c1470 there is an entry of 1d 'per domo Sti. Crucis in medio vill', or 'for the house of the Holy Cross in the town centre' (TNA DL 43/1/4).
The same rental contains two lists, one of 'tenable' stalls, another of stalls 'in decay'. By this date the number of tenable stalls has been reduced to seven and the number of stalls in decay has increased to eleven. Whatever the state of the market in 1431, clearly it had been in decline since that date.
In 1487 John Gunter made a return of the profits derived from the manor, when the townsmen alleged that they were excused by charter from paying anything to the crown on account of the market tolls" (VCH p187). The actual wording is "from the outgoings or profits of diverse grains issuing from the tolls there collected in this year through the market days , they do not render anything inasmuch as nothing of this kind has happened within the time of this account and inasmuch as they allege themselves excused by charter". (Berks RO DL29/691/11193).
A survey by the Duchy of Lancaster of 1543/4 referred to the "Courte House" as being "ruinous and utterly dekeyed". During the "Charters Case" in 1573 , mention was again made of the "weakness of the building", and in 1598 it was said to have been "but meanly repaired".
The next town rental in 1552 (TNA DL 42/108 f 91) continues to list seven stalls, two held by Nicholas Baker, two by the farmer of the lands of a newly dissolved priory, one by a chantry and two by John Aley.
By the reign of Edward VI (1547-1553) the Cross House may have been nearing the end of its useful existence. It was then still leased, "in the tenure of Roger Tuggy" at a rent of 4 shillings per annum (TNA E 36/258 f 148).
Within a year of that date, another document refers to 'lez Standynges' in the town market place, of which one tenement called the Cross House was assessed at 7s 4d rent, but because of its decay this rent was reduced by 3s 4d (TNA DL 29/7231/11779). In 1552 a town survey lists the Cross House at its usual quit rent of 1d; in 1591 it was leased by Philip Seimor at a rent of 20d p.a. with a quit rent raised to 2d (TNA DL 42/117).
In the 1573 town rental there are no references to stalls, nor are there in any subsequent survey. This does not mean that the market had ceased but probably reflects the stalemate in town and manorial administrative relations which followed the loss of the town 'charters'.
The 1573 town hall:
In 1573 a new Elizabethan Town Hall was built at the local townsmen's expense: "The town and whole parish of Hungerford have at their own cost builded an house with shop under called the Town Hall, wherein the Queen's courts and law days are kept and there is also the prison kept [there].".
Around the Town Hall stood the usual pillory, stocks and whipping-post. A ducking-stool was also kept there.
Nearby was a market house for corn, and another for butter and cheese. "There is also near adjoining unto the said Town Hall one market house for corn, with a loft over the same, from which there is paid yearly quit-rent to the King 2d.; and not far distant from the same there hath been builded the market house for butter, cheese and other commodities."
There seems little doubt that the market house was the old Cross House, let to Philip Seimor in 1591. Whether the upper chamber of this served also as the old Court House which the new town hall had replaced, is not clear. There was a shop "under the same Hall, and also two prisons thereunto adjoining for the punishment of malefactors. Not far distant from the same town hall there hath been builded the market house for butter, cheese and other commodities."
At a later date.the "Market House" was privately owned by Sir Richard Hawkins, a London Alderman. It was bought from his executors after his death in 1688, the same year that Prince William of Orange came to The Bear.
The market and fairs in the 18th and 19th centuries:
Hungerford's market did not cease to exist after the Middle Ages, but its nature changed in that instead of being the most important single economic activity, the drive behind all the others, it became more of a supplement to other activities - instances for example of tanning, fulling, dyeing, brewing, fishing, sheep-farming frequently occur - most of which could sustain themselves even without the market's added benefits.
In the early seventeenth century, once the town achieved settlement of its long-disputed borough status (see The Case of the Missing Charters) the market enjoyed a notable resurgence.
The Annual Spring Cattle Market:
The Constables' Accounts of 1789 state: "The first Great Markett on ye Second Wednesday in May was on ye 9th day of ye same month in ye year 1739 - Thos Woodroffe, Constable.
Mr Thos Robinson ye first man that sold any cattle in ye Markett which was two heifers for a man of Kintbury."
The new Town Hall, 1786:
A new town hall was built in the market place in 1786. The 1796 Berkshire Directory that Hungerford "has a weekly market every Wednesday, for corn, pigs, and butcher's meat; and a statute fair on the 10th of August, and one for cattle the last Wednesday in April, when there is a decent shew. Here is a good market-house and shambles."
It seems that trade in the old Town Hall was not always as brisk as might have been hoped. The Newbury Weekly News reported (in its very first edition, on 7 Feb 1867, that at Hungerford the previous day...
"The attendance at to-day's market was not large. The quantity of wheat was small, the trade for which was very quiet at Monday's reduction of prices. Barley, of this we had a considerable supply, both of weathered and fine samples, trade for which was by no means brisk, and cheaper than last week. Oats, beans, and peas were in short supply at late rates. The following are the prices: Wheat 60s to 68s; Barley 31s to 50s; Oats 21s to 28s; Beans 42s to 48s; Peas 40s to 46s; Bread 8d the 4lb loaf; Flour, per sack, 50s."
The present-day Town Hall and Corn Exchange building was opened in 1871. Follow this for more on the Town Halls.
The importance of sheep:
It is hard to overstate the important place that sheep held in the British economy until quite modern times. It has been estimated that in 1500 the human population of England was no more than 3 million - but there were 8 million sheep.
Wool was needed for everything from blankets to clothes, and only the very rich could afford such expensive alternatives such as linen or silk. There are many large and important "wool" churches - largely paid for by the wool and cloth trade - including St. Nicholas' in Newbury.
One of the largest sheep fairs in the country was held at East Ilsley, where up to 80,000 sheep could be brought to market on a single day, from as far away as the Salisbury Plain.
Hungerford's Sheep Fair:
An advertisement was placed in the Reading Mercury of 18 Sep 1820 (see Photo Gallery) encouraging "Stock Farmers and Sheep Dealers" to attend the Hungerford Pitched Market, as "it will be proposed to establish Sheep Fairs or Markets to be held at Hungerford; the accomodation which Hungerford affords for sale of Sheep (by its central situation between Wiltshire and Berkshire Downs, the excellence of the roads in all directions, and the fine Down adjoining the town for pens,) not being equalled in the neighbourhood."
Hungerford's Annual Summer Wool Fair:
In 1867 the Reading Mercury included an advertisement: "Hungerford Wool Fair. Notice is hereby given that the Annual Wool Fair will be held at Hungerford, Berks, on Wednesday the 26th of June 1867, at 11.a.m. Every accommodation will be provided for Weighing and Storing Wool; and to save time, it is recommended that the Wool be sent and weighed the day prior to the Fair. H E Astley, Hon. Sec., Hungerford, 5th June 1867."
An account of the Wool Fair appeared in the NWN on 27 Jun 1867.
In 1873 the Hungerford Wool fair was held on 25th June "at the Corn Exchange, and was very well attended by buyers and dealers. The number of sheets pitched was 263, 24 more than last year. The prices realised were not so good as last year by about 10s; being for Mixed, 43s to 44s; Tegs, 46s to 48s; Ewes, 42s to 43s." At the Wool Fair on 1st July 1874, the number of Tods pitched was 2738, 136 more then the previous year. In 1876, only 1854 tods of wool were brought to the Corn Exchange. They were sold for 33s to 35s, despite being in good condition.
The Parish Magazine of September 1874 records an exceptional Sheep Fair on the Downs on 17th August. In 1872 there had been 1300 sheep; in 1873, 3,500 sheep, but in 1874 there were 6,600 sheep - a remarkable increase. In 1875 there were about 5,000 sheep penned.
An entry in the September 1881 edition of the Parish Magazine states: "Our annual Sheep fair was held on the Downs on Wednesday August 17. The supply was unusually good, and the number of sheep brought to the Fair being not much short of seven thousand. Most of the sheep were of excellent quality and fetched better prices than at previous fairs. Lambs sold at 30s to 40s per head; one lot at 48s. Sheep generally fetched 40s to 50s per head." [A Tod is an English unit of weight, chiefly for wool, commonly equal to 28 pounds (12.7 kilograms) but varying locally.]
The 1891 Kelly directory lists: "Two statute or hiring fairs are annually held in the Market Place, one on the Wednesday before and the other on the Wednesday after old Michaelmas Day [10th or 11th October]; there are also fairs held the last Wednesday in April for cattle, the last week in June for wool and August 17th for sheep."
Michaelmas Day, on 29th September, is the Feast of St Michael the Archangel. It marks the end of the farming year. Traditionally it was the time when houses and land changes hands, and farm workers and domestic servants were hired for the coming year. Goose fairs and sheep sales were held on this day for hundreds of years, and in various parts of the country Michaelmas Day is still known as Goose Day.
In Marlborough two Mop Fairs (or Hiring Fairs) are still held either side of 11th October. Farm workers, labourers, servants and some craftsmen would work for their employer from October to October. At the end of the employment they would attend the Mop Fair dressed in their Sunday best clothes and carrying an item signifying their trade. A servant with no particular skills would carry a mop head - hence the phrase Mop Fair.
Employers would move amongst them discussing experience and terms, once agreement was reached the employer would give the employee a small token of money and the employee would remove the item signifying their trade and wear bright ribbons to indicate they had been hired. They would then spend the token amongst the stalls set up at the fair which would be selling food and drink and offering games to play.
Michaelmas Day:
Michaelmas Day is celebrated on 29th September but Mop Fairs were tied to the seasons and the harvest, not the calendar. When the Gregorian calendar was adopted in 1752 and eleven days dropped from that year events associated with the end of the harvest moved eleven days later to 10th October. This date is known as "Old Michaelmas Day" and since 1752 has been the date Mop Fairs take place.
Whilst most hiring fairs (or "mop" fairs) were held around Old Michaelmas Day, some were held in anticipation of Candlemas Day (2nd February), when yearly contracts were entered into.
The "pleasure" fairs started in the 19th century:
(With thanks to Peter Wyatt for this part of the article):
So, probably due to the changes in the calendar in the 18th century, two fairs were then established annually on the Wednesday before October 11th (Old Michaelmas Day) and the Wednesday afterwards.
In due course the first fair came to be a hiring fair when labourers and servants could be hired for a year's labour with a new employer.
The second fair became a pleasure fair in the early 19th century.
Many itinerant showmen, pedlars and horse traders follow these fairs. Various other shows all started to make their appearance at this time becoming very popular with the local inhabitants.
In 1887 John Jennings purchased a set of three-a-breast horses, which was believed to be a dobby set, before being converted to galloping action later. This set came to Hungerford for many years until about 1930.
In 1893 the local press reported "that although a good crowd was attracted to the fair, there was more pleasure than business transacted, and there was one roundabout of galloping horses which seemed to secure a large amount of patronage"!
There were a few swing-boats, squirts, coconuts and the usual stalls, whilst shows attending included a boxing saloon, "Terry's crocodile from Egypt" and "Violetta the strongest jawed lady on earth".
By the turn of the century the hiring fairs had ceased and both days were given over to pleasure fairs.
In 1903 Henry Jennings of Devizes had taken over the gallopers and vastly improved them by the addition of electric light, which was provided by the famous Wallis and Stevens showman's engine "Royal John" purchased the same year. This engine was regarded as the most decorated engine in show land, being literally a mass of gold leaf scrolls and rising sun rays, all done to attract attention and encourage the public to spend their pennies on his attractions, which apparently rode to capacity at many events the firm attended. All the time "Royal John" was in Jennings' ownership the engines had only one driver, the renowned Sid Willis senior. Apart from the gallopers all equipment was horse-drawn including the organ which was always pulled by a white horse.
When at Hungerford fairs, Mrs. Jennings would purchase a large quantity of fritters (a local delicacy) from the baker's shop and fry them in butter in the open air for the gaff lads' tees.
The "squirt" stall was always in evidence, where one could buy a bag of confetti and squirt for one old penny. After the fair tubes would be collected on refilled from a static rainwater tank at the rear of a public house ready for use at the next event - usually Marlborough mop.
Bill Webb's wife made delicious homemade sweets, boiling the sugar in copper pans and pulling it on a hook in the time-honoured way. Brandy snaps, humbugs and toffee apples were greatly sought after.
In 1908 a Boxing Show appeared at the fair, presenting a newcomer who was later to become Champion of All England. His name was Joe Beckett, who was only a lad just starting out on his career in the ring.
In the years before 1914 the fair really prospered, when it must be realised that in country areas there was no transport, nor cinemas nor any other form of entertainment. So the annual fairs were greatly looked forward to, people walking many miles from villages around to attend.
So great were the crowds attending Hungerford fairs in those years that overflow amusements were erected on other sites in addition to the streets.
Baker's Hippodrome came with their amusements to the Croft and Symonds' Fair occupied a meadow on the Bath Road.
At 11pm on the Wednesday evenings my grandmother would leave my grandfather to close up the business whilst she crossed the street and had the last ride on the horses, whilst the organ played the showmen's anthem "God be with you till we meet again".
The 1911 and 1916 Cosburn's Directories state that the "Corn Exchange is open for business on Wednesdays from 12.30 till 3.30".
Curtailed fairs during the First World War:
Curtailed fairs were held during the First World War but Jenning's engines were engaged on His Majesty's Service so there were no rides present.
Fairs revived in 1919:
The fairs were revived in 1919, but in 1922 Henry Jennings sold the gallopers and "Royal John" to J & H Williams of Tadley and Newbury, who took over the existing rights, whilst almost every sort of show came to the fair at various time, including Chipperfield's Animals Show, the Wall of Death, various Freak Shows and Boxing Academies. Another show then much in evidence was provided by "Darkie" Barrett who ran a KIE show with his wife and daughter Margaret, at many fairs in the area later running a smallholding until his death in the 1960s.
By 1920, Kelly Directory reports "The Market day is Wednesday, and a pitched market is established in the Corn Exchange." The two statute fairs are still held annually, as are the wool fair in the last week of June and the 17th August sheep fair.
By 1939 (Blacket's Directory) says that the weekly Wednesday market is for "Eggs, etc.". The "Corn Exchange is open for business every Wednesday from 12 till 2pm. Clerk of the market, S.F. Bushnell."
In 1933 there came another great change. The rights were taken over by R Edwards and Sons of Swindon who transformed the fair with provision of dodgems, Noah's Ark and other modern equipment.
Mr Robert Edwards senior had a great affection for the town having been born in a caravan at the fair on October 15th 1879 and on the occasion of his 70th birthday he claimed never to have missed attending the fair since then, and always made a point of looking up old friends and acquaintances when in town.
Edwards dispensed with their showman's engines "Earl Kithener", "Progress" and "Starlight" after 1936, going over to Armstrong-Saures and Scammells.
I can recall from this time also the toy stores where one could buy a Canary that whistled when swung on a stick, Fairy Dolls for the girls, Bats and Balls which were tied together with elastic and covered in glitter dust, all purchased for just a few pence.
All prizes on stalls were of good value such as china teapots, cups and saucers, tins of toffees, or glass vases and Willow Pattern tea services.
One of the early memories I have is of Jack Edwards' Tilling Steevens lorry, which had had the bus body removed and a wooden box body fitted and was always "on the boil" when generating.
Also, Charlie Wells lorry ran a dynamo off the crankshaft, through a hole in the floor of the cab!
The 1930s also saw almost all showmen going over to mechanical transport, although two families continued to use horses until the outbreak of war in 1939.
During the 1930s a carnival was held annually in September, again with Messrs Edwards providing the amusements.
In 1938 for this event, they presented a new ride - the "Monte Carlo Speedway" in addition to "The Ark" and dodgems, the latter ride being so large that a tree had to be built around in the centre island.
This was the only time three rides were built up in the street but of course there was very little traffic in those days.
No fairs during the Second World War:
The fairs were not held during the war between revived in 1945 although never to their previous status.
The fairs were revived in 1945:
Only "The Ark" was the major ride, also Edwards bought the "Joy Cars" juvenile ride, "Arcade" and shooter.
Two spinners were always in evidence, those of G Frankhams Boadicea spinner and George Symonds "Airways" spinner, with the additional attraction of Sid Willis's "Housey Housey" stall.
I recall the following showmen who came annually - Charley Webb, John Bunce, Sid Willis, Mrs. Voyle and her sons, Sam Smart, Jack Edwards, George Symonds and his family, Tubby Black, and of course the person I regard is one of my oldest friends in showland - Dolly Harris.
John Bunce's wife Hilda provided toffee apples reputed to be the "best in the West".
In 1953 the carnival was revived and then for several years R Edwards and Sons presented five rides on the Croft, an open space near the town centre.
The fairs ceased in 1965:
By 1953 the traffic was getting a problem and with no way around the main street, which is the main A338 Oxford to Salisbury road, the fairground gradually dwindled and ceased altogether in 1965.
Times change, and people have other interests, such as television, cars, sport and hobbies, but the above memories will always remain with me to remind me of those happier days when the fair came to town.
The Wednesday market rises again:
After a lapse of about 50 years, the Wednesday street market was restarted in 1983. See "Trustees agree to Hungerford street market", NWN 21 Apr 1983, "Market returns after 50 years", NWN 14 Jul 1983 and "Market begins trading again after 50 years", NWN, 21 Jul 1983.
This move was not universally popular, however, and it appeared in Feb 1986 that the market may close. See "Street market closure likely at Hungerford", NWN 2 Feb 1986.
Nowadays the only remaining market is the weekly market held on Wednesdays and a seasonal Farmers' Market on Sundays. The Farmers' Market celebrated its 6th birthday in May 2012 (see NWN "Big 6 celebration for farmers' market", 31 May 2012).
- "Hungerford's Market in the Middle Ages", by Norman Hidden (reprinted in Berkshire Old and New, Vol 15, from which parts of this article derive).
- Parish Magazines
- Rural Calendar
- Town Halls
- Buttermarket
- Steam fairs on the Common, 1970-78
- Peter Wyatt's "Recollections of a Country Fair"


Any hat with a brim width of more than 4 inches we must start with an oversized hat body, which adds a little to the cost. The knife without sheath weighs less than 1 pound. Brand Artist — A rustler who alters brands with a running iron. In 2012 we supplied a pure beaver hat for a door prize at a Super Bowl party held by Americans for the coalition troops in Afghanistan. Highly influenced by classic science fiction and fantasy, and the stories in the golden era of Pulp magazines, Oliver loves exploring all sorts of uncanny possibilities. Sheaths are pre-fitted to dull blades so when the blade is sharpened it will not dull on the sheath edge.
This is a true work of wearable art. Our online is free for all and includes some of the most interesting and complete information available online. And should your beloved jewelry ever need to be repaired, we help with that, too. Alltribes Native American Art and Jewelry blends ancient history, natural beauty, and unparalleled expertise flawlessly. Barrow-tram — A rawboned, awkward looking person. Includes 100 year old wood spacer between the brass guard and stag handle like the original on display in the Wittliff Collection in San Marcos, Texas.
The skilled artisans at Alltribes continue the age-old tradition and create captivating works of art that will surpass your expectations! Thank you so much again. It is adjustable to all hat sizes. When Cowlorado Kid is captured during the infiltration, Moo Montana and Dakota Dude must find Sidewinder City and rescue him while also dealing with the Masked Bull. Most small brimed, or Town hats, have a bound edge. Belly Through the Brush — Dodge the law. The next morning, Bat Blastagun plans his revenge on Moo Montana.
Now Moo must decide between Miller Glen where he is beloved by the townsfolk and Cowtown. You can also own Hopi Kachina dolls, pueblo pottery, hand-dyed leather belts, dreamcatchers, tomahawks and other Southwestern and Native American artifacts, to beautify your home and your life. Boatable — Navigable for boats, or small river-craft Bobbery — A squabble, argument. Buster — Anything large in size or a man of great strength. Wild West Living gives you a big choice of materials in our Western rings. Sheath with welt and matching cattle brands as on the holsters. We have some where around 150 different styles of custom cowboy hats in our catalog, enough for even the finickiest cowboy to find a hat style they like! It will have the same blade and handle look as its big brother but in a very utilitarian size.
Oliver lives between the United States and Europe and loves to travel. Refund Policy We are making a hand made Custom Old West, or Western Movie Hat for you. Bend an Elbow — Have a drink. I was immediately drawn into the main character Sheriff Tiberius. We have sourced these blades from a company that began making them in Germany over a hundred years ago using the finest Solingen steel and crafting.
Cross draw or regular drop. Bodega — Spanish term for a cheap. Do you dream about the beauty of soaring mountains, vast plains and generous sunshine? Several complaints centered on a much more durable luggage tag. Belt loop with ring allows the rig to adjust when you sit or move. Wolfgang Wolfenstein, Bat Masterson uses the shard to shrink everything.
. This is our answer to the need. And if you are looking for something to dazzle the masses, our hats are end of the line fine for that as well. His horse's name is Cyclone. Blow — To taunt; to ridicule.
We also have Western Hat Bands available from Cactus Mountain. However, their knowledge of Wild West living was limited, and as such, many things about their culture had to be improvised to 'fill in the blanks'. Now you can custom design your hat band with you choice of conchos and beads. Currently there are two Pyramid Raiders knives available. Decades later the hat companies started pre-creasing the cowboy hats in the most popular styles. This hat band is a true collectible of American History.
Black-eyed Susan — A six-gun. Our companion is a general purpose knife and sheath for your adventure. Bunko Artist — A con man. Belvidere — A handsome man. It features ten die struck and hand stamped conchos made from shimmering nickel Silver for a high shine that won't tarnish.


Very often on the News pages I put TOPS reports, and for those that don't have access to the TOPS system, it can be difficult to know what all the information means. Hopefully this page will help.
Awaiting transfer to, or en route to, BREL Workshops, or at BREL Workshops awaiting start of work. This code should not be entered until the locomotive is accepted for works attention by Regional Shopping Controller. Until accepted for works, Oprata code X should be used with REASOS code DEC.
At a TMD awaiting start of work. Do not revert to this code once maintenance has commenced, even if work subsequently ceases.
Failure or accident in traffic. Can be used whilst loco is still shown working a train, but should be changed to OPESTA, T, D, or X as soon as possible.
Waiting material whilst undergoing maintenance or repair work at a TMD. The REASOS code entered should indicate the material required, or if more than one item, that which is likely to affect the expected release time (EXPTIM).
Note: A loco in this status may be subject to a Restricted working.
Withdrawn from service for scrapping or conversion for use by a non-revenue earning department. This code can only be entered by the owning Regional Maintenance Control. The locomotive can only be moved dead-in-tow.
Stored in a serviceable condition, but requiring examination before being used. This code can only be entered by the owning Regional Maintenance Control.
Awaiting transfer to, or en route to, a TMD for maintenance or repair. Also be to used to show transfer from one TMD to another for maintenance or repair. A pre-assignment must be used with code o indicate the depot to which the locomotive is to be transferred.
Stored in an un-serviceable condition. This code can only be entered by the owning Regional Maintenance Control.
Undergoing maintenance or repair at a TMD or on a test run when used with REASOS code TST.


Excellent condition, new bath, new heating unit, new hot water tank, new pella windows, all new doors, 1car gar, hardwood floors, finished basement with separate entrance, fully alarmed. Walk to junction and all trains.
Note: web mortgage-calculator is a sample only; for actual mortgage calculation contact your mortgage provider.


text:
package org.apache.flink.table.planner.codegen.agg.batch

import org.apache.calcite.tools.RelBuilder
import org.apache.flink.api.java.tuple.{Tuple2 => JTuple2}
import org.apache.flink.metrics.Gauge
import org.apache.flink.table.data.binary.BinaryRowData
import org.apache.flink.table.data.utils.JoinedRowData
import org.apache.flink.table.data.{GenericRowData, RowData}
import org.apache.flink.table.expressions._
import org.apache.flink.table.functions.AggregateFunction
import org.apache.flink.table.planner.codegen.CodeGenUtils.{binaryRowFieldSetAccess, binaryRowSetNull}
import org.apache.flink.table.planner.codegen._
import org.apache.flink.table.planner.codegen.agg.batch.AggCodeGenHelper.buildAggregateArgsMapping
import org.apache.flink.table.planner.codegen.sort.SortCodeGenerator
import org.apache.flink.table.planner.expressions.DeclarativeExpressionResolver
import org.apache.flink.table.planner.expressions.DeclarativeExpressionResolver.toRexInputRef
import org.apache.flink.table.planner.expressions.converter.ExpressionConverter
import org.apache.flink.table.planner.functions.aggfunctions.DeclarativeAggregateFunction
import org.apache.flink.table.planner.plan.utils.{AggregateInfo, SortUtil}
import org.apache.flink.table.runtime.generated.{NormalizedKeyComputer, RecordComparator}
import org.apache.flink.table.runtime.operators.aggregate.{BytesHashMap, BytesHashMapSpillMemorySegmentPool}
import org.apache.flink.table.runtime.operators.sort.BufferedKVExternalSorter
import org.apache.flink.table.runtime.typeutils.BinaryRowDataSerializer
import org.apache.flink.table.types.logical.{LogicalType, RowType}

import scala.collection.JavaConversions._

object HashAggCodeGenHelper {

  def prepareHashAggKVTypes(
      ctx: CodeGeneratorContext,
      aggMapKeyTypesTerm: String,
      aggBufferTypesTerm: String,
      aggMapKeyType: RowType,
      aggBufferType: RowType): Unit = {
    ctx.addReusableObjectWithName(
      aggMapKeyType.getChildren.toArray(Array[LogicalType]()),
      aggMapKeyTypesTerm)
    ctx.addReusableObjectWithName(
      aggBufferType.getChildren.toArray(Array[LogicalType]()),
      aggBufferTypesTerm)
  }

  private[flink] def prepareHashAggMap(
      ctx: CodeGeneratorContext,
      groupKeyTypesTerm: String,
      aggBufferTypesTerm: String,
      aggregateMapTerm: String): Unit = {
    // create aggregate map
    val mapTypeTerm = classOf[BytesHashMap].getName
    ctx.addReusableMember(s"private transient $mapTypeTerm $aggregateMapTerm;")
    ctx.addReusableOpenStatement(s"$aggregateMapTerm " +
        s"= new $mapTypeTerm(" +
        s"this.getContainingTask()," +
        s"this.getContainingTask().getEnvironment().getMemoryManager()," +
        s"computeMemorySize()," +
        s" $groupKeyTypesTerm," +
        s" $aggBufferTypesTerm);")
    // close aggregate map and release memory segments
    ctx.addReusableCloseStatement(s"$aggregateMapTerm.free();")
    ctx.addReusableCloseStatement(s"")
  }

  private[flink] def prepareTermForAggMapIteration(
      ctx: CodeGeneratorContext,
      outputTerm: String,
      outputType: RowType,
      aggMapKeyType: RowType,
      aggBufferType: RowType,
      outputClass: Class[_ <: RowData]): (String, String, String) = {
    // prepare iteration var terms
    val reuseAggMapKeyTerm = CodeGenUtils.newName("reuseAggMapKey")
    val reuseAggBufferTerm = CodeGenUtils.newName("reuseAggBuffer")
    val reuseAggMapEntryTerm = CodeGenUtils.newName("reuseAggMapEntry")
    // gen code to prepare agg output using agg buffer and key from the aggregate map
    val binaryRow = classOf[BinaryRowData].getName
    val mapEntryTypeTerm = classOf[BytesHashMap.Entry].getCanonicalName

    ctx.addReusableOutputRecord(outputType, outputClass, outputTerm)
    ctx.addReusableMember(
      s"private transient $binaryRow $reuseAggMapKeyTerm = " +
          s"new $binaryRow(${aggMapKeyType.getFieldCount});")
    ctx.addReusableMember(
      s"private transient $binaryRow $reuseAggBufferTerm = " +
          s"new $binaryRow(${aggBufferType.getFieldCount});")
    ctx.addReusableMember(
      s"private transient $mapEntryTypeTerm $reuseAggMapEntryTerm = " +
          s"new $mapEntryTypeTerm($reuseAggMapKeyTerm, $reuseAggBufferTerm);"
    )
    (reuseAggMapEntryTerm, reuseAggMapKeyTerm, reuseAggBufferTerm)
  }

  private[flink] def genHashAggCodes(
      isMerge: Boolean,
      isFinal: Boolean,
      ctx: CodeGeneratorContext,
      builder: RelBuilder,
      groupingAndAuxGrouping: (Array[Int], Array[Int]),
      inputTerm: String,
      inputType: RowType,
      aggInfos: Seq[AggregateInfo],
      currentAggBufferTerm: String,
      aggBufferRowType: RowType,
      aggBufferTypes: Array[Array[LogicalType]],
      outputTerm: String,
      outputType: RowType,
      groupKeyTerm: String,
      aggBufferTerm: String)
    : (GeneratedExpression, GeneratedExpression, GeneratedExpression) = {
    val (grouping, auxGrouping) = groupingAndAuxGrouping
    // build mapping for DeclarativeAggregationFunction binding references
    val argsMapping = buildAggregateArgsMapping(
      isMerge, grouping.length, inputType, auxGrouping, aggInfos, aggBufferTypes)
    val aggBuffMapping = buildAggregateAggBuffMapping(aggBufferTypes)
    // gen code to create empty agg buffer
    val initedAggBuffer = genReusableEmptyAggBuffer(
      ctx, builder, inputTerm, inputType, auxGrouping, aggInfos, aggBufferRowType)
    if (auxGrouping.isEmpty) {
      // create an empty agg buffer and initialized make it reusable
      ctx.addReusableOpenStatement(initedAggBuffer.code)
    }
    // gen code to update agg buffer from the aggregate map
    val aggregate = genAggregate(
      isMerge,
      ctx,
      builder,
      inputType,
      inputTerm,
      auxGrouping,
      aggInfos,
      argsMapping,
      aggBuffMapping,
      currentAggBufferTerm,
      aggBufferRowType)

    val outputExpr = genHashAggOutputExpr(
      isMerge,
      isFinal,
      ctx,
      builder,
      auxGrouping,
      aggInfos,
      argsMapping,
      aggBuffMapping,
      outputTerm,
      outputType,
      inputTerm,
      inputType,
      Some(groupKeyTerm),
      aggBufferTerm,
      aggBufferRowType)

    (initedAggBuffer, aggregate, outputExpr)
  }

  private[flink] def buildAggregateAggBuffMapping(
      aggBufferTypes: Array[Array[LogicalType]]): Array[Array[(Int, LogicalType)]] = {
    var aggBuffOffset = 0
    val mapping = for (aggIndex <- aggBufferTypes.indices) yield {
      val types = aggBufferTypes(aggIndex)
      val indexes = (aggBuffOffset until aggBuffOffset + types.length).toArray
      aggBuffOffset += types.length
      indexes.zip(types)
    }
    mapping.toArray
  }

  /**
    * Generate codes which will init the empty agg buffer.
    */
  private[flink] def genReusableEmptyAggBuffer(
      ctx: CodeGeneratorContext,
      builder: RelBuilder,
      inputTerm: String,
      inputType: RowType,
      auxGrouping: Array[Int],
      aggInfos: Seq[AggregateInfo],
      aggBufferType: RowType)
    : GeneratedExpression = {
    val exprCodeGen = new ExprCodeGenerator(ctx, false)
        .bindInput(inputType, inputTerm = inputTerm, inputFieldMapping = Some(auxGrouping))
    val converter = new ExpressionConverter(builder)

    val initAuxGroupingExprs = auxGrouping.map { idx =>
      GenerateUtils.generateFieldAccess(ctx, inputType, inputTerm, idx)
    }

    val initAggCallBufferExprs = aggInfos
      .map(_.function.asInstanceOf[DeclarativeAggregateFunction])
      .flatMap(_.initialValuesExpressions)
      .map(_.accept(converter))
      .map(exprCodeGen.generateExpression)

    val initAggBufferExprs = initAuxGroupingExprs ++ initAggCallBufferExprs

    // empty agg buffer and writer will be reused
    val emptyAggBufferTerm = CodeGenUtils.newName("emptyAggBuffer")
    val emptyAggBufferWriterTerm = CodeGenUtils.newName("emptyAggBufferWriterTerm")
    exprCodeGen.generateResultExpression(
      initAggBufferExprs,
      aggBufferType,
      classOf[BinaryRowData],
      emptyAggBufferTerm,
      Some(emptyAggBufferWriterTerm)
    )
  }

  private[flink] def genAggregate(
      isMerge: Boolean,
      ctx: CodeGeneratorContext,
      builder: RelBuilder,
      inputType: RowType,
      inputTerm: String,
      auxGrouping: Array[Int],
      aggInfos: Seq[AggregateInfo],
      argsMapping: Array[Array[(Int, LogicalType)]],
      aggBuffMapping: Array[Array[(Int, LogicalType)]],
      currentAggBufferTerm: String,
      aggBufferRowType: RowType): GeneratedExpression = {
    if (isMerge) {
      genMergeAggBuffer(
        ctx,
        builder,
        inputTerm,
        inputType,
        currentAggBufferTerm,
        auxGrouping,
        aggInfos,
        argsMapping,
        aggBuffMapping,
        aggBufferRowType)
    } else {
      genAccumulateAggBuffer(
        ctx,
        builder,
        inputTerm,
        inputType,
        currentAggBufferTerm,
        auxGrouping,
        aggInfos,
        argsMapping,
        aggBuffMapping,
        aggBufferRowType)
    }
  }

  private[flink] def genHashAggOutputExpr(
      isMerge: Boolean,
      isFinal: Boolean,
      ctx: CodeGeneratorContext,
      builder: RelBuilder,
      auxGrouping: Array[Int],
      aggInfos: Seq[AggregateInfo],
      argsMapping: Array[Array[(Int, LogicalType)]],
      aggBuffMapping: Array[Array[(Int, LogicalType)]],
      outputTerm: String,
      outputType: RowType,
      inputTerm: String,
      inputType: RowType,
      groupKeyTerm: Option[String],
      aggBufferTerm: String,
      aggBufferType: RowType)
    : GeneratedExpression = {
    val exprCodeGen = new ExprCodeGenerator(ctx, false)
        .bindInput(inputType, inputTerm = inputTerm)
        .bindSecondInput(aggBufferType, inputTerm = aggBufferTerm)
    val converter = new ExpressionConverter(builder)

    val resultExpr = if (isFinal) {

      val bindRefOffset = inputType.getFieldCount

      val getAuxGroupingExprs = auxGrouping.indices
        .map { idx =>
          val (_, resultType) = aggBuffMapping(idx)(0)
          toRexInputRef(builder, bindRefOffset + idx, resultType)
        }

      val getAggValueExprs = aggInfos.map { aggInfo =>
        val aggBufferIdx = auxGrouping.length + aggInfo.aggIndex
        val function = aggInfo.function.asInstanceOf[DeclarativeAggregateFunction]
        val ref = ResolveReference(
          ctx,
          builder,
          isMerge,
          bindRefOffset,
          function,
          aggBufferIdx,
          argsMapping,
          aggBuffMapping)
        function.getValueExpression
          .accept(ref)
      }

      val getValueExprs = (getAuxGroupingExprs ++ getAggValueExprs)
        .map(_.accept(converter))
        .map(exprCodeGen.generateExpression)

      val aggValueTerm = CodeGenUtils.newName("aggVal")
      val valueType = RowType.of(getValueExprs.map(_.resultType): _*)
      exprCodeGen.generateResultExpression(
        getValueExprs,
        valueType,
        classOf[GenericRowData],
        aggValueTerm)
    } else {
      new GeneratedExpression(aggBufferTerm, "false", "", aggBufferType)
    }
    // add grouping keys if exists
    groupKeyTerm match {
      case Some(key) =>
        val output =
          s"""
             |${resultExpr.code}
             |$outputTerm.replace($key, ${resultExpr.resultTerm});
         """.stripMargin
        new GeneratedExpression(outputTerm, "false", output, outputType)
      case _ => resultExpr
    }
  }

  /**
    * Resolves the given expression to a resolved Expression.
    *
    * @param isMerge this is called from merge() method
    */
  private case class ResolveReference(
      ctx: CodeGeneratorContext,
      relBuilder: RelBuilder,
      isMerge: Boolean,
      offset: Int,
      agg: DeclarativeAggregateFunction,
      aggIndex: Int,
      argsMapping: Array[Array[(Int, LogicalType)]],
      aggBuffMapping: Array[Array[(Int, LogicalType)]])
    extends DeclarativeExpressionResolver(relBuilder, agg, isMerge) {

    override def toMergeInputExpr(name: String, localIndex: Int): ResolvedExpression = {
      val (inputIndex, inputType) = argsMapping(aggIndex)(localIndex)
      toRexInputRef(relBuilder, inputIndex, inputType)
    }

    override def toAccInputExpr(name: String, localIndex: Int): ResolvedExpression = {
      val (inputIndex, inputType) = argsMapping(aggIndex)(localIndex)
      toRexInputRef(relBuilder, inputIndex, inputType)
    }

    override def toAggBufferExpr(name: String, localIndex: Int): ResolvedExpression = {
      val (aggBuffAttrIndex, aggBuffAttrType) = aggBuffMapping(aggIndex)(localIndex)
      toRexInputRef(relBuilder, offset + aggBuffAttrIndex, aggBuffAttrType)
    }
  }

  /**
    * Generate codes which will read input,
    * merge aggregate buffers and update the aggregation map
    */
  private[flink] def genMergeAggBuffer(
      ctx: CodeGeneratorContext,
      builder: RelBuilder,
      inputTerm: String,
      inputType: RowType,
      currentAggBufferTerm: String,
      auxGrouping: Array[Int],
      aggInfos: Seq[AggregateInfo],
      argsMapping: Array[Array[(Int, LogicalType)]],
      aggBuffMapping: Array[Array[(Int, LogicalType)]],
      aggBufferType: RowType)
    : GeneratedExpression = {
    val exprCodeGen = new ExprCodeGenerator(ctx, false)
        .bindInput(inputType, inputTerm = inputTerm)
        .bindSecondInput(aggBufferType, inputTerm = currentAggBufferTerm)
    val converter = new ExpressionConverter(builder)

    val mergeExprs = aggInfos
      .map(_.function)
      .zipWithIndex
      .flatMap {
        case (agg: DeclarativeAggregateFunction, aggIndex) =>
          val aggBufferIdx = auxGrouping.length + aggIndex
          val bindRefOffset = inputType.getFieldCount
          val ref = ResolveReference(
            ctx,
            builder,
            isMerge = true,
            bindRefOffset,
            agg,
            aggBufferIdx,
            argsMapping,
            aggBuffMapping)
          agg.mergeExpressions.map(_.accept(ref))
      }
      .map(_.accept(converter))
      .map(exprCodeGen.generateExpression)

    val aggBufferTypeWithoutAuxGrouping = if (auxGrouping.nonEmpty) {
      // auxGrouping does not need merge-code
      RowType.of(
        aggBufferType.getChildren.slice(auxGrouping.length, aggBufferType.getFieldCount)
            .toArray[LogicalType],
        aggBufferType.getFieldNames.slice(auxGrouping.length, aggBufferType.getFieldCount)
            .toArray[String])
    } else {
      aggBufferType
    }

    val mergeExprIdxToOutputRowPosMap = mergeExprs.indices.map{
      i => i -> (i + auxGrouping.length)
    }.toMap

    // update agg buff in-place
    exprCodeGen.generateResultExpression(
      mergeExprs,
      mergeExprIdxToOutputRowPosMap,
      aggBufferTypeWithoutAuxGrouping,
      classOf[BinaryRowData],
      outRow = currentAggBufferTerm,
      outRowWriter = None,
      reusedOutRow = true,
      outRowAlreadyExists = true,
      allowSplit = false,
      methodName = null
    )
  }

  /**
    * Generate codes which will read input,
    * accumulating aggregate buffers and updating the aggregation map
    */
  private[flink] def genAccumulateAggBuffer(
      ctx: CodeGeneratorContext,
      builder: RelBuilder,
      inputTerm: String,
      inputType: RowType,
      currentAggBufferTerm: String,
      auxGrouping: Array[Int],
      aggInfos: Seq[AggregateInfo],
      argsMapping: Array[Array[(Int, LogicalType)]],
      aggBuffMapping: Array[Array[(Int, LogicalType)]],
      aggBufferType: RowType)
    : GeneratedExpression = {
    val exprCodeGen = new ExprCodeGenerator(ctx, false)
        .bindInput(inputType, inputTerm = inputTerm)
        .bindSecondInput(aggBufferType, inputTerm = currentAggBufferTerm)
    val converter = new ExpressionConverter(builder)

    val bindRefOffset = inputType.getFieldCount

    val accumulateExprsWithFilterArgs = aggInfos
      .flatMap { aggInfo =>
        val aggBufferIdx = auxGrouping.length + aggInfo.aggIndex
        val function = aggInfo.function.asInstanceOf[DeclarativeAggregateFunction]
        val ref = ResolveReference(
          ctx,
          builder,
          isMerge = false,
          bindRefOffset,
          function,
          aggBufferIdx,
          argsMapping,
          aggBuffMapping)
        function.accumulateExpressions
          .map(_.accept(ref))
          .map { e =>
            (exprCodeGen.generateExpression(e.accept(converter)), aggInfo.agg.filterArg)
          }
      }

    // update agg buff in-place
    val code = accumulateExprsWithFilterArgs.zipWithIndex.map({
      case ((accumulateExpr, filterArg), index) =>
        val idx = auxGrouping.length + index
        val t = aggBufferType.getTypeAt(idx)
        val writeCode = binaryRowFieldSetAccess(
          idx, currentAggBufferTerm, t, accumulateExpr.resultTerm)
        val innerCode =
          s"""
             |${accumulateExpr.code}
             |if (${accumulateExpr.nullTerm}) {
             |  ${binaryRowSetNull(idx, currentAggBufferTerm, t)};
             |} else {
             |  $writeCode;
             |}
             |""".stripMargin.trim

        if (filterArg >= 0) {
          var filterTerm = s"$inputTerm.getBoolean($filterArg)"
          if (ctx.nullCheck) {
            filterTerm = s"!$inputTerm.isNullAt($filterArg) && " + filterTerm
          }
          s"""
             |if ($filterTerm) {
             | $innerCode
             |}
          """.stripMargin
        } else {
          innerCode
        }

    }) mkString "\n"

    GeneratedExpression(currentAggBufferTerm, "false", code, aggBufferType)
  }

  /**
    * Generate codes which will read aggregation map,
    * get the aggregate values
    */
  private[flink] def genAggMapIterationAndOutput(
      ctx: CodeGeneratorContext,
      isFinal: Boolean,
      aggregateMapTerm: String,
      reuseAggMapEntryTerm: String,
      reuseAggBufferTerm: String,
      outputExpr: GeneratedExpression): String = {
    // gen code to iterating the aggregate map and output to downstream
    val inputUnboxingCode =
      if (isFinal) s"${ctx.reuseInputUnboxingCode(reuseAggBufferTerm)}" else ""

    val iteratorTerm = CodeGenUtils.newName("iterator")
    val mapEntryTypeTerm = classOf[BytesHashMap.Entry].getCanonicalName
    s"""
       |org.apache.flink.util.MutableObjectIterator<$mapEntryTypeTerm> $iteratorTerm =
       |  $aggregateMapTerm.getEntryIterator();
       |while ($iteratorTerm.next($reuseAggMapEntryTerm) != null) {
       |   // set result and output
       |   $inputUnboxingCode
       |   ${outputExpr.code}
       |   ${OperatorCodeGenerator.generateCollect(outputExpr.resultTerm)}
       |}
       """.stripMargin
  }

  private[flink] def genRetryAppendToMap(
      aggregateMapTerm: String,
      currentKeyTerm: String,
      initedAggBuffer: GeneratedExpression,
      lookupInfo: String,
      currentAggBufferTerm: String): String = {
    s"""
       | // reset aggregate map retry append
       |$aggregateMapTerm.reset();
       |$lookupInfo = $aggregateMapTerm.lookup($currentKeyTerm);
       |try {
       |  $currentAggBufferTerm =
       |    $aggregateMapTerm.append($lookupInfo, ${initedAggBuffer.resultTerm});
       |} catch (java.io.EOFException e) {
       |  throw new OutOfMemoryError("BytesHashMap Out of Memory.");
       |}
       """.stripMargin
  }

  private[flink] def genAggMapOOMHandling(
      isFinal: Boolean,
      ctx: CodeGeneratorContext,
      builder: RelBuilder,
      groupingAndAuxGrouping: (Array[Int], Array[Int]),
      aggInfos: Seq[AggregateInfo],
      functionIdentifiers: Map[AggregateFunction[_, _], String],
      logTerm: String,
      aggregateMapTerm: String,
      aggMapKVTypesTerm: (String, String),
      aggMapKVRowType: (RowType, RowType),
      aggBufferNames: Array[Array[String]],
      aggBufferTypes: Array[Array[LogicalType]],
      outputTerm: String,
      outputType: RowType,
      outputResultFromMap: String,
      sorterTerm: String,
      retryAppend: String): (String, String) = {
    val (grouping, auxGrouping) = groupingAndAuxGrouping
    if (isFinal) {
      val logMapSpilling =
        CodeGenUtils.genLogInfo(
          logTerm, s"BytesHashMap out of memory with {} entries, start spilling.",
          s"$aggregateMapTerm.getNumElements()")

      // gen fallback to sort agg
      val (groupKeyTypesTerm, aggBufferTypesTerm) = aggMapKVTypesTerm
      val (groupKeyRowType, aggBufferRowType) =  aggMapKVRowType
      prepareFallbackSorter(ctx, sorterTerm)
      val createSorter = genCreateFallbackSorter(
        ctx, groupKeyRowType, groupKeyTypesTerm, aggBufferTypesTerm, sorterTerm)
      val fallbackToSortAggCode = genFallbackToSortAgg(
        ctx,
        builder,
        grouping,
        auxGrouping,
        aggInfos,
        functionIdentifiers,
        aggregateMapTerm,
        (groupKeyRowType, aggBufferRowType),
        aggregateMapTerm,
        sorterTerm,
        outputTerm,
        outputType,
        aggBufferNames,
        aggBufferTypes)

      val memPoolTypeTerm = classOf[BytesHashMapSpillMemorySegmentPool].getName
      val dealWithAggHashMapOOM =
        s"""
           |$logMapSpilling
           | // hash map out of memory, spill to external sorter
           |if ($sorterTerm == null) {
           |  $createSorter
           |}
           | // sort and spill
           |$sorterTerm.sortAndSpill(
           |  $aggregateMapTerm.getRecordAreaMemorySegments(),
           |  $aggregateMapTerm.getNumElements(),
           |  new $memPoolTypeTerm($aggregateMapTerm.getBucketAreaMemorySegments()));
           | // retry append
           |$retryAppend
       """.stripMargin
      (dealWithAggHashMapOOM, fallbackToSortAggCode)
    } else {
      val logMapOutput =
        CodeGenUtils.genLogInfo(
          logTerm, s"BytesHashMap out of memory with {} entries, output directly.",
          s"$aggregateMapTerm.getNumElements()")

      val dealWithAggHashMapOOM =
        s"""
           |$logMapOutput
           | // hash map out of memory, output directly
           |$outputResultFromMap
           | // retry append
           |$retryAppend
          """.stripMargin
      (dealWithAggHashMapOOM, "")
    }
  }

  private[flink] def prepareFallbackSorter(ctx: CodeGeneratorContext, sorterTerm: String): Unit = {
    val sorterTypeTerm = classOf[BufferedKVExternalSorter].getName
    ctx.addReusableMember(s"transient $sorterTypeTerm $sorterTerm;")
    ctx.addReusableCloseStatement(s"if ($sorterTerm != null) $sorterTerm.close();")
  }

  private[flink] def prepareMetrics(
      ctx: CodeGeneratorContext, hashTerm: String, sorterTerm: String): Unit = {
    val gauge = classOf[Gauge[_]].getCanonicalName
    val longType = classOf[java.lang.Long].getCanonicalName

    val numSpillFiles =
      s"""
         |getMetricGroup().gauge("numSpillFiles", new $gauge<$longType>() {
         | @Override
         | public $longType getValue() {
         |  return $hashTerm.getNumSpillFiles();
         |  }
         | });
       """.stripMargin.trim

    val memoryUsedSizeInBytes =
      s"""
         |getMetricGroup().gauge("memoryUsedSizeInBytes", new $gauge<$longType>() {
         | @Override
         | public $longType getValue() {
         |  return $hashTerm.getUsedMemoryInBytes();
         |  }
         | });
       """.stripMargin.trim
    ctx.addReusableOpenStatement(numSpillFiles)
    ctx.addReusableOpenStatement(memoryUsedSizeInBytes)

    if (sorterTerm != null) {
      val spillInBytes =
        s"""
           | getMetricGroup().gauge("spillInBytes", new $gauge<$longType>() {
           |  @Override
           |  public $longType getValue() {
           |    return $hashTerm.getSpillInBytes();
           |   }
           |});
       """.stripMargin.trim
      ctx.addReusableOpenStatement(spillInBytes)
    }
  }

  private[flink] def genCreateFallbackSorter(
      ctx: CodeGeneratorContext,
      groupKeyRowType: RowType,
      groupKeyTypesTerm: String,
      aggBufferTypesTerm: String,
      sorterTerm: String): String = {
    val keyComputerTerm = CodeGenUtils.newName("keyComputer")
    val recordComparatorTerm = CodeGenUtils.newName("recordComparator")
    val prepareSorterCode = genKVSorterPrepareCode(
      ctx, keyComputerTerm, recordComparatorTerm, groupKeyRowType)

    val binaryRowSerializerTypeTerm = classOf[BinaryRowDataSerializer].getName
    val sorterTypeTerm = classOf[BufferedKVExternalSorter].getName
    s"""
       |  $prepareSorterCode
       |  $sorterTerm = new $sorterTypeTerm(
       |    getContainingTask().getEnvironment().getIOManager(),
       |    new $binaryRowSerializerTypeTerm($groupKeyTypesTerm.length),
       |    new $binaryRowSerializerTypeTerm($aggBufferTypesTerm.length),
       |    $keyComputerTerm, $recordComparatorTerm,
       |    getContainingTask().getEnvironment().getMemoryManager().getPageSize(),
       |    getContainingTask().getJobConfiguration()
       |  );
       """.stripMargin
  }

  private[flink] def genFallbackToSortAgg(
      ctx: CodeGeneratorContext,
      builder: RelBuilder,
      grouping: Array[Int],
      auxGrouping: Array[Int],
      aggInfos: Seq[AggregateInfo],
      functionIdentifiers: Map[AggregateFunction[_, _], String],
      mapTerm: String,
      mapKVRowTypes: (RowType, RowType),
      aggregateMapTerm: String,
      sorterTerm: String,
      outputTerm: String,
      outputType: RowType,
      aggBufferNames: Array[Array[String]],
      aggBufferTypes: Array[Array[LogicalType]]): String = {
    val (groupKeyRowType, aggBufferRowType) = mapKVRowTypes
    val keyTerm = CodeGenUtils.newName("key")
    val lastKeyTerm = CodeGenUtils.newName("lastKey")
    val keyNotEquals = AggCodeGenHelper.genGroupKeyChangedCheckCode(keyTerm, lastKeyTerm)

    val joinedRow = classOf[JoinedRowData].getName
    val fallbackInputTerm = ctx.addReusableLocalVariable(joinedRow, "fallbackInput")
    val fallbackInputType = RowType.of(
      (groupKeyRowType.getChildren ++ aggBufferRowType.getChildren).toArray,
      (groupKeyRowType.getFieldNames ++ aggBufferRowType.getFieldNames).toArray)

    val (initAggBufferCode, updateAggBufferCode, resultExpr) = AggCodeGenHelper.genSortAggCodes(
      isMerge = true,
      isFinal = true,
      ctx,
      builder,
      grouping,
      auxGrouping,
      aggInfos,
      functionIdentifiers,
      fallbackInputTerm,
      fallbackInputType,
      aggBufferNames,
      aggBufferTypes,
      outputType,
      forHashAgg = true)

    val kvPairTerm = CodeGenUtils.newName("kvPair")
    val kvPairTypeTerm = classOf[JTuple2[BinaryRowData, BinaryRowData]].getName
    val aggBuffTerm = CodeGenUtils.newName("val")
    val binaryRow = classOf[BinaryRowData].getName

    s"""
       |  $binaryRow $lastKeyTerm = null;
       |  $kvPairTypeTerm<$binaryRow, $binaryRow> $kvPairTerm = null;
       |  $binaryRow $keyTerm = null;
       |  $binaryRow $aggBuffTerm = null;
       |  $fallbackInputTerm = new $joinedRow();
       |
       |  // free hash map memory, but not release back to memory manager
       |
       |  org.apache.flink.util.MutableObjectIterator<$kvPairTypeTerm<$binaryRow, $binaryRow>>
       |    iterator = $sorterTerm.getKVIterator();
       |
       |  while (
       |    ($kvPairTerm = ($kvPairTypeTerm<$binaryRow, $binaryRow>) iterator.next()) != null) {
       |    $keyTerm = ($binaryRow) $kvPairTerm.f0;
       |    $aggBuffTerm = ($binaryRow) $kvPairTerm.f1;
       |    // prepare input
       |    $fallbackInputTerm.replace($keyTerm, $aggBuffTerm);
       |    if ($lastKeyTerm == null) {
       |      // found first key group
       |      $lastKeyTerm = $keyTerm.copy();
       |      $initAggBufferCode
       |    } else if ($keyNotEquals) {
       |      // output current group aggregate result
       |      ${resultExpr.code}
       |      $outputTerm.replace($lastKeyTerm, ${resultExpr.resultTerm});
       |      ${OperatorCodeGenerator.generateCollect(outputTerm)}
       |      // found new group
       |      $lastKeyTerm = $keyTerm.copy();
       |      $initAggBufferCode
       |    }
       |    // reusable field access codes for agg buffer merge
       |    ${ctx.reuseInputUnboxingCode(fallbackInputTerm)}
       |    // merge aggregate map's value into aggregate buffer fields
       |    $updateAggBufferCode
       |  }
       |
       |  // output last key group aggregate result
       |  ${resultExpr.code}
       |  $outputTerm.replace($lastKeyTerm, ${resultExpr.resultTerm});
       |  ${OperatorCodeGenerator.generateCollect(outputTerm)}
       """.stripMargin
  }

  private[flink] def genKVSorterPrepareCode(
      ctx: CodeGeneratorContext,
      keyComputerTerm: String,
      recordComparatorTerm: String,
      aggMapKeyType: RowType) : String = {
    val keyFieldTypes = aggMapKeyType.getChildren.toArray(Array[LogicalType]())
    val keys = keyFieldTypes.indices.toArray
    val orders = keys.map(_ => true)
    val nullsIsLast = SortUtil.getNullDefaultOrders(orders)

    val sortCodeGenerator = new SortCodeGenerator(
      ctx.tableConfig, keys, keyFieldTypes, orders, nullsIsLast)
    val computer = sortCodeGenerator.generateNormalizedKeyComputer("AggMapKeyComputer")
    val comparator = sortCodeGenerator.generateRecordComparator("AggMapValueComparator")

    val keyComputerTypeTerm = classOf[NormalizedKeyComputer].getName
    val keyComputeInnerClassTerm = computer.getClassName
    val recordComparatorTypeTerm = classOf[RecordComparator].getName
    val recordComparatorInnerClassTerm = comparator.getClassName
    ctx.addReusableInnerClass(keyComputeInnerClassTerm, computer.getCode)
    ctx.addReusableInnerClass(recordComparatorInnerClassTerm, comparator.getCode)

    val computerRefs = ctx.addReusableObject(computer.getReferences, "computerRefs")
    val comparatorRefs = ctx.addReusableObject(comparator.getReferences, "comparatorRefs")

    s"""
       |  $keyComputerTypeTerm $keyComputerTerm = new $keyComputeInnerClassTerm($computerRefs);
       |  $recordComparatorTypeTerm $recordComparatorTerm =
       |    new $recordComparatorInnerClassTerm($comparatorRefs);
       |""".stripMargin
  }
}


text:
ROBERT EINHORN recognized by Best Lawyers in America©
On behalf of Zarco Einhorn Salkowski & Brito, P.A. | Nov 20, 2019 | Awards
Zarco, Einhorn, Salkowski & Brito, LEADERS IN FRANCHISE LAW, GENERAL BUSINESS LAW, & COMMERCIAL LITIGATION, wishes to Congratulate ROBERT EINHORN for being recognized as one of the Best Lawyers in America©
Robert M. Einhorn, a native of Cleveland, Ohio, received a Bachelor of Business Administration degree from the University of Wisconsin-Madison in 1986. He dual-majored in Accounting and Risk & Insurance. Robert attended law school at the University of Miami. Utilizing his business and accounting background, Robert has gained significant experience with business valuation and business damages issues which frequently arise in franchise disputes.
Robert obtained his J.D. degree in 1990. After graduation from law school, Robert accepted a position with the Florida law firm, Broad and Cassel. Robert served as an Associate in the litigation department of Broad and Cassel working closely with Joel Hirschhorn, Esq., who headed the litigation department of the statewide firm. Working with Mr. Hirschhorn, Robert acquired vast experience in complex civil and criminal litigation in state and federal courts throughout the nation. Robert is currently admitted to practice before several courts across the country including all State Courts in Florida, the United States District Court for the Southern District of Florida, the United States District Court for the Middle District of Florida, the United States Court for the Northern District of Florida, the United States District Court for the Northern District of Illinois, the United States District Court for the Western District of Michigan, the United States District Court for the Eastern and Western Districts of Arkansas, the United States District Court for the District of Colorado, the United States Court of Appeals for the Fifth, Ninth and Eleventh Circuits and the United States Tax Court. He has appeared and represented clients in several other state and federal courts throughout the country and regularly conducts various arbitration proceedings across the country.
Robert began working with Robert Zarco in January 1994 and has partnered over the past twenty plus years with Mr. Zarco as fierce and tireless advocates for the interests of franchisees. Robert has conducted numerous trials and arbitration hearings throughout the nation. Robert regularly devotes his time to franchisee associations seeking fairness in franchising and improved relations between franchisors and franchisees. Robert has served on the Steering Committee for the American Franchise Association Legal Symposium. Robert is also a member of the American Association of Franchisees and Dealers (AAFD) and has served on the AAFD Fair Franchising Standards Committee. Working on this committee, Robert has had the opportunity to participate and debate in the drafting of the AAFD's Fair Franchising Standards. Robert also regularly devotes his time to "pro bono" work in connection with the Dade County "Put Something Back" program, an organization serving the legal needs of the underprivileged in Dade County.
Robert regularly serves as an author and speaker on franchise related topics. He is a contributing author of the Fundamentals of Franchising book published by the American Bar Association ("ABA") Forum on Franchising. Robert has been involved with the ABA Forum on Franchising for numerous years. He has been a frequent speaker at the ABA's Annual Franchise Forum and has contributed to the Franchise Law Journal as an author and an editor. Robert has been recognized as "Lawyer of the Year" award recipient for Franchise Law by The Best Lawyers in America publication; he has been regularly included in that publication for over a decade in connection with his stellar achievements in the area of Franchise Law. Robert has also been recognized among the Very Best U.S. Attorneys in Franchising by the Franchise Times and Florida Trend's Florida Legal Elite. He has maintained the highest peer review rating for legal ability and ethical standards as designated by Martindale Hubbell for the past several years.
Robert Zarco makes the Front Page of Independent Joe Magazine
Haute 100 Update MIA: Robert Zarco Gives FIU Commencement Address
What does the McDonald's ruling mean for the franchise industry?
KAARI GAGNON recognized by Best Lawyers in America©
JACK IN THE BOX FRANCHISEES GET WHAT THEY WANT
Restrictive Covenants in Franchising


text:
Keith Lee Cleveland
Recommend Keith's obituary to your friends
Send Flowers for Keith
Obituary of Keith Lee Cleveland
Keith Lee Cleveland - beloved husband, father, brother, uncle, and friend - entered into eternal peace on July 22, 2019, after suffering a prolonged illness.
Born on January 1, 1945 in Gary, Indiana to Ralph and Ivonne Alton, he moved with his mother and brother, Neal, to Punta Gorda, Florida. Later adopted by U.S. Cleveland after his marriage to Ivonne, Keith lived primarily in Charlotte County throughout his life, where he attended Charlotte High School. He served his country honorably from 1965-1968 in the FDC of A Battery, 2nd Battalion, 94th Artillery during some of the most intense fighting of the Vietnam War, including extended combat operations in Dong Ha, Da Nang, Quang Tri, Camp JJ Carroll, and The Rockpile during the Tet Offensive. In addition to almost continuous enemy direct and indirect fire, Keith and his battery mates faced extensive exposure to Agent Orange. Returning to Charlotte County, he owned Tri-County Surveying for over thirty years. An avid golfer, boater and human dad to all of his fur babies always quick with a smile, a joke, and a hearty laugh, those who knew and loved him will sorely miss his infectious humor and kind spirit.
Preceded in death by his younger brother, Dallas Cleveland, and his daughter, Tana Cleveland, Keith is survived by his wife, Rebecca (Massey), his daughters, Tara (John) Janachowski, Trisha Cleveland, and Britten Cleveland, his step-daughters, Angela Massey and Jamie Dunlap, nine grandchildren, and two great-grandchildren. He also leaves behind his brother, Neal Cleveland, and his wife, Jackie, nephews, Dallas Cleveland, Sean Cleveland, and Chris Sar, and his cousin, Joyce Lenz.
Services are being handled by Charlotte Memorial Funeral Home @ 9400 Indian Spring Cemetery Rd, Punta Gorda, Fl 33950. Viewing will be August 2nd, 4-7 PM, and services will be August 3rd at 11:00 AM. Celebration of Life luncheon following service at Seminole Lakes Country Club at 26200 Stillwater Circle Punta Gorda Florida 33955. In lieu of flowers, please consider donations in Keith's honor to Gary Sinise Foundation, Canines for Warriors, or directly to his wife, Rebecca.
To send flowers to the family of Keith Cleveland, please visit Tribute Store
Charlotte Memorial Funeral Home
9400 Indian Spring Cemetery Road
Punta Gorda, Florida, United States


Whatever you're studying, you'll find someone on TSR who can help. Find your subject in the Study Help forum and ask a question or visit our brilliant revision section for help and advice. And if you're planning on going to university, you have to visit our uni applications forum. It's full of people who can help you through the whole process.
In Hobbies and Interests you'll be able to find lots of people with similar interests!
To find even more conversation, head to the Forums page and find a place to start up your own discussion.
I hope you enjoy your time here, and if you have any questions, please do quote or PM me so I can help!
2:2 second year, can I get a 2:1?
What are the most important transferable skills?
Which Uni Is Most Respected?


This beautiful floral kimono cardigan is the perfect overlay for any outfit! Dress it up or dress it down-we love the unfinished edge to give it a fun twist on a casual look! Add some color pop to your basic tops with this sweet touch of floral!


text:
.. _dev-index:

Development guide
=================

This section contains information on building and installing PyWavelets
from source code as well as instructions for preparing the build environment
on Windows and Linux.

.. toctree::
   :maxdepth: 2

   conduct/code_of_conduct
   preparing_windows_build_environment
   preparing_linux_build_environment
   installing_build_dependencies
   building_extension
   testing
   how_to_release

Something not working?
----------------------

If these instructions are not clear or you need help setting up your
development environment, go ahead and ask on the PyWavelets discussion
group at http://groups.google.com/group/pywavelets or open a ticket on GitHub_.

.. _GitHub: https://github.com/PyWavelets/pywt