📜 [專欄新文章] Gas Efficient Card Drawing in Solidity
✍️ Ping Chen
📥 歡迎投稿: https://medium.com/taipei-ethereum-meetup #徵技術分享文 #使用心得 #教學文 #medium
Assign random numbers as the index of newly minted NFTs
Scenario
The fun of generative art NFT projects depends on randomness. The industry standard is “blind box”, where both the images’ serial number and the NFTs’ index are predetermined but will be shifted randomly when the selling period ends. (They call it “reveal”) This approach effectively solves the randomness issue. However, it also requires buyers to wait until the campaign terminates. What if buyers want to know the exact card right away? We’ll need a reliable onchain card drawing solution.
The creator of Astrogator🐊 isn’t a fan of blind boxes; instead, it thinks unpacking cards right after purchase is more interesting.
Spec
When initializing this NFT contract, the creator will determine the total supply of it. And there will be an iterable function that is randomly picking a number from the remaining pool. The number must be in range and must not collide with any existing ones.
Our top priority is accessibility/gas efficiency. Given that gas cost on Ethereum is damn high nowadays, we need an elegant algorithm to control gas expanse at an acceptable range.
Achieving robust randomness isn’t the primary goal here. We assume there’s no strong financial incentive to cheat, so the RNG isn’t specified. Implementers can bring their own source of randomness that they think is good enough.
Implementation
Overview
The implementation is pretty short and straightforward. Imagine there’s an array that contains all remaining(unsold) cards. When drawIndex() is called, it generates a (uniform) random seed to draw a card from the array, shortens the array, and returns the selected card.
Algorithm
Drawing X cards from a deck with the same X amount of cards is equal to shuffling the deck and dealing them sequentially. It’s not a surprise that our algorithm is similar to random shuffling, and the only difference is turning that classic algo into an interactive version.
A typical random shuffle looks like this: for an array with N elements, you randomly pick a number i in (0,N), swap array[0] and array[i], then choose another number i in (1,N), swap array[1] and array[i], and so on. Eventually, you’ll get a mathematically random array in O(N) time.
So, the concept of our random card dealing is the same. When a user mints a new card, the smart contract picks a number in the array as NFT index, then grabs a number from the tail to fill the vacancy, in order to keep the array continuous.
Tweak
Furthermore, as long as the space of the NFT index is known, we don’t need to declare/initialize an array(which is super gas-intensive). Instead, assume there’s such an array that the n-th element is n, we don’t actually initialize it (so it is an array only contains “0”) until the rule is broken.
For the convenience of explanation, let’s call that mapping cache. If cache[i] is empty, it should be interpreted as i instead of 0. On the other hand, when a number is chosen and used, we’ll need to fill it up with another unused number. An intuitive method is to pick a number from the end of the array, since the length of the array is going to decrease by 1.
By doing so, the gas cost in the worst-case scenario is bound to be constant.
Performance and limitation
Comparing with the normal ascending index NFT minting, our random NFT implementation requires two extra SSTORE and one extra SLOAD, which cost 12600 ~ 27600 (5000+20000+2600) excess gas per token minted.
Theoretically, any instantly generated onchain random number is vulnerable. We can restrict contract interaction to mitigate risk. The mitigation is far from perfect, but it is the tradeoff that we have to accept.
ping.eth
Gas Efficient Card Drawing in Solidity was originally published in Taipei Ethereum Meetup on Medium, where people are continuing the conversation by highlighting and responding to this story.
👏 歡迎轉載分享鼓掌
同時也有53部Youtube影片,追蹤數超過2,030的網紅數位時代Official,也在其Youtube影片中提到,公司簡介 智慧貼紙股份有限公司(Smart Tag Inc.)正式成立於2020年3月,由創辦人/CEO張焜傑與其他四位共同創辦人一同經營,為各行業提供工業4.0無痛升級方案– Smart Tag解決方案,包含軟硬體技術。由軟性電路板黏貼至機器表面,進行多點位資料蒐集,例如:震動、溫度以及濕度等紀錄...
「total solution」的推薦目錄:
- 關於total solution 在 Taipei Ethereum Meetup Facebook 的精選貼文
- 關於total solution 在 貓的成長美股異想世界 Facebook 的精選貼文
- 關於total solution 在 涂智奎老師小提琴圓夢計畫 Facebook 的最佳貼文
- 關於total solution 在 數位時代Official Youtube 的精選貼文
- 關於total solution 在 生かし屋 IKASHIYA CULINARY ART Youtube 的最佳解答
- 關於total solution 在 Spice N' Pans Youtube 的精選貼文
- 關於total solution 在 Ink Total Solution Taiwan - 首頁| Facebook 的評價
total solution 在 貓的成長美股異想世界 Facebook 的精選貼文
🌻
美國聯準會(Fed)在美東時間22日下午2時(台灣23日凌晨2時)宣布利率維持在趨近零的水準,但暗示升息可能會比預期來得快一些,同時也大幅下修今年的經濟展望。
https://udn.com/news/story/6811/5764746
🌻Adobe(ADBE)電話會議內容讀後感
ADBE前兩天發表財報了.
這次ADBE在財報後下跌, 主要是兩個原因(如下). 不過個人覺得是瑕不掩瑜:
1. 因為之前已經漲了不少(投資人期望太高)
2. 因為Digital Marketing這部分的業務受到季節性的影響, 所以表現不是很突出(沒有比預期高出很多)
a. net new Digital Media ARR (3% beat vs guide, vs 15% beat in 2Q21 vs 35% beat in 3Q20).
b. 有分析師在問(“Maybe just -- can we double-click on the seasonality commentary in the quarter? Because if we look at the beat versus guidance on net new digital media ARR, it looks, at the same time you had the weakest beat, but then the strongest guide in the last three years, which kind of speaks to and confirm some of those seasonality comments that you made.)
i. 高層對此的回答是, 主要是疫情後, 加上正值夏季, 大家的日子回復到正常&放假外出, 所以這部分的業務有受到影響(I think going into the quarter, we had expected that the consumer with a little bit more return to normalcy as what's happening in the environment.)
ii. 高層又說了一些話, 不過重點就是他不認為這是甚麼大事”So, net-net, I would say that the growth prospects for that particular business and the growth drivers remain intact. But again, very much in line. And this is what we feel good about the insights that we're getting on the business.”
iii. 也提到, Q4通常會是digital marketing業務的旺季(表現會不俗的意思)
另外, 覺得這次令我印象深刻的是, 當高層與分析師提到這些事情:
• 常在一些公司的電話會議中提到omnichannel這個字(疫情後, 更明顯了). 這次高層也有提到. ADBE可說是omnichannel概念股:
o “I mean, a big part of that is more and more companies are thirdly doing the multi-channel omnichannel, whatever they want to call it. And I think that's only going to continue to be a driver of our Digital Experience Solutions. Because today that stable stakes and so we just look at it and say whether you're shopping in-store over they are shopping online. You need a solution that treats you like a customer that we know of.”
• 網路上影片(video)的興起, 以及串流影音, 有提高了Adobe的營收天花板(用句分析師的術語, 就是TAM (total addressable market) expansion.
• 當使用者製作了越來越多的內容, 內容管理(content management)的能力就越顯重要, 內容上的流程管理(workflow)也越顯重要. Adobe的產品能夠幫內容製作者解決這樣的問題.
• 而Adobe各產品間的相容性, 標準化, 整合能力, 是它的競爭優勢之一:
o And one of the things we did really well is what we called our named user deployment and how, you know, when we have these enterprise licensing agreements, we offer enterprises the ability to download and distribute within the companies. And the more we do training and evangelism of the products, that leads to adoption. So, I would say there's an element of standardization, there's an element of more content.
而最近ADBE有個新聞, 引起了我的注意, 就是它即將在自己的平台上, 提供付款服務(payment service). 根據之前研究SHOP的經驗, 這有可能會對股價造成一定的漲幅:
On Sept. 15, Adobe announced that it will add payment services to its e-commerce platform this year to help merchants accept credit cards and other ways of paying. The move will deepen Adobe's rivalry with e-commerce firm Shopify (SHOP).
For the service, Adobe has partnered with PayPal (PYPL), which will process a variety of payment types, including credit and debit cards as well as PayPal's own payment and buy-now-pay-later offerings.
https://www.investors.com/news/technology/adbe-stock-adobe-beats-fiscal-q3-targets/
接下來該怎麼辦? 對於基本面良好的公司如ADBE, 我能說的就是buy the dip(逢低買進)了. 供參.
🌻The Facebook Files
一個星期前, WSJ上面有個關於FB的大篇幅調查報導. 有興趣的可以看看.
The Facebook Files
https://www.wsj.com/articles/the-facebook-files-11631713039
這篇文章挺長, 也沒有看到華爾街中文版本的完整翻譯, 不過可以看看這篇:
https://on.wsj.com/2ZmFimp
"《華爾街日報》的相關調查顯示,這家社交媒體巨頭心知肚明,其平台會傷害用戶,而且是以該公司常常完全了解的方式造成傷害。目前,全球近半數人口都是Facebook旗下平台的用戶。其中一些證據尤其令人不安:據《華爾街日報》報導,Facebook的內部研究顯示,在報告稱有過自殺念頭的青少年中當中,有13%的英國用戶和6%的美國用戶把這種念頭歸結於Instagram。"
另一篇相關新聞:
https://www.thenewslens.com/article/156683
"《華爾街日報》於13日揭露Facebook的XCheck系統,也就是內部系統中的VIP名單,數百萬名人、政治人物與記者等知名公眾人物都在特別的一份「白名單」之內。"
"這些「貴賓」在社群上發布的內容可以躲過一般的審查系統,即使發布明顯的不當內容,也不會立即被刪除。《衛報》報導,Facebook的獨立監督委員會表示,在閱讀該篇報導後,決定要審查XCheck系統,並要求Facebook對其進行報告與解釋。"
🌻我喜歡的Apple TV影集, "Ted Lasso", 是這次艾美獎的大贏家, 很多主要演員都得獎了.
很高興這兩年, 因為有這部戲的陪伴, 讓我撐過了疫情, 家人離世, 以及一些烏煙瘴氣的事情.
前幾天看演員的得獎影片, 一位娛樂記者問得獎的男配角(也是編劇之一)說, 你覺得這部片的核心思想是甚麼. 他說, be curious, not judgemental.
就像得獎的女演員在劇中一開始是很鴨霸很壞心的球隊主人, 但這樣做是因為被前夫傷透了心, 所以想要弄垮離婚後分到的財產(也是前夫的最愛--球隊); 外表看起來永遠陽光燦爛做啦啦隊的男主角, 在青少年時父親自殺, 造成了他心裡永遠的痛&障礙(讓他在球賽時, 會有突發恐懼症).
我們每個人其實都有很多面, 很多個故事. 尤其在社群, 大家都是萍水相逢, 對彼此的了解都是非常片面的; 而有時候在社群裡, 看到有人會因為只看到一個面向, 就去下斷語. 這其實是人之常情很難避免, 所以我們需要常用第二層思考去提醒自己. 社群裡需要更多的同理心.
“Be curious, not judgmental” – Walt Whitman(惠特曼)(美國詩人)
Picture來源:
https://www.apple.com/newsroom/2021/09/apples-global-hit-comedy-series-ted-lasso-sweeps-the-2021-primetime-emmy-awards-scoring-history-making-win-for-outstanding-comedy-series/
total solution 在 涂智奎老師小提琴圓夢計畫 Facebook 的最佳貼文
疫情期間圓夢一條龍服務!
🎻樂器寄到家,詳解影片隨時隨地學習🎻
從認識樂器、調音、基本姿勢,
到一個音一個音講解好聽的小曲子,
會拉之後和鋼琴伴奏影音檔合奏享受家庭音樂會,
沒有樂器的朋友
老師精選健康好拉,音色好聽整套小提琴
先錄一段給你聽,照片給你看
喜歡再付款!
給沒時間,又想圓夢的你一個
Total Solution!
total solution 在 數位時代Official Youtube 的精選貼文
公司簡介
智慧貼紙股份有限公司(Smart Tag Inc.)正式成立於2020年3月,由創辦人/CEO張焜傑與其他四位共同創辦人一同經營,為各行業提供工業4.0無痛升級方案– Smart Tag解決方案,包含軟硬體技術。由軟性電路板黏貼至機器表面,進行多點位資料蒐集,例如:震動、溫度以及濕度等紀錄,再串接至客戶端系統或者上傳雲端數據中心,藉由機器學習及數據模型進行分析,預測機器的運作模式,將由智慧貼紙解決工廠產能及良率的問題。
Smart Tag helps clients to upgrade their manufacturing lines, or machines immediately with minimum learning cost and high ROI. We’re providing a total solution for the manufacturing industry, which includes both hardware product and software as a service. For the hardware part, Smart Tag is our core technology- thermal thin film PCB, the most flexible PCB ever. The main purpose of this Smart Tag is monitoring, collecting and uploading data onto our cloud platform- the machine learning platform via Bluetooth gateway..
With this machine learning mechanism, when continuing monitoring the vibration, this platform can easily predict and detect the “danger zone”, which means the timing that the machine/production line needs to be maintained or be fixed. Or, companies can also forecast the quality of the products, based on these dataset.
公司網站
http://www.smarttag.tech/
![post-title](https://i.ytimg.com/vi/tlAlL3ahhuc/hqdefault.jpg)
total solution 在 生かし屋 IKASHIYA CULINARY ART Youtube 的最佳解答
濃厚美味しい本格ティラミスの作り方
本格的な感じで作りますが、簡単お手軽な作り方も紹介しています
市販のビスケットでインスタントコーヒーを使い、卵黄なしでも作れますのでぜひ~
【材料】
サヴォイアルディ(市販のビスケットで代用可)
・卵黄 2個
・グラニュー糖(卵黄用) 15g
・卵白 2個
・グラニュー糖(卵白用) 30g
・薄力粉 50g
・粉糖 適量
ザバイオーネ
・卵黄 2個
・グラニュー糖 25g
・マルサラ酒(甘口) 40g
(ラム酒やアマレットなど他の洋酒でもOK)
ザバイオーネ・クリーム
・マスカルポーネチーズ 200g
・グラニュー糖 50g
・ホワイトチョコ(お好み) 20g
・ザバイオーネ 全量
・マルサラ酒 お好みの量
・生クリーム 150g
エスプレッソ液
・エスプレッソ(濃いめのインスタントやドリップコーヒーで代用可)
・グラニュー糖 お好みの量
・マルサラ酒 お好みの量
仕上げ
・ココアパウダーやコーヒーパウダー 適量
【準備】
・粉糖、薄力粉はふるって使う
・オーブンを180℃に予熱する
・クリームを作る少し前にマスカルポーネを常温に出しておく
【作り方】
1. 【サヴォイアルディ/180℃に予熱】ボウルに卵黄2個・グラニュー糖15gを泡立て器ですり混ぜる
2. 別のボウルに卵白2個を入れて白っぽくなるまで泡だて、グラニュー糖30gのうち半分を入れて泡立てる
3. ツヤが出てきたら残りのグラニュー糖を加え、角が立つまで泡立てメレンゲを作る
4. 卵黄の方にメレンゲの半量を入れてざっと馴染むまで混ぜ、薄力粉50gをふるい入れる
5. ヘラに持ち替えて粉っぽさが無くなる直前くらいまでさっくり切り混ぜ、残りのメレンゲを加える
6. あまり泡を潰さないように切り混ぜ、なめらかに混ざったら丸口金をつけた絞り袋に入れる
7. オーブン用シートを敷いた天板に棒状に絞り出し、粉糖を全体にふるいかけ、消えた頃にもう1回粉糖をふるいかける
8. 180℃に予熱したオーブンで20~25分を目安に、軽く色づくまで焼いて冷ましておく
9. 【ザバイオーネ】ボウルに卵黄2個・グラニュー糖25g・マルサラ酒40gを合わせて混ぜる
10. 鍋で加熱した沸騰しないくらいのお湯で湯煎にかけ、混ぜながら70℃程度まで温める(より殺菌を意識するなら80℃)
11. 温度が上がると泡が消えとろみつく、湯煎から外し好みでふんわり泡立ててもOK
12. 【ザバイオーネ・クリーム】ボウルにマスカルポーネチーズ200gをほぐし、グラニュー糖50gをすり混ぜる
13. 溶かしたホワイトチョコ20g・ザバイオーネをなめらかに混ぜ、好みでマルサラ酒も加え混ぜる
14. 生クリーム150gを軽く角が立つまで泡だて、↑に半量ずつ加えてなめらかに切り混ぜる
15. 【エスプレッソ液】エスプレッソor濃い目に作ったコーヒーに、好みでグラニュー糖・マルサラ酒を混ぜておく
16. 【仕上げ】容器にサヴォイアルディ(ビスケット)を敷き、エスプレッソ液を染み込ませる(もしくは染み込ませてから容器に入れる)
17. ザバイオーネ・クリームを入れて均し、エスプレッソ液を染み込ませたサヴォイアルディ→ザバイオーネ・クリームと重ねていく
18. 冷蔵庫で冷やし固め、仕上げにココアパウダーやコーヒーパウダーをふるいかけて出来上がり
--------------------------------------------------------------------------
▼サブチャンネル(料理実験チャンネル)
https://www.youtube.com/channel/UCqIW0OHh8k2np5ZNz3wz8sg
▼ブログ
http://www.ikashiya.com/
▼Twitter
https://twitter.com/sakihirocl
▼Instagram
https://www.instagram.com/sakiyamahiroshi/
--------------------------------------------------------------------------
↓using translation software.
[Ingredients]
Savoie Ardi (store-bought biscuits can be substituted)
・Two egg yolks
・Granulated sugar (for the egg yolk) 15 g
・Egg whites 2 pieces
・Granulated sugar (for egg whites) 30 g
・Cake flour 50 g
・Powdered sugar as needed
Zabaione
・Two egg yolks
・Granulated sugar 25 g
・Marusara Sake (sweet) 40 g
(You can also use other foreign liquors such as rum or amaretto.)
Sabaione Cream
・Mascarpone cheese 200 g
・Granulated sugar 50 g
・White chocolate (optional) 20 g
・Sabaione total amount
・Marsala Sake, as much as you like
・Heavy cream 150 g
espresso solution
・Espresso (strong instant or drip coffee can be substituted)
・Granulated sugar as much as you like
・Marsala Sake, as much as you like
Finish
・Appropriate amount of cocoa powder or coffee powder
[How to make]
1. [Savoie Hardy/Preheat to 180 °C] Mix 2 egg yolks and 15 g of granulated sugar with a whisk.
2. Add 2 egg whites in a different bowl and whip it until it becomes whitish. Add half of 30 g of granulated sugar and whip it.
3. Add the rest of the granulated sugar when it glazes. Whip it until it peaks to make a meringue.
4. Add half of the meringue to the egg yolk and mix it until it blends in. Sift in 50 g of weak flour.
5. Switch to a spatula and lightly mix it until the powdery feel is gone. Add the rest of the meringue.
6. Mix it so it doesn't crush the bubbles too much. Add it in a piping bag with a round cap when it mixes smoothly.
7. Squeeze it out into a stick shape on a baking sheet covered with baking paper. Sift the powdered sugar entirely. Sift it once again when it disappears.
8.Bake it in the oven preheated to 180 °C for around 20 to 25 minutes until it lightly browns then let it cool.
9. [The Baione] Mix 2 egg yolks, 25 g of granulated sugar, and 40 g of marsala sake in a bowl.
10. Boil it in hot water heated in a pot until it doesn't boil. Warm it to around 70 °C as you mix it (80 °C if you want to sterilize more).
11. The bubbles will disappear and thicken when the temperature rises. You can remove it from the hot water and whip it softly if you'd like.
12. [The Baione Cream] Loosen 200 g of mascarpone cheese in a bowl and mix in 50 g of granulated sugar.
13. Mix 20 g of melted white chocolate and zabaione smoothly. Add marsala sake if you'd like and mix it.
14. Whisk 150 g of whipped cream until it lightly forms peaks. Add half of it at a time to ↑ and mix it smoothly.
15. [Espresso liquid] Mix granulated sugar and marsala sake to your liking with espresso or strong coffee.
16. [Finish] Lay out the savoie aldi (biscuit) in the container and let it soak in the espresso liquid (or let it soak then put it in the container).
17. Add the Xabione cream and flatten it. Layer it with Savoiardi soaked with espresso then Xabione cream.
18. Chill it in the fridge to harden it. Finish it off by sifting cocoa powder or coffee powder and it will be complete.
![post-title](https://i.ytimg.com/vi/UpGKz3pUkrk/hqdefault.jpg)
total solution 在 Spice N' Pans Youtube 的精選貼文
You must ditch your instant noodles for this super easy Soy Sauce Chicken Noodles. This recipe is suitable for those of you who are working from home. It's so easy that I believe everyone can make this at home. Some of you ask how did we calculate 15 mins of cooking time as mentioned in our video title. First of all, we need to get our cooking time definition right. Cooking time to is means the time when heat is turned on and applied to the ingredients. All other time is not counted. In this video, Roland cooked the chicken for 8 mins then he turned off the heat. Then he brought the sauce to boil to thicken the sauce. At most this will only take 2 mins. Then he brought a pot of water to boil to blanch vegetables and noodles. Vegetables literally take seconds to cook and noodles take about 2 mins max to cook because we used fresh noodles. Assuming we assign about 1.5 mins to let the water boil then that brings us nicely to about 15 mins of cooking time altogether.
See the ingredient list below for your easy reference.
Hope you can recreate this yummy dish in the comfort of your home. Happy cooking!
Thanks for dropping by our channel. Please subscribe to stay tuned to our home cooking videos.
Stalk us!
Youtube: www.youtube.com/spicenpans
Facebook www.facebook.com/spicenpans/
Instagram www.instagram/spicenpans
Website: www.spicenpans.com
Chat with us! info@spicenpans.com
Thanks for watching!
See you soon.
------------------
Soy Sauce Chicken Noodles 豉油鸡面
Ingredients:
Serves 4 pax
-------
Marinated chicken
-------
2 pieces of boneless chicken leg (about 480g in total)
2 tablespoons light soy sauce
2 tablespoons premium dark soy sauce
Sauce
--------
800ml (27.05 fl oz) water
2 tablespoons light soy sauce
1 tablespoon oyster sauce
60ml (2.03 fl oz) premium dark soy sauce
4 cloves of garlic (lightly smashed)
0.5 piece star anise
0.5 piece cinnamon bark
1 stalk of spring onion (tied into a knot)
1 thumb-sized young ginger (lightly smashed)
20g (0.71 oz) rock sugar
Some cornstarch solution
Other ingredients
------------
Some leafy vegetables
Wonton noodles (about 70g or 2.47 oz for 1 pax)
===
Don't know where to get the ingredients or don't know how they look like? See the links below.
Light soy sauce https://amzn.to/3dBZuBY
Dark soy sauce https://amzn.to/3q9bXoW
Oyster sauce https://amzn.to/2VyjE9p
Star anise https://amzn.to/3vFSn4C
Cinnamon bark https://amzn.to/3wDPItE
Rock sugar https://amzn.to/3vzayc3
Cornstarch https://amzn.to/35jkDzv
----------
Looking for similar cooking equipment like the one we used in the video? These might interest you:
Greenpan sauce pan https://amzn.to/2SAGvne
Cast iron wok https://amzn.to/2TIOYVi
-------------
Filming equipment: iPhone 11 Pro Max (Get from Amazon https://amzn.to/3eA24tz)
Microphone: Sennheiser AVX digital wireless microphone system
Get Sennheiser wireless microphone in Singapore: https://singapore.sennheiser.com/products/avx-mke2-set-3-uk?_pos=2&_sid=adb86a9d8&_ss=r
Get Sennheiser wireless microphone from Amazon: https://amzn.to/2NILqMR
-----------------------------------
If you like this recipe, you might like these too:
Super Easy Restaurant Style Chinese Braised Noodles • Chicken Lo Mein 伊府面 Ee-Fu (Yee Fu) Mee Recipe
https://youtu.be/NR9O78XYKN4
Hong Kong Style Stir Fry Ramen Noodles w/ Chicken Chop 干炒鸡扒公仔面 Chinese Maggi Goreng Recipe
https://youtu.be/BAt4LlMzryY
Chinese Noodles w/ Scallion Sauce 葱油拌面
https://youtu.be/7ZAC099Xw3o
-----------------------------------
Disclaimer: Spice N' Pans is not related to these products and cannot guarantee the quality of the products in the links provided. Links are provided here for your convenience. We can only stand by the brands of the products we used in the video and we highly recommend you to buy them. Even then, preference can be subjective. Please buy at your own risk. Some of the links provided here may be affiliated. These links are important as they help to fund this channel so that we can continue to give you more recipes. Cheers!
![post-title](https://i.ytimg.com/vi/MAA571Z71rQ/hqdefault.jpg)
total solution 在 Ink Total Solution Taiwan - 首頁| Facebook 的推薦與評價
Every time you print, We'll be there!!! 臺中市. ... <看更多>